Merge branch 'obsd-master'

This commit is contained in:
Thomas Adam
2025-07-13 10:01:08 +01:00
3 changed files with 32 additions and 17 deletions

View File

@@ -4490,7 +4490,6 @@ format_cmp_window(const void *a0, const void *b0)
switch (sc->field) { switch (sc->field) {
case FORMAT_LOOP_BY_INDEX: case FORMAT_LOOP_BY_INDEX:
result = wa->id - wb->id;
break; break;
case FORMAT_LOOP_BY_TIME: case FORMAT_LOOP_BY_TIME:
if (timercmp(&wa->activity_time, &wb->activity_time, >)) { if (timercmp(&wa->activity_time, &wb->activity_time, >)) {
@@ -4516,15 +4515,16 @@ format_cmp_window(const void *a0, const void *b0)
static char * static char *
format_loop_windows(struct format_expand_state *es, const char *fmt) format_loop_windows(struct format_expand_state *es, const char *fmt)
{ {
struct format_tree *ft = es->ft; struct format_loop_sort_criteria *sc = &format_loop_sort_criteria;
struct client *c = ft->client; struct format_tree *ft = es->ft;
struct cmdq_item *item = ft->item; struct client *c = ft->client;
struct format_tree *nft; struct cmdq_item *item = ft->item;
struct format_expand_state next; struct format_tree *nft;
char *all, *active, *use, *expanded, *value; struct format_expand_state next;
size_t valuelen; char *all, *active, *use, *expanded, *value;
struct winlink *wl; size_t valuelen;
struct window *w; struct winlink *wl;
struct window *w;
int i, n, last = 0; int i, n, last = 0;
static struct winlink **l = NULL; static struct winlink **l = NULL;
static int lsz = 0; static int lsz = 0;
@@ -4548,7 +4548,18 @@ format_loop_windows(struct format_expand_state *es, const char *fmt)
l[n++] = wl; l[n++] = wl;
} }
qsort(l, n, sizeof *l, format_cmp_window); if (sc->field != FORMAT_LOOP_BY_INDEX)
qsort(l, n, sizeof *l, format_cmp_window);
else {
/* Use order in the tree as index order. */
if (sc->reversed) {
for (i = 0; i < n / 2; i++) {
wl = l[i];
l[i] = l[n - 1 - i];
l[n - 1 - i] = wl;
}
}
}
value = xcalloc(1, 1); value = xcalloc(1, 1);
valuelen = 1; valuelen = 1;
@@ -4735,7 +4746,7 @@ format_loop_clients(struct format_expand_state *es, const char *fmt)
if (sc->field != FORMAT_LOOP_BY_INDEX) if (sc->field != FORMAT_LOOP_BY_INDEX)
qsort(l, n, sizeof *l, format_cmp_client); qsort(l, n, sizeof *l, format_cmp_client);
else { else {
/* Use order in the TAILQ as "index" order. */ /* Use order in the list as index order. */
if (sc->reversed) { if (sc->reversed) {
for (i = 0; i < n / 2; i++) { for (i = 0; i < n / 2; i++) {
c = l[i]; c = l[i];

8
tmux.h
View File

@@ -1563,13 +1563,15 @@ struct tty {
#define TTY_OPENED 0x20 #define TTY_OPENED 0x20
#define TTY_OSC52QUERY 0x40 #define TTY_OSC52QUERY 0x40
#define TTY_BLOCK 0x80 #define TTY_BLOCK 0x80
#define TTY_HAVEDA 0x100 /* Primary DA. */ #define TTY_HAVEDA 0x100
#define TTY_HAVEXDA 0x200 #define TTY_HAVEXDA 0x200
#define TTY_SYNCING 0x400 #define TTY_SYNCING 0x400
#define TTY_HAVEDA2 0x800 /* Secondary DA. */ #define TTY_HAVEDA2 0x800
#define TTY_WINSIZEQUERY 0x1000 #define TTY_WINSIZEQUERY 0x1000
#define TTY_HAVEFG 0x2000
#define TTY_HAVEBG 0x4000
#define TTY_ALL_REQUEST_FLAGS \ #define TTY_ALL_REQUEST_FLAGS \
(TTY_HAVEDA|TTY_HAVEDA2|TTY_HAVEXDA) (TTY_HAVEDA|TTY_HAVEDA2|TTY_HAVEXDA|TTY_HAVEFG|TTY_HAVEBG)
int flags; int flags;
struct tty_term *term; struct tty_term *term;

View File

@@ -938,7 +938,7 @@ partial_key:
if (delay == 0) if (delay == 0)
delay = 1; delay = 1;
if ((tty->flags & TTY_ALL_REQUEST_FLAGS) != TTY_ALL_REQUEST_FLAGS) { if ((tty->flags & TTY_ALL_REQUEST_FLAGS) != TTY_ALL_REQUEST_FLAGS) {
log_debug("%s: increasing delay for active DA query", c->name); log_debug("%s: increasing delay for active query", c->name);
if (delay < 500) if (delay < 500)
delay = 500; delay = 500;
} }
@@ -1031,7 +1031,7 @@ tty_keys_extended_key(struct tty *tty, const char *buf, size_t len,
cc_t bspace; cc_t bspace;
key_code nkey, onlykey; key_code nkey, onlykey;
struct utf8_data ud; struct utf8_data ud;
utf8_char uc; utf8_char uc;
*size = 0; *size = 0;
@@ -1682,12 +1682,14 @@ tty_keys_colours(struct tty *tty, const char *buf, size_t len, size_t *size,
else else
log_debug("fg is %s", colour_tostring(n)); log_debug("fg is %s", colour_tostring(n));
*fg = n; *fg = n;
tty->flags |= TTY_HAVEFG;
} else if (n != -1) { } else if (n != -1) {
if (c != NULL) if (c != NULL)
log_debug("%s bg is %s", c->name, colour_tostring(n)); log_debug("%s bg is %s", c->name, colour_tostring(n));
else else
log_debug("bg is %s", colour_tostring(n)); log_debug("bg is %s", colour_tostring(n));
*bg = n; *bg = n;
tty->flags |= TTY_HAVEBG;
} }
return (0); return (0);