mirror of
https://github.com/Ponce/slackbuilds
synced 2024-11-16 19:50:19 +01:00
dd634581ab
Signed-off-by: David Spencer <idlemoor@slackbuilds.org>
60 lines
1.7 KiB
Diff
60 lines
1.7 KiB
Diff
#######################################################################
|
|
# 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.
|
|
#######################################################################
|
|
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 @@
|
|
selectorlen++;
|
|
}
|
|
|
|
+ if (entity_info->type == '1')
|
|
+ {
|
|
+ if (strstr(selector, DIR) == selector)
|
|
+ {
|
|
+ *selector++;
|
|
+ selectorlen--;
|
|
+ }
|
|
+ else
|
|
+ {
|
|
+ SLASHPOS = strstr(selector, SLASHDIR);
|
|
+ if (SLASHPOS != NULL)
|
|
+ {
|
|
+ if (strlen(SLASHPOS) == 2)
|
|
+ {
|
|
+ selectorlen--;
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+
|
|
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);
|
|
|