1 /* C code produced by gperf version 2.7.2 */
2 /* Command-line: gperf --struct-type --omit-struct-type --key-positions=2,3 --size-multiple=2 --duplicates --lookup-fn-name=ext_to_loader --readonly-tables ../tools/formats.gperf */
6 #include <string.h> /* strcmp(), strlen() */
9 #define TOTAL_KEYWORDS 93
10 #define MIN_WORD_LENGTH 2
11 #define MAX_WORD_LENGTH 5
12 #define MIN_HASH_VALUE 2
13 #define MAX_HASH_VALUE 393
14 /* maximum key range = 392, duplicates = 21 */
25 register const char *str
;
26 register unsigned int len
;
28 static const unsigned short asso_values
[] =
30 394, 394, 394, 394, 394, 394, 394, 394, 394, 394,
31 394, 394, 394, 394, 394, 394, 394, 394, 394, 394,
32 394, 394, 394, 394, 394, 394, 394, 394, 394, 394,
33 394, 394, 394, 394, 394, 394, 394, 394, 394, 394,
34 394, 394, 394, 394, 394, 394, 394, 394, 394, 394,
35 210, 394, 394, 394, 394, 0, 394, 394, 394, 394,
36 394, 394, 394, 394, 394, 394, 394, 394, 394, 394,
37 394, 394, 394, 394, 394, 394, 394, 394, 394, 394,
38 394, 394, 394, 394, 394, 394, 394, 394, 394, 394,
39 394, 394, 394, 394, 394, 394, 394, 225, 195, 30,
40 165, 35, 50, 70, 394, 110, 394, 394, 55, 25,
41 130, 110, 0, 394, 394, 60, 3, 0, 105, 205,
42 10, 5, 20, 394, 394, 394, 394, 394, 394, 394,
43 394, 394, 394, 394, 394, 394, 394, 394, 394, 394,
44 394, 394, 394, 394, 394, 394, 394, 394, 394, 394,
45 394, 394, 394, 394, 394, 394, 394, 394, 394, 394,
46 394, 394, 394, 394, 394, 394, 394, 394, 394, 394,
47 394, 394, 394, 394, 394, 394, 394, 394, 394, 394,
48 394, 394, 394, 394, 394, 394, 394, 394, 394, 394,
49 394, 394, 394, 394, 394, 394, 394, 394, 394, 394,
50 394, 394, 394, 394, 394, 394, 394, 394, 394, 394,
51 394, 394, 394, 394, 394, 394, 394, 394, 394, 394,
52 394, 394, 394, 394, 394, 394, 394, 394, 394, 394,
53 394, 394, 394, 394, 394, 394, 394, 394, 394, 394,
54 394, 394, 394, 394, 394, 394, 394, 394, 394, 394,
55 394, 394, 394, 394, 394, 394
57 register int hval
= len
;
63 hval
+= asso_values
[(unsigned char)str
[2]];
65 hval
+= asso_values
[(unsigned char)str
[1]];
75 ext_to_loader (str
, len
)
76 register const char *str
;
77 register unsigned int len
;
79 static const struct format wordlist
[] =
81 {"p7", LOADER_NORMAL
},
82 {"ept", LOADER_NORMAL
},
83 {"iptc", LOADER_NORMAL
},
84 {"fpx", LOADER_NORMAL
},
85 {"gz", LOADER_DECOMP
},
86 {"bmp", LOADER_NORMAL
},
87 {"xpm", LOADER_NORMAL
},
88 {"ppm", LOADER_NORMAL
},
89 {"htm", LOADER_NORMAL
},
90 {"html", LOADER_NORMAL
},
91 {"jpc", LOADER_NORMAL
},
92 {"mpc", LOADER_NORMAL
},
93 {"cmyk", LOADER_NORMAL
},
94 {"sct", LOADER_NORMAL
},
95 {"jpe", LOADER_NORMAL
},
96 {"jpeg", LOADER_NORMAL
},
97 {"dcx", LOADER_NORMAL
},
98 {"pcx", LOADER_NORMAL
},
99 {"ttf", LOADER_NORMAL
},
100 {"dcm", LOADER_NORMAL
},
101 {"gplt", LOADER_NORMAL
},
102 {"ps", LOADER_NORMAL
},
103 {"eps", LOADER_NORMAL
},
104 {"eps2", LOADER_NORMAL
},
105 {"epsi", LOADER_NORMAL
},
106 {"epsf", LOADER_NORMAL
},
107 {"jpg", LOADER_NORMAL
},
108 {"wpg", LOADER_NORMAL
},
109 {"hpgl", LOADER_NORMAL
},
110 {"emf", LOADER_NORMAL
},
111 {"wmf", LOADER_NORMAL
},
112 {"xcf", LOADER_NORMAL
},
113 {"pcl", LOADER_NORMAL
},
114 {"rle", LOADER_NORMAL
},
115 {"cgm", LOADER_NORMAL
},
116 {"pgm", LOADER_NORMAL
},
117 {"iff", LOADER_NORMAL
},
118 {"yuv", LOADER_NORMAL
},
119 {"mtv", LOADER_NORMAL
},
120 {"epi", LOADER_NORMAL
},
121 {"dot", LOADER_NORMAL
},
122 {"fits", LOADER_NORMAL
},
123 {"pix", LOADER_NORMAL
},
124 {"sun", LOADER_NORMAL
},
125 {"tim", LOADER_NORMAL
},
126 {"ico", LOADER_NORMAL
},
127 {"pict", LOADER_NORMAL
},
128 {"dicom", LOADER_NORMAL
},
129 {"vicar", LOADER_NORMAL
},
130 {"bie", LOADER_NORMAL
},
131 {"pnm", LOADER_NORMAL
},
132 {"gif", LOADER_NORMAL
},
133 {"tif", LOADER_NORMAL
},
134 {"jif", LOADER_NORMAL
},
135 {"miff", LOADER_NORMAL
},
136 {"viff", LOADER_NORMAL
},
137 {"tiff", LOADER_NORMAL
},
138 {"avs", LOADER_NORMAL
},
139 {"epdf", LOADER_NORMAL
},
140 {"mvg", LOADER_NORMAL
},
141 {"svg", LOADER_NORMAL
},
142 {"fig", LOADER_NORMAL
},
143 {"sgi", LOADER_NORMAL
},
144 {"pcd", LOADER_NORMAL
},
145 {"jng", LOADER_NORMAL
},
146 {"png", LOADER_NORMAL
},
147 {"mng", LOADER_NORMAL
},
148 {"pwp", LOADER_NORMAL
},
149 {"jp2", LOADER_NORMAL
},
150 {"hdf", LOADER_NORMAL
},
151 {"pdf", LOADER_NORMAL
},
152 {"pbm", LOADER_NORMAL
},
153 {"xbm", LOADER_NORMAL
},
154 {"wbmp", LOADER_NORMAL
},
155 {"psd", LOADER_NORMAL
},
156 {"bz2", LOADER_DECOMP
},
157 {"fax", LOADER_NORMAL
},
158 {"ani", LOADER_NORMAL
},
159 {"pfb", LOADER_NORMAL
},
160 {"ilbm", LOADER_NORMAL
},
161 {"sfw", LOADER_NORMAL
},
162 {"rgb", LOADER_NORMAL
},
163 {"ps2", LOADER_NORMAL
},
164 {"pfa", LOADER_NORMAL
},
165 {"rla", LOADER_NORMAL
},
166 {"ras", LOADER_NORMAL
},
167 {"tga", LOADER_NORMAL
},
168 {"dib", LOADER_NORMAL
},
169 {"8bim", LOADER_NORMAL
},
170 {"jbig", LOADER_NORMAL
},
171 {"pdb", LOADER_NORMAL
},
172 {"xwd", LOADER_NORMAL
},
173 {"rad", LOADER_NORMAL
}
176 static const short lookup
[] =
178 -1, -1, 0, -1, -1, -1, 1, 2,
179 -1, -1, -1, -1, -1, 3, -1, -1,
180 -1, -1, -1, -1, -1, -1, 4, -1,
181 -1, -1, -1, -1, -123, -88, -3, 8,
182 9, -134, 12, -1, 13, -1, 14, 15,
183 -83, -2, -1, -138, -77, -2, -1, -1,
184 -1, -1, -1, -1, -1, -1, -1, -1,
185 18, -1, 19, 20, -1, -1, 21, 22,
186 -159, -70, -3, -1, -1, -1, -1, -1,
187 -1, -169, 28, -67, -2, -1, -173, -64,
188 -2, -1, -1, 31, -1, -1, -1, -1,
189 32, -1, -1, -1, -1, 33, -1, -1,
190 -1, -1, -193, -59, -2, -1, -1, 36,
191 -1, -1, -1, -1, 37, -1, -1, 38,
192 -1, 39, -1, -1, 40, 41, -1, -1,
193 -1, -1, -1, 42, -1, -1, -1, -1,
194 -1, -1, -1, -1, -1, 43, -1, -1,
195 -1, -1, 44, -1, -1, -1, -1, 45,
196 46, -240, -46, -2, 49, -1, -1, -1,
197 -1, -1, -1, -1, -1, -1, 50, -1,
198 -1, -1, -1, -264, -259, -39, -3, -1,
199 57, 58, -42, -3, -1, -1, -1, -1,
200 -1, -1, -273, -34, -2, -1, -1, -278,
201 -32, -2, -1, -1, -1, -1, -1, -1,
202 -1, -1, -1, -1, -1, -1, 63, -1,
203 -1, -1, -1, -298, -29, -3, -1, -1,
204 67, -1, -1, -1, -1, 68, -1, -1,
205 -1, -1, -313, -24, -2, -1, -1, -319,
206 73, -22, -2, -1, 74, -1, -1, -1,
207 -1, 75, -1, -1, -1, -1, 76, -1,
208 -1, -1, -1, 77, -1, -1, -1, -1,
209 78, -1, -1, -1, -1, -1, 79, -1,
210 -1, -1, 80, -1, -1, -1, -1, -1,
211 -1, -1, -1, -1, 81, -1, -1, -1,
212 -1, 82, -1, -1, -1, -1, 83, -1,
213 -1, -1, -1, 84, -1, -1, -1, -1,
214 85, -1, -1, -1, -1, -1, -1, -1,
215 -1, -1, 86, -1, -1, -1, -1, -1,
216 -1, -1, -1, -1, 87, -404, -5, -2,
217 -1, -1, -1, -1, -1, -1, -1, -1,
218 -1, -1, -1, -1, -1, -1, -1, -1,
219 -1, -1, -1, -1, -1, -1, -1, -1,
220 -1, -1, -1, -1, -1, -1, -1, -1,
221 -1, -1, -1, -1, -1, -1, -1, -1,
222 -1, -1, -1, -1, -1, -1, -1, -1,
223 -1, -1, -1, 90, -1, -1, -1, -1,
224 -1, -1, -1, -1, -1, 91, -1, -1,
225 -1, -1, -1, -1, -1, -1, -1, -1,
226 -1, -1, -1, -1, -1, -1, -1, -1,
230 if (len
<= MAX_WORD_LENGTH
&& len
>= MIN_WORD_LENGTH
)
232 register int key
= hash (str
, len
);
234 if (key
<= MAX_HASH_VALUE
&& key
>= 0)
236 register int index
= lookup
[key
];
240 register const char *s
= wordlist
[index
].name
;
242 if (*str
== *s
&& !strcmp (str
+ 1, s
+ 1))
243 return &wordlist
[index
];
245 else if (index
< -TOTAL_KEYWORDS
)
247 register int offset
= - 1 - TOTAL_KEYWORDS
- index
;
248 register const struct format
*wordptr
= &wordlist
[TOTAL_KEYWORDS
+ lookup
[offset
]];
249 register const struct format
*wordendptr
= wordptr
+ -lookup
[offset
+ 1];
251 while (wordptr
< wordendptr
)
253 register const char *s
= wordptr
->name
;
255 if (*str
== *s
&& !strcmp (str
+ 1, s
+ 1))