summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authornicm <nicm>2019-06-05 19:00:36 +0000
committernicm <nicm>2019-06-05 19:00:36 +0000
commit09e90c1645a8ecd1e467b13a743bb46d48febd37 (patch)
tree9d37a91b66ebc5708d8ddf0732f75fb34ed6e9fc
parent4ca1de1b8bc10dca47d2cf7399df41845c902c9e (diff)
Need to increment the argument to skip the prefix earlier, fixes
repeated incremental search in copy mode, reported by Kaushal Modi in GitHub issue 1780.
-rw-r--r--window-copy.c16
1 files changed, 8 insertions, 8 deletions
diff --git a/window-copy.c b/window-copy.c
index 36ad6a83..d81073bf 100644
--- a/window-copy.c
+++ b/window-copy.c
@@ -1668,9 +1668,11 @@ window_copy_cmd_search_backward_incremental(struct window_copy_cmd_state *cs)
struct window_mode_entry *wme = cs->wme;
struct window_copy_mode_data *data = wme->data;
const char *argument = cs->args->argv[1];
- enum window_copy_cmd_action action = WINDOW_COPY_CMD_NOTHING;
const char *ss = data->searchstr;
+ char prefix;
+ enum window_copy_cmd_action action = WINDOW_COPY_CMD_NOTHING;
+ prefix = *argument++;
if (data->searchx == -1 || data->searchy == -1) {
data->searchx = data->cx;
data->searchy = data->cy;
@@ -1681,13 +1683,11 @@ window_copy_cmd_search_backward_incremental(struct window_copy_cmd_state *cs)
data->oy = data->searcho;
action = WINDOW_COPY_CMD_REDRAW;
}
-
if (*argument == '\0') {
window_copy_clear_marks(wme);
return (WINDOW_COPY_CMD_REDRAW);
}
-
- switch (*argument++) {
+ switch (prefix) {
case '=':
case '-':
data->searchtype = WINDOW_COPY_SEARCHUP;
@@ -1717,9 +1717,11 @@ window_copy_cmd_search_forward_incremental(struct window_copy_cmd_state *cs)
struct window_mode_entry *wme = cs->wme;
struct window_copy_mode_data *data = wme->data;
const char *argument = cs->args->argv[1];
- enum window_copy_cmd_action action = WINDOW_COPY_CMD_NOTHING;
const char *ss = data->searchstr;
+ char prefix;
+ enum window_copy_cmd_action action = WINDOW_COPY_CMD_NOTHING;
+ prefix = *argument++;
if (data->searchx == -1 || data->searchy == -1) {
data->searchx = data->cx;
data->searchy = data->cy;
@@ -1730,13 +1732,11 @@ window_copy_cmd_search_forward_incremental(struct window_copy_cmd_state *cs)
data->oy = data->searcho;
action = WINDOW_COPY_CMD_REDRAW;
}
-
if (*argument == '\0') {
window_copy_clear_marks(wme);
return (WINDOW_COPY_CMD_REDRAW);
}
-
- switch (*argument++) {
+ switch (prefix) {
case '=':
case '+':
data->searchtype = WINDOW_COPY_SEARCHDOWN;