mirror of
https://github.com/tmux/tmux.git
synced 2026-10-09 19:54:22 +00:00
Merge remote-tracking branch 'refs/remotes/tmux-openbsd/master'
* refs/remotes/tmux-openbsd/master: Fix some indentation. Do not overflow window indexes at INT_MAX in new-window -a and renumber-windows. GitHub issue 5637 from Alexandre Fiori.
This commit is contained in:
16
session.c
16
session.c
@@ -1,4 +1,4 @@
|
|||||||
/* $OpenBSD: session.c,v 1.108 2026/09/21 12:43:36 nicm Exp $ */
|
/* $OpenBSD: session.c,v 1.109 2026/09/25 08:46:06 nicm Exp $ */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2007 Nicholas Marriott <nicholas.marriott@gmail.com>
|
* Copyright (c) 2007 Nicholas Marriott <nicholas.marriott@gmail.com>
|
||||||
@@ -747,14 +747,21 @@ session_renumber_windows(struct session *s)
|
|||||||
struct winlink *wl, *wl1, *wl_new;
|
struct winlink *wl, *wl1, *wl_new;
|
||||||
struct winlinks old_wins;
|
struct winlinks old_wins;
|
||||||
struct winlink_stack old_lastw;
|
struct winlink_stack old_lastw;
|
||||||
|
u_int n;
|
||||||
int new_idx, new_curw_idx, marked_idx = -1;
|
int new_idx, new_curw_idx, marked_idx = -1;
|
||||||
|
|
||||||
|
/* Start renumbering from the base-index if it's set. */
|
||||||
|
new_idx = options_get_number(s->options, "base-index");
|
||||||
|
|
||||||
|
/* Leave the indexes alone if they do not all fit from there. */
|
||||||
|
n = winlink_count(&s->windows);
|
||||||
|
if (n > (u_int)INT_MAX - (u_int)new_idx + 1)
|
||||||
|
return;
|
||||||
|
|
||||||
/* Save and replace old window list. */
|
/* Save and replace old window list. */
|
||||||
memcpy(&old_wins, &s->windows, sizeof old_wins);
|
memcpy(&old_wins, &s->windows, sizeof old_wins);
|
||||||
RB_INIT(&s->windows);
|
RB_INIT(&s->windows);
|
||||||
|
|
||||||
/* Start renumbering from the base-index if it's set. */
|
|
||||||
new_idx = options_get_number(s->options, "base-index");
|
|
||||||
new_curw_idx = 0;
|
new_curw_idx = 0;
|
||||||
|
|
||||||
/* Go through the winlinks and assign new indexes. */
|
/* Go through the winlinks and assign new indexes. */
|
||||||
@@ -769,7 +776,8 @@ session_renumber_windows(struct session *s)
|
|||||||
if (wl == s->curw)
|
if (wl == s->curw)
|
||||||
new_curw_idx = wl_new->idx;
|
new_curw_idx = wl_new->idx;
|
||||||
|
|
||||||
new_idx++;
|
if (RB_NEXT(winlinks, &old_wins, wl) != NULL)
|
||||||
|
new_idx++;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Fix the stack of last windows now. */
|
/* Fix the stack of last windows now. */
|
||||||
|
|||||||
6
tmux.c
6
tmux.c
@@ -1,4 +1,4 @@
|
|||||||
/* $OpenBSD: tmux.c,v 1.223 2026/08/17 14:47:41 nicm Exp $ */
|
/* $OpenBSD: tmux.c,v 1.224 2026/09/25 09:11:18 nicm Exp $ */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2007 Nicholas Marriott <nicholas.marriott@gmail.com>
|
* Copyright (c) 2007 Nicholas Marriott <nicholas.marriott@gmail.com>
|
||||||
@@ -178,8 +178,8 @@ expand_paths(const char *s, char ***paths, u_int *n, int no_realpath)
|
|||||||
path = expanded;
|
path = expanded;
|
||||||
else {
|
else {
|
||||||
if (realpath(expanded, resolved) == NULL) {
|
if (realpath(expanded, resolved) == NULL) {
|
||||||
log_debug("%s: realpath(\"%s\") failed: %s", __func__,
|
log_debug("%s: realpath(\"%s\") failed: %s",
|
||||||
expanded, strerror(errno));
|
__func__, expanded, strerror(errno));
|
||||||
free(expanded);
|
free(expanded);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|||||||
4
window.c
4
window.c
@@ -1,4 +1,4 @@
|
|||||||
/* $OpenBSD: window.c,v 1.378 2026/09/24 11:19:39 nicm Exp $ */
|
/* $OpenBSD: window.c,v 1.379 2026/09/25 08:46:06 nicm Exp $ */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2007 Nicholas Marriott <nicholas.marriott@gmail.com>
|
* Copyright (c) 2007 Nicholas Marriott <nicholas.marriott@gmail.com>
|
||||||
@@ -2436,7 +2436,7 @@ winlink_shuffle_up(struct session *s, struct winlink *wl, int before)
|
|||||||
{
|
{
|
||||||
int idx, last;
|
int idx, last;
|
||||||
|
|
||||||
if (wl == NULL)
|
if (wl == NULL || wl->idx == INT_MAX)
|
||||||
return (-1);
|
return (-1);
|
||||||
if (before)
|
if (before)
|
||||||
idx = wl->idx;
|
idx = wl->idx;
|
||||||
|
|||||||
Reference in New Issue
Block a user