GNU Linux-libre 4.19.264-gnu1
[releases.git] / tools / perf / util / ctype.c
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         ".....................................................................";