shithub: castor9

Download patch

ref: bbda53b143c07207a137b2a8a64d0c42c498a79b
parent: 5a55f1448d2004d6cb54cbd34172ec3b9925715d
author: Julien Blanchard <julien@typed-hole.org>
date: Thu Dec 10 06:17:09 EST 2020

Use strbeg instead of overconfident strstr

--- a/castor.c
+++ b/castor.c
@@ -160,13 +160,13 @@
 char*
 protocol(char *link)
 {
-	if(strstr(link, "http://") != nil){
+	if(strbeg(link, "http://") == 0){
 		return " [WWW]";
-	}else if(strstr(link, "https://") != nil){
+	}else if(strbeg(link, "https://") == 0){
 		return " [WWW]";
-	}else if(strstr(link, "gopher://") != nil){
+	}else if(strbeg(link, "gopher://") == 0){
 		return " [GOPHER]";
-	}else if(strstr(link, "finger://") != nil){
+	}else if(strbeg(link, "finger://") == 0){
 		return " [FINGER]";
 	}else{
 		return "";
@@ -176,13 +176,13 @@
 char*
 symbol(char *link)
 {
-	if(strstr(link, "http://") != nil){
+	if(strbeg(link, "http://") == 0){
 		return "⇄";
-	}else if(strstr(link, "https://") != nil){
+	}else if(strbeg(link, "https://") == 0){
 		return "⇄";
-	}else if(strstr(link, "gopher://") != nil){
+	}else if(strbeg(link, "gopher://") == 0){
 		return "⇒";
-	}else if(strstr(link, "finger://") != nil){
+	}else if(strbeg(link, "finger://") == 0){
 		return "⇒";
 	}else{
 		return "→";
@@ -505,7 +505,7 @@
 	if(strlen(t) == 0)
 		return;
 
-	if(strstr(t, "gemini://") == NULL)
+	if(strbeg(t, "gemini://") != 0)
 		t = smprint("gemini://%s", t);
 			
 	gemini_get(urlparse(nil, t));
@@ -527,7 +527,7 @@
 	if(link==nil)
 		return;
 
-	if(strstr(link, "gemini://") != nil || strstr(link, "://") != nil){
+	if(strbeg(link, "gemini://") != 0 || strstr(link, "://") != nil){
 		next_url = urlparse(nil, link);
 	}else{
 		/* assuming relative URL */