We have two ways of dealing with empty pathspec: 1. limit it to current prefix 2. match the entire working directory Some commands go with #1, some with #2. get_pathspec() and parse_pathspec() only supports #1. Make it support #2 too via PATHSPEC_EMPTY_MATCH_ALL flag. Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@xxxxxxxxx> --- cache.h | 3 +++ setup.c | 3 +++ 2 files changed, 6 insertions(+) diff --git a/cache.h b/cache.h index 1f51423..32231d8 100644 --- a/cache.h +++ b/cache.h @@ -503,6 +503,9 @@ struct pathspec { __FILE__, __LINE__, (ps)->magic & ~(mask)); \ } while (0) +/* parse_pathspec flags */ +#define PATHSPEC_EMPTY_MATCH_ALL (1<<0) /* No args means match everything */ + extern int init_pathspec(struct pathspec *, const char **); extern void parse_pathspec(struct pathspec *pathspec, unsigned magic_mask, unsigned flags, const char *prefix, diff --git a/setup.c b/setup.c index 0c9fc75..d0b1d1f 100644 --- a/setup.c +++ b/setup.c @@ -289,6 +289,9 @@ void parse_pathspec(struct pathspec *pathspec, if (!entry && !prefix) return; + if (!*argv && (flags & PATHSPEC_EMPTY_MATCH_ALL)) + return; + /* No arguments with prefix -> prefix pathspec */ if (!entry) { static const char *raw[2]; -- 1.8.0.rc2.23.g1fb49df -- 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