SMOLNET PORTAL home about changes
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 <katolaz@freaknet.org>	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 <stdio.h>	Err	bitreich.org	70
i #include <string.h>	Err	bitreich.org	70
i+#include <ctype.h>	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<len; i++, tmp++){	Err	bitreich.org	70
i+                        if (!iscntrl((unsigned char)*tmp)){	Err	bitreich.org	70
i+                                fwrite(tmp, 1, 1, f);	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-                else if (*tmp == '\\'){	Err	bitreich.org	70
i-                        fprintf(f, "\\\\");	Err	bitreich.org	70
i-                        tmp ++;	Err	bitreich.org	70
i+                switch (*tmp){	Err	bitreich.org	70
i+                        case '\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+                                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
.
Response: text/plain
Original URLgopher://bitreich.org/0/scm/xml2tsv/commit/302088dbb8f0eb...
Content-Typetext/plain; charset=utf-8