[PATCH 02/17] include: simplify fputc_careful() in carefulputc.h

Sami Kerola
2014-09-07T12:43:15Z

New version of comparisions does the same thing as the old without being
quite as difficult to understand.

Signed-off-by: Sami Kerola <kerolasa@iki.fi>
---
include/carefulputc.h | 16 ++++++----------
1 file changed, 6 insertions(+), 10 deletions(-)

diff --git a/include/carefulputc.h b/include/carefulputc.h
index f29dc69..c116d0a 100644
--- a/include/carefulputc.h
+++ b/include/carefulputc.h
@@ -10,26 +10,22 @@
#include <string.h>
#include <ctype.h>

-#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;
--
2.1.0