summaryrefslogtreecommitdiff
path: root/git-compat-util.h
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2018-05-22 05:10:49 (GMT)
committerJunio C Hamano <gitster@pobox.com>2018-05-22 05:10:49 (GMT)
commit7b01c71b64d25202d80b73cbd46104ebfddbdab3 (patch)
tree98de7ee189397c8e539459ed1a699be47cc0bff3 /git-compat-util.h
parentfc849d8d6b90e5c1e0c37bc0d60dd92b2fe7347f (diff)
parent0114f71344844be9e5add321cffea34bac077d75 (diff)
downloadgit-7b01c71b64d25202d80b73cbd46104ebfddbdab3.zip
git-7b01c71b64d25202d80b73cbd46104ebfddbdab3.tar.gz
git-7b01c71b64d25202d80b73cbd46104ebfddbdab3.tar.bz2
Sync with Git 2.13.7
* maint-2.13: Git 2.13.7 verify_path: disallow symlinks in .gitmodules update-index: stat updated files earlier verify_dotfile: mention case-insensitivity in comment verify_path: drop clever fallthrough skip_prefix: add case-insensitive variant is_{hfs,ntfs}_dotgitmodules: add tests is_ntfs_dotgit: match other .git files is_hfs_dotgit: match other .git files is_ntfs_dotgit: use a size_t for traversing string submodule-config: verify submodule names as paths
Diffstat (limited to 'git-compat-util.h')
-rw-r--r--git-compat-util.h17
1 files changed, 17 insertions, 0 deletions
diff --git a/git-compat-util.h b/git-compat-util.h
index bf4869d..6cb3c2f 100644
--- a/git-compat-util.h
+++ b/git-compat-util.h
@@ -980,6 +980,23 @@ static inline int sane_iscase(int x, int is_lower)
return (x & 0x20) == 0;
}
+/*
+ * Like skip_prefix, but compare case-insensitively. Note that the comparison
+ * is done via tolower(), so it is strictly ASCII (no multi-byte characters or
+ * locale-specific conversions).
+ */
+static inline int skip_iprefix(const char *str, const char *prefix,
+ const char **out)
+{
+ do {
+ if (!*prefix) {
+ *out = str;
+ return 1;
+ }
+ } while (tolower(*str++) == tolower(*prefix++));
+ return 0;
+}
+
static inline int strtoul_ui(char const *s, int base, unsigned int *result)
{
unsigned long ul;