diff options
authorMatheus Tavares <>2021-05-06 19:33:15 (GMT)
committerJunio C Hamano <>2021-05-06 22:48:11 (GMT)
commit3a7f0908b6d698ab1287840ea604111c28a67a61 (patch)
parent6ff7f460394745395f3eec1e414ad2300c6a402f (diff)
clean: remove unnecessary variable
The variable `matches` used to hold the return of a `dir_path_match()` call that was removed in 95c11ecc73 ("Fix error-prone fill_directory() API; make it only return matches", 2020-04-01). Now `matches` will always hold 0, which is the value it's initialized with; and the condition `matches != MATCHED_EXACTLY` will always evaluate to true. So let's remove this unnecessary variable. Interestingly, it seems that `matches != MATCHED_EXACTLY` was already unnecessary before 95c11ecc73. That's because `remove_directories` is always set to 1 when we have pathspecs; So, in the condition `!remove_directories && matches != MATCHED_EXACTLY`, we would either: - have pathspecs (or have been given `-d`) and ignore `matches` because `remove_directories` is 1; or - not have pathspecs (nor `-d`) and end up just checking that `0 != MATCHED_EXACTLY`, as `matches` would never get reassigned after its zero initialization (because there is no pathspec to match). Signed-off-by: Matheus Tavares <> Reviewed-by: Elijah Newren <> Signed-off-by: Junio C Hamano <>
1 files changed, 1 insertions, 3 deletions
diff --git a/builtin/clean.c b/builtin/clean.c
index 4ca12bc..e3046b9 100644
--- a/builtin/clean.c
+++ b/builtin/clean.c
@@ -976,7 +976,6 @@ int cmd_clean(int argc, const char **argv, const char *prefix)
for (i = 0; i <; i++) {
struct dir_entry *ent = dir.entries[i];
- int matches = 0;
struct stat st;
const char *rel;
@@ -986,8 +985,7 @@ int cmd_clean(int argc, const char **argv, const char *prefix)
if (lstat(ent->name, &st))
die_errno("Cannot lstat '%s'", ent->name);
- if (S_ISDIR(st.st_mode) && !remove_directories &&
- matches != MATCHED_EXACTLY)
+ if (S_ISDIR(st.st_mode) && !remove_directories)
rel = relative_path(ent->name, prefix, &buf);