[prev in list] [next in list] [prev in thread] [next in thread]
List: lyx-cvs
Subject: [LyX/master] FindAdv: Use modified check to determine if char is a word-char.
From: Kornel Benko <kornel () lyx ! org>
Date: 2022-05-29 11:34:22
Message-ID: 20220529113422.7E4BA280238 () lyx ! lyx ! org
[Download RAW message or body]
commit 46c573c082f2428f6884ba3f773c34a846cf3557
Author: Kornel Benko <kornel@lyx.org>
Date: Sun May 29 14:12:38 2022 +0200
FindAdv: Use modified check to determine if char is a word-char.
Amends 652ffc9c(3)
---
src/lyxfind.cpp | 18 ++++++++++--------
1 files changed, 10 insertions(+), 8 deletions(-)
diff --git a/src/lyxfind.cpp b/src/lyxfind.cpp
index 594e2aa..7fadd51 100644
--- a/src/lyxfind.cpp
+++ b/src/lyxfind.cpp
@@ -4864,14 +4864,17 @@ bool findAdv(BufferView * bv, FindAndReplaceOptions & opt)
if (opt.matchword && cur.pos() > 0) { // Skip word-characters if we are in the mid of a word
if (cur.inTexted()) {
Paragraph const & par = cur.paragraph();
- if (!par.isWordSeparator(cur.pos() -1, true)) {
- class Text *t = cur.text();
- CursorSlice to;
- CursorSlice from = cur.top();
- t->getWord(from, to, WHOLE_WORD);
- cur.pos() = to.pos();
- cur.pit() = to.pit();
+ int len_limit, new_pos;
+ if (cur.lastpos() < par.size())
+ len_limit = cur.lastpos();
+ else
+ len_limit = par.size();
+ for (new_pos = cur.pos() - 1; new_pos < len_limit; new_pos++) {
+ if (!isWordChar(par.getChar(new_pos)))
+ break;
}
+ if (new_pos > cur.pos())
+ cur.pos() = new_pos;
}
else if (cur.inMathed()) {
// Check if 'cur.pos()-1' and 'cur.pos()' both point to a letter,
@@ -4898,7 +4901,6 @@ bool findAdv(BufferView * bv, FindAndReplaceOptions & opt)
if (len > 1)
cur.pos() = cur.pos() + len - 1;
}
-
}
opt.matchword = false;
}
--
lyx-cvs mailing list
lyx-cvs@lists.lyx.org
http://lists.lyx.org/mailman/listinfo/lyx-cvs
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic