aboutsummaryrefslogtreecommitdiff
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)
downloadrtmux-09e90c1645a8ecd1e467b13a743bb46d48febd37.tar.gz
rtmux-09e90c1645a8ecd1e467b13a743bb46d48febd37.tar.bz2
rtmux-09e90c1645a8ecd1e467b13a743bb46d48febd37.zip
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;