|
|
1.1 ! root 1: /* ! 2: * Copyright (c) 1980 Regents of the University of California. ! 3: * All rights reserved. The Berkeley software License Agreement ! 4: * specifies the terms and conditions for redistribution. ! 5: * ! 6: * @(#)rindex_.c 5.2 6/7/85 ! 7: * ! 8: * find last occurrence of substring in string ! 9: * ! 10: * calling sequence: ! 11: * character*(*) substr, string ! 12: * indx = rindex (string, substr) ! 13: * where: ! 14: * indx will be the index of the first character of the last occurence ! 15: * of substr in string, or zero if not found. ! 16: */ ! 17: ! 18: long rindex_(str, substr, slen, sublen) ! 19: char *str, *substr; long slen, sublen; ! 20: { ! 21: register char *p = str + (slen - sublen); ! 22: register char *p1, *p2; ! 23: register int len; ! 24: ! 25: if (sublen == 0) ! 26: return(0L); ! 27: while (p >= str) { ! 28: p1 = p; ! 29: p2 = substr; ! 30: len = sublen; ! 31: while ( *p1++ == *p2++ && --len > 0) ; ! 32: if ( len <= 0 ) ! 33: return((long)(++p - str)); ! 34: p--; ! 35: } ! 36: return(0L); ! 37: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.