diff options
Diffstat (limited to 'src/Document.h')
-rw-r--r-- | src/Document.h | 24 |
1 files changed, 20 insertions, 4 deletions
diff --git a/src/Document.h b/src/Document.h index 04bbd5c74..0457b475b 100644 --- a/src/Document.h +++ b/src/Document.h @@ -74,7 +74,24 @@ public: class DocWatcher; class DocModification; -class RESearch; +class Document; + +/** + * Interface class for regular expression searching + */ +class RegexSearchBase { +public: + virtual ~RegexSearchBase(){} + + virtual long FindText(Document* doc, int minPos, int maxPos, const char *s, + bool caseSensitive, bool word, bool wordStart, int flags, int *length) = 0; + + ///@return String with the substitutions, must remain valid until the next call or destruction + virtual const char *SubstituteByPosition(Document* doc, const char *text, int *length) = 0; +}; + +/// Factory function for RegexSearchBase +extern RegexSearchBase* CreateRegexSearch(CharClassify *charClassTable); /** */ @@ -109,8 +126,7 @@ private: int lenWatchers; bool matchesValid; - RESearch *pre; - char *substituted; + RegexSearchBase* regex; public: int stylingBits; @@ -208,7 +224,7 @@ public: int Length() const { return cb.Length(); } void Allocate(int newSize) { cb.Allocate(newSize); } long FindText(int minPos, int maxPos, const char *s, - bool caseSensitive, bool word, bool wordStart, bool regExp, bool posix, int *length); + bool caseSensitive, bool word, bool wordStart, bool regExp, int flags, int *length); long FindText(int iMessage, unsigned long wParam, long lParam); const char *SubstituteByPosition(const char *text, int *length); int LinesTotal() const; |