diff options
author | Zufu Liu <unknown> | 2023-12-02 08:20:55 +1100 |
---|---|---|
committer | Zufu Liu <unknown> | 2023-12-02 08:20:55 +1100 |
commit | e6538bb38cd509111f0f595f46e7d1ff71bcc017 (patch) | |
tree | cdf847b194f9431c64d2b527c7b216e7486aceb2 /src/Document.cxx | |
parent | c8ca5050cf8c908e49d28eda5642542f7ac1155b (diff) | |
download | scintilla-mirror-e6538bb38cd509111f0f595f46e7d1ff71bcc017.tar.gz |
Bug [#2157]. Fix regular expression search for word begin \< and word end \>.
Diffstat (limited to 'src/Document.cxx')
-rw-r--r-- | src/Document.cxx | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/src/Document.cxx b/src/Document.cxx index a35105669..16595eafa 100644 --- a/src/Document.cxx +++ b/src/Document.cxx @@ -3232,8 +3232,10 @@ Sci::Position BuiltinRegex::FindText(Document *doc, Sci::Position minPos, Sci::P const char searchEndPrev = (*length > 1) ? s[*length - 2] : '\0'; const bool searchforLineEnd = (searchEnd == '$') && (searchEndPrev != '\\'); for (Sci::Line line = resr.lineRangeStart; line != resr.lineRangeBreak; line += resr.increment) { - Sci::Position startOfLine = doc->LineStart(line); - Sci::Position endOfLine = doc->LineEnd(line); + const Sci::Position lineStartPos = doc->LineStart(line); + const Sci::Position lineEndPos = doc->LineEnd(line); + Sci::Position startOfLine = lineStartPos; + Sci::Position endOfLine = lineEndPos; if (resr.increment == 1) { if (line == resr.lineRangeStart) { if ((resr.startPos != startOfLine) && searchforLineStart) @@ -3259,6 +3261,7 @@ Sci::Position BuiltinRegex::FindText(Document *doc, Sci::Position minPos, Sci::P } const DocumentIndexer di(doc, endOfLine); + search.SetLineRange(lineStartPos, lineEndPos); int success = search.Execute(di, startOfLine, endOfLine); if (success) { pos = search.bopat[0]; |