On Wed, Jan 11, 2012 at 7:33 PM, Nguyen Thai Ngoc Duy [off-list ref] 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.
quoted hunk ↗ jump to hunk
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