From c6d2d74ea02d1e6d9609ecd1a56a32d91da57378 Mon Sep 17 00:00:00 2001 From: Sami Kerola Date: Sun, 10 Aug 2014 18:23:14 +0100 Subject: 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 --- include/carefulputc.h | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) (limited to 'include/carefulputc.h') diff --git a/include/carefulputc.h b/include/carefulputc.h index f29dc699f..c116d0a98 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; -- cgit v1.2.3-55-g7522