Re: [PATCH v1 23/45] check-ignore: convert to use parse_pathspec
From: Adam Spiers <hidden>
Date: 2016-06-15 22:56:49
On Sat, Apr 13, 2013 at 09:09:33AM +1000, Duy Nguyen wrote:
On Sat, Apr 13, 2013 at 1:03 AM, Adam Spiers [off-list ref] wrote:quoted
quoted
-static int check_ignore(const char *prefix, const char **pathspec) +static int check_ignore(int argc, const char **argv, const char *prefix) { struct dir_struct dir; - const char *path, *full_path; char *seen; int num_ignored = 0, dtype = DT_UNKNOWN, i; struct path_exclude_check check; struct exclude *exclude; + struct pathspec pathspec; /* read_cache() is only necessary so we can watch out for submodules. */ if (read_cache() < 0)@@ -70,31 +70,39 @@ static int check_ignore(const char *prefix, const char **pathspec) dir.flags |= DIR_COLLECT_IGNORED; setup_standard_excludes(&dir); - if (!pathspec || !*pathspec) { + if (!argc) {Is there a compelling reason for introducing argc as a new parameter to check_ignore(), other than simplifying the above line? And why rename the pathspec parameter to argv? Both these changes are misleading AFAICS, since paths provided to check_ignore() can come from sources other than CLI arguments (i.e. via --stdin).Because I introduced "struct pathspec pathspec;" I need to rename the argument "pathspec" to something else.
Ah, I see - that makes sense :-)
Maybe we could rename the argument to "paths"?
Sounds fine to me.
quoted
The introduction of argc also makes it possible to invoke check_ignore() with arguments which are not self-consistent.This is the same problem with main()
How could main() be invoked with argc inconsistent with argv?
and other places that follow this convention. But I don't mind dropping argc either.
What is the reason for that convention? I'm willing to be persuaded either way.