aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/search.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/search.cpp')
-rw-r--r--src/search.cpp10
1 files changed, 7 insertions, 3 deletions
diff --git a/src/search.cpp b/src/search.cpp
index 77a563a..37ca746 100644
--- a/src/search.cpp
+++ b/src/search.cpp
@@ -147,7 +147,7 @@ StateSearch::initial(void)
}
}
- parameters.from_buffer = ring.current;
+ parameters.from_buffer = QRegisters::current ? NULL : ring.current;
parameters.to_buffer = NULL;
}
@@ -442,7 +442,8 @@ StateSearch::process(const gchar *str, gint new_chars)
if (!re)
goto failure;
- if (ring.current != parameters.from_buffer) {
+ if (!QRegisters::current &&
+ ring.current != parameters.from_buffer) {
ring.undo_edit();
parameters.from_buffer->edit();
}
@@ -597,7 +598,10 @@ StateSearchAll::initial(void)
} else {
parameters.count = (gint)v2;
/* NOTE: on Q-Registers, behave like "S" */
- parameters.from_buffer = parameters.to_buffer = ring.current;
+ if (QRegisters::current)
+ parameters.from_buffer = parameters.to_buffer = NULL;
+ else
+ parameters.from_buffer = parameters.to_buffer = ring.current;
}
if (parameters.count >= 0) {