1 // SPDX-License-Identifier: GPL-2.0 2 /* 3 * Sane locale-independent, ASCII ctype. 4 * 5 * No surprises, and works with signed and unsigned chars. 6 */ 7 #include "sane_ctype.h" 8 9 enum { 10 S = GIT_SPACE, 11 A = GIT_ALPHA, 12 D = GIT_DIGIT, 13 G = GIT_GLOB_SPECIAL, /* *, ?, [, \\ */ 14 R = GIT_REGEX_SPECIAL, /* $, (, ), +, ., ^, {, | * */ 15 P = GIT_PRINT_EXTRA, /* printable - alpha - digit - glob - regex */ 16 17 PS = GIT_SPACE | GIT_PRINT_EXTRA, 18 }; 19 20 unsigned char sane_ctype[256] = { 21 /* 0 1 2 3 4 5 6 7 8 9 A B C D E F */ 22 23 0, 0, 0, 0, 0, 0, 0, 0, 0, S, S, 0, 0, S, 0, 0, /* 0.. 15 */ 24 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 16.. 31 */ 25 PS,P, P, P, R, P, P, P, R, R, G, R, P, P, R, P, /* 32.. 47 */ 26 D, D, D, D, D, D, D, D, D, D, P, P, P, P, P, G, /* 48.. 63 */ 27 P, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, /* 64.. 79 */ 28 A, A, A, A, A, A, A, A, A, A, A, G, G, P, R, P, /* 80.. 95 */ 29 P, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, /* 96..111 */ 30 A, A, A, A, A, A, A, A, A, A, A, R, R, P, P, 0, /* 112..127 */ 31 /* Nothing in the 128.. range */ 32 }; 33 34 const char *graph_line = 35 "_____________________________________________________________________" 36 "_____________________________________________________________________" 37 "_____________________________________________________________________"; 38 const char *graph_dotted_line = 39 "---------------------------------------------------------------------" 40 "---------------------------------------------------------------------" 41 "---------------------------------------------------------------------"; 42 const char *spaces = 43 " " 44 " " 45 " "; 46 const char *dots = 47 "....................................................................." 48 "....................................................................." 49 "....................................................................."; 50