Ejemplo n.º 1
0
Archivo: find.c Proyecto: 8l/FUZIX
char * PROC
search(char *pat, int *start)
/* get a token for find & find it in the buffer
 */
{
    bool forwd;
    int  pos;
    char *p;

    forwd = ((nlsearch = *pat) == '/');
    if ((p=makepat(pat+1,*pat)) == NULL) {
	*start = ERR;
	return pat;
    }
    do {
	if (forwd) {
	    pos = findfwd(pattern, (*start)+1, bufmax-1);
	    if ((pos == ERR) && wrapscan) {
		s_wrapped = 1;
		pos = findfwd(pattern, 0, (*start)-1);
	    }
	}
	else {
	    pos = findback(pattern, (*start)-1, 0);
	    if ((pos == ERR) && wrapscan) {
		s_wrapped = 1;
		pos = findback(pattern, bufmax-1, (*start)+1);
	    }
	}
	*start = pos;
    } while (--count > 0 && *start != ERR);
    return p;
}
Ejemplo n.º 2
0
void TRegexp::gen_pattern(const tchar * str)
{
    the_pattern = new PatternType[maxpat];
    stat = (StatVal)makepat( str, the_pattern, maxpat );
}