print \n or \t also when using -F or -R - json2tsv - JSON to TSV converter
(HTM) git clone git://git.codemadness.org/json2tsv
(DIR) Log
(DIR) Files
(DIR) Refs
(DIR) README
(DIR) LICENSE
---
(DIR) commit fea1a2013f259f23798d9a611f783f25b4f7448d
(DIR) parent 65ee8e6903bc3c072a2e55fdd2501b0296fbdf59
(HTM) Author: Hiltjo Posthuma <hiltjo@codemadness.org>
Date: Sat, 25 Sep 2021 11:37:20 +0200
print \n or \t also when using -F or -R
\n or \t is a control-character, but the intention of suppressing them by
default is to not mess with the terminal (-r can be used to enable it).
Diffstat:
M json2tsv.c | 17 +++++++++++++----
1 file changed, 13 insertions(+), 4 deletions(-)
---
(DIR) diff --git a/json2tsv.c b/json2tsv.c
@@ -42,11 +42,20 @@ void
rs_printvalue(const char *s)
{
for (; *s; s++) {
- /* ignore other control chars */
- if ((!rflag && iscntrl((unsigned char)*s)) ||
- *s == fs || *s == rs)
+ if (*s == fs || *s == rs)
continue;
- putchar(*s);
+
+ switch (*s) {
+ case '\n':
+ case '\t':
+ putchar(*s);
+ break;
+ default:
+ /* ignore other control chars */
+ if (!rflag && iscntrl((unsigned char)*s))
+ continue;
+ putchar(*s);
+ }
}
}