# st

Unnamed repository; edit this file 'description' to name the repository.

| Log | Files | Refs | README | LICENSE

    commit 902a392b905107c7b8a318c103837c54e47a068e
    parent 8c99915608beee03eca3bae6ed92264a0da87e2f
    Author: pl@ninthfloor.org <pl@ninthfloor.org>
    Date:   Fri, 11 Nov 2016 17:45:52 +0100

    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.

    Diffstat:
    Mst.c | 29+++++++++++++++--------------

    1 file changed, 15 insertions(+), 14 deletions(-)
    diff --git 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