/* * search() looks for a character forward or backward from mark */ extern char *BX_search(register char *start, char **mark, char *chars, int how) { if (!mark || !*mark) *mark = start; if (how > 0) /* forward search */ { *mark = sindex(*mark, chars); how--; for (;(how > 0) && *mark && **mark;how--) *mark = sindex(*mark+1, chars); } else if (how == 0) return (char *) 0; else /* how < 0 */ { *mark = rsindex(*mark, start, chars, -how); #if 0 how++; for (;(how < 0) && *mark && **mark;how++) *mark = rsindex(*mark-1, start, chars); #endif } return *mark; }
/* * search() looks for a character forward or backward from mark */ char *search (char *start, char **mark, char *chars, int how) { if (!mark || !*mark) *mark = start; if (how > 0) /* forward search */ { *mark = sindex(*mark, chars); how--; for (;(how > 0) && *mark && **mark;how--) *mark = sindex(*mark+1, chars); } else if (how == 0) return NULL; else /* how < 0 */ *mark = rsindex(*mark, start, chars, -how); return *mark; }