From 2422b18a0f4d758f0660503b068dd19d92de4906 Mon Sep 17 00:00:00 2001 From: Simon Tatham Date: Sat, 7 Mar 2015 20:57:26 +0000 Subject: [PATCH] Don't output negative numbers in the ESC[13t report. A minus sign is illegal at that position in a control sequence, so if ESC[13t should report something like ESC[3;-123;234t then we won't accept it as input. Switch to printing the numbers as unsigned, so that negative window coordinates are output as their 32-bit two's complement; experimentation suggests that PuTTY does accept that on input. --- terminal.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/terminal.c b/terminal.c index 7570a63b..d4808e7f 100644 --- a/terminal.c +++ b/terminal.c @@ -3995,7 +3995,9 @@ static void term_out(Terminal *term) case 13: if (term->ldisc) { get_window_pos(term->frontend, &x, &y); - len = sprintf(buf, "\033[3;%d;%dt", x, y); + len = sprintf(buf, "\033[3;%u;%ut", + (unsigned)x, + (unsigned)y); ldisc_send(term->ldisc, buf, len, 0); } break;