summaryrefslogtreecommitdiffstats
path: root/window-copy.c
diff options
context:
space:
mode:
authornicm <nicm>2020-12-28 09:36:26 +0000
committernicm <nicm>2020-12-28 09:36:26 +0000
commitc68baaad98807963da954bc1aa77c22f2df05ff0 (patch)
tree477ddf6f0a42328019f9c41553989ed06a24e54c /window-copy.c
parentc43f2dce1b0ca64b43f7614d4da52bc9f2c195fe (diff)
Remove current match indicator which can't work anymore since we only
search the visible region. From Anindya Mukherjee, GitHub issue 2508.
Diffstat (limited to 'window-copy.c')
-rw-r--r--window-copy.c23
1 files changed, 7 insertions, 16 deletions
diff --git a/window-copy.c b/window-copy.c
index 764f6b5b..d6af397f 100644
--- a/window-copy.c
+++ b/window-copy.c
@@ -272,7 +272,7 @@ struct window_copy_mode_data {
u_char *searchmark;
int searchcount;
int searchmore;
- int searchthis;
+ int searchall;
int searchx;
int searchy;
int searcho;
@@ -396,6 +396,7 @@ window_copy_common_init(struct window_mode_entry *wme)
data->searchstr = NULL;
}
data->searchx = data->searchy = data->searcho = -1;
+ data->searchall = 1;
data->jumptype = WINDOW_COPY_OFF;
data->jumpchar = '\0';
@@ -2334,9 +2335,6 @@ window_copy_command(struct window_mode_entry *wme, struct client *c,
if (clear != WINDOW_COPY_CMD_CLEAR_NEVER) {
window_copy_clear_marks(wme);
data->searchx = data->searchy = -1;
- } else if (data->searchthis != -1) {
- data->searchthis = -1;
- action = WINDOW_COPY_CMD_REDRAW;
}
if (action == WINDOW_COPY_CMD_NOTHING)
action = WINDOW_COPY_CMD_REDRAW;
@@ -2929,9 +2927,11 @@ window_copy_search(struct window_mode_entry *wme, int direction, int regex,
if (data->timeout)
return (0);
- if (wp->searchstr == NULL || wp->searchregex != regex)
+ if (data->searchall || wp->searchstr == NULL ||
+ wp->searchregex != regex) {
visible_only = 0;
- else
+ data->searchall = 0;
+ } else
visible_only = (strcmp(wp->searchstr, str) == 0);
free(wp->searchstr);
wp->searchstr = xstrdup(str);
@@ -3116,7 +3116,6 @@ again:
if (!visible_only) {
if (stopped) {
- data->searchthis = -1;
if (nfound > 1000)
data->searchcount = 1000;
else if (nfound > 100)
@@ -3127,10 +3126,6 @@ again:
data->searchcount = -1;
data->searchmore = 1;
} else {
- if (which != -1)
- data->searchthis = 1 + nfound - which;
- else
- data->searchthis = -1;
data->searchcount = nfound;
data->searchmore = 0;
}
@@ -3366,15 +3361,11 @@ window_copy_write_line(struct window_mode_entry *wme,
if (data->searchcount == -1) {
size = xsnprintf(hdr, sizeof hdr,
"[%u/%u]", data->oy, hsize);
- } else if (data->searchthis == -1) {
+ } else {
size = xsnprintf(hdr, sizeof hdr,
"(%d%s results) [%u/%u]", data->searchcount,
data->searchmore ? "+" : "", data->oy,
hsize);
- } else {
- size = xsnprintf(hdr, sizeof hdr,
- "(%d/%d results) [%u/%u]", data->searchthis,
- data->searchcount, data->oy, hsize);
}
}
if (size > screen_size_x(s))