template<typename T> inline bool mask_compare( const T* mask, const T* s ) { const T *cp=0, *mp=0; for (; *s&&*mask!='*'; mask++,s++) if (*mask!=*s&&*mask!='?') return false; for (;;) { if (!*s) { while (*mask=='*') mask++; return !*mask; } if (*mask=='*') { if (!*++mask) return true; mp=mask; cp=s+1; continue; } if (*mask==*s||*mask=='?') { mask++, s++; continue; } mask=mp; s=cp++; } }
If you are unable to use this captcha for any reason, please contact us by email at support@dreamwidth.org
no subject
Date: May. 8th, 2006 17:08 (UTC)template<typename T> inline bool mask_compare( const T* mask, const T* s ) { const T *cp=0, *mp=0; for (; *s&&*mask!='*'; mask++,s++) if (*mask!=*s&&*mask!='?') return false; for (;;) { if (!*s) { while (*mask=='*') mask++; return !*mask; } if (*mask=='*') { if (!*++mask) return true; mp=mask; cp=s+1; continue; } if (*mask==*s||*mask=='?') { mask++, s++; continue; } mask=mp; s=cp++; } }