Commit Diff


commit - a80e4b65458af87a65fa5b75664c8ed6850c59d4
commit + acc266fe2434a609a469a42800722015029c5cff
blob - 174d291acae8533ddd33ce821c32214b578043a4
blob + 296aa30fb1f3973b772c785b45e753a91cbf737f
--- proxy.c
+++ proxy.c
@@ -233,8 +233,20 @@ gemtext_translate_line(struct client *clt, char *line)
 			clt->clt_translate |= TR_NAV;
 		}
 
-		if (clt_puts(clt, "<li><a href='") == -1 ||
-		    tp_urlescape(clt->clt_tp, line) == -1 ||
+		if (clt_puts(clt, "<li><a href='") == -1)
+			return (-1);
+
+		/* XXX: do proper parsing */
+		if (*line == '/' || strstr(line, "//") == NULL) {
+			if (tp_urlescape(clt->clt_tp,
+			    clt->clt_script_name) == -1)
+				return (-1);
+
+			/* skip the first / */
+			line++;
+		}
+
+		if (tp_urlescape(clt->clt_tp, line) == -1 ||
 		    clt_puts(clt, "'>") == -1 ||
 		    tp_htmlescape(clt->clt_tp, label) == -1 ||
 		    clt_puts(clt, "</a></li>") == -1)