Re: [PATCH 3/3] diff-index: pass pathspec down to unpack-trees machinery
- From
Nguyen Thai Ngoc Duy <pclouds@gmail.com>
- Date
- Jan 11, 2012, 12:47 UTC
- Message-ID
- <CACsJy8DvVoS9Uz94DhkC1+wTOyLRpewp5=0fU4JKqSSQh6VS-A@mail.gmail.com>
- In-Reply-To
- <CACsJy8D7EnOebAxBYF8ua7htu-81nKY=ghUMgg=JOe4Fc1uigQ@mail.gmail.com>
On Wed, Jan 11, 2012 at 7:33 PM, Nguyen Thai Ngoc Duy <pclouds@gmail.com> 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.
Show 23 quoted lines
> 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