diff options
author | Junio C Hamano <gitster@pobox.com> | 2018-05-22 08:18:06 +0300 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2018-05-22 08:18:06 +0300 |
commit | 023020401d21c8c48d7f0a123c7ff50888e101c7 (patch) | |
tree | 1529374ef1c5c8ca26804d1e212f0dfc75789e1d /builtin/submodule--helper.c | |
parent | d32eb83c1db7d0a8bb54fe743c6d1dd674d372c5 (diff) | |
parent | d33c87517a85f544159b2efa406136dde18a5b9f (diff) |
Sync with Git 2.15.2
* maint-2.15:
Git 2.15.2
Git 2.14.4
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 'builtin/submodule--helper.c')
-rw-r--r-- | builtin/submodule--helper.c | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/builtin/submodule--helper.c b/builtin/submodule--helper.c index a5c4a8a694..9f658a59a2 100644 --- a/builtin/submodule--helper.c +++ b/builtin/submodule--helper.c @@ -1480,6 +1480,29 @@ static int is_active(int argc, const char **argv, const char *prefix) return !is_submodule_active(the_repository, argv[1]); } +/* + * Exit non-zero if any of the submodule names given on the command line is + * invalid. If no names are given, filter stdin to print only valid names + * (which is primarily intended for testing). + */ +static int check_name(int argc, const char **argv, const char *prefix) +{ + if (argc > 1) { + while (*++argv) { + if (check_submodule_name(*argv) < 0) + return 1; + } + } else { + struct strbuf buf = STRBUF_INIT; + while (strbuf_getline(&buf, stdin) != EOF) { + if (!check_submodule_name(buf.buf)) + printf("%s\n", buf.buf); + } + strbuf_release(&buf); + } + return 0; +} + #define SUPPORT_SUPER_PREFIX (1<<0) struct cmd_struct { @@ -1502,6 +1525,7 @@ static struct cmd_struct commands[] = { {"push-check", push_check, 0}, {"absorb-git-dirs", absorb_git_dirs, SUPPORT_SUPER_PREFIX}, {"is-active", is_active, 0}, + {"check-name", check_name, 0}, }; int cmd_submodule__helper(int argc, const char **argv, const char *prefix) |