commit 30322aafaadf38c3259d402525f71fcf4e4117d3
Author: Kornel Benko <[email protected]>
Date: Sun Jul 20 07:49:41 2025 +0200
Find-ADV: Amend 04bf5583:
Omit repeating search for strings not contained in searched file
---
src/BufferView.cpp | 46 +++++++++++++++++++++++++---------------------
1 file changed, 25 insertions(+), 21 deletions(-)
diff --git a/src/BufferView.cpp b/src/BufferView.cpp
index 38e71d0792..c498d29248 100644
--- a/src/BufferView.cpp
+++ b/src/BufferView.cpp
@@ -1943,6 +1943,7 @@ void BufferView::dispatch(FuncRequest const & cmd,
DispatchResult & dr)
istringstream iss(to_utf8(cmd.argument()));
iss >> opt;
bool repeat_search;
+ bool check_wrap = true; // do not repeat if the whole document
does not contain the searched string
do {
repeat_search = false;
@@ -1951,28 +1952,31 @@ void BufferView::dispatch(FuncRequest const & cmd,
DispatchResult & dr)
cur.dispatched();
dispatched = true;
} else {
- DocIterator cur_orig(cursor());
- if (opt.forward) {
- docstring q = _("End of file reached
while searching forward.\n"
- "Continue searching from the
beginning?");
- int wrap_answer =
frontend::Alert::prompt(_("Wrap search?"),
- q, 0, 1, _("&Yes"), _("&No"));
- if (wrap_answer == 0) {
- cursor().clear();
-
cursor().push_back(CursorSlice(buffer().inset()));
- repeat_search = true;
+ if (check_wrap) {
+ check_wrap = false;
+ DocIterator cur_orig(cursor());
+ if (opt.forward) {
+ docstring q = _("End of file
reached while searching forward.\n"
+ "Continue searching
from the beginning?");
+ int wrap_answer =
frontend::Alert::prompt(_("Wrap search?"),
+ q, 0, 1, _("&Yes"),
_("&No"));
+ if (wrap_answer == 0) {
+ cursor().clear();
+
cursor().push_back(CursorSlice(buffer().inset()));
+ repeat_search = true;
+ }
}
- }
- else {
- docstring q = _("Beginning of file
reached while searching backward.\n"
- "Continue searching from the
end?");
- int wrap_answer =
frontend::Alert::prompt(_("Wrap search?"),
- q, 0, 1, _("&Yes"), _("&No"));
- if (wrap_answer == 0) {
-
cursor().setCursor(doc_iterator_end(&buffer()));
- cursor().backwardPos();
- dispatched = true;
- repeat_search = true;
+ else {
+ docstring q = _("Beginning of
file reached while searching backward.\n"
+ "Continue searching
from the end?");
+ int wrap_answer =
frontend::Alert::prompt(_("Wrap search?"),
+ q, 0, 1, _("&Yes"),
_("&No"));
+ if (wrap_answer == 0) {
+
cursor().setCursor(doc_iterator_end(&buffer()));
+ cursor().backwardPos();
+ dispatched = true;
+ repeat_search = true;
+ }
}
}
--
lyx-cvs mailing list
[email protected]
https://lists.lyx.org/mailman/listinfo/lyx-cvs