From cb9d1e181dbdfbe20b7d7a548a4c6860e378d364 Mon Sep 17 00:00:00 2001 From: deuce <> Date: Sat, 25 Apr 2020 08:21:30 +0000 Subject: [PATCH] Fix macro space query. --- src/conio/cterm.c | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/src/conio/cterm.c b/src/conio/cterm.c index 44a477feac..2755d50315 100644 --- a/src/conio/cterm.c +++ b/src/conio/cterm.c @@ -2383,6 +2383,18 @@ static void do_ansi(struct cterminal *cterm, char *retbuf, size_t retsize, int * sprintf(tmp, "\x1b[=3;%u;%un", vparams[vmode].charheight, vparams[vmode].charwidth); break; } + } + if(*tmp && strlen(retbuf) + strlen(tmp) < retsize) + strcat(retbuf, tmp); + } + else if (seq->param_str[0] == '?' && parse_parameters(seq)) { + if(retbuf == NULL) + break; + tmp[0] = 0; + if (seq->param_count > 1) + break; + seq_default(seq, 0, 1); + switch(seq->param_int[0]) { case 62: /* Query macro space available */ { // Just fake it as int16_max @@ -3525,9 +3537,10 @@ static void do_ansi(struct cterminal *cterm, char *retbuf, size_t retsize, int * break; case 255: if (retbuf != NULL) { - sprintf(tmp, "\x1b[%d;%dR", CURR_MAXY,CURR_MAXX); - if (strlen(retbuf) + strlen(tmp) < retsize) + sprintf(tmp, "\x1b[%d;%dR", CURR_MAXY, CURR_MAXX); + if (strlen(retbuf) + strlen(tmp) < retsize) { strcat(retbuf, tmp); + } } break; } -- GitLab