struct archiver_context context;
struct unpack_trees_options opts;
struct tree_desc t;
+ struct pathspec pathspec;
int err;
if (args->baselen > 0 && args->base[args->baselen - 1] == '/') {
git_attr_set_direction(GIT_ATTR_INDEX, &the_index);
}
- err = read_tree_recursive(args->tree, "", 0, 0, args->pathspec,
+ init_pathspec(&pathspec, args->pathspec);
+ err = read_tree_recursive(args->tree, "", 0, 0, &pathspec,
write_archive_entry, &context);
+ free_pathspec(&pathspec);
if (err == READ_TREE_RECURSIVE)
err = 0;
return err;
static int path_exists(struct tree *tree, const char *path)
{
- const char *pathspec[] = { path, NULL };
-
- if (read_tree_recursive(tree, "", 0, 0, pathspec, reject_entry, NULL))
- return 1;
- return 0;
+ const char *paths[] = { path, NULL };
+ struct pathspec pathspec;
+ int ret;
+
+ init_pathspec(&pathspec, paths);
+ ret = read_tree_recursive(tree, "", 0, 0, &pathspec, reject_entry, NULL);
+ free_pathspec(&pathspec);
+ return ret != 0;
}
static void parse_pathspec_arg(const char **pathspec,