summaryrefslogtreecommitdiff
path: root/dir.c
diff options
context:
space:
mode:
authorBrandon Casey <casey@nrlssc.navy.mil>2008-08-28 17:47:22 -0500
committerJunio C Hamano <gitster@pobox.com>2008-08-28 21:49:51 -0700
commit63e8aea74e992bd8667e35a0e646110acc1f0d7c (patch)
tree58acf6bbde6c04d76920403349c60c5609306872 /dir.c
parent1b0f7978ddb9e2ed4437ce68a4b82ab831288a41 (diff)
downloadgit-63e8aea74e992bd8667e35a0e646110acc1f0d7c.tar.gz
dir.c: Avoid c99 array initialization
The following syntax: char foo[] = { [0] = 1, [7] = 2, [15] = 3 }; is a c99 construct which some compilers do not support even though they support other c99 constructs. This construct can be avoided by folding these 'special' test cases into the sane_ctype array and making use of the related infrastructure. Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'dir.c')
-rw-r--r--dir.c14
1 files changed, 2 insertions, 12 deletions
diff --git a/dir.c b/dir.c
index 92452eb5ef..acf1001c4f 100644
--- a/dir.c
+++ b/dir.c
@@ -52,11 +52,6 @@ int common_prefix(const char **pathspec)
return prefix;
}
-static inline int special_char(unsigned char c1)
-{
- return !c1 || c1 == '*' || c1 == '[' || c1 == '?' || c1 == '\\';
-}
-
/*
* Does 'match' matches the given name?
* A match is found if
@@ -80,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 (special_char(c1))
+ if (isspecial(c1))
break;
if (c1 != c2)
return 0;
@@ -680,17 +675,12 @@ static int cmp_name(const void *p1, const void *p2)
*/
static int simple_length(const char *match)
{
- const char special[256] = {
- [0] = 1, ['?'] = 1,
- ['\\'] = 1, ['*'] = 1,
- ['['] = 1
- };
int len = -1;
for (;;) {
unsigned char c = *match++;
len++;
- if (special[c])
+ if (isspecial(c))
return len;
}
}