From: Sami Kerola Date: Sun, 10 Aug 2014 17:23:14 +0000 (+0100) Subject: include: simplify fputc_careful() in carefulputc.h X-Git-Tag: v2.26-rc1~447^2~14 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c6d2d74ea02d1e6d9609ecd1a56a32d91da57378;p=thirdparty%2Futil-linux.git include: simplify fputc_careful() in carefulputc.h New version of comparisions does the same thing as the old without being quite as difficult to understand. Signed-off-by: Sami Kerola --- diff --git a/include/carefulputc.h b/include/carefulputc.h index f29dc699fa..c116d0a988 100644 --- a/include/carefulputc.h +++ b/include/carefulputc.h @@ -10,26 +10,22 @@ #include #include -#define iso8859x_iscntrl(c) \ - (((c) & 0x7f) < 0x20 || (c) == 0x7f) - -static inline int fputc_careful(int c, FILE *fp, const char fail) { +static inline int fputc_careful(int c, FILE *fp, const char fail) +{ int ret; - if (c == '\007' || c == '\t' || c == '\r' || c == '\n' || - (!iso8859x_iscntrl(c) && (isprint(c) || isspace(c)))) + if (isprint(c) || c == '\a' || c == '\t' || c == '\r' || c == '\n') ret = putc(c, fp); - else if ((c & 0x80) || !isprint(c^0x40)) - ret = fprintf(fp, "\\%3o", (unsigned char) c); + else if (!isascii(c)) + ret = fprintf(fp, "\\%3o", (unsigned char)c); else { ret = putc(fail, fp); if (ret != EOF) - ret = putc(c^0x40, fp); + ret = putc(c ^ 0x40, fp); } return (ret < 0) ? EOF : 0; } - static inline void fputs_quoted(const char *data, FILE *out) { const char *p;