Missing dependencies added.
[AROS-Contrib.git] / rexx / lstring / lastpos.c
blob45c223c75492bf9ebb8218dcbca603d22be315e4
1 /*
2 * $Header$
3 * $Log$
4 * Revision 1.1 2001/04/04 05:43:37 wang
5 * First commit: compiles on Linux, Amiga, Windows, Windows CE, generic gcc
7 * Revision 1.1 1998/07/02 17:18:00 bnv
8 * Initial Version
12 #include <lstring.h>
14 /* ---------------- Llastpos --------------- */
15 long
16 Llastpos( const PLstr needle, const PLstr haystack, long p)
18 Lstr N;
19 Lstr H;
21 L2STR(needle);
22 L2STR(haystack);
24 if (p<0 || p>=LLEN(*haystack)) p = LLEN(*haystack);
26 if (!LLEN(*needle)) {
27 if (LLEN(*haystack))
28 return (p>0)?p:1;
29 else
30 return LNOTFOUND;
33 LINITSTR(N); Lstrcpy(&N,needle);
34 LINITSTR(H); Lstrcpy(&H,haystack);
36 Lreverse(&N);
37 Lreverse(&H);
39 if (p>0) p = LLEN(H) - p + 1;
41 p = Lindex(&H, &N, p);
42 if (p!=LNOTFOUND) p = LLEN(H)-(p+LLEN(N))+2;
44 LFREESTR(N);
45 LFREESTR(H);
47 return p;
48 } /* Llastpos */