iquote newline and tabs; set separator and attribute assign 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 d1d29f3306ef651796d171c8d406b14fc74778ca /scm/xml2tsv/commit/d1d29f3306ef651796d171c8d406b14fc74778ca.gph bitreich.org 70 1parent 171b4c872cde8fea8cd6ddc0bc5df3e3bb5c3dcb /scm/xml2tsv/commit/171b4c872cde8fea8cd6ddc0bc5df3e3bb5c3dcb.gph bitreich.org 70 hAuthor: KatolaZ URL:mailto:katolaz@freaknet.org bitreich.org 70 iDate: Sat, 4 Jan 2020 01:31:40 +0000 Err bitreich.org 70 i Err bitreich.org 70 iquote newline and tabs; set separator and attribute assign chars Err bitreich.org 70 i Err bitreich.org 70 iDiffstat: Err bitreich.org 70 i M xml2tsv.c | 23 ++++++++++++++++------- Err bitreich.org 70 i Err bitreich.org 70 i1 file changed, 16 insertions(+), 7 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@@ -19,7 +19,8 @@ Err bitreich.org 70 i Err bitreich.org 70 i #define STR_MAX 128 Err bitreich.org 70 i #define DEPTH_MAX 50 Err bitreich.org 70 i- Err bitreich.org 70 i+#define SEP '\t' Err bitreich.org 70 i+#define SATTR '=' Err bitreich.org 70 i Err bitreich.org 70 i /* tag stack */ Err bitreich.org 70 i Err bitreich.org 70 i@@ -65,11 +66,19 @@ void print_no_cr(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 while (*tmp != '\0'){ Err bitreich.org 70 i- len = strcspn(tmp, "\n"); 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[len] == '\n') Err bitreich.org 70 i- tmp++; 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+ } Err bitreich.org 70 i+ tmp ++; Err bitreich.org 70 i+ } Err bitreich.org 70 i+ else if (*tmp == '\t'){ Err bitreich.org 70 i+ fprintf(f, "\\t"); Err bitreich.org 70 i+ tmp ++; Err bitreich.org 70 i+ } Err bitreich.org 70 i } Err bitreich.org 70 i } Err bitreich.org 70 i Err bitreich.org 70 i@@ -115,13 +124,13 @@ xmlattrend(XMLParser *x, const char *t, size_t tl, const char *a, size_t al) Err bitreich.org 70 i void Err bitreich.org 70 i xmlattrstart(XMLParser *x, const char *t, size_t tl, const char *a, size_t al) Err bitreich.org 70 i { Err bitreich.org 70 i- printf("\t%s=", a); Err bitreich.org 70 i+ printf("%c%s%c", SEP, a, SATTR); Err bitreich.org 70 i } Err bitreich.org 70 i Err bitreich.org 70 i void Err bitreich.org 70 i xmlcdatastart(XMLParser *x) Err bitreich.org 70 i { Err bitreich.org 70 i- printf("\t"); Err bitreich.org 70 i+ printf("%c", SEP); Err bitreich.org 70 i } Err bitreich.org 70 i Err bitreich.org 70 i void Err bitreich.org 70 i@@ -176,7 +185,7 @@ xmldataentity(XMLParser *x, const char *d, size_t dl) Err bitreich.org 70 i void Err bitreich.org 70 i xmldatastart(XMLParser *x) Err bitreich.org 70 i { Err bitreich.org 70 i- printf("\t"); Err bitreich.org 70 i+ printf("%c", SEP); Err bitreich.org 70 i } Err bitreich.org 70 i Err bitreich.org 70 i void Err bitreich.org 70 .