iremove control chars - xml2tsv - a simple xml-to-tsv converter, based on xmlparser Err bitreich.org 70 1Log /scm/xml2tsv/log.gph bitreich.org 70 1Files /scm/xml2tsv/files.gph bitreich.org 70 1Refs /scm/xml2tsv/refs.gph bitreich.org 70 1Tags /scm/xml2tsv/tag bitreich.org 70 1README /scm/xml2tsv/file/README.md.gph bitreich.org 70 1LICENSE /scm/xml2tsv/file/LICENSE.gph bitreich.org 70 i--- Err bitreich.org 70 1commit 302088dbb8f0eb6bca0c3d97bb2066bad3d5d4c5 /scm/xml2tsv/commit/302088dbb8f0eb6bca0c3d97bb2066bad3d5d4c5.gph bitreich.org 70 1parent 90c501f47d0a32cedca9a4ea27fbe27be9fb3be4 /scm/xml2tsv/commit/90c501f47d0a32cedca9a4ea27fbe27be9fb3be4.gph bitreich.org 70 hAuthor: KatolaZ URL:mailto:katolaz@freaknet.org bitreich.org 70 iDate: Sun, 5 Jan 2020 06:54:03 +0000 Err bitreich.org 70 i Err bitreich.org 70 iremove control chars Err bitreich.org 70 i Err bitreich.org 70 iDiffstat: Err bitreich.org 70 i M xml2tsv.c | 38 ++++++++++++++++++++----------- Err bitreich.org 70 i Err bitreich.org 70 i1 file changed, 25 insertions(+), 13 deletions(-) Err bitreich.org 70 i--- Err bitreich.org 70 1diff --git a/xml2tsv.c b/xml2tsv.c /scm/xml2tsv/file/xml2tsv.c.gph bitreich.org 70 i@@ -14,6 +14,7 @@ Err bitreich.org 70 i Err bitreich.org 70 i #include Err bitreich.org 70 i #include Err bitreich.org 70 i+#include Err bitreich.org 70 i Err bitreich.org 70 i #include "xml.h" Err bitreich.org 70 i #include "config.h" Err bitreich.org 70 i@@ -58,26 +59,37 @@ void stack_init(tstack_t *t){ Err bitreich.org 70 i Err bitreich.org 70 i /* utility functions */ Err bitreich.org 70 i Err bitreich.org 70 i+/* quote_print: quote \\, \n, \t, and strip other ctrl chars */ Err bitreich.org 70 i void quote_print(FILE *f, const char *s){ Err bitreich.org 70 i const char *tmp = s; Err bitreich.org 70 i size_t len; Err bitreich.org 70 i+ int i; Err bitreich.org 70 i while (*tmp != '\0'){ Err bitreich.org 70 i len = strcspn(tmp, "\\\n\t"); Err bitreich.org 70 i- fwrite(tmp, 1, len, f); Err bitreich.org 70 i- tmp += len; Err bitreich.org 70 i- if (*tmp == '\n'){ Err bitreich.org 70 i- if (len > 0){ Err bitreich.org 70 i- fprintf(f, "\\n"); Err bitreich.org 70 i+ for(i=0; i 0){ Err bitreich.org 70 i+ fprintf(f, "\\n"); Err bitreich.org 70 i+ } Err bitreich.org 70 i+ tmp ++; Err bitreich.org 70 i+ break; Err bitreich.org 70 i+ case '\t': Err bitreich.org 70 i+ fprintf(f, "\\t"); Err bitreich.org 70 i+ tmp ++; Err bitreich.org 70 i+ break; Err bitreich.org 70 i+ case '\r': Err bitreich.org 70 i+ fprintf(f, "\\r"); Err bitreich.org 70 i+ tmp ++; Err bitreich.org 70 i+ break; Err bitreich.org 70 i+ case '\\': Err bitreich.org 70 i+ fprintf(f, "\\\\"); Err bitreich.org 70 i+ tmp ++; Err bitreich.org 70 i+ break; Err bitreich.org 70 i } Err bitreich.org 70 i } Err bitreich.org 70 i } Err bitreich.org 70 .