private bool ZMatchHere(sCursor pPattern, sCursor pMailboxPath) { while (true) { if (pPattern.AtEnd) { return(pMailboxPath.AtEnd); } char lPatternCurrent = pPattern.Current; pPattern.MoveNext(); if (lPatternCurrent == '*') { return(ZMatchWildcard(true, pPattern, pMailboxPath)); } if (lPatternCurrent == '%') { return(ZMatchWildcard(mNoDelimiter, pPattern, pMailboxPath)); } if (pMailboxPath.AtEnd) { return(false); } if (lPatternCurrent != pMailboxPath.Current) { return(false); } pMailboxPath.MoveNext(); } }
private bool ZMatchWildcard(bool pMatchDelimiter, sCursor pPattern, sCursor pMailboxPath) { while (true) { if (ZMatchHere(pPattern, pMailboxPath)) { return(true); } if (pMailboxPath.AtEnd) { return(false); } if (!pMatchDelimiter && pMailboxPath.Current == mDelimiter) { return(false); } pMailboxPath.MoveNext(); } }