diff options
author | Robin Haberkorn <robin.haberkorn@googlemail.com> | 2014-11-20 01:29:47 +0100 |
---|---|---|
committer | Robin Haberkorn <robin.haberkorn@googlemail.com> | 2014-11-20 01:29:47 +0100 |
commit | 4282e7d6b2f2cd73e93bf478a4aae4ce92481808 (patch) | |
tree | 87ab1d9cb0d8601e61e576dd4d5c39cf59854a78 /src/search.cpp | |
parent | d4f8fb3efcb60cc2cd39ecb7ca65706db4c7b6ad (diff) | |
download | sciteco-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.cpp | 10 |
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) { |