void CodeEditor::SyntaxState::Grounding(const wchar *b, const wchar *e) { if(b >= e || comment || !iscib(*b)) return; e--; while(e > b && (*e == '\t' || *e == ' ' )) e--; if(*e != ':') ClearBraces(); }
bool Match(const char *f, const char *s, bool we, bool ignorecase, int& count) { const char *b = s; while(*f) { if(*f == WILDANY) { f++; for(;;) { if(Match(f, s, we, ignorecase, count)) { count += int(s - b); return true; } if(!*s++) break; } return false; } else if(*f == WILDONE) { if(!*s++) return false; } else if(*f == WILDSPACE) { if(*s != ' ' && *s != '\t') return false; s++; while(*s == ' ' || *s == '\t') s++; } else if(*f == WILDNUMBER) { if(*s < '0' || *s > '9') return false; s++; while(*s >= '0' && *s <= '9') s++; } else if(*f == WILDID) { if(!iscib(*s)) return false; s++; while(iscid(*s)) s++; } else { if(ignorecase ? ToUpper(*s) != ToUpper(*f) : *s != *f) return false; s++; } f++; } count = int(s - b); return we && iscid(*s) ? false : true; }