diff options
-rw-r--r-- | src/RESearch.cxx | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/src/RESearch.cxx b/src/RESearch.cxx index cee61cff6..0603b5870 100644 --- a/src/RESearch.cxx +++ b/src/RESearch.cxx @@ -238,7 +238,7 @@ using namespace Scintilla; #define BLKIND 0370 #define BITIND 07 -const char bitarr[] = { 1, 2, 4, 8, 16, 32, 64, '\200' }; +static const char bitarr[] = { 1, 2, 4, 8, 16, 32, 64, '\200' }; #define badpat(x) (*nfa = END, x) @@ -833,7 +833,9 @@ int RESearch::Execute(CharacterIndexer &ci, Sci::Position lp, Sci::Position endp extern void re_fail(char *,char); -#define isinset(x,y) ((x)[((y)&BLKIND)>>3] & bitarr[(y)&BITIND]) +static inline int isinset(const char *ap, unsigned char c) { + return ap[(c & BLKIND) >> 3] & bitarr[c & BITIND]; +} /* * skip values for CLO XXX to skip past the closure @@ -865,8 +867,7 @@ Sci::Position RESearch::PMatch(CharacterIndexer &ci, Sci::Position lp, Sci::Posi case CCL: if (lp >= endp) return NOTFOUND; - c = ci.CharAt(lp++); - if (!isinset(ap,c)) + if (!isinset(ap, ci.CharAt(lp++))) return NOTFOUND; ap += BITBLK; break; @@ -925,7 +926,7 @@ Sci::Position RESearch::PMatch(CharacterIndexer &ci, Sci::Position lp, Sci::Posi n = CHRSKIP; break; case CCL: - while ((lp < endp) && isinset(ap+1,ci.CharAt(lp))) + while ((lp < endp) && isinset(ap+1, ci.CharAt(lp))) lp++; n = CCLSKIP; break; |