From ef0675fc0bcfdfaf3ea67253ab387e158ac39d45 Mon Sep 17 00:00:00 2001 From: Chloe Kudryavtsev Date: Tue, 18 Aug 2020 17:32:53 -0400 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20Allow=20relative=20URLs=20in=20bott?= =?UTF-8?q?om=20bar?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- display/display.go | 21 ++++++--------------- 1 file changed, 6 insertions(+), 15 deletions(-) diff --git a/display/display.go b/display/display.go index d48220a..c44be84 100644 --- a/display/display.go +++ b/display/display.go @@ -3,7 +3,6 @@ package display import ( "fmt" "net/url" - "path" "strconv" "strings" @@ -127,27 +126,19 @@ func Init() { reset() return } - if query == ".." && tabs[tab].hasContent() { - // Go up a directory - parsed, err := url.Parse(tabs[tab].page.Url) + if query[0] == '.' && tabs[tab].hasContent() { // relative url + current, err := url.Parse(tabs[tab].page.Url) if err != nil { // This shouldn't occur return } - if parsed.Path == "/" { - // Can't go up further + target, err := current.Parse(query) + if err != nil { + // invalid relative url reset() return } - - // Ex: /test/foo/ -> /test/foo//.. -> /test -> /test/ - parsed.Path = path.Clean(parsed.Path+"/..") + "/" - if parsed.Path == "//" { - // Fix double slash that occurs at domain root - parsed.Path = "/" - } - parsed.RawQuery = "" // Remove query - URL(parsed.String()) + URL(target.String()) return }