aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/search.cpp
diff options
context:
space:
mode:
authorRobin Haberkorn <robin.haberkorn@googlemail.com>2014-11-20 01:29:47 +0100
committerRobin Haberkorn <robin.haberkorn@googlemail.com>2014-11-20 01:29:47 +0100
commit4282e7d6b2f2cd73e93bf478a4aae4ce92481808 (patch)
tree87ab1d9cb0d8601e61e576dd4d5c39cf59854a78 /src/search.cpp
parentd4f8fb3efcb60cc2cd39ecb7ca65706db4c7b6ad (diff)
downloadsciteco-4282e7d6b2f2cd73e93bf478a4aae4ce92481808.tar.gz
allow a current buffer if we're editing a Q-Register
this eases handling of the "*" register
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) {