st

fork of suckless's simple terminal
Index Commits Files Refs README LICENSE
commit cb2e0e9c31a510cd6cdbbd3b0da231157a975d95
parent 53ac69e90d95e52dedf99129e39a993d45c812ea
Author: Aurélien Aptel <aurelien.aptel@gmail.com>
Date:   Thu, 16 Feb 2012 00:58:16 +0100

rewrite csidump().

Diffstat:
Mst.c | 13+++++++++++--
1 file changed, 11 insertions(+), 2 deletions(-)
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