From 2f436df7f1606aa07ca81b1a9b85df888ec10d20 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Deuc=D0=B5?= <shurd@sasktel.net> Date: Sun, 11 Feb 2024 01:14:49 -0500 Subject: [PATCH] Fix macro recusion protection for macros 32-63. Found by MSVC --- src/conio/cterm.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/conio/cterm.c b/src/conio/cterm.c index 7c52c68ec4..19edfafa64 100644 --- a/src/conio/cterm.c +++ b/src/conio/cterm.c @@ -3516,12 +3516,12 @@ static void do_ansi(struct cterminal *cterm, char *retbuf, size_t retsize, int * else if (strcmp(seq->ctrl_func, "*z") == 0) { if (seq->param_count > 0 && seq->param_int[0] <= 63) { if (cterm->macros[seq->param_int[0]]) { - if ((cterm->in_macro & (1<<seq->param_int[0])) == 0) { + if ((cterm->in_macro & (UINT64_C(1)<<seq->param_int[0])) == 0) { cterm->escbuf[0]=0; cterm->sequence=0; - cterm->in_macro |= (1<<seq->param_int[0]); + cterm->in_macro |= (UINT64_C(1)<<seq->param_int[0]); cterm_write(cterm, cterm->macros[seq->param_int[0]], cterm->macro_lens[seq->param_int[0]], retbuf + strlen(retbuf), retsize - strlen(retbuf), speed); - cterm->in_macro &= ~(1<<seq->param_int[0]); + cterm->in_macro &= ~(UINT64_C(1)<<seq->param_int[0]); } } } -- GitLab