free(_s);
return false;
}
+
+char *strip_repo(const char *repo_name)
+{
+ if (!repo_name)
+ return NULL;
+ else {
+ char *dot = rindex(repo_name, '.');
+
+ if (dot && !strcmp(dot, ".git"))
+ return xstrndup(repo_name, dot - repo_name);
+ else
+ return xstrdup(repo_name);
+ }
+}
+
+bool str_has_repo(const char* string, const char* repo)
+{
+ char *_s = xstrdup(string);
+ char *s = _s;
+ char *p = my_strtok(&s, " \t\n");
+ char *r = strip_repo(repo);
+
+ while (p) {
+ char *q = strip_repo(p);
+ if (match(q, r)) {
+ free(q);
+ free(r);
+ free(_s);
+ return true;
+ }
+ free(q);
+ p = my_strtok(&s, " \t\n");
+ }
+ free(r);
+ free(_s);
+ return false;
+}