Code

clean up pathspec matching
authorClemens Buchacher <drizzd@aon.at>
Wed, 14 Jan 2009 14:54:34 +0000 (15:54 +0100)
committerJunio C Hamano <gitster@pobox.com>
Thu, 15 Jan 2009 03:18:37 +0000 (19:18 -0800)
If pathspec already matched exactly, it cannot match any more.
Originally, we had to continue anyways, because we did not
differentiate between exact, recursive and globbing matches.

Signed-off-by: Clemens Buchacher <drizzd@aon.at>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
dir.c

diff --git a/dir.c b/dir.c
index 0131983dfbc143ce5dae77e067663bb2e7d5f126..8b0e0fbaf750fcdda416a09a5d5af204f36561e9 100644 (file)
--- a/dir.c
+++ b/dir.c
@@ -118,7 +118,7 @@ int match_pathspec(const char **pathspec, const char *name, int namelen, int pre
 
        for (retval = 0; (match = *pathspec++) != NULL; seen++) {
                int how;
-               if (retval && *seen == MATCHED_EXACTLY)
+               if (*seen == MATCHED_EXACTLY)
                        continue;
                match += prefix;
                how = match_one(match, name, namelen);