From 5bcbae01e8671e89643ac62da6c89c32607a9b68 Mon Sep 17 00:00:00 2001 From: jc_gargma Date: Sun, 25 Feb 2024 20:42:32 -0800 Subject: Updated to 3.4 --- 0002-ncurses.patch | 759 ----------------------------------------------------- 1 file changed, 759 deletions(-) delete mode 100644 0002-ncurses.patch (limited to '0002-ncurses.patch') diff --git a/0002-ncurses.patch b/0002-ncurses.patch deleted file mode 100644 index 9eb1014..0000000 --- a/0002-ncurses.patch +++ /dev/null @@ -1,759 +0,0 @@ -From 33b5788ef7534cf9b3492dda5fd15056042f3e1b Mon Sep 17 00:00:00 2001 -From: nicm -Date: Tue, 25 Apr 2023 09:31:50 +0000 -Subject: [PATCH 1/3] Tidy tparm wrapper functions to have more obvious names - and check tparm return value. - -(cherry picked from commit 8f34504736cf3547992c4ba948c1e65f3813715c) ---- - tmux.h | 26 ++++++------ - tty-term.c | 47 ++++++++++++++++----- - tty.c | 118 ++++++++++++++++++++++++++--------------------------- - 3 files changed, 108 insertions(+), 83 deletions(-) - -diff --git a/tmux.h b/tmux.h -index 53084b8b..5a90352e 100644 ---- a/tmux.h -+++ b/tmux.h -@@ -2250,12 +2250,12 @@ void tty_margin_off(struct tty *); - void tty_cursor(struct tty *, u_int, u_int); - void tty_clipboard_query(struct tty *); - void tty_putcode(struct tty *, enum tty_code_code); --void tty_putcode1(struct tty *, enum tty_code_code, int); --void tty_putcode2(struct tty *, enum tty_code_code, int, int); --void tty_putcode3(struct tty *, enum tty_code_code, int, int, int); --void tty_putcode_ptr1(struct tty *, enum tty_code_code, const void *); --void tty_putcode_ptr2(struct tty *, enum tty_code_code, const void *, -- const void *); -+void tty_putcode_i(struct tty *, enum tty_code_code, int); -+void tty_putcode_ii(struct tty *, enum tty_code_code, int, int); -+void tty_putcode_iii(struct tty *, enum tty_code_code, int, int, int); -+void tty_putcode_s(struct tty *, enum tty_code_code, const char *); -+void tty_putcode_ss(struct tty *, enum tty_code_code, const char *, -+ const char *); - void tty_puts(struct tty *, const char *); - void tty_putc(struct tty *, u_char); - void tty_putn(struct tty *, const void *, size_t, u_int); -@@ -2318,15 +2318,15 @@ int tty_term_read_list(const char *, int, char ***, u_int *, - void tty_term_free_list(char **, u_int); - int tty_term_has(struct tty_term *, enum tty_code_code); - const char *tty_term_string(struct tty_term *, enum tty_code_code); --const char *tty_term_string1(struct tty_term *, enum tty_code_code, int); --const char *tty_term_string2(struct tty_term *, enum tty_code_code, int, -+const char *tty_term_string_i(struct tty_term *, enum tty_code_code, int); -+const char *tty_term_string_ii(struct tty_term *, enum tty_code_code, int, - int); --const char *tty_term_string3(struct tty_term *, enum tty_code_code, int, -+const char *tty_term_string_iii(struct tty_term *, enum tty_code_code, int, - int, int); --const char *tty_term_ptr1(struct tty_term *, enum tty_code_code, -- const void *); --const char *tty_term_ptr2(struct tty_term *, enum tty_code_code, -- const void *, const void *); -+const char *tty_term_string_s(struct tty_term *, enum tty_code_code, -+ const char *); -+const char *tty_term_string_ss(struct tty_term *, enum tty_code_code, -+ const char *, const char *); - int tty_term_number(struct tty_term *, enum tty_code_code); - int tty_term_flag(struct tty_term *, enum tty_code_code); - const char *tty_term_describe(struct tty_term *, enum tty_code_code); -diff --git a/tty-term.c b/tty-term.c -index fdf0c4fa..32dd849a 100644 ---- a/tty-term.c -+++ b/tty-term.c -@@ -760,35 +760,60 @@ tty_term_string(struct tty_term *term, enum tty_code_code code) - } - - const char * --tty_term_string1(struct tty_term *term, enum tty_code_code code, int a) -+tty_term_string_i(struct tty_term *term, enum tty_code_code code, int a) - { -- return (tparm((char *) tty_term_string(term, code), a, 0, 0, 0, 0, 0, 0, 0, 0)); -+ const char *x = tty_term_string(term, code), *s; -+ -+ s = tparm((char *)x, a); -+ if (s == NULL) -+ fatalx("could not expand %s", tty_term_codes[code].name); -+ return (s); - } - - const char * --tty_term_string2(struct tty_term *term, enum tty_code_code code, int a, int b) -+tty_term_string_ii(struct tty_term *term, enum tty_code_code code, int a, int b) - { -- return (tparm((char *) tty_term_string(term, code), a, b, 0, 0, 0, 0, 0, 0, 0)); -+ const char *x = tty_term_string(term, code), *s; -+ -+ s = tparm((char *)x, a, b); -+ if (s == NULL) -+ fatalx("could not expand %s", tty_term_codes[code].name); -+ return (s); - } - - const char * --tty_term_string3(struct tty_term *term, enum tty_code_code code, int a, int b, -+tty_term_string_iii(struct tty_term *term, enum tty_code_code code, int a, int b, - int c) - { -- return (tparm((char *) tty_term_string(term, code), a, b, c, 0, 0, 0, 0, 0, 0)); -+ const char *x = tty_term_string(term, code), *s; -+ -+ s = tparm((char *)x, a, b, c); -+ if (s == NULL) -+ fatalx("could not expand %s", tty_term_codes[code].name); -+ return (s); - } - - const char * --tty_term_ptr1(struct tty_term *term, enum tty_code_code code, const void *a) -+tty_term_string_s(struct tty_term *term, enum tty_code_code code, const char *a) - { -- return (tparm((char *) tty_term_string(term, code), (long)a, 0, 0, 0, 0, 0, 0, 0, 0)); -+ const char *x = tty_term_string(term, code), *s; -+ -+ s = tparm((char *)x, (long)a); -+ if (s == NULL) -+ fatalx("could not expand %s", tty_term_codes[code].name); -+ return (s); - } - - const char * --tty_term_ptr2(struct tty_term *term, enum tty_code_code code, const void *a, -- const void *b) -+tty_term_string_ss(struct tty_term *term, enum tty_code_code code, const char *a, -+ const char *b) - { -- return (tparm((char *) tty_term_string(term, code), (long)a, (long)b, 0, 0, 0, 0, 0, 0, 0)); -+ const char *x = tty_term_string(term, code), *s; -+ -+ s = tparm((char *)x, (long)a, (long)b); -+ if (s == NULL) -+ fatalx("could not expand %s", tty_term_codes[code].name); -+ return (s); - } - - int -diff --git a/tty.c b/tty.c -index 49cf9795..a4d744d0 100644 ---- a/tty.c -+++ b/tty.c -@@ -399,7 +399,7 @@ tty_stop_tty(struct tty *tty) - if (tcsetattr(c->fd, TCSANOW, &tty->tio) == -1) - return; - -- tty_raw(tty, tty_term_string2(tty->term, TTYC_CSR, 0, ws.ws_row - 1)); -+ tty_raw(tty, tty_term_string_ii(tty->term, TTYC_CSR, 0, ws.ws_row - 1)); - if (tty_acs_needed(tty)) - tty_raw(tty, tty_term_string(tty->term, TTYC_RMACS)); - tty_raw(tty, tty_term_string(tty->term, TTYC_SGR0)); -@@ -409,7 +409,7 @@ tty_stop_tty(struct tty *tty) - if (tty_term_has(tty->term, TTYC_SE)) - tty_raw(tty, tty_term_string(tty->term, TTYC_SE)); - else if (tty_term_has(tty->term, TTYC_SS)) -- tty_raw(tty, tty_term_string1(tty->term, TTYC_SS, 0)); -+ tty_raw(tty, tty_term_string_i(tty->term, TTYC_SS, 0)); - } - if (tty->mode & MODE_BRACKETPASTE) - tty_raw(tty, tty_term_string(tty->term, TTYC_DSBP)); -@@ -506,42 +506,42 @@ tty_putcode(struct tty *tty, enum tty_code_code code) - } - - void --tty_putcode1(struct tty *tty, enum tty_code_code code, int a) -+tty_putcode_i(struct tty *tty, enum tty_code_code code, int a) - { - if (a < 0) - return; -- tty_puts(tty, tty_term_string1(tty->term, code, a)); -+ tty_puts(tty, tty_term_string_i(tty->term, code, a)); - } - - void --tty_putcode2(struct tty *tty, enum tty_code_code code, int a, int b) -+tty_putcode_ii(struct tty *tty, enum tty_code_code code, int a, int b) - { - if (a < 0 || b < 0) - return; -- tty_puts(tty, tty_term_string2(tty->term, code, a, b)); -+ tty_puts(tty, tty_term_string_ii(tty->term, code, a, b)); - } - - void --tty_putcode3(struct tty *tty, enum tty_code_code code, int a, int b, int c) -+tty_putcode_iii(struct tty *tty, enum tty_code_code code, int a, int b, int c) - { - if (a < 0 || b < 0 || c < 0) - return; -- tty_puts(tty, tty_term_string3(tty->term, code, a, b, c)); -+ tty_puts(tty, tty_term_string_iii(tty->term, code, a, b, c)); - } - - void --tty_putcode_ptr1(struct tty *tty, enum tty_code_code code, const void *a) -+tty_putcode_s(struct tty *tty, enum tty_code_code code, const char *a) - { - if (a != NULL) -- tty_puts(tty, tty_term_ptr1(tty->term, code, a)); -+ tty_puts(tty, tty_term_string_s(tty->term, code, a)); - } - - void --tty_putcode_ptr2(struct tty *tty, enum tty_code_code code, const void *a, -- const void *b) -+tty_putcode_ss(struct tty *tty, enum tty_code_code code, const char *a, -+ const char *b) - { - if (a != NULL && b != NULL) -- tty_puts(tty, tty_term_ptr2(tty->term, code, a, b)); -+ tty_puts(tty, tty_term_string_ss(tty->term, code, a, b)); - } - - static void -@@ -603,7 +603,7 @@ tty_putc(struct tty *tty, u_char ch) - * it works on sensible terminals as well. - */ - if (tty->term->flags & TERM_NOAM) -- tty_putcode2(tty, TTYC_CUP, tty->cy, tty->cx); -+ tty_putcode_ii(tty, TTYC_CUP, tty->cy, tty->cx); - } else - tty->cx++; - } -@@ -682,7 +682,7 @@ tty_force_cursor_colour(struct tty *tty, int c) - else { - colour_split_rgb(c, &r, &g, &b); - xsnprintf(s, sizeof s, "rgb:%02hhx/%02hhx/%02hhx", r, g, b); -- tty_putcode_ptr1(tty, TTYC_CS, s); -+ tty_putcode_s(tty, TTYC_CS, s); - } - tty->ccolour = c; - } -@@ -743,7 +743,7 @@ tty_update_cursor(struct tty *tty, int mode, struct screen *s) - if (tty_term_has(tty->term, TTYC_SE)) - tty_putcode(tty, TTYC_SE); - else -- tty_putcode1(tty, TTYC_SS, 0); -+ tty_putcode_i(tty, TTYC_SS, 0); - } - if (cmode & (MODE_CURSOR_BLINKING|MODE_CURSOR_VERY_VISIBLE)) - tty_putcode(tty, TTYC_CVVIS); -@@ -751,27 +751,27 @@ tty_update_cursor(struct tty *tty, int mode, struct screen *s) - case SCREEN_CURSOR_BLOCK: - if (tty_term_has(tty->term, TTYC_SS)) { - if (cmode & MODE_CURSOR_BLINKING) -- tty_putcode1(tty, TTYC_SS, 1); -+ tty_putcode_i(tty, TTYC_SS, 1); - else -- tty_putcode1(tty, TTYC_SS, 2); -+ tty_putcode_i(tty, TTYC_SS, 2); - } else if (cmode & MODE_CURSOR_BLINKING) - tty_putcode(tty, TTYC_CVVIS); - break; - case SCREEN_CURSOR_UNDERLINE: - if (tty_term_has(tty->term, TTYC_SS)) { - if (cmode & MODE_CURSOR_BLINKING) -- tty_putcode1(tty, TTYC_SS, 3); -+ tty_putcode_i(tty, TTYC_SS, 3); - else -- tty_putcode1(tty, TTYC_SS, 4); -+ tty_putcode_i(tty, TTYC_SS, 4); - } else if (cmode & MODE_CURSOR_BLINKING) - tty_putcode(tty, TTYC_CVVIS); - break; - case SCREEN_CURSOR_BAR: - if (tty_term_has(tty->term, TTYC_SS)) { - if (cmode & MODE_CURSOR_BLINKING) -- tty_putcode1(tty, TTYC_SS, 5); -+ tty_putcode_i(tty, TTYC_SS, 5); - else -- tty_putcode1(tty, TTYC_SS, 6); -+ tty_putcode_i(tty, TTYC_SS, 6); - } else if (cmode & MODE_CURSOR_BLINKING) - tty_putcode(tty, TTYC_CVVIS); - break; -@@ -833,7 +833,7 @@ tty_emulate_repeat(struct tty *tty, enum tty_code_code code, - enum tty_code_code code1, u_int n) - { - if (tty_term_has(tty->term, code)) -- tty_putcode1(tty, code, n); -+ tty_putcode_i(tty, code, n); - else { - while (n-- > 0) - tty_putcode(tty, code1); -@@ -1122,7 +1122,7 @@ tty_clear_line(struct tty *tty, const struct grid_cell *defaults, u_int py, - /* Section of line. Use ECH if possible. */ - if (tty_term_has(tty->term, TTYC_ECH)) { - tty_cursor(tty, px, py); -- tty_putcode1(tty, TTYC_ECH, nx); -+ tty_putcode_i(tty, TTYC_ECH, nx); - return; - } - } -@@ -1263,7 +1263,7 @@ tty_clear_area(struct tty *tty, const struct grid_cell *defaults, u_int py, - tty_term_has(tty->term, TTYC_INDN)) { - tty_region(tty, py, py + ny - 1); - tty_margin_off(tty); -- tty_putcode1(tty, TTYC_INDN, ny); -+ tty_putcode_i(tty, TTYC_INDN, ny); - return; - } - -@@ -1278,7 +1278,7 @@ tty_clear_area(struct tty *tty, const struct grid_cell *defaults, u_int py, - tty_term_has(tty->term, TTYC_INDN)) { - tty_region(tty, py, py + ny - 1); - tty_margin(tty, px, px + nx - 1); -- tty_putcode1(tty, TTYC_INDN, ny); -+ tty_putcode_i(tty, TTYC_INDN, ny); - return; - } - } -@@ -1579,7 +1579,7 @@ tty_sync_start(struct tty *tty) - - if (tty_term_has(tty->term, TTYC_SYNC)) { - log_debug("%s sync start", tty->client->name); -- tty_putcode1(tty, TTYC_SYNC, 1); -+ tty_putcode_i(tty, TTYC_SYNC, 1); - } - } - -@@ -1594,7 +1594,7 @@ tty_sync_end(struct tty *tty) - - if (tty_term_has(tty->term, TTYC_SYNC)) { - log_debug("%s sync end", tty->client->name); -- tty_putcode1(tty, TTYC_SYNC, 2); -+ tty_putcode_i(tty, TTYC_SYNC, 2); - } - } - -@@ -1793,7 +1793,7 @@ tty_cmd_reverseindex(struct tty *tty, const struct tty_ctx *ctx) - if (tty_term_has(tty->term, TTYC_RI)) - tty_putcode(tty, TTYC_RI); - else -- tty_putcode1(tty, TTYC_RIN, 1); -+ tty_putcode_i(tty, TTYC_RIN, 1); - } - - void -@@ -1872,7 +1872,7 @@ tty_cmd_scrollup(struct tty *tty, const struct tty_ctx *ctx) - tty_cursor(tty, 0, 0); - else - tty_cursor(tty, 0, tty->cy); -- tty_putcode1(tty, TTYC_INDN, ctx->num); -+ tty_putcode_i(tty, TTYC_INDN, ctx->num); - } - } - -@@ -1902,7 +1902,7 @@ tty_cmd_scrolldown(struct tty *tty, const struct tty_ctx *ctx) - tty_cursor_pane(tty, ctx, ctx->ocx, ctx->orupper); - - if (tty_term_has(tty->term, TTYC_RIN)) -- tty_putcode1(tty, TTYC_RIN, ctx->num); -+ tty_putcode_i(tty, TTYC_RIN, ctx->num); - else { - for (i = 0; i < ctx->num; i++) - tty_putcode(tty, TTYC_RI); -@@ -2101,7 +2101,7 @@ tty_set_selection(struct tty *tty, const char *buf, size_t len) - - b64_ntop(buf, len, encoded, size); - tty->flags |= TTY_NOBLOCK; -- tty_putcode_ptr2(tty, TTYC_MS, "", encoded); -+ tty_putcode_ss(tty, TTYC_MS, "", encoded); - - free(encoded); - } -@@ -2246,7 +2246,7 @@ tty_region(struct tty *tty, u_int rupper, u_int rlower) - tty_cursor(tty, 0, tty->cy); - } - -- tty_putcode2(tty, TTYC_CSR, tty->rupper, tty->rlower); -+ tty_putcode_ii(tty, TTYC_CSR, tty->rupper, tty->rlower); - tty->cx = tty->cy = UINT_MAX; - } - -@@ -2274,7 +2274,7 @@ tty_margin(struct tty *tty, u_int rleft, u_int rright) - if (tty->rleft == rleft && tty->rright == rright) - return; - -- tty_putcode2(tty, TTYC_CSR, tty->rupper, tty->rlower); -+ tty_putcode_ii(tty, TTYC_CSR, tty->rupper, tty->rlower); - - tty->rleft = rleft; - tty->rright = rright; -@@ -2282,7 +2282,7 @@ tty_margin(struct tty *tty, u_int rleft, u_int rright) - if (rleft == 0 && rright == tty->sx - 1) - tty_putcode(tty, TTYC_CLMG); - else -- tty_putcode2(tty, TTYC_CMG, rleft, rright); -+ tty_putcode_ii(tty, TTYC_CMG, rleft, rright); - tty->cx = tty->cy = UINT_MAX; - } - -@@ -2392,7 +2392,7 @@ tty_cursor(struct tty *tty, u_int cx, u_int cy) - * the cursor with CUB/CUF. - */ - if ((u_int) abs(change) > cx && tty_term_has(term, TTYC_HPA)) { -- tty_putcode1(tty, TTYC_HPA, cx); -+ tty_putcode_i(tty, TTYC_HPA, cx); - goto out; - } else if (change > 0 && - tty_term_has(term, TTYC_CUB) && -@@ -2402,12 +2402,12 @@ tty_cursor(struct tty *tty, u_int cx, u_int cy) - tty_putcode(tty, TTYC_CUB1); - goto out; - } -- tty_putcode1(tty, TTYC_CUB, change); -+ tty_putcode_i(tty, TTYC_CUB, change); - goto out; - } else if (change < 0 && - tty_term_has(term, TTYC_CUF) && - !tty_use_margin(tty)) { -- tty_putcode1(tty, TTYC_CUF, -change); -+ tty_putcode_i(tty, TTYC_CUF, -change); - goto out; - } - } else if (cx == thisx) { -@@ -2440,21 +2440,21 @@ tty_cursor(struct tty *tty, u_int cx, u_int cy) - (change < 0 && cy - change > tty->rlower) || - (change > 0 && cy - change < tty->rupper)) { - if (tty_term_has(term, TTYC_VPA)) { -- tty_putcode1(tty, TTYC_VPA, cy); -+ tty_putcode_i(tty, TTYC_VPA, cy); - goto out; - } - } else if (change > 0 && tty_term_has(term, TTYC_CUU)) { -- tty_putcode1(tty, TTYC_CUU, change); -+ tty_putcode_i(tty, TTYC_CUU, change); - goto out; - } else if (change < 0 && tty_term_has(term, TTYC_CUD)) { -- tty_putcode1(tty, TTYC_CUD, -change); -+ tty_putcode_i(tty, TTYC_CUD, -change); - goto out; - } - } - - absolute: - /* Absolute movement. */ -- tty_putcode2(tty, TTYC_CUP, cy, cx); -+ tty_putcode_ii(tty, TTYC_CUP, cy, cx); - - out: - tty->cx = cx; -@@ -2533,13 +2533,13 @@ tty_attributes(struct tty *tty, const struct grid_cell *gc, - !tty_term_has(tty->term, TTYC_SMULX)) - tty_putcode(tty, TTYC_SMUL); - else if (changed & GRID_ATTR_UNDERSCORE_2) -- tty_putcode1(tty, TTYC_SMULX, 2); -+ tty_putcode_i(tty, TTYC_SMULX, 2); - else if (changed & GRID_ATTR_UNDERSCORE_3) -- tty_putcode1(tty, TTYC_SMULX, 3); -+ tty_putcode_i(tty, TTYC_SMULX, 3); - else if (changed & GRID_ATTR_UNDERSCORE_4) -- tty_putcode1(tty, TTYC_SMULX, 4); -+ tty_putcode_i(tty, TTYC_SMULX, 4); - else if (changed & GRID_ATTR_UNDERSCORE_5) -- tty_putcode1(tty, TTYC_SMULX, 5); -+ tty_putcode_i(tty, TTYC_SMULX, 5); - } - if (changed & GRID_ATTR_BLINK) - tty_putcode(tty, TTYC_BLINK); -@@ -2593,14 +2593,14 @@ tty_colours(struct tty *tty, const struct grid_cell *gc) - if (have_ax) - tty_puts(tty, "\033[39m"); - else if (tc->fg != 7) -- tty_putcode1(tty, TTYC_SETAF, 7); -+ tty_putcode_i(tty, TTYC_SETAF, 7); - tc->fg = gc->fg; - } - if (COLOUR_DEFAULT(gc->bg) && !COLOUR_DEFAULT(tc->bg)) { - if (have_ax) - tty_puts(tty, "\033[49m"); - else if (tc->bg != 0) -- tty_putcode1(tty, TTYC_SETAB, 0); -+ tty_putcode_i(tty, TTYC_SETAB, 0); - tc->bg = gc->bg; - } - } -@@ -2768,12 +2768,12 @@ tty_colours_fg(struct tty *tty, const struct grid_cell *gc) - xsnprintf(s, sizeof s, "\033[%dm", gc->fg); - tty_puts(tty, s); - } else -- tty_putcode1(tty, TTYC_SETAF, gc->fg - 90 + 8); -+ tty_putcode_i(tty, TTYC_SETAF, gc->fg - 90 + 8); - goto save; - } - - /* Otherwise set the foreground colour. */ -- tty_putcode1(tty, TTYC_SETAF, gc->fg); -+ tty_putcode_i(tty, TTYC_SETAF, gc->fg); - - save: - /* Save the new values in the terminal current cell. */ -@@ -2800,12 +2800,12 @@ tty_colours_bg(struct tty *tty, const struct grid_cell *gc) - xsnprintf(s, sizeof s, "\033[%dm", gc->bg + 10); - tty_puts(tty, s); - } else -- tty_putcode1(tty, TTYC_SETAB, gc->bg - 90 + 8); -+ tty_putcode_i(tty, TTYC_SETAB, gc->bg - 90 + 8); - goto save; - } - - /* Otherwise set the background colour. */ -- tty_putcode1(tty, TTYC_SETAB, gc->bg); -+ tty_putcode_i(tty, TTYC_SETAB, gc->bg); - - save: - /* Save the new values in the terminal current cell. */ -@@ -2841,10 +2841,10 @@ tty_colours_us(struct tty *tty, const struct grid_cell *gc) - * non-RGB version may be wrong. - */ - if (tty_term_has(tty->term, TTYC_SETULC)) -- tty_putcode1(tty, TTYC_SETULC, c); -+ tty_putcode_i(tty, TTYC_SETULC, c); - else if (tty_term_has(tty->term, TTYC_SETAL) && - tty_term_has(tty->term, TTYC_RGB)) -- tty_putcode1(tty, TTYC_SETAL, c); -+ tty_putcode_i(tty, TTYC_SETAL, c); - - save: - /* Save the new values in the terminal current cell. */ -@@ -2858,18 +2858,18 @@ tty_try_colour(struct tty *tty, int colour, const char *type) - - if (colour & COLOUR_FLAG_256) { - if (*type == '3' && tty_term_has(tty->term, TTYC_SETAF)) -- tty_putcode1(tty, TTYC_SETAF, colour & 0xff); -+ tty_putcode_i(tty, TTYC_SETAF, colour & 0xff); - else if (tty_term_has(tty->term, TTYC_SETAB)) -- tty_putcode1(tty, TTYC_SETAB, colour & 0xff); -+ tty_putcode_i(tty, TTYC_SETAB, colour & 0xff); - return (0); - } - - if (colour & COLOUR_FLAG_RGB) { - colour_split_rgb(colour & 0xffffff, &r, &g, &b); - if (*type == '3' && tty_term_has(tty->term, TTYC_SETRGBF)) -- tty_putcode3(tty, TTYC_SETRGBF, r, g, b); -+ tty_putcode_iii(tty, TTYC_SETRGBF, r, g, b); - else if (tty_term_has(tty->term, TTYC_SETRGBB)) -- tty_putcode3(tty, TTYC_SETRGBB, r, g, b); -+ tty_putcode_iii(tty, TTYC_SETRGBB, r, g, b); - return (0); - } - -@@ -2953,7 +2953,7 @@ tty_clipboard_query(struct tty *tty) - - if ((~tty->flags & TTY_STARTED) || (tty->flags & TTY_OSC52QUERY)) - return; -- tty_putcode_ptr2(tty, TTYC_MS, "", "?"); -+ tty_putcode_ss(tty, TTYC_MS, "", "?"); - - tty->flags |= TTY_OSC52QUERY; - evtimer_set(&tty->clipboard_timer, tty_clipboard_query_callback, tty); --- -2.40.1 - - -From de51c8eb81b9db49fa34a8ea7886c9fe4164f46d Mon Sep 17 00:00:00 2001 -From: Nicholas Marriott -Date: Fri, 28 Apr 2023 06:44:40 +0100 -Subject: [PATCH 2/3] Use ncurses' new tparm_s function (added in 6.4-20230424) - instead of tparm so it does not object to string arguments in capabilities it - doesn't already know. - -(cherry picked from commit 39d41d0810d4e8ae6ce8d27776dfbb96722d9319) ---- - configure.ac | 4 ++++ - tty-term.c | 48 +++++++++++++++++++++++++++++++++++++++--------- - 2 files changed, 43 insertions(+), 9 deletions(-) - -diff --git a/configure.ac b/configure.ac -index 2b8b3b11..3c3c1873 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -344,6 +344,10 @@ else - AC_MSG_ERROR("curses not found") - fi - fi -+AC_CHECK_FUNCS([ \ -+ tiparm \ -+ tiparm_s \ -+]) - - # Look for utempter. - AC_ARG_ENABLE( -diff --git a/tty-term.c b/tty-term.c -index 32dd849a..18b17420 100644 ---- a/tty-term.c -+++ b/tty-term.c -@@ -764,7 +764,13 @@ tty_term_string_i(struct tty_term *term, enum tty_code_code code, int a) - { - const char *x = tty_term_string(term, code), *s; - -- s = tparm((char *)x, a); -+#if defined(HAVE_TIPARM_S) -+ s = tiparm_s(1, 0, x, a); -+#elif defined(HAVE_TIPARM) -+ s = tiparm(x, a); -+#else -+ s = tparm((char *)x, a, 0, 0, 0, 0, 0, 0, 0, 0); -+#endif - if (s == NULL) - fatalx("could not expand %s", tty_term_codes[code].name); - return (s); -@@ -775,19 +781,31 @@ tty_term_string_ii(struct tty_term *term, enum tty_code_code code, int a, int b) - { - const char *x = tty_term_string(term, code), *s; - -- s = tparm((char *)x, a, b); -+#if defined(HAVE_TIPARM_S) -+ s = tiparm_s(2, 0, x, a, b); -+#elif defined(HAVE_TIPARM) -+ s = tiparm(x, a, b); -+#else -+ s = tparm((char *)x, a, b, 0, 0, 0, 0, 0, 0, 0); -+#endif - if (s == NULL) - fatalx("could not expand %s", tty_term_codes[code].name); - return (s); - } - - const char * --tty_term_string_iii(struct tty_term *term, enum tty_code_code code, int a, int b, -- int c) -+tty_term_string_iii(struct tty_term *term, enum tty_code_code code, int a, -+ int b, int c) - { - const char *x = tty_term_string(term, code), *s; - -- s = tparm((char *)x, a, b, c); -+#if defined(HAVE_TIPARM_S) -+ s = tiparm_s(3, 0, x, a, b, c); -+#elif defined(HAVE_TIPARM) -+ s = tiparm(x, a, b, c); -+#else -+ s = tparm((char *)x, a, b, c, 0, 0, 0, 0, 0, 0); -+#endif - if (s == NULL) - fatalx("could not expand %s", tty_term_codes[code].name); - return (s); -@@ -798,19 +816,31 @@ tty_term_string_s(struct tty_term *term, enum tty_code_code code, const char *a) - { - const char *x = tty_term_string(term, code), *s; - -- s = tparm((char *)x, (long)a); -+#if defined(HAVE_TIPARM_S) -+ s = tiparm_s(1, 1, x, a); -+#elif defined(HAVE_TIPARM) -+ s = tiparm(x, a); -+#else -+ s = tparm((char *)x, (long)a, 0, 0, 0, 0, 0, 0, 0, 0); -+#endif - if (s == NULL) - fatalx("could not expand %s", tty_term_codes[code].name); - return (s); - } - - const char * --tty_term_string_ss(struct tty_term *term, enum tty_code_code code, const char *a, -- const char *b) -+tty_term_string_ss(struct tty_term *term, enum tty_code_code code, -+ const char *a, const char *b) - { - const char *x = tty_term_string(term, code), *s; - -- s = tparm((char *)x, (long)a, (long)b); -+#if defined(HAVE_TIPARM_S) -+ s = tiparm_s(2, 3, x, a, b); -+#elif defined(HAVE_TIPARM) -+ s = tiparm(x, a, b); -+#else -+ s = tparm((char *)x, (long)a, b, 0, 0, 0, 0, 0, 0, 0); -+#endif - if (s == NULL) - fatalx("could not expand %s", tty_term_codes[code].name); - return (s); --- -2.40.1 - - -From 732135ed357566d65749fde1967f5639026d9418 Mon Sep 17 00:00:00 2001 -From: nicm -Date: Fri, 28 Apr 2023 05:59:35 +0000 -Subject: [PATCH 3/3] Do not fatal if tparm fails, instead just log it (not - working sequences are better than exiting). - -(cherry picked from commit bf636d9575806134ca7efd917ee0d54e9330ae86) ---- - tty-term.c | 30 ++++++++++++++++++++---------- - 1 file changed, 20 insertions(+), 10 deletions(-) - -diff --git a/tty-term.c b/tty-term.c -index 18b17420..e489f610 100644 ---- a/tty-term.c -+++ b/tty-term.c -@@ -771,8 +771,10 @@ tty_term_string_i(struct tty_term *term, enum tty_code_code code, int a) - #else - s = tparm((char *)x, a, 0, 0, 0, 0, 0, 0, 0, 0); - #endif -- if (s == NULL) -- fatalx("could not expand %s", tty_term_codes[code].name); -+ if (s == NULL) { -+ log_debug("could not expand %s", tty_term_codes[code].name); -+ return (""); -+ } - return (s); - } - -@@ -788,8 +790,10 @@ tty_term_string_ii(struct tty_term *term, enum tty_code_code code, int a, int b) - #else - s = tparm((char *)x, a, b, 0, 0, 0, 0, 0, 0, 0); - #endif -- if (s == NULL) -- fatalx("could not expand %s", tty_term_codes[code].name); -+ if (s == NULL) { -+ log_debug("could not expand %s", tty_term_codes[code].name); -+ return (""); -+ } - return (s); - } - -@@ -806,8 +810,10 @@ tty_term_string_iii(struct tty_term *term, enum tty_code_code code, int a, - #else - s = tparm((char *)x, a, b, c, 0, 0, 0, 0, 0, 0); - #endif -- if (s == NULL) -- fatalx("could not expand %s", tty_term_codes[code].name); -+ if (s == NULL) { -+ log_debug("could not expand %s", tty_term_codes[code].name); -+ return (""); -+ } - return (s); - } - -@@ -823,8 +829,10 @@ tty_term_string_s(struct tty_term *term, enum tty_code_code code, const char *a) - #else - s = tparm((char *)x, (long)a, 0, 0, 0, 0, 0, 0, 0, 0); - #endif -- if (s == NULL) -- fatalx("could not expand %s", tty_term_codes[code].name); -+ if (s == NULL) { -+ log_debug("could not expand %s", tty_term_codes[code].name); -+ return (""); -+ } - return (s); - } - -@@ -841,8 +849,10 @@ tty_term_string_ss(struct tty_term *term, enum tty_code_code code, - #else - s = tparm((char *)x, (long)a, b, 0, 0, 0, 0, 0, 0, 0); - #endif -- if (s == NULL) -- fatalx("could not expand %s", tty_term_codes[code].name); -+ if (s == NULL) { -+ log_debug("could not expand %s", tty_term_codes[code].name); -+ return (""); -+ } - return (s); - } - --- -2.40.1 - -- cgit v1.2.1