diff options
Diffstat (limited to 'debian/patches/250_schemebug.patch')
-rw-r--r-- | debian/patches/250_schemebug.patch | 95 |
1 files changed, 95 insertions, 0 deletions
diff --git a/debian/patches/250_schemebug.patch b/debian/patches/250_schemebug.patch new file mode 100644 index 0000000..a5e491e --- /dev/null +++ b/debian/patches/250_schemebug.patch @@ -0,0 +1,95 @@ +Subject: Define schemeNumToName() to fix scheme bug +From: AIDA Shinra <shinra@j10n.org> +Origin: http://www.j10n.org/files/w3m-cvs-1.1055-schemebug.patch + + Patch from [w3m-dev:04470] on 2013-10-14. + +diff --git a/url.c b/url.c +index cbb4aab..d7b1d6e 100644 +--- a/url.c ++++ b/url.c +@@ -121,6 +121,7 @@ static struct table2 DefaultGuess[] = { + }; + + static void add_index_file(ParsedURL *pu, URLFile *uf); ++static char * schemeNumToName(int scheme); + + /* #define HTTP_DEFAULT_FILE "/index.html" */ + +@@ -1285,6 +1286,18 @@ getURLScheme(char **url) + } + + static char * ++schemeNumToName(int scheme) ++{ ++ int i; ++ ++ for (i = 0; schemetable[i].cmdname != NULL; i++) { ++ if (schemetable[i].cmd == scheme) ++ return schemetable[i].cmdname; ++ } ++ return NULL; ++} ++ ++static char * + otherinfo(ParsedURL *target, ParsedURL *current, char *referer) + { + Str s = Strnew(); +@@ -1616,7 +1629,7 @@ openURL(char *url, ParsedURL *pu, ParsedURL *current, + pu->host != NULL && !check_no_proxy(pu->host)) { + hr->flag |= HR_FLAG_PROXY; + sock = openSocket(FTP_proxy_parsed.host, +- schemetable[FTP_proxy_parsed.scheme].cmdname, ++ schemeNumToName(FTP_proxy_parsed.scheme), + FTP_proxy_parsed.port); + if (sock < 0) + return uf; +@@ -1658,15 +1671,15 @@ openURL(char *url, ParsedURL *pu, ParsedURL *current, + } + else if (pu->scheme == SCM_HTTPS) { + sock = openSocket(HTTPS_proxy_parsed.host, +- schemetable[HTTPS_proxy_parsed.scheme]. +- cmdname, HTTPS_proxy_parsed.port); ++ schemeNumToName(HTTPS_proxy_parsed.scheme), ++ HTTPS_proxy_parsed.port); + sslh = NULL; + } + else { + #endif /* USE_SSL */ + sock = openSocket(HTTP_proxy_parsed.host, +- schemetable[HTTP_proxy_parsed.scheme]. +- cmdname, HTTP_proxy_parsed.port); ++ schemeNumToName(HTTP_proxy_parsed.scheme), ++ HTTP_proxy_parsed.port); + #ifdef USE_SSL + sslh = NULL; + } +@@ -1698,8 +1711,7 @@ openURL(char *url, ParsedURL *pu, ParsedURL *current, + } + } + else { +- sock = openSocket(pu->host, +- schemetable[pu->scheme].cmdname, pu->port); ++ sock = openSocket(pu->host, schemeNumToName(pu->scheme), pu->port); + if (sock < 0) { + *status = HTST_MISSING; + return uf; +@@ -1763,7 +1775,7 @@ openURL(char *url, ParsedURL *pu, ParsedURL *current, + pu->host != NULL && !check_no_proxy(pu->host)) { + hr->flag |= HR_FLAG_PROXY; + sock = openSocket(GOPHER_proxy_parsed.host, +- schemetable[GOPHER_proxy_parsed.scheme].cmdname, ++ schemeNumToName(GOPHER_proxy_parsed.scheme), + GOPHER_proxy_parsed.port); + if (sock < 0) + return uf; +@@ -1771,8 +1783,7 @@ openURL(char *url, ParsedURL *pu, ParsedURL *current, + tmp = HTTPrequest(pu, current, hr, extra_header); + } + else { +- sock = openSocket(pu->host, +- schemetable[pu->scheme].cmdname, pu->port); ++ sock = openSocket(pu->host, schemeNumToName(pu->scheme), pu->port); + if (sock < 0) + return uf; + if (pu->file == NULL) |