From: pl@ninthfloor.org Date: Fri, 11 Nov 2016 16:45:52 +0000 (+0100) Subject: Make strdump(), csidump(), print to stderr X-Git-Url: https://git.danieliu.xyz/?a=commitdiff_plain;h=902a392b905107c7b8a318c103837c54e47a068e;p=st.git Make strdump(), csidump(), print to stderr The two functions strdump(), csidump() are called to show errors and their output is introduced by a message printed to stderr. Thus, it it more consistent to have them print to stderr. Moreover stderr is unbuffered (at least on Linux), making problems immediately visible. --- diff --git a/st.c b/st.c index 4d44388..0980082 100644 --- a/st.c +++ b/st.c @@ -2490,22 +2490,22 @@ csidump(void) int i; uint c; - printf("ESC["); + fprintf(stderr, "ESC["); for (i = 0; i < csiescseq.len; i++) { c = csiescseq.buf[i] & 0xff; if (isprint(c)) { - putchar(c); + putc(c, stderr); } else if (c == '\n') { - printf("(\\n)"); + fprintf(stderr, "(\\n)"); } else if (c == '\r') { - printf("(\\r)"); + fprintf(stderr, "(\\r)"); } else if (c == 0x1b) { - printf("(\\e)"); + fprintf(stderr, "(\\e)"); } else { - printf("(%02x)", c); + fprintf(stderr, "(%02x)", c); } } - putchar('\n'); + putc('\n', stderr); } void @@ -2594,24 +2594,25 @@ strdump(void) int i; uint c; - printf("ESC%c", strescseq.type); + fprintf(stderr, "ESC%c", strescseq.type); for (i = 0; i < strescseq.len; i++) { c = strescseq.buf[i] & 0xff; if (c == '\0') { + putc('\n', stderr); return; } else if (isprint(c)) { - putchar(c); + putc(c, stderr); } else if (c == '\n') { - printf("(\\n)"); + fprintf(stderr, "(\\n)"); } else if (c == '\r') { - printf("(\\r)"); + fprintf(stderr, "(\\r)"); } else if (c == 0x1b) { - printf("(\\e)"); + fprintf(stderr, "(\\e)"); } else { - printf("(%02x)", c); + fprintf(stderr, "(%02x)", c); } } - printf("ESC\\\n"); + fprintf(stderr, "ESC\\\n"); } void