On Wed, Jan 11, 2012 at 7:33 PM, Nguyen Thai Ngoc Duy <pclouds@xxxxxxxxx> wrote: > Still scratching my head why this flag is zero by default, which would > affect all other places.. Or perhaps the right fix would be this > instead Yep, it seems the right one. recursive flag is introduced to enable/disable max_depth feature, which is only used by grep, so we want this feature to be off by default. max_depth == 0 has special meaning, and we do not want another any other kind of initialization but memset(), so "recursive" functions as the feature switch. The code portions below deal with the case where we have tried and failed prefix matching. Because this is wildcard, we don't know if anything in the given directory may match or not, so we match all directories, then filter unmatched files out at the end. This has nothing to do with "recursive" flag as the max_depth switch. Will think about it and test some more tomorrow when my mind is in better state. > diff --git a/tree-walk.c b/tree-walk.c > index f82dba6..0345938 100644 > --- a/tree-walk.c > +++ b/tree-walk.c > @@ -634,7 +634,7 @@ enum interesting tree_entry_interesting(const > struct name_entry *entry, > * Match all directories. We'll try to > * match files later on. > */ > - if (ps->recursive && S_ISDIR(entry->mode)) > + if (S_ISDIR(entry->mode)) > return entry_interesting; > } > > @@ -662,7 +662,7 @@ match_wildcards: > * Match all directories. We'll try to match files > * later on. > */ > - if (ps->recursive && S_ISDIR(entry->mode)) > + if (S_ISDIR(entry->mode)) > return entry_interesting; > } > return never_interesting; /* No matches */ -- Duy -- 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