diff options
Diffstat (limited to 'network/elinks/patches/0003-gopher_directory_links.patch')
-rw-r--r-- | network/elinks/patches/0003-gopher_directory_links.patch | 59 |
1 files changed, 12 insertions, 47 deletions
diff --git a/network/elinks/patches/0003-gopher_directory_links.patch b/network/elinks/patches/0003-gopher_directory_links.patch index dc80ef3728..15a89fac2f 100644 --- a/network/elinks/patches/0003-gopher_directory_links.patch +++ b/network/elinks/patches/0003-gopher_directory_links.patch @@ -1,42 +1,22 @@ ####################################################################### -# elinks does not follow links to directories on other servers -# properly. This adds a '/' before the '1' at the start of a link and -# removes any trailing 1. -# dave@dawoodfall.net +# Fix remote directory links. +# dave@slackbuilds.org ####################################################################### -diff -Naur a/src/protocol/gopher/gopher.c b/src/protocol/gopher/gopher.c ---- a/src/protocol/gopher/gopher.c 2017-12-17 01:54:27.941645180 +0000 -+++ b/src/protocol/gopher/gopher.c 2017-12-17 21:52:05.072454433 +0000 -@@ -317,6 +317,9 @@ - unsigned char *URL = "hURL%3"; - unsigned char *CURI = "HURI%3"; - unsigned char *CURL = "HURL%3"; -+ unsigned char *DIR = "1"; -+ unsigned char *SLASHDIR = "/1"; -+ unsigned char *SLASHPOS; - int selectorlen = conn->uri->datalen; - struct gopher_entity_info *entity_info; - size_t size; -@@ -354,6 +357,26 @@ +diff -Naur -x .git bb/src/protocol/gopher/gopher.c cc/src/protocol/gopher/gopher.c +--- bb/src/protocol/gopher/gopher.c 2020-01-13 23:22:18.918292198 +0000 ++++ cc/src/protocol/gopher/gopher.c 2020-01-13 23:21:00.631960039 +0000 +@@ -321,6 +321,18 @@ selectorlen++; } -+ if (entity_info->type == '1') -+ { -+ if (strstr(selector, DIR) == selector) -+ { -+ *selector++; ++ if (entity_info->type == '1') { ++ if (strchr(selector, '1') == (char *) selector) { ++ selector++; + selectorlen--; + } -+ else -+ { -+ SLASHPOS = strstr(selector, SLASHDIR); -+ if (SLASHPOS != NULL) -+ { -+ if (strlen(SLASHPOS) == 2) -+ { -+ selectorlen--; -+ } ++ else { ++ if ((char *) selector == "/1") { ++ selectorlen--; + } + } + } @@ -44,18 +24,3 @@ diff -Naur a/src/protocol/gopher/gopher.c b/src/protocol/gopher/gopher.c state = add_gopher_command(conn, &command, entity, selector, selectorlen); if (!is_in_state(state, S_CONN)) return state; -@@ -379,10 +402,10 @@ - gopher->entity = entity_info; - gopher->commandlen = command.length; - --debug_log("439 gopher->entity:", 1); --debug_log(gopher->entity, 1); --debug_log("437 command.source:", 1); --debug_log(command.source, 1); -+ debug_log("439 gopher->entity: ", 0); -+ debug_log(gopher->entity, 1); -+ debug_log("437 command.source: ", 0); -+ debug_log(command.source, 1); - memcpy(gopher->command, command.source, command.length); - done_string(&command); - |