summaryrefslogtreecommitdiffstats
path: root/window-copy.c
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 /window-copy.c
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.
Diffstat (limited to 'window-copy.c')
-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;