summaryrefslogtreecommitdiff
path: root/ident.c
diff options
context:
space:
mode:
Diffstat (limited to 'ident.c')
-rw-r--r--ident.c26
1 files changed, 18 insertions, 8 deletions
diff --git a/ident.c b/ident.c
index 9ef636e..0fe81f6 100644
--- a/ident.c
+++ b/ident.c
@@ -58,14 +58,24 @@ static int add_raw(char *buf, int size, int offset, const char *str)
static int crud(unsigned char c)
{
- static const char crud_array[256] = {
- [0 ... 31] = 1,
- [' '] = 1,
- ['.'] = 1, [','] = 1,
- [':'] = 1, [';'] = 1,
- ['<'] = 1, ['>'] = 1,
- ['"'] = 1, ['\''] = 1,
- };
+ static char crud_array[256];
+ static int crud_array_initialized = 0;
+
+ if (!crud_array_initialized) {
+ int k;
+
+ for (k = 0; k <= 31; ++k) crud_array[k] = 1;
+ crud_array[' '] = 1;
+ crud_array['.'] = 1;
+ crud_array[','] = 1;
+ crud_array[':'] = 1;
+ crud_array[';'] = 1;
+ crud_array['<'] = 1;
+ crud_array['>'] = 1;
+ crud_array['"'] = 1;
+ crud_array['\''] = 1;
+ crud_array_initialized = 1;
+ }
return crud_array[c];
}