From 2870aeb3fbd97a732e4daaaabd66f741bfc820b7 Mon Sep 17 00:00:00 2001 From: yggverse Date: Sat, 15 Mar 2025 13:55:27 +0200 Subject: [PATCH] add ending slash, reorganize conditions --- src/line/link.rs | 22 +++++++++------------- tests/integration.rs | 2 +- 2 files changed, 10 insertions(+), 14 deletions(-) diff --git a/src/line/link.rs b/src/line/link.rs index e009470..9dfb6c5 100644 --- a/src/line/link.rs +++ b/src/line/link.rs @@ -32,21 +32,17 @@ impl Link { // Relative scheme patch // https://datatracker.ietf.org/doc/html/rfc3986#section-4.2 if let Some(p) = unresolved_address.strip_prefix("//") { + let b = base?; let postfix = p.trim_start_matches(":"); - match base { - Some(b) => { - unresolved_address = format!( - "{}://{}", - b.scheme(), - if postfix.is_empty() { - b.host()? - } else { - postfix.into() - } - ) + unresolved_address = format!( + "{}://{}", + b.scheme(), + if postfix.is_empty() { + format!("{}/", b.host()?) + } else { + postfix.into() } - None => return None, - } + ) } // Convert address to the valid URI let uri = match base { diff --git a/tests/integration.rs b/tests/integration.rs index e2cf653..cb62878 100644 --- a/tests/integration.rs +++ b/tests/integration.rs @@ -227,7 +227,7 @@ fn gemtext() { assert_eq!(item.alt, None); assert_eq!(item.timestamp, None); - assert_eq!(item.uri.to_str(), "gemini://geminiprotocol.net"); + assert_eq!(item.uri.to_str(), "gemini://geminiprotocol.net/"); } // #8 // Validate lists