"git cmd foo :" is a user error; diagnose it as such. Signed-off-by: Junio C Hamano <gitster@xxxxxxxxx> --- setup.c | 8 +++++++- 1 files changed, 7 insertions(+), 1 deletions(-) diff --git a/setup.c b/setup.c index 51e354c..c1be388 100644 --- a/setup.c +++ b/setup.c @@ -256,6 +256,7 @@ const char **get_pathspec(const char *prefix, const char **pathspec) const char *entry = *pathspec; const char **src, **dst; int prefixlen; + int has_root_widen = 0; if (!prefix && !entry) return NULL; @@ -272,10 +273,15 @@ const char **get_pathspec(const char *prefix, const char **pathspec) dst = pathspec; prefixlen = prefix ? strlen(prefix) : 0; while (*src) { - *(dst++) = prefix_pathspec(prefix, prefixlen, *src); + const char *elem = prefix_pathspec(prefix, prefixlen, *src); + *(dst++) = elem; + if (!elem) + has_root_widen = 1; src++; } *dst = NULL; + if (has_root_widen && src != pathspec + 1) + die("an empty ':' pathspec with other pathspecs"); if (!*pathspec) return NULL; return pathspec; -- 1.7.5.1.290.g1b565 -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html