aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--options-table.c5
-rw-r--r--tmux.16
-rw-r--r--window-copy.c10
3 files changed, 17 insertions, 4 deletions
diff --git a/options-table.c b/options-table.c
index 57896fc5..86610b98 100644
--- a/options-table.c
+++ b/options-table.c
@@ -668,6 +668,11 @@ const struct options_table_entry window_options_table[] = {
.default_str = "#I:#W#F"
},
+ { .name = "wrap-search",
+ .type = OPTIONS_TABLE_FLAG,
+ .default_num = 1
+ },
+
{ .name = "xterm-keys",
.type = OPTIONS_TABLE_FLAG,
.default_num = 0
diff --git a/tmux.1 b/tmux.1
index dcb4ba53..6647abdc 100644
--- a/tmux.1
+++ b/tmux.1
@@ -2665,6 +2665,12 @@ will generate
function key sequences; these have a number included to indicate modifiers such
as Shift, Alt or Ctrl.
The default is off.
+.Pp
+.It Xo Ic wrap-search
+.Op Ic on | off
+.Xc
+If this option is set, searches will wrap around the end of the pane contents.
+The default is on.
.El
.It Xo Ic show-options
.Op Fl gsw
diff --git a/window-copy.c b/window-copy.c
index 3ba650e2..68e260dc 100644
--- a/window-copy.c
+++ b/window-copy.c
@@ -984,11 +984,12 @@ window_copy_search_up(struct window_pane *wp, const char *searchstr)
struct grid_cell gc;
size_t searchlen;
u_int i, last, fx, fy, px;
- int utf8flag, n, wrapped;
+ int utf8flag, n, wrapped, wrapflag;
if (*searchstr == '\0')
return;
utf8flag = options_get_number(&wp->window->options, "utf8");
+ wrapflag = options_get_number(&wp->window->options, "wrap-search");
searchlen = screen_write_strlen(utf8flag, "%s", searchstr);
screen_init(&ss, searchlen, 1, 0);
@@ -1021,7 +1022,7 @@ retry:
break;
}
}
- if (!n && !wrapped) {
+ if (wrapflag && !n && !wrapped) {
fx = gd->sx - 1;
fy = gd->hsize + gd->sy - 1;
wrapped = 1;
@@ -1041,11 +1042,12 @@ window_copy_search_down(struct window_pane *wp, const char *searchstr)
struct grid_cell gc;
size_t searchlen;
u_int i, first, fx, fy, px;
- int utf8flag, n, wrapped;
+ int utf8flag, n, wrapped, wrapflag;
if (*searchstr == '\0')
return;
utf8flag = options_get_number(&wp->window->options, "utf8");
+ wrapflag = options_get_number(&wp->window->options, "wrap-search");
searchlen = screen_write_strlen(utf8flag, "%s", searchstr);
screen_init(&ss, searchlen, 1, 0);
@@ -1078,7 +1080,7 @@ retry:
break;
}
}
- if (!n && !wrapped) {
+ if (wrapflag && !n && !wrapped) {
fx = 0;
fy = 0;
wrapped = 1;