]>
Commit | Line | Data |
---|---|---|
fe4da5cc | 1 | /* |
2 | * $Id$ | |
3 | * | |
4 | * $Log$ | |
5 | * Revision 1.1.1.1 1996/02/15 17:49:33 mclareni | |
6 | * Kernlib | |
7 | * | |
8 | */ | |
9 | /*> ROUTINE LENOCC | |
10 | CERN PROGLIB# M507 LENOCC .VERSION KERNIRT 1.05 920511 | |
11 | ORIG. 30/04/92, RDM + JZ | |
12 | ||
13 | N = LENOCC (CHLINE) find last non-blank character in CHLINE | |
14 | */ | |
15 | int lenocc_(chline, len) | |
16 | char *chline; | |
17 | int len; | |
18 | { | |
19 | static unsigned int blnk = 0x20202020; | |
20 | unsigned int *wdcur; | |
21 | char *chcur; | |
22 | int ntail, i; | |
23 | ||
24 | chcur = chline + len; | |
25 | if (len <= 24) goto small; | |
26 | ||
27 | /* ---- handle long string */ | |
28 | ||
29 | /* look for trailing blank words */ | |
30 | ||
31 | wdcur = (unsigned int*) (chcur-4); | |
32 | while (wdcur >= (unsigned int*)chline ) | |
33 | { if (*wdcur != blnk) break; wdcur--; } | |
34 | ||
35 | /* find last non-blank character */ | |
36 | ||
37 | chcur = (char*) (wdcur+1); | |
38 | while (chcur > chline) | |
39 | { if (*--chcur != ' ') goto exit; } | |
40 | return 0; | |
41 | ||
42 | exit: return chcur+1 - chline; | |
43 | ||
44 | /* ---- handle short string */ | |
45 | ||
46 | small: | |
47 | while (chcur > chline) | |
48 | { if (*--chcur != ' ') goto exit; } | |
49 | return 0; | |
50 | } | |
51 | /*> END <----------------------------------------------------------*/ |