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