1 /* ANSI-C code produced by gperf version 3.0.3 */
2 /* Command-line: gperf -n --multiple-iterations 64 --output formats.c ../tools/formats.gperf  */
3 /* Computed positions: -k'1-4' */
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 <bug-gnu-gperf@gnu.org>."
30 #endif
31 
32 #line 1 "../tools/formats.gperf"
33 
34 
35 #include "gliv.h"
36 #include "formats.h"
37 
38 #include <string.h>
39 
40 #define TOTAL_KEYWORDS 29
41 #define MIN_WORD_LENGTH 1
42 #define MAX_WORD_LENGTH 5
43 #define MIN_HASH_VALUE 0
44 #define MAX_HASH_VALUE 28
45 /* maximum key range = 29, duplicates = 0 */
46 
47 #ifndef GPERF_DOWNCASE
48 #define GPERF_DOWNCASE 1
49 static unsigned char gperf_downcase[256] =
50   {
51       0,   1,   2,   3,   4,   5,   6,   7,   8,   9,  10,  11,  12,  13,  14,
52      15,  16,  17,  18,  19,  20,  21,  22,  23,  24,  25,  26,  27,  28,  29,
53      30,  31,  32,  33,  34,  35,  36,  37,  38,  39,  40,  41,  42,  43,  44,
54      45,  46,  47,  48,  49,  50,  51,  52,  53,  54,  55,  56,  57,  58,  59,
55      60,  61,  62,  63,  64,  97,  98,  99, 100, 101, 102, 103, 104, 105, 106,
56     107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
57     122,  91,  92,  93,  94,  95,  96,  97,  98,  99, 100, 101, 102, 103, 104,
58     105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
59     120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
60     135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
61     150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
62     165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179,
63     180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194,
64     195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209,
65     210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224,
66     225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
67     240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254,
68     255
69   };
70 #endif
71 
72 #ifndef GPERF_CASE_STRCMP
73 #define GPERF_CASE_STRCMP 1
74 static int
gperf_case_strcmp(register const char * s1,register const char * s2)75 gperf_case_strcmp (register const char *s1, register const char *s2)
76 {
77   for (;;)
78     {
79       unsigned char c1 = gperf_downcase[(unsigned char)*s1++];
80       unsigned char c2 = gperf_downcase[(unsigned char)*s2++];
81       if (c1 != 0 && c1 == c2)
82         continue;
83       return (int)c1 - (int)c2;
84     }
85 }
86 #endif
87 
88 #ifdef __GNUC__
89 __inline
90 #else
91 #ifdef __cplusplus
92 inline
93 #endif
94 #endif
95 static unsigned int
hash(register const char * str,register unsigned int len)96 hash (register const char *str, register unsigned int len)
97 {
98   static const unsigned char asso_values[] =
99     {
100       29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
101       29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
102       29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
103       29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
104       29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
105       29, 18, 29, 29, 29, 29, 29, 29, 29, 29,
106       29, 29, 29, 29, 29, 13,  9,  0, 29, 29,
107        2,  4, 11,  0,  8, 29,  9, 11,  2, 29,
108        0,  6,  8,  0,  3, 22,  6, 10,  1, 15,
109        1, 29, 29, 29, 29, 29, 29, 13,  9,  0,
110       29, 29,  2,  4, 11,  0,  8, 29,  9, 11,
111        2, 29,  0,  6,  8,  0,  3, 22,  6, 10,
112        1, 15,  1, 29, 29, 29, 29, 29, 29, 29,
113       29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
114       29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
115       29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
116       29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
117       29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
118       29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
119       29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
120       29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
121       29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
122       29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
123       29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
124       29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
125       29, 29, 29, 29, 29, 29, 29
126     };
127   register int hval = 0;
128 
129   switch (len)
130     {
131       default:
132         hval += asso_values[(unsigned char)str[3]];
133       /*FALLTHROUGH*/
134       case 3:
135         hval += asso_values[(unsigned char)str[2]+1];
136       /*FALLTHROUGH*/
137       case 2:
138         hval += asso_values[(unsigned char)str[1]];
139       /*FALLTHROUGH*/
140       case 1:
141         hval += asso_values[(unsigned char)str[0]];
142         break;
143     }
144   return hval;
145 }
146 
147 #ifdef __GNUC__
148 __inline
149 #ifdef __GNUC_STDC_INLINE__
150 __attribute__ ((__gnu_inline__))
151 #endif
152 #endif
153 const struct format *
ext_to_loader(register const char * str,register unsigned int len)154 ext_to_loader (register const char *str, register unsigned int len)
155 {
156   static const struct format wordlist[] =
157     {
158 #line 26 "../tools/formats.gperf"
159       {"ico",   LOADER_PIXBUF},
160 #line 47 "../tools/formats.gperf"
161       {"z",     LOADER_DECOMP},
162 #line 35 "../tools/formats.gperf"
163       {"ppm",   LOADER_PIXBUF},
164 #line 46 "../tools/formats.gperf"
165       {"xpm",   LOADER_PIXBUF},
166 #line 34 "../tools/formats.gperf"
167       {"pnm",   LOADER_PIXBUF},
168 #line 25 "../tools/formats.gperf"
169       {"gz",    LOADER_DECOMP},
170 #line 31 "../tools/formats.gperf"
171       {"pgm",   LOADER_PIXBUF},
172 #line 41 "../tools/formats.gperf"
173       {"tif",   LOADER_PIXBUF},
174 #line 23 "../tools/formats.gperf"
175       {"gif",   LOADER_PIXBUF},
176 #line 42 "../tools/formats.gperf"
177       {"tiff",  LOADER_PIXBUF},
178 #line 27 "../tools/formats.gperf"
179       {"jpe",   LOADER_PIXBUF},
180 #line 30 "../tools/formats.gperf"
181       {"pbm",   LOADER_PIXBUF},
182 #line 45 "../tools/formats.gperf"
183       {"xbm",   LOADER_PIXBUF},
184 #line 33 "../tools/formats.gperf"
185       {"png",   LOADER_PIXBUF},
186 #line 28 "../tools/formats.gperf"
187       {"jpeg",  LOADER_PIXBUF},
188 #line 32 "../tools/formats.gperf"
189       {"pcx",   LOADER_PIXBUF},
190 #line 40 "../tools/formats.gperf"
191       {"tga",   LOADER_PIXBUF},
192 #line 37 "../tools/formats.gperf"
193       {"svg",   LOADER_PIXBUF},
194 #line 38 "../tools/formats.gperf"
195       {"svgz",  LOADER_PIXBUF},
196 #line 29 "../tools/formats.gperf"
197       {"jpg",   LOADER_PIXBUF},
198 #line 39 "../tools/formats.gperf"
199       {"targa", LOADER_PIXBUF},
200 #line 43 "../tools/formats.gperf"
201       {"wbmp",  LOADER_PIXBUF},
202 #line 22 "../tools/formats.gperf"
203       {"cur",   LOADER_PIXBUF},
204 #line 19 "../tools/formats.gperf"
205       {"ani",   LOADER_PIXBUF},
206 #line 36 "../tools/formats.gperf"
207       {"ras",   LOADER_PIXBUF},
208 #line 44 "../tools/formats.gperf"
209       {"wmf",   LOADER_PIXBUF},
210 #line 20 "../tools/formats.gperf"
211       {"bmp",   LOADER_PIXBUF},
212 #line 24 "../tools/formats.gperf"
213       {"gliv",  LOADER_DOT_GLIV},
214 #line 21 "../tools/formats.gperf"
215       {"bz2",   LOADER_DECOMP}
216     };
217 
218   if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
219     {
220       register int key = hash (str, len);
221 
222       if (key <= MAX_HASH_VALUE && key >= 0)
223         {
224           register const char *s = wordlist[key].name;
225 
226           if ((((unsigned char)*str ^ (unsigned char)*s) & ~32) == 0 && !gperf_case_strcmp (str, s))
227             return &wordlist[key];
228         }
229     }
230   return 0;
231 }
232