5 * Revision 1.3 1997/10/23 16:25:11 mclareni
6 * NT mods, mostly C Fortran interface
8 * Revision 1.2 1996/09/20 14:51:15 cernlib
11 * Revision 1.1.1.1 1996/02/15 17:49:20 mclareni
15 #include "kerngen/pilot.h"
16 #if defined(CERNLIB_QMHPX)||defined(CERNLIB_QMOS9)
17 #include "hpxgs/lenocc.c"
18 #elif defined(CERNLIB_QMIRT)||defined(CERNLIB_QMIRTD)
19 #include "irtgs/lenocc.c"
22 CERN PROGLIB# M507 LENOCC .VERSION KERNVMI 1.06 920511
23 ORIG. 30/04/92, RDM + JZ
25 N = LENOCC (CHLINE) find last non-blank character in CHLINE
27 #if defined(CERNLIB_QXNO_SC)
28 int type_of_call lenocc(chline, len)
29 #elif defined(CERNLIB_QXCAPT)
30 int type_of_call LENOCC(chline, len)
32 int type_of_call lenocc_(chline, len)
37 static unsigned int blnk = 0x20202020;
43 if (len <= 24) goto small;
45 /* ---- handle long string */
47 /* look at the last ntail characters */
49 ntail = ((int)chcur & 3);
50 for (i = ntail; i > 0; i--)
51 { if (*--chcur != ' ') goto exit; }
53 /* look for trailing blank words */
55 wdcur = (unsigned int*) (chcur-4);
56 while (wdcur >= (unsigned int*)chline )
57 { if (*wdcur != blnk) break; wdcur--; }
59 /* find last non-blank character */
61 chcur = (char*) (wdcur+1);
62 while (chcur > chline)
63 { if (*--chcur != ' ') goto exit; }
66 exit: return chcur+1 - chline;
68 /* ---- handle short string */
71 while (chcur > chline)
72 { if (*--chcur != ' ') goto exit; }
75 /*> END <----------------------------------------------------------*/