]> asedeno.scripts.mit.edu Git - PuTTY.git/commitdiff
Don't output negative numbers in the ESC[13t report.
authorSimon Tatham <anakin@pobox.com>
Sat, 7 Mar 2015 20:57:26 +0000 (20:57 +0000)
committerSimon Tatham <anakin@pobox.com>
Sat, 7 Mar 2015 20:57:26 +0000 (20:57 +0000)
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

index 7570a63b16743fd54b5b8f17cda4c0466ce6c10b..d4808e7fbe652ea7f6008a0dde8e5ade3f1c307c 100644 (file)
@@ -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;