From 8f3c3cd08a5b252002a4abfb19780850fc51040e Mon Sep 17 00:00:00 2001 From: Leonardo Taccari <iamleot@gmail.com> Date: Thu, 23 Aug 2018 23:27:34 +0200 Subject: [PATCH] gopher: Do not translate `?' to `%09' Since GOPHER support was added in curl `?' character was automatically translated to `%09' (`\t'). However, this behaviour does not seems documented in RFC 4266 and for search selectors it is documented to directly use `%09' in the URL. Apart that several gopher servers in the current gopherspace have CGI support where `?' is used as part of the selector and translating it to `%09' often leads to surprising results. Closes #2910 --- lib/gopher.c | 7 ------- tests/data/test1202 | 2 +- 2 files changed, 1 insertion(+), 8 deletions(-) diff --git a/lib/gopher.c b/lib/gopher.c index b7c31b695..d65049969 100644 --- a/lib/gopher.c +++ b/lib/gopher.c @@ -93,18 +93,11 @@ static CURLcode gopher_do(struct connectdata *conn, bool *done) } else { char *newp; - size_t j, i; /* Otherwise, drop / and the first character (i.e., item type) ... */ newp = path; newp += 2; - /* ... then turn ? into TAB for search servers, Veronica, etc. ... */ - j = strlen(newp); - for(i = 0; i<j; i++) - if(newp[i] == '?') - newp[i] = '\x09'; - /* ... and finally unescape */ result = Curl_urldecode(data, newp, 0, &sel, &len, FALSE); if(result) diff --git a/tests/data/test1202 b/tests/data/test1202 index 37d270acb..6c91a774c 100644 --- a/tests/data/test1202 +++ b/tests/data/test1202 @@ -26,7 +26,7 @@ gopher Gopher query </name> <command> -"gopher://%HOSTIP:%GOPHERPORT/7/the/search/engine?query%20succeeded/1202" +"gopher://%HOSTIP:%GOPHERPORT/7/the/search/engine%09query%20succeeded/1202" </command> </client> -- 2.40.0