summaryrefslogtreecommitdiff
path: root/sfeed.c
diff options
context:
space:
mode:
authorHiltjo Posthuma <hiltjo@codemadness.org>2022-03-28 18:36:20 +0200
committerHiltjo Posthuma <hiltjo@codemadness.org>2022-03-28 18:36:20 +0200
commit880256b8bfde746cd54993f3abcb4dc648895af7 (patch)
treec68d1aca780ef63cabb57e30c16e75e7b910c3e5 /sfeed.c
parenta58fa45f25da4f18d7b8c1a815884f67b965406f (diff)
compatibility: replace iscntrl with own ISCNTRL macro
It is unspecified if the C locale iscntrl is compatible with ASCII or not. Noticed when testing on OpenBSD 3.8 which uses extended ASCII and also uses the C1 range for control-characters. This breaks support with UTF-8. Reference: https://en.wikipedia.org/wiki/C0_and_C1_control_codes#C1_control_codes_for_general_use C1 table. Force an own definition of an ASCII-compatible control-character range since sfeed expects input to be UTF-8 (or converted from iconv) and so output to be UTF-8 aswell.
Diffstat (limited to 'sfeed.c')
-rw-r--r--sfeed.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/sfeed.c b/sfeed.c
index 9b3fd8f..fc1249a 100644
--- a/sfeed.c
+++ b/sfeed.c
@@ -326,7 +326,7 @@ string_print_encoded(String *s)
case '\t': putchar('\\'); putchar('t'); break;
default:
/* ignore control chars */
- if (!iscntrl((unsigned char)*p))
+ if (!ISCNTRL((unsigned char)*p))
putchar(*p);
break;
}
@@ -343,7 +343,7 @@ printtrimmed(const char *s)
for (; *p && p != e; p++) {
if (isspace((unsigned char)*p))
putchar(' '); /* any whitespace to space */
- else if (!iscntrl((unsigned char)*p))
+ else if (!ISCNTRL((unsigned char)*p))
/* ignore other control chars */
putchar(*p);
}