aboutsummaryrefslogtreecommitdiff
path: root/src/renderers/geminirenderer.cpp
diff options
context:
space:
mode:
authorMike Skec <skec@protonmail.ch>2021-03-01 20:58:51 +1100
committerFelix Queißner <felix@ib-queissner.de>2021-03-01 11:29:38 +0100
commit65e873802525b39d066aea70d4fd4bf0750b856a (patch)
treebc430a11dfbe8efd7d9e1384981adb4e4cbff39f /src/renderers/geminirenderer.cpp
parent0d517157fc9ad99476a65fab604a3d8e8eda36e9 (diff)
downloadkristall-65e873802525b39d066aea70d4fd4bf0750b856a.tar.gz
URI fix: mention RFC reference
also checks if the *authority* is empty rather than the host
Diffstat (limited to 'src/renderers/geminirenderer.cpp')
-rw-r--r--src/renderers/geminirenderer.cpp8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/renderers/geminirenderer.cpp b/src/renderers/geminirenderer.cpp
index 1d76b96..0649afb 100644
--- a/src/renderers/geminirenderer.cpp
+++ b/src/renderers/geminirenderer.cpp
@@ -242,11 +242,11 @@ std::unique_ptr<GeminiDocument> GeminiRenderer::render(
auto local_url = QUrl(link);
- // Makes local URLs like the following work properly:
- // Root: gemini://cosmic.voyage
- // Local: gemini:///sub_directory
+ // Makes relative URLs with scheme provided (e.g gemini:///relative) work
+ // From RFC 1630: "If the scheme parts are different, the whole absolute URI must be given"
+ // therefor the schemes must be same for this to be allowed.
if (local_url.scheme() == root_url.scheme() &&
- local_url.host().isEmpty() &&
+ local_url.authority().isEmpty() &&
local_url.scheme() != "about" &&
local_url.scheme() != "file")
{