Re: [PATCH v1 22/45] archive: convert to use parse_pathspec
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Mar 15, 2013, 17:56 UTC
- Message-ID
- <7vfvzwv96b.fsf@alter.siamese.dyndns.org>
- In-Reply-To
- <1363327620-29017-23-git-send-email-pclouds@gmail.com>
Nguyễn Thái Ngọc Duy <pclouds@gmail.com> writes:
Show 20 quoted lines
> @@ -232,11 +228,18 @@ static int path_exists(struct tree *tree, const char *path)
> static void parse_pathspec_arg(const char **pathspec,
> struct archiver_args *ar_args)
> {
> - ar_args->pathspec = pathspec = get_pathspec("", pathspec);
> + /*
> + * must be consistent with parse_pathspec in path_exists()
> + * Also if pathspec patterns are dependent, we're in big
> + * trouble as we test each one separately
> + */
> + parse_pathspec(&ar_args->pathspec, 0,
> + PATHSPEC_PREFER_FULL,
> + "", pathspec);
> if (pathspec) {
> while (*pathspec) {
> if (!path_exists(ar_args->tree, *pathspec))
> - die("path not found: %s", *pathspec);
> + die(_("pathspec '%s' did not match any files"), *pathspec);
> pathspec++;
> }You do not use ar_args->pathspec even though you used parse_pathspec() to grok it? What's the point of this change?
Show 23 quoted lines
> }
> diff --git a/archive.h b/archive.h
> index 895afcd..4a791e1 100644
> --- a/archive.h
> +++ b/archive.h
> @@ -1,6 +1,8 @@
> #ifndef ARCHIVE_H
> #define ARCHIVE_H
>
> +#include "pathspec.h"
> +
> struct archiver_args {
> const char *base;
> size_t baselen;
> @@ -8,7 +10,7 @@ struct archiver_args {
> const unsigned char *commit_sha1;
> const struct commit *commit;
> time_t time;
> - const char **pathspec;
> + struct pathspec pathspec;
> unsigned int verbose : 1;
> unsigned int worktree_attributes : 1;
> unsigned int convert : 1;