Add pipe escaping to descriptions of items. - geomyidae - A small C-based gopherd. | |
git clone git://bitreich.org/geomyidae/ git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/geomyidae/ | |
Log | |
Files | |
Refs | |
Tags | |
README | |
LICENSE | |
--- | |
commit ca5a2fc2bbcaf990979b29c43c8f0e4b69c2761e | |
parent c015b09cb45af558167c6dc2053c6c20810a97ad | |
Author: Christoph Lohmann <20h@r-36.net> | |
Date: Tue, 10 Oct 2017 20:00:49 +0200 Add pipe escaping to descriptions of items. Diffstat: M ind.c | 11 +++++++++-- M index.gph | 1 + 2 files changed, 10 insertions(+), 2 deletions(-) --- | |
diff --git a/ind.c b/ind.c | |
@@ -236,18 +236,25 @@ addelem(Elems *e, char *s) Elems * getadv(char *str) { - char *b, *e, *o; + char *b, *e, *o, *bo; Elems *ret; ret = xcalloc(1, sizeof(Elems)); if (str[0] == '[') { o = xstrdup(str); b = o + 1; - while ((e = strchr(b, '|')) != nil) { + bo = b; + while ((e = strchr(bo, '|')) != nil) { + if (e != bo && e[-1] == '\\') { + memmove(&e[-1], e, strlen(e)); + bo = e; + continue; + } *e = '\0'; e++; addelem(ret, b); b = e; + bo = b; } e = strchr(b, ']'); | |
diff --git a/index.gph b/index.gph | |
@@ -3,4 +3,5 @@ tcomment [1|R-36|/|server|port] [0|file - comment|/file.dat|server|port] [h|http://www.heise.de|URL:http://www.heise.de|server|port] +[0|some \| escape and [ special characters ] test|error|server|port] |