shithub: gemnine

Download patch

ref: a38c9ea785ebf36491f5fa5e3e7cb3745ca2731c
parent: c2dacd29756de342a20be49414e0fdbce3af9a9d
author: Sigrid Haflínudóttir <ftrvxmtrx@gmail.com>
date: Sun May 17 16:21:35 EDT 2020

fix absolute vs relative urls

--- a/main.c
+++ b/main.c
@@ -222,10 +222,13 @@
 					while(isspace(*t))
 						t++;
 					u = t;
-					if((t = strpbrk(t, " :/")) == nil || t[0] != ':' || t[1] != '/' || t[2] != '/'){ /* relative URL */
-						if(*u == '/')
-							u++;
-						Bprint(&out, "=> gemini://%s:%s/%s\n", r->url->server, r->url->port, u);
+					if((t = strpbrk(t, " :/")) == nil || t[0] != ':' || t[1] != '/' || t[2] != '/'){ /* no scheme */
+						if(*u == '/'){ /* absolute */
+							Bprint(&out, "=> gemini://%s:%s/%s\n", r->url->server, r->url->port, u+1);
+						}else{
+							len = strlen(r->url->url);
+							Bprint(&out, "=> %s%s%s\n", r->url->url, r->url->url[len-1] != '/' ? "/" : "", u);
+						}
 					}else{
 						Bprint(&out, "%s\n", s);
 					}