diff --git a/majc/src/gemini.rs b/majc/src/gemini.rs index 95ca816..c0853d1 100644 --- a/majc/src/gemini.rs +++ b/majc/src/gemini.rs @@ -8,6 +8,7 @@ use cursive::{ use maj::{self, Response}; use rustls::ClientConfig; use std::str; +use url::Url; /// The state of the browser. #[derive(Clone)] @@ -153,13 +154,17 @@ pub fn show(siv: &mut Cursive, url: &str, resp: Response) { TemporaryRedirect => { let st = siv.user_data::().unwrap(); st.history.pop(); - open(siv, resp.meta.as_str()); + let u = Url::parse(url).unwrap(); + let u = u.join(resp.meta.as_str()).unwrap(); + open(siv, u.as_str()); } PermanentRedirect => { let st = siv.user_data::().unwrap(); st.history.pop(); - open(siv, resp.meta.as_str()); + let u = Url::parse(url).unwrap(); + let u = u.join(resp.meta.as_str()).unwrap(); + open(siv, u.as_str()); } Input => {