From: Sami Kerola Date: Sat, 17 Aug 2013 18:15:11 +0000 (+0100) Subject: include: carefulput: print determined char when unprintable char is found X-Git-Tag: v2.24-rc1~342 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ada6c48f0609edd0c04836370228485a6b1859a0;p=thirdparty%2Futil-linux.git include: carefulput: print determined char when unprintable char is found This is done to allow reuse of the functin in last(1). Signed-off-by: Sami Kerola --- diff --git a/include/carefulputc.h b/include/carefulputc.h index 2d857ebb06..d4d0ee4ea5 100644 --- a/include/carefulputc.h +++ b/include/carefulputc.h @@ -10,7 +10,7 @@ #define iso8859x_iscntrl(c) \ (((c) & 0x7f) < 0x20 || (c) == 0x7f) -static inline int carefulputc(int c, FILE *fp) { +static inline int carefulputc(int c, FILE *fp, const char fail) { int ret; if (c == '\007' || c == '\t' || c == '\r' || c == '\n' || @@ -19,7 +19,7 @@ static inline int carefulputc(int c, FILE *fp) { else if ((c & 0x80) || !isprint(c^0x40)) ret = fprintf(fp, "\\%3o", (unsigned char) c); else { - ret = putc('^', fp); + ret = putc(fail, fp); if (ret != EOF) ret = putc(c^0x40, fp); } diff --git a/term-utils/wall.c b/term-utils/wall.c index f0940732ef..2d87e47db3 100644 --- a/term-utils/wall.c +++ b/term-utils/wall.c @@ -286,7 +286,7 @@ static char *makemsg(char *fname, char **mvec, int mvecsz, cnt = 0; } if (ch != '\n') - carefulputc(ch, fp); + carefulputc(ch, fp, '^'); } } } diff --git a/term-utils/write.c b/term-utils/write.c index 83937d3b32..cb3b0444d7 100644 --- a/term-utils/write.c +++ b/term-utils/write.c @@ -372,7 +372,7 @@ void wr_fputs(char *s) { char c; -#define PUTC(c) if (carefulputc(c, stdout) == EOF) \ +#define PUTC(c) if (carefulputc(c, stdout, '^') == EOF) \ err(EXIT_FAILURE, _("carefulputc failed")); while (*s) { c = *s++;