File Coverage

hoedown/src/html_blocks.c
Criterion Covered Total %
statement 0 39 0.0
branch 0 16 0.0
condition n/a
subroutine n/a
pod n/a
total 0 55 0.0


line stmt bran cond sub pod time code
1             /* ANSI-C code produced by gperf version 3.0.3 */
2             /* Command-line: gperf -L ANSI-C -N hoedown_find_block_tag -c -C -E -S 1 --ignore-case -m100 html_block_names.gperf */
3             /* Computed positions: -k'1-2' */
4              
5             #if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \
6             && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \
7             && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \
8             && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \
9             && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \
10             && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \
11             && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \
12             && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \
13             && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \
14             && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \
15             && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \
16             && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \
17             && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \
18             && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \
19             && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \
20             && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \
21             && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \
22             && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \
23             && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \
24             && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \
25             && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \
26             && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \
27             && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126))
28             /* The character set is not based on ISO-646. */
29             #error "gperf generated tables don't work with this execution character set. Please report a bug to ."
30             #endif
31              
32             /* maximum key range = 24, duplicates = 0 */
33              
34             #ifndef GPERF_DOWNCASE
35             #define GPERF_DOWNCASE 1
36             static unsigned char gperf_downcase[256] =
37             {
38             0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
39             15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
40             30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
41             45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
42             60, 61, 62, 63, 64, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106,
43             107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
44             122, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
45             105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
46             120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
47             135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
48             150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
49             165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179,
50             180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194,
51             195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209,
52             210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224,
53             225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
54             240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254,
55             255
56             };
57             #endif
58              
59             #ifndef GPERF_CASE_STRNCMP
60             #define GPERF_CASE_STRNCMP 1
61             static int
62             gperf_case_strncmp (register const char *s1, register const char *s2, register unsigned int n)
63             {
64 0 0         for (; n > 0;)
65             {
66 0           unsigned char c1 = gperf_downcase[(unsigned char)*s1++];
67 0           unsigned char c2 = gperf_downcase[(unsigned char)*s2++];
68 0 0         if (c1 != 0 && c1 == c2)
69             {
70 0           n--;
71 0           continue;
72             }
73 0           return (int)c1 - (int)c2;
74             }
75             return 0;
76             }
77             #endif
78              
79             #ifdef __GNUC__
80             __inline
81             #else
82             #ifdef __cplusplus
83             inline
84             #endif
85             #endif
86             static unsigned int
87             hash (register const char *str, register unsigned int len)
88             {
89             static const unsigned char asso_values[] =
90             {
91             25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
92             25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
93             25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
94             25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
95             25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
96             22, 21, 19, 18, 16, 0, 25, 25, 25, 25,
97             25, 25, 25, 25, 25, 25, 1, 25, 0, 25,
98             1, 0, 0, 13, 0, 25, 25, 11, 2, 1,
99             0, 25, 25, 5, 0, 2, 25, 25, 25, 25,
100             25, 25, 25, 25, 25, 25, 25, 25, 1, 25,
101             0, 25, 1, 0, 0, 13, 0, 25, 25, 11,
102             2, 1, 0, 25, 25, 5, 0, 2, 25, 25,
103             25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
104             25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
105             25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
106             25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
107             25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
108             25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
109             25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
110             25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
111             25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
112             25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
113             25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
114             25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
115             25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
116             25, 25, 25, 25, 25, 25, 25
117             };
118 0           register int hval = (int)len;
119              
120 0 0         switch (hval)
121             {
122             default:
123 0           hval += asso_values[(unsigned char)str[1]+1];
124             /*FALLTHROUGH*/
125             case 1:
126 0           hval += asso_values[(unsigned char)str[0]];
127             break;
128             }
129             return hval;
130             }
131              
132             #ifdef __GNUC__
133             __inline
134             #ifdef __GNUC_STDC_INLINE__
135             __attribute__ ((__gnu_inline__))
136             #endif
137             #endif
138             const char *
139 0           hoedown_find_block_tag (register const char *str, register unsigned int len)
140             {
141             enum
142             {
143             TOTAL_KEYWORDS = 24,
144             MIN_WORD_LENGTH = 1,
145             MAX_WORD_LENGTH = 10,
146             MIN_HASH_VALUE = 1,
147             MAX_HASH_VALUE = 24
148             };
149              
150 0 0         if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
151             {
152             register int key = hash (str, len);
153              
154 0 0         if (key <= MAX_HASH_VALUE && key >= MIN_HASH_VALUE)
155             {
156             register const char *resword;
157              
158 0           switch (key - 1)
159             {
160             case 0:
161             resword = "p";
162             goto compare;
163             case 1:
164             resword = "h6";
165 0           goto compare;
166             case 2:
167             resword = "div";
168 0           goto compare;
169             case 3:
170             resword = "del";
171 0           goto compare;
172             case 4:
173             resword = "form";
174 0           goto compare;
175             case 5:
176             resword = "table";
177 0           goto compare;
178             case 6:
179             resword = "figure";
180 0           goto compare;
181             case 7:
182             resword = "pre";
183 0           goto compare;
184             case 8:
185             resword = "fieldset";
186 0           goto compare;
187             case 9:
188             resword = "noscript";
189 0           goto compare;
190             case 10:
191             resword = "script";
192 0           goto compare;
193             case 11:
194             resword = "style";
195 0           goto compare;
196             case 12:
197             resword = "dl";
198 0           goto compare;
199             case 13:
200             resword = "ol";
201 0           goto compare;
202             case 14:
203             resword = "ul";
204 0           goto compare;
205             case 15:
206             resword = "math";
207 0           goto compare;
208             case 16:
209             resword = "ins";
210 0           goto compare;
211             case 17:
212             resword = "h5";
213 0           goto compare;
214             case 18:
215             resword = "iframe";
216 0           goto compare;
217             case 19:
218             resword = "h4";
219 0           goto compare;
220             case 20:
221             resword = "h3";
222 0           goto compare;
223             case 21:
224             resword = "blockquote";
225 0           goto compare;
226             case 22:
227             resword = "h2";
228 0           goto compare;
229             case 23:
230             resword = "h1";
231 0           goto compare;
232             }
233             return 0;
234             compare:
235 0 0         if ((((unsigned char)*str ^ (unsigned char)*resword) & ~32) == 0 && !gperf_case_strncmp (str, resword, len) && resword[len] == '\0')
    0          
    0          
236             return resword;
237             }
238             }
239             return 0;
240             }