This struct for now is just a wrapper for the current pathspec form: const char **. It is intended to be extended with more useful pathspec-related information over time. The data structure for passing pathspec around remains const char **, struct pathspec will be initialized locally to be used and destroyed. Hopefully all pathspec related code will be gradually migrated to pass this struct instead. Signed-off-by: Nguyán ThÃi Ngác Duy <pclouds@xxxxxxxxx> --- cache.h | 7 +++++++ dir.c | 18 ++++++++++++++++++ 2 files changed, 25 insertions(+), 0 deletions(-) diff --git a/cache.h b/cache.h index eb77e1d..6227ddb 100644 --- a/cache.h +++ b/cache.h @@ -492,6 +492,13 @@ extern int index_name_is_other(const struct index_state *, const char *, int); extern int ie_match_stat(const struct index_state *, struct cache_entry *, struct stat *, unsigned int); extern int ie_modified(const struct index_state *, struct cache_entry *, struct stat *, unsigned int); +struct pathspec { + const char **raw; + int nr; +}; + +extern int init_pathspec(struct pathspec *,const char **); +extern void free_pathspec(struct pathspec *); extern int ce_path_match(const struct cache_entry *ce, const char **pathspec); extern int index_fd(unsigned char *sha1, int fd, struct stat *st, int write_object, enum object_type type, const char *path); extern int index_path(unsigned char *sha1, const char *path, struct stat *st, int write_object); diff --git a/dir.c b/dir.c index 133f472..5815b64 100644 --- a/dir.c +++ b/dir.c @@ -1071,3 +1071,21 @@ int remove_path(const char *name) return 0; } +int init_pathspec(struct pathspec *pathspec, const char **paths) +{ + const char **p = paths; + + memset(pathspec, 0, sizeof(*pathspec)); + if (!p) + return 0; + while (*p) + p++; + pathspec->raw = paths; + pathspec->nr = p - paths; + return 0; +} + +void free_pathspec(struct pathspec *pathspec) +{ + /* do nothing */ +} -- 1.7.1.rc1.70.g788ca -- 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