Commit Diff


commit - d1ca3911d29c9fb2147695b6622d9a088041a534
commit + f77a8c867ecc2881d60345b9e1b1ee4259189e9a
blob - 227c60b55bcc4774dad85a2dfe72b6992c536011
blob + b72f5712a310da540aca2b1ba1fd662bc9c3e8c1
--- gmid.c
+++ gmid.c
@@ -158,6 +158,24 @@ starts_with(const char *str, const char *prefix)
 
 	for (i = 0; prefix[i] != '\0'; ++i)
 		if (str[i] != prefix[i])
+			return 0;
+	return 1;
+}
+
+int
+ends_with(const char *str, const char *sufx)
+{
+	size_t i, j;
+
+	i = strlen(str);
+	j = strlen(sufx);
+
+	if (j > i)
+		return 0;
+
+	i -= j;
+	for (j = 0; str[i] != '\0'; i++, j++)
+		if (str[i] != sufx[j])
 			return 0;
 	return 1;
 }
blob - e647002265c946d14c1d80679a73bf2335231574
blob + 488ade6d2b5427987ee355ceb7694beaca5bb68e
--- gmid.h
+++ gmid.h
@@ -150,6 +150,7 @@ void log_request(struct client*, char*, size_t);
 
 void		 sig_handler(int);
 int		 starts_with(const char*, const char*);
+int		 ends_with(const char*, const char*);
 ssize_t		 filesize(int);
 char		*absolutify_path(const char*);
 void		 yyerror(const char*);