meanderingprogrammer at gmail dot com, GitHub issue 3975.
-/* $OpenBSD: options-table.c,v 1.171 2024/04/10 07:36:25 nicm Exp $ */
+/* $OpenBSD: options-table.c,v 1.172 2024/05/14 07:40:39 nicm Exp $ */
/*
* Copyright (c) 2011 Nicholas Marriott <nicholas.marriott@gmail.com>
.text = "Maximum number of commands to keep in history."
},
+ { .name = "search-wrapped-lines",
+ .type = OPTIONS_TABLE_FLAG,
+ .scope = OPTIONS_TABLE_SERVER,
+ .default_num = 1,
+ .text = "Whether to include full wrapped lines when searching for "
+ "text in copy mode."
+ },
+
{ .name = "set-clipboard",
.type = OPTIONS_TABLE_CHOICE,
.scope = OPTIONS_TABLE_SERVER,
-.\" $OpenBSD: tmux.1,v 1.941 2024/04/10 07:36:25 nicm Exp $
+.\" $OpenBSD: tmux.1,v 1.942 2024/05/14 07:40:39 nicm Exp $
.\"
.\" Copyright (c) 2007 Nicholas Marriott <nicholas.marriott@gmail.com>
.\"
.\" IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
.\" OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
-.Dd $Mdocdate: April 10 2024 $
+.Dd $Mdocdate: May 14 2024 $
.Dt TMUX 1
.Os
.Sh NAME
.It Ic prompt-history-limit Ar number
Set the number of history items to save in the history file for each type of
command prompt.
+.It Xo Ic search-wrapped-lines
+.Op Ic on | off
+.Xc
+Defines how
+.Nm
+handles wrapped lines when searching in copy mode.
+When disabled, lines are truncated and searching is faster, but matches may be
+missed.
.It Xo Ic set-clipboard
.Op Ic on | external | off
.Xc
-/* $OpenBSD: window-copy.c,v 1.348 2024/04/23 13:34:51 jsg Exp $ */
+/* $OpenBSD: window-copy.c,v 1.349 2024/05/14 07:40:39 nicm Exp $ */
/*
* Copyright (c) 2007 Nicholas Marriott <nicholas.marriott@gmail.com>
int direction, int regex)
{
u_int i, px, sx, ssize = 1;
- int found = 0, cflags = REG_EXTENDED;
+ int wrapped, found = 0, cflags = REG_EXTENDED;
char *sbuf;
regex_t reg;
struct grid_line *gl;
+ wrapped = options_get_number(global_options, "search-wrapped-lines");
+
if (regex) {
sbuf = xmalloc(ssize);
sbuf[0] = '\0';
if (direction) {
for (i = fy; i <= endline; i++) {
gl = grid_get_line(gd, i);
- if (i != endline && gl->flags & GRID_LINE_WRAPPED)
+ if (!wrapped &&
+ i != endline &&
+ gl->flags & GRID_LINE_WRAPPED)
continue;
if (regex) {
found = window_copy_search_lr_regex(gd,
} else {
for (i = fy + 1; endline < i; i--) {
gl = grid_get_line(gd, i - 1);
- if (i != endline && gl->flags & GRID_LINE_WRAPPED)
+ if (!wrapped &&
+ i != endline &&
+ gl->flags & GRID_LINE_WRAPPED)
continue;
if (regex) {
found = window_copy_search_rl_regex(gd,