aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/Document.cxx
diff options
context:
space:
mode:
authorZufu Liu <unknown>2023-12-02 08:20:55 +1100
committerZufu Liu <unknown>2023-12-02 08:20:55 +1100
commite6538bb38cd509111f0f595f46e7d1ff71bcc017 (patch)
treecdf847b194f9431c64d2b527c7b216e7486aceb2 /src/Document.cxx
parentc8ca5050cf8c908e49d28eda5642542f7ac1155b (diff)
downloadscintilla-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.cxx7
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];