summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLibravatar Lars Schneider <larsxschneider@gmail.com>2018-03-09 18:35:29 +0100
committerLibravatar Junio C Hamano <gitster@pobox.com>2018-03-09 10:17:23 -0800
commit66b8af3e124a0c9dbad05f40c2f6d27614f34349 (patch)
tree177c2fdb410f395172a8c2365f93b67febcb3d83
parentstrbuf: add xstrdup_toupper() (diff)
downloadtgif-66b8af3e124a0c9dbad05f40c2f6d27614f34349.tar.xz
strbuf: add a case insensitive starts_with()
Check in a case insensitive manner if one string is a prefix of another string. This function is used in a subsequent commit. Signed-off-by: Lars Schneider <larsxschneider@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r--git-compat-util.h1
-rw-r--r--strbuf.c9
2 files changed, 10 insertions, 0 deletions
diff --git a/git-compat-util.h b/git-compat-util.h
index 68b2ad531e..95c9b34832 100644
--- a/git-compat-util.h
+++ b/git-compat-util.h
@@ -455,6 +455,7 @@ extern void (*get_warn_routine(void))(const char *warn, va_list params);
extern void set_die_is_recursing_routine(int (*routine)(void));
extern int starts_with(const char *str, const char *prefix);
+extern int istarts_with(const char *str, const char *prefix);
/*
* If the string "str" begins with the string found in "prefix", return 1.
diff --git a/strbuf.c b/strbuf.c
index a20af696bc..0a24c3dd76 100644
--- a/strbuf.c
+++ b/strbuf.c
@@ -11,6 +11,15 @@ int starts_with(const char *str, const char *prefix)
return 0;
}
+int istarts_with(const char *str, const char *prefix)
+{
+ for (; ; str++, prefix++)
+ if (!*prefix)
+ return 1;
+ else if (tolower(*str) != tolower(*prefix))
+ return 0;
+}
+
int skip_to_optional_arg_default(const char *str, const char *prefix,
const char **arg, const char *def)
{