--- m_getfld.c~ 2000-01-26 16:35:43.000000000 -0500 +++ m_getfld.c 2004-07-21 15:34:35.754140201 -0400 @@ -726,17 +726,17 @@ register char *ep = pat + patln; register char pc = *pat++; - for(;;) { - while (pc != *str++) - if (str > es) - return 0; + for(;str <= es; str++) { + if (pc != *str) + continue; - sp = str; pp = pat; + sp = str+1; pp = pat; while (pp < ep && *sp++ == *pp) pp++; if (pp >= ep) - return ((unsigned char *)--str); + return ((unsigned char *)str); } + return 0; }