Add pipe escaping to descriptions of items. - geomyidae - A small C-based gopherd.
HTML git clone git://bitreich.org/geomyidae/ git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/geomyidae/
DIR Log
DIR Files
DIR Refs
DIR Tags
DIR README
DIR LICENSE
---
DIR commit ca5a2fc2bbcaf990979b29c43c8f0e4b69c2761e
DIR parent c015b09cb45af558167c6dc2053c6c20810a97ad
HTML 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(-)
---
DIR 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, ']');
DIR 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]