iImplement new escaping in geomyidae. - geomyidae - A small C-based gopherd. Err bitreich.org 70
hgit clone git://bitreich.org/geomyidae/ git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/geomyidae/ URL:git://bitreich.org/geomyidae/ git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/geomyidae/ bitreich.org 70
1Log /scm/geomyidae/log.gph bitreich.org 70
1Files /scm/geomyidae/files.gph bitreich.org 70
1Refs /scm/geomyidae/refs.gph bitreich.org 70
1Tags /scm/geomyidae/tag bitreich.org 70
1README /scm/geomyidae/file/README.gph bitreich.org 70
1LICENSE /scm/geomyidae/file/LICENSE.gph bitreich.org 70
i--- Err bitreich.org 70
1commit 204c8cedb99683d264e2612a4e126142a20e3042 /scm/geomyidae/commit/204c8cedb99683d264e2612a4e126142a20e3042.gph bitreich.org 70
1parent 25d46ce743e68c9d920190bfe29262f16214b194 /scm/geomyidae/commit/25d46ce743e68c9d920190bfe29262f16214b194.gph bitreich.org 70
hAuthor: Christoph Lohmann <20h@r-36.net> URL:mailto:20h@r-36.net bitreich.org 70
iDate: Tue, 26 Jul 2022 23:39:22 +0200 Err bitreich.org 70
i Err bitreich.org 70
iImplement new escaping in geomyidae. Err bitreich.org 70
i Err bitreich.org 70
iThanks Bob for all of your help and hints! Err bitreich.org 70
i Err bitreich.org 70
iDiffstat: Err bitreich.org 70
i M geomyidae.8 | 10 +++++----- Err bitreich.org 70
i M ind.c | 37 ++++++++++--------------------- Err bitreich.org 70
i M index.gph | 6 ++++-- Err bitreich.org 70
i Err bitreich.org 70
i3 files changed, 21 insertions(+), 32 deletions(-) Err bitreich.org 70
i--- Err bitreich.org 70
1diff --git a/geomyidae.8 b/geomyidae.8 /scm/geomyidae/file/geomyidae.8.gph bitreich.org 70
i@@ -257,11 +257,11 @@ Note: geomyidae doesn't require "informational" text to be formally Err bitreich.org 70
i Typed as "[i|...]"; any line Err bitreich.org 70
i .Em not Err bitreich.org 70
i beginning with "[" is treated as informational, greatly simplifying the Err bitreich.org 70
i-formatting of index.gph files. However, if a line begins with a "t", this Err bitreich.org 70
i-"t" is left out. This quirk is there to allow "informational" text lines Err bitreich.org 70
i-beginning with a "[" to display. For dynamically generated index files Err bitreich.org 70
i-it may be desirable to either formally Type informational text or run Err bitreich.org 70
i-it through a filter to add a second "t" - .ie sed 's/^t/&&/' . Err bitreich.org 70
i+formatting of index.gph files. If you want to display some informational Err bitreich.org 70
i+text beginning with "[" you can use the special case of an empty item Err bitreich.org 70
i+type. "[|[some link" will be shortened to "[some link". For dynamically Err bitreich.org 70
i+generated content it may be desirable to either formally type Err bitreich.org 70
i+informational text or run it through a filter to prepend "[|" - .ie sed 's,^[,[|&,' . Err bitreich.org 70
i .Ed Err bitreich.org 70
i .Bd -filled Err bitreich.org 70
i Note 2: You can escape a pipe ("|") character in for example a Err bitreich.org 70
1diff --git a/ind.c b/ind.c /scm/geomyidae/file/ind.c.gph bitreich.org 70
i@@ -255,12 +255,15 @@ getadv(char *str) Err bitreich.org 70
i char *b, *e, *o, *bo; Err bitreich.org 70
i Elems *ret; Err bitreich.org 70
i Err bitreich.org 70
i+ if (strlen(str) == 0) Err bitreich.org 70
i+ return NULL; Err bitreich.org 70
i+ Err bitreich.org 70
i ret = xcalloc(1, sizeof(Elems)); Err bitreich.org 70
i Err bitreich.org 70
i if (strchr(str, '\t')) { Err bitreich.org 70
i addelem(ret, "i"); Err bitreich.org 70
i addelem(ret, "Happy helping ☃ here: You tried to " Err bitreich.org 70
i- "output a spurious tab character. This will " Err bitreich.org 70
i+ "output a spurious TAB character. This will " Err bitreich.org 70
i "break gopher. Please review your scripts. " Err bitreich.org 70
i "Have a nice day!"); Err bitreich.org 70
i addelem(ret, "Err"); Err bitreich.org 70
i@@ -270,7 +273,8 @@ getadv(char *str) Err bitreich.org 70
i return ret; Err bitreich.org 70
i } Err bitreich.org 70
i Err bitreich.org 70
i- if (str[0] == '[') { Err bitreich.org 70
i+ /* Check for escape sequence. */ Err bitreich.org 70
i+ if (str[0] == '[' && str[1] != '|') { Err bitreich.org 70
i o = xstrdup(str); Err bitreich.org 70
i b = o + 1; Err bitreich.org 70
i bo = b; Err bitreich.org 70
i@@ -294,38 +298,21 @@ getadv(char *str) Err bitreich.org 70
i } Err bitreich.org 70
i free(o); Err bitreich.org 70
i Err bitreich.org 70
i- /* Err bitreich.org 70
i- * TODO: Add new [| escape handling after brcon2022 discussion. Err bitreich.org 70
i- */ Err bitreich.org 70
i- if (ret->e != NULL && ret->e[0] != NULL && ret->e[0][0] == '\0') { Err bitreich.org 70
i- freeelem(ret); Err bitreich.org 70
i- ret = xcalloc(1, sizeof(Elems)); Err bitreich.org 70
i- Err bitreich.org 70
i- addelem(ret, "i"); Err bitreich.org 70
i- addelem(ret, "Happy helping ☃ here: You did not " Err bitreich.org 70
i- "specify an item type on this line. Please " Err bitreich.org 70
i- "review your scripts. " Err bitreich.org 70
i- "Have a nice day!"); Err bitreich.org 70
i- addelem(ret, "Err"); Err bitreich.org 70
i- addelem(ret, "server"); Err bitreich.org 70
i- addelem(ret, "port"); Err bitreich.org 70
i- Err bitreich.org 70
i+ if (ret->e != NULL && ret->e[0] != NULL && Err bitreich.org 70
i+ ret->e[0][0] != '\0' && ret->num == 5) { Err bitreich.org 70
i return ret; Err bitreich.org 70
i } Err bitreich.org 70
i Err bitreich.org 70
i- if (ret->e != NULL && ret->num == 5) Err bitreich.org 70
i- return ret; Err bitreich.org 70
i- Err bitreich.org 70
i /* Invalid entry: Give back the whole line. */ Err bitreich.org 70
i freeelem(ret); Err bitreich.org 70
i ret = xcalloc(1, sizeof(Elems)); Err bitreich.org 70
i } Err bitreich.org 70
i Err bitreich.org 70
i- b = str; Err bitreich.org 70
i- if (*str == 't') Err bitreich.org 70
i- b++; Err bitreich.org 70
i addelem(ret, "i"); Err bitreich.org 70
i- addelem(ret, b); Err bitreich.org 70
i+ /* Jump over escape sequence. */ Err bitreich.org 70
i+ if (str[0] == '[' && str[1] == '|') Err bitreich.org 70
i+ str += 2; Err bitreich.org 70
i+ addelem(ret, str); Err bitreich.org 70
i addelem(ret, "Err"); Err bitreich.org 70
i addelem(ret, "server"); Err bitreich.org 70
i addelem(ret, "port"); Err bitreich.org 70
1diff --git a/index.gph b/index.gph /scm/geomyidae/file/index.gph.gph bitreich.org 70
i@@ -1,12 +1,14 @@ Err bitreich.org 70
i comment Err bitreich.org 70
i-tcomment Err bitreich.org 70
i+tcomment (old style comment) Err bitreich.org 70
i [1|R-36|/|server|port] Err bitreich.org 70
i [0|file - comment|/file.txt|server|port] Err bitreich.org 70
i [h|http://www.heise.de|URL:http://www.heise.de|server|port] Err bitreich.org 70
i [0|some \| escape and [ special characters ] test|error|server|port] Err bitreich.org 70
i [9|binary data file|/file.dat|server|port] Err bitreich.org 70
i+[9|unclosed entry|/file.dat|server|port Err bitreich.org 70
i [|empty type||server|port] Err bitreich.org 70
i-[|Escape something Err bitreich.org 70
i+[|Escape something, [| is skipped. Err bitreich.org 70
i some invalid line Err bitreich.org 70
i Err bitreich.org 70
i+[|[9|binary data file (escaped entry, shown as 'i')|/file.dat|server|port] Err bitreich.org 70
i Err bitreich.org 70
.
Response:
text/plain