rewrite csidump(). - st - simple terminal HTML git clone https://git.parazyd.org/st DIR Log DIR Files DIR Refs DIR README DIR LICENSE --- DIR commit cb2e0e9c31a510cd6cdbbd3b0da231157a975d95 DIR parent 53ac69e90d95e52dedf99129e39a993d45c812ea HTML Author: Aurélien Aptel <aurelien.aptel@gmail.com> Date: Thu, 16 Feb 2012 00:58:16 +0100 rewrite csidump(). Diffstat: M st.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) --- DIR diff --git a/st.c b/st.c @@ -1387,8 +1387,17 @@ csihandle(void) { void csidump(void) { - fwrite("\033[", 1, 2, stdout); - fwrite(escseq.buf, 1, escseq.len, stdout); + int i; + fwrite("ESC[", 1, 4, stdout); + for(i = 0; i < escseq.len; i++) { + uint c = escseq.buf[i] & 0xff; + if(isprint(c)) putchar(c); + else if(c == '\n') printf("(\\n)"); + else if(c == '\r') printf("(\\r)"); + else if(c == 0x1b) printf("(\\e)"); + else printf("(%02x)", c); + } + putchar('\n'); } void