Nguyán ThÃi Ngác Duy <pclouds@xxxxxxxxx> writes: > Commit c84de70 (excluded_1(): support exclude files in index - > 2009-08-20) added support for excluded() where dtype can be NULL. It > was designed specifically for index matching because there was no > other way to extract dtype information from index. It did not support > wildcard matching (for example, "a*/" pattern would fail to match). > > The code was probably misread when commit 108da0d (git add: Add the > "--ignore-missing" option for the dry run - 2010-07-10) was made > because DT_UNKNOWN happens to be zero (NULL) too. > > Do not pass DT_UNKNOWN/NULL to excluded(), instead pass a pointer to a > variable that contains DT_UNKNOWN. The real dtype will be extracted > from worktree by excluded(), as expected. > > Signed-off-by: Nguyán ThÃi Ngác Duy <pclouds@xxxxxxxxx> > --- > I do not add tests for the "a*/" failure above because I plan > to fix it. Expect c84de70 will be reverted "soon" (in my timescale) > when sparse checkout can pass real dtype. > > builtin/add.c | 3 ++- > dir.c | 2 +- > 2 files changed, 3 insertions(+), 2 deletions(-) > > diff --git a/builtin/add.c b/builtin/add.c > index 56a4e0a..1a4672d 100644 > --- a/builtin/add.c > +++ b/builtin/add.c > @@ -446,7 +446,8 @@ int cmd_add(int argc, const char **argv, const char *prefix) > if (!seen[i] && pathspec[i][0] > && !file_exists(pathspec[i])) { > if (ignore_missing) { > - if (excluded(&dir, pathspec[i], DT_UNKNOWN)) > + int dtype = DT_UNKNOWN; > + if (excluded(&dir, pathspec[i], &dtype)) > dir_add_ignored(&dir, pathspec[i], strlen(pathspec[i])); > } else > die("pathspec '%s' did not match any files", > diff --git a/dir.c b/dir.c > index b2dfb69..c4bed66 100644 > --- a/dir.c > +++ b/dir.c > @@ -359,7 +359,7 @@ int excluded_from_list(const char *pathname, > int to_exclude = x->to_exclude; > > if (x->flags & EXC_FLAG_MUSTBEDIR) { > - if (!dtype) { > + if (dtype != NULL) { Hmm, are you sure about this part? > if (!prefixcmp(pathname, exclude) && > pathname[x->patternlen] == '/') > return to_exclude; > -- > 1.7.3.2.210.g045198 -- 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