summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authornicm <nicm>2019-06-05 19:00:36 +0000
committerNicholas Marriott <nicholas.marriott@gmail.com>2019-06-05 21:06:06 +0100
commitdb5a7c1740b4400a1ea5cabaae5e99f942179d16 (patch)
tree805b46c8a1f1af431600969517f6988e66038ff9
parent53914e50b90ddbe285c188c021c3922b4e4c9fb8 (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;