code: plan9front

Download patch

ref: 67c15c1e4794103dc3eeb8d76ed0b5e39b321780
parent: 8781283fbdffc5f362c64791d5c0f0f641010b34
author: Sigrid <ftrvxmtrx@gmail.com>
date: Tue Jan 19 10:04:40 EST 2021

mothra: linkify text starting with gemini:// and ftp://

--- a/sys/src/cmd/mothra/rdhtml.c
+++ b/sys/src/cmd/mothra/rdhtml.c
@@ -35,6 +35,16 @@
 	"lucidasans/typeunicode.16", 0, 0,
 };
 
+static struct{
+	char *prefix;
+	int len;
+}links[]={
+	{"http://", 7},
+	{"https://", 8},
+	{"gemini://", 9},
+	{"ftp://", 6},
+};
+
 Font *pl_whichfont(int f, int s, int *space){
 	char name[NNAME];
 
@@ -296,12 +306,12 @@
 
 /* return url if text token looks like a hyperlink */
 char *linkify(char *s){
+	int i;
 	if(s == 0 && s[0] == 0)
 		return 0;
-	if(!cistrncmp(s, "http://", 7))
-		return strdup(s);
-	if(!cistrncmp(s, "https://", 8))
-		return strdup(s);
+	for(i = 0; i < nelem(links); i++)
+		if(!cistrncmp(s, links[i].prefix, links[i].len))
+			return strdup(s);
 	if(!cistrncmp(s, "www.", 4)){
 		int d, i;