--- m_getfld.c~ 2000-01-26 16:35:43.000000000 -0500 +++ m_getfld.c 2004-07-21 15:28:59.000101028 -0400 @@ -727,9 +727,10 @@ register char pc = *pat++; for(;;) { - while (pc != *str++) - if (str > es) - return 0; + while (str <= es && pc != *str) + str++; + if (str++ > es) + return 0; sp = str; pp = pat; while (pp < ep && *sp++ == *pp) sp = str; pp = pat; while (pp < ep && *sp++ == *pp)