blob: 7ee64c7d77dd4a5665f70d80ffba1bcdecb9a408 [file] [log] [blame]
Linus Torvalds45467382005-10-13 11:03:18 -07001/*
2 * Sane locale-independent, ASCII ctype.
3 *
4 * No surprises, and works with signed and unsigned chars.
5 */
6#include "cache.h"
7
René Scharfec841aa82009-01-17 16:50:29 +01008enum {
9 S = GIT_SPACE,
10 A = GIT_ALPHA,
11 D = GIT_DIGIT,
René Scharfe8cc32992009-01-17 16:50:34 +010012 G = GIT_GLOB_SPECIAL, /* *, ?, [, \\ */
René Scharfe1087aba2009-05-01 22:03:07 +020013 R = GIT_REGEX_SPECIAL, /* $, (, ), +, ., ^, {, | */
René Scharfec841aa82009-01-17 16:50:29 +010014};
Linus Torvalds45467382005-10-13 11:03:18 -070015
16unsigned char sane_ctype[256] = {
René Scharfe8cc32992009-01-17 16:50:34 +010017 0, 0, 0, 0, 0, 0, 0, 0, 0, S, S, 0, 0, S, 0, 0, /* 0.. 15 */
René Scharfec841aa82009-01-17 16:50:29 +010018 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 16.. 31 */
René Scharfef9b7cce2009-01-17 16:50:37 +010019 S, 0, 0, 0, R, 0, 0, 0, R, R, G, R, 0, 0, R, 0, /* 32.. 47 */
René Scharfec841aa82009-01-17 16:50:29 +010020 D, D, D, D, D, D, D, D, D, D, 0, 0, 0, 0, 0, G, /* 48.. 63 */
21 0, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, /* 64.. 79 */
René Scharfef9b7cce2009-01-17 16:50:37 +010022 A, A, A, A, A, A, A, A, A, A, A, G, G, 0, R, 0, /* 80.. 95 */
René Scharfec841aa82009-01-17 16:50:29 +010023 0, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, /* 96..111 */
René Scharfef9b7cce2009-01-17 16:50:37 +010024 A, A, A, A, A, A, A, A, A, A, A, R, R, 0, 0, 0, /* 112..127 */
Linus Torvalds45467382005-10-13 11:03:18 -070025 /* Nothing in the 128.. range */
26};