path: root/dir.c
diff options
authorRené Scharfe <>2009-01-17 15:50:34 (GMT)
committerJunio C Hamano <>2009-01-18 02:30:37 (GMT)
commit8cc32992624ed4140fb136d98675f0f19b20ba09 (patch)
tree4b6b3164c5fd4dce658f5b08c86cc337853d7373 /dir.c
parentc841aa8b903200f5d7830c7c4ab8d62b5ef44c5c (diff)
Change NUL char handling of isspecial()
Replace isspecial() by the new macro is_glob_special(), which is more, well, specialized. The former included the NUL char in its character class, while the letter only included characters that are special to file name globbing. The new name contains underscores because they enhance readability considerably now that it's made up of three words. Renaming the function is necessary to document its changed scope. The call sites of isspecial() are updated to check explicitly for NUL. Signed-off-by: Rene Scharfe <> Signed-off-by: Junio C Hamano <>
Diffstat (limited to 'dir.c')
1 files changed, 2 insertions, 2 deletions
diff --git a/dir.c b/dir.c
index 0131983d..7ae1e2e 100644
--- a/dir.c
+++ b/dir.c
@@ -75,7 +75,7 @@ static int match_one(const char *match, const char *name, int namelen)
for (;;) {
unsigned char c1 = *match;
unsigned char c2 = *name;
- if (isspecial(c1))
+ if (c1 == '\0' || is_glob_special(c1))
if (c1 != c2)
return 0;
@@ -680,7 +680,7 @@ static int simple_length(const char *match)
for (;;) {
unsigned char c = *match++;
- if (isspecial(c))
+ if (c == '\0' || is_glob_special(c))
return len;