Download
nulleric
/Fix-a-Fork
/file_ext.c
(View History)
jcs This format is easier to maintain and should be faster. | Latest amendment: 34 on 2024-04-05 |
1 | /* |
2 | Copyright Eric Helgeson, jcs 2023-2024. |
3 | */ |
4 | // Simple file ext checks as fallback. |
5 | static const struct { |
6 | char *extension; |
7 | OSType type; |
8 | OSType creator; |
9 | } exttypes[] = { |
10 | { "1st", 'TEXT', 'ttxt' }, // Text Readme |
11 | { "669", '6669', 'SNPL' }, // 669 - MOD |
12 | { "8med", 'STrk', 'SCPL' }, // Amiga - OctaMed |
13 | { "8svx", '8SVX', 'SCPL' }, // Amiga - 8-bit |
14 | { "aif", 'AIFF', 'SCPL' }, // AIFF - Sound |
15 | { "aifc", 'AIFC', 'SCPL' }, // AIFF - Sound |
16 | { "aiff", 'AIFF', 'SCPL' }, // AIFF - Sound |
17 | { "al", 'ALAW', 'SCPL' }, // ALAW - Sound |
18 | { "ani", 'ANIi', 'GKON' }, // Animated - NeoChrome |
19 | { "apd", 'TEXT', 'ALD3' }, // Aldus - Printer |
20 | { "arc", 'mArc', 'SITx' }, // PC - ARChive |
21 | { "arj", 'BINA', 'DArj' }, // ARJ - Archive |
22 | { "arr", 'ARR ', 'GKON' }, // Amber - ARR |
23 | { "art", 'ART ', 'GKON' }, // First - Publisher |
24 | { "ascii", 'TEXT', 'ttxt' }, // ASCII - Text |
25 | { "asc", 'TEXT', 'ttxt' }, // ASCII - Text |
26 | { "asf", 'ASF_', 'Ms01' }, // Netshow - Player |
27 | { "asm", 'TEXT', 'ttxt' }, // Assembly - Source |
28 | { "asx", 'ASX_', 'Ms01' }, // Netshow - Player |
29 | { "a", 'TEXT', 'ttxt' }, // Assembly - Source |
30 | { "au", 'ULAW', 'TVOD' }, // Sun - Sound |
31 | { "avi", 'VfW ', 'TVOD' }, // AVI - Movie |
32 | { "bar", 'BARF', 'S691' }, // Unix - BAR |
33 | { "bas", 'TEXT', 'ttxt' }, // BASIC - Source |
34 | { "bat", 'TEXT', 'ttxt' }, // MS-DOS - Batch |
35 | { "bga", 'BMPp', 'ogle' }, // OS/2 - Bitmap |
36 | { "bib", 'TEXT', 'ttxt' }, // BibTex - Bibliography |
37 | { "binary", 'BINA', 'hDmp' }, // Untyped - Binary |
38 | { "bin", 'BINA', 'SITx' }, // MacBinary - StuffIt |
39 | { "bld", 'BLD ', 'GKON' }, // BLD - GraphicConverter |
40 | { "bmp", 'BMPp', 'ogle' }, // Windows - Bitmap |
41 | { "boo", 'TEXT', 'ttxt' }, // BOO - encoded |
42 | { "bst", 'TEXT', 'ttxt' }, // BibTex - Style |
43 | { "bum", '.bMp', 'GKON' }, // QuickTime - Importer(QuickDraw) |
44 | { "bw", 'SGI ', 'GKON' }, // SGI - Image |
45 | { "bz", 'Bzp2', 'SITx' }, // BZip2 - StuffIt |
46 | { "cel", 'CEL ', 'GKON' }, // KISS - CEL |
47 | { "cgm", 'CGMm', 'GKON' }, // Computer - Graphics |
48 | { "class", 'Clss', 'CWIE' }, // Java - Class |
49 | { "clp", 'CLPp', 'GKON' }, // Windows - Clipboard |
50 | { "cmd", 'TEXT', 'ttxt' }, // OS/2 - Batch |
51 | { "com", 'PCFA', 'SWIN' }, // MS-DOS - Executable |
52 | { "cpp", 'TEXT', 'CWIE' }, // C++ - Source |
53 | { "cp", 'TEXT', 'CWIE' }, // C++ - Source |
54 | { "cpt", 'PACT', 'SITx' }, // Compact - Pro |
55 | { "csv", 'TEXT', 'XCEL' }, // Comma - Separated |
56 | { "ct", '..CT', 'GKON' }, // Scitex-CT - GraphicConverter |
57 | { "c", 'TEXT', 'KAHL' }, // C - Source |
58 | { "cur", 'CUR ', 'GKON' }, // Windows - Cursor |
59 | { "cut", 'Halo', 'GKON' }, // Dr - Halo |
60 | { "cvs", 'drw2', 'DAD2' }, // Canvas - Drawing |
61 | { "cwj", 'CWSS', 'cwkj' }, // ClarisWorks - Document |
62 | { "dat", 'TCLl', 'GKON' }, // TCL - image |
63 | { "dbf", 'COMP', 'FOX+' }, // DBase - Document |
64 | { "dcx", 'DCXx', 'GKON' }, // Some - PCX |
65 | { "dif", 'TEXT', 'XCEL' }, // Data - Interchange |
66 | { "diz", 'TEXT', 'R*Ch' }, // BBS - Descriptive |
67 | { "dl", 'DL ', 'AnVw' }, // DL - Animation |
68 | { "dll", 'PCFL', 'SWIN' }, // Windows - DLL |
69 | { "doc", 'WDBN', 'MSWD' }, // Word - Document |
70 | { "dot", 'sDBN', 'MSWD' }, // Word - for |
71 | { "dsk", 'dimg', 'dCpy' }, // Apple - DiskCopy |
72 | { "dvi", 'ODVI', 'xdvi' }, // TeX - DVI |
73 | { "dwt", 'TEXT', 'DmWr' }, // Dreamweaver - Template |
74 | { "dxf", 'TEXT', 'SWVL' }, // AutoCAD - 3D |
75 | { "eps", 'EPSF', 'vgrd' }, // Postscript - LaserWriter |
76 | { "epsf", 'EPSF', 'vgrd' }, // Postscript - LaserWriter |
77 | { "etx", 'TEXT', 'ezVu' }, // SEText - Easy |
78 | { "evy", 'EVYD', 'ENVY' }, // Envoy - Document |
79 | { "exe", 'PCFA', 'SWIN' }, // MS-DOS - Executable |
80 | { "faq", 'TEXT', 'ttxt' }, // ASCII - Text |
81 | { "fit", 'FITS', 'GKON' }, // Flexible - Image |
82 | { "fla", 'SPA ', 'MFL2' }, // Flash - source |
83 | { "flc", 'FLI ', 'TVOD' }, // FLIC - Animation |
84 | { "fli", 'FLI ', 'TVOD' }, // FLI - Animation |
85 | { "fm", 'FMPR', 'FMPR' }, // FileMaker - Pro |
86 | { "for", 'TEXT', 'MPS ' }, // Fortran - Source |
87 | { "fts", 'FITS', 'GKON' }, // Flexible - Image |
88 | { "gem", 'GEM-', 'GKON' }, // GEM - Metafile |
89 | { "gif", 'GIFf', 'ogle' }, // GIF - Picture |
90 | { "gl", 'GL ', 'AnVw' }, // GL - Animation |
91 | { "grp", 'GRPp', 'GKON' }, // GRP - Image |
92 | { "gz", 'SIT!', 'SITx' }, // Gnu - ZIP |
93 | { "hcom", 'FSSD', 'SCPL' }, // SoundEdit - Sound |
94 | { "hpgl", 'HPGL', 'GKON' }, // HP - GL/2 |
95 | { "hpp", 'TEXT', 'CWIE' }, // C - Include |
96 | { "hp", 'TEXT', 'CWIE' }, // C - Include |
97 | { "hqx", 'TEXT', 'SITx' }, // BinHex - StuffIt |
98 | { "hr", 'TR80', 'GKON' }, // TSR-80 - HR |
99 | { "h", 'TEXT', 'KAHL' }, // C - Include |
100 | { "html", 'TEXT', 'MOSS' }, // HyperText - Netscape |
101 | { "htm", 'TEXT', 'MOSS' }, // HyperText - Netscape |
102 | { "i3", 'TEXT', 'R*ch' }, // Modula - 3 |
103 | { "ic1", 'IMAG', 'GKON' }, // Atari - Image |
104 | { "ic2", 'IMAG', 'GKON' }, // Atari - Image |
105 | { "ic3", 'IMAG', 'GKON' }, // Atari - Image |
106 | { "icn", 'ICO ', 'GKON' }, // Windows - Icon |
107 | { "ico", 'ICO ', 'GKON' }, // Windows - Icon |
108 | { "ief", 'IEF ', 'GKON' }, // IEF - image |
109 | { "iff", 'ILBM', 'GKON' }, // Amiga - IFF |
110 | { "ilbm", 'ILBM', 'GKON' }, // Amiga - ILBM |
111 | { "image", 'dImg', 'ddsk' }, // Apple - DiskCopy |
112 | { "img", 'dImg', 'ddsk' }, // Apple - DiskCopy |
113 | { "ini", 'TEXT', 'ttxt' }, // Windows - INI |
114 | { "iso", 'rodh', 'ddsk' }, // Apple - ISO |
115 | { "iss", 'ISS ', 'GKON' }, // ISS - GraphicConverter |
116 | { "java", 'TEXT', 'CWIE' }, // Java - Source |
117 | { "jfif", 'JPEG', 'ogle' }, // JFIF - Image |
118 | { "jif", 'JIFf', 'GKON' }, // JIF99a - GraphicConverter |
119 | { "jpeg", 'JPEG', 'ogle' }, // JPEG - Picture |
120 | { "jpe", 'JPEG', 'ogle' }, // JPEG - Picture |
121 | { "jpg", 'JPEG', 'ogle' }, // JPEG - Picture |
122 | { "latex", 'TEXT', 'OTEX' }, // Latex - OzTex |
123 | { "lbm", 'ILBM', 'GKON' }, // Amiga - IFF |
124 | { "lha", 'LHA ', 'SITx' }, // LHArc - Archive |
125 | { "lwf", 'lwfF', 'GKON' }, // LuraWave(LWF) - GraphicConverter |
126 | { "lzh", 'LHA ', 'SITx' }, // LHArc - Archive |
127 | { "m1a", 'MPEG', 'TVOD' }, // MPEG-1 - audiostream |
128 | { "m1s", 'MPEG', 'TVOD' }, // MPEG-1 - systemstream |
129 | { "m1v", 'M1V ', 'TVOD' }, // MPEG-1 - IPB |
130 | { "m2", 'TEXT', 'R*ch' }, // Modula - 2 |
131 | { "m2v", 'MPG2', 'MPG2' }, // MPEG-2 - IPB |
132 | { "m3", 'TEXT', 'R*ch' }, // Modula - 3 |
133 | { "mac", 'PICT', 'ogle' }, // PICT - Picture |
134 | { "mak", 'TEXT', 'R*ch' }, // Makefile - BBEdit |
135 | { "mbm", 'MBM ', 'GKON' }, // PSION - 5(MBM) |
136 | { "mcw", 'WDBN', 'MSWD' }, // Mac - Word |
137 | { "med", 'STrk', 'SCPL' }, // Amiga - MED |
138 | { "me", 'TEXT', 'ttxt' }, // Text - Readme |
139 | { "mf", 'TEXT', '*MF*' }, // Metafont - Metafont |
140 | { "midi", 'Midi', 'TVOD' }, // MIDI - Music |
141 | { "mid", 'Midi', 'TVOD' }, // MIDI - Music |
142 | { "mif", 'TEXT', 'Fram' }, // FrameMaker - MIF |
143 | { "mime", 'TEXT', 'SITx' }, // MIME - Message |
144 | { "ml", 'TEXT', 'R*ch' }, // ML - Source |
145 | { "mod", 'STrk', 'SCPL' }, // MOD - Music |
146 | { "mol", 'TEXT', 'RSML' }, // MDL - Molfile |
147 | { "moov", 'MooV', 'TVOD' }, // QuickTime - Movie |
148 | { "mov", 'MooV', 'TVOD' }, // QuickTime - Movie |
149 | { "mp2", 'MPEG', 'TVOD' }, // MPEG-1 - audiostream |
150 | { "mp3", 'MPG3', 'TVOD' }, // MPEG-3 - audiostream |
151 | { "mpa", 'MPEG', 'TVOD' }, // MPEG-1 - audiostream |
152 | { "mpeg", 'MPEG', 'TVOD' }, // MPEG - Movie |
153 | { "mpe", 'MPEG', 'TVOD' }, // MPEG - Movie |
154 | { "mpg", 'MPEG', 'TVOD' }, // MPEG - Movie |
155 | { "msp", 'MSPp', 'GKON' }, // Microsoft - Paint |
156 | { "mtm", 'MTM ', 'SNPL' }, // MultiMOD - Music |
157 | { "mwii", 'MW2D', 'MWII' }, // MacWrite - Document |
158 | { "mw", 'MW2D', 'MWII' }, // MacWrite - Document |
159 | { "neo", 'NeoC', 'GKON' }, // Atari - NeoChrome |
160 | { "nfo", 'TEXT', 'ttxt' }, // Info - Text |
161 | { "ngg", 'NGGC', 'GKON' }, // Mobile - Phone(Nokia)Format |
162 | { "nol", 'NOL ', 'GKON' }, // Mobile - Phone(Nokia)Format |
163 | { "nst", 'STrk', 'SCPL' }, // MOD - Music |
164 | { "obj", 'PCFL', 'SWIN' }, // Object - (DOS/Windows) |
165 | { "oda", 'ODIF', 'ODA ' }, // ODA - Document |
166 | { "okt", 'OKTA', 'SCPL' }, // Oktalyser - MOD |
167 | { "out", 'BINA', 'hDmp' }, // Output - File |
168 | { "ovl", 'PCFL', 'SWIN' }, // Overlay - (DOS/Windows) |
169 | { "pac", 'STAD', 'GKON' }, // Atari - STAD |
170 | { "pal", '8BCT', '8BIM' }, // Color - Table |
171 | { "pas", 'TEXT', 'CWIE' }, // Pascal - Source |
172 | { "pbm", 'PPGM', 'GKON' }, // Portable - Bitmap |
173 | { "pc1", 'Dega', 'GKON' }, // Atari - Degas |
174 | { "pc2", 'Dega', 'GKON' }, // Atari - Degas |
175 | { "pc3", 'Dega', 'GKON' }, // Atari - Degas |
176 | { "pcs", 'PICS', 'GKON' }, // Animated - PICTs |
177 | { "pct", 'PICT', 'ogle' }, // PICT - Picture |
178 | { "pcx", 'PCXx', 'GKON' }, // PC - PaintBrush |
179 | { "pdb", 'TEXT', 'RSML' }, // Brookhaven - PDB |
180 | { "pdf", 'PDF ', 'CARO' }, // Portable - Document |
181 | { "pdx", 'TEXT', 'ALD5' }, // Printer - Description |
182 | { "pf", 'CSIT', 'SITx' }, // Private - File |
183 | { "pgc", 'PGCF', 'GKON' }, // PGC/PGF - Atari |
184 | { "pgm", 'PPGM', 'GKON' }, // Portable - Graymap |
185 | { "pi1", 'Dega', 'GKON' }, // Atari - Degas |
186 | { "pi2", 'Dega', 'GKON' }, // Atari - Degas |
187 | { "pi3", 'Dega', 'GKON' }, // Atari - Degas |
188 | { "pic", 'PICT', 'ogle' }, // PICT - Picture |
189 | { "pics", 'PICS', 'GKON' }, // PICS-PICT - Sequence |
190 | { "pict", 'PICT', 'ogle' }, // PICT - Picture |
191 | { "pit", 'PIT ', 'SITx' }, // PackIt - Archive |
192 | { "pkg", 'HBSF', 'SITx' }, // AppleLink - Package |
193 | { "pl", 'TEXT', 'McPL' }, // Perl - Source |
194 | { "plt", 'HPGL', 'GKON' }, // HP - GL/2 |
195 | { "pm3", 'ALB3', 'ALD3' }, // PageMaker - 3 |
196 | { "pm4", 'ALB4', 'ALD4' }, // PageMaker - 4 |
197 | { "pm5", 'ALB5', 'ALD5' }, // PageMaker - 5 |
198 | { "pm", 'PMpm', 'GKON' }, // Bitmap - from |
199 | { "png", 'PNG ', 'ogle' }, // Portable - Network |
200 | { "pntg", 'PNTG', 'ogle' }, // Macintosh - Painting |
201 | { "ppd", 'TEXT', 'ALD5' }, // Printer - Description |
202 | { "ppm", 'PPGM', 'GKON' }, // Portable - Pixmap |
203 | { "prn", 'TEXT', 'R*ch' }, // Printer - Output |
204 | { "psd", '8BPS', '8BIM' }, // PhotoShop - Document |
205 | { "ps", 'TEXT', 'vgrd' }, // PostScript - LaserWriter |
206 | { "pt4", 'ALT4', 'ALD4' }, // PageMaker - 4 |
207 | { "pt5", 'ALT5', 'ALD5' }, // PageMaker - 5 |
208 | { "p", 'TEXT', 'CWIE' }, // Pascal - Source |
209 | { "pxr", 'PXR ', '8BIM' }, // Pixar - Image |
210 | { "qdv", 'QDVf', 'GKON' }, // QDV - image |
211 | { "qt", 'MooV', 'TVOD' }, // QuickTime - Movie |
212 | { "qxd", 'XDOC', 'XPR3' }, // QuarkXpress - Document |
213 | { "qxt", 'XTMP', 'XPR3' }, // QuarkXpress - Template |
214 | { "raw", 'rodh', 'ddsk' }, // Apple - raw |
215 | { "readme", 'TEXT', 'ttxt' }, // Text - Readme |
216 | { "rgba", 'SGI ', 'GKON' }, // SGI - Image |
217 | { "rgb", 'SGI ', 'GKON' }, // SGI - Image |
218 | { "rib", 'TEXT', 'RINI' }, // Renderman - 3D |
219 | { "rif", 'RIFF', 'GKON' }, // RIFF - Graphic |
220 | { "rle", 'RLE ', 'GKON' }, // RLE - image |
221 | { "rme", 'TEXT', 'ttxt' }, // Text - Readme |
222 | { "rpl", 'FRL!', 'REP!' }, // Replica - Document |
223 | { "rsc", 'rsrc', 'RSED' }, // Resource - File |
224 | { "rsrc", 'rsrc', 'RSED' }, // Resource - File |
225 | { "rtf", 'TEXT', 'MSWD' }, // Rich - Text |
226 | { "rtx", 'TEXT', 'R*ch' }, // Rich - Text |
227 | { "s3m", 'S3M ', 'SNPL' }, // ScreamTracker - 3 |
228 | { "scc", 'MSX ', 'GKON' }, // MSX - pitcure |
229 | { "scg", 'RIX3', 'GKON' }, // ColoRIX - GraphicConverter |
230 | { "sci", 'RIX3', 'GKON' }, // ColoRIX - GraphicConverter |
231 | { "scp", 'RIX3', 'GKON' }, // ColoRIX - GraphicConverter |
232 | { "scr", 'RIX3', 'GKON' }, // ColoRIX - GraphicConverter |
233 | { "scu", 'RIX3', 'GKON' }, // ColoRIX - GraphicConverter |
234 | { "sea", 'APPL', '????' }, // Self-Extracting - Archive |
235 | { "sf", 'IRCM', 'SDHK' }, // IRCAM - Sound |
236 | { "sgi", '.SGI', 'ogle' }, // SGI - Image |
237 | { "shar", 'TEXT', 'UnSh' }, // Unix - Shell |
238 | { "sha", 'TEXT', 'UnSh' }, // Unix - Shell |
239 | { "shp", 'SHPp', 'GKON' }, // Printmaster - Icon |
240 | { "sithqx", 'TEXT', 'SITx' }, // BinHexed - StuffIt |
241 | { "sit", 'SIT!', 'SITx' }, // StuffIt - 1.5.1 |
242 | { "six", 'SIXE', 'GKON' }, // SIXEL - image |
243 | { "slk", 'TEXT', 'XCEL' }, // SYLK - Spreadsheet |
244 | { "snd", 'BINA', 'SCPL' }, // Sound - of |
245 | { "spc", 'Spec', 'GKON' }, // Atari - Spectrum |
246 | { "sr", 'SUNn', 'GKON' }, // Sun - Raster |
247 | { "sty", 'TEXT', '*TEX' }, // TeX - Style |
248 | { "sun", 'SUNn', 'GKON' }, // Sun - Raster |
249 | { "sup", 'SCRN', 'GKON' }, // StartupScreen - GraphicConverter |
250 | { "svx", '8SVX', 'SCPL' }, // Amiga - IFF |
251 | { "swf", 'SWFL', 'SWF2' }, // Flash - Macromedia |
252 | { "syk", 'TEXT', 'XCEL' }, // SYLK - Spreadsheet |
253 | { "sylk", 'TEXT', 'XCEL' }, // SYLK - Spreadsheet |
254 | { "targa", 'TPIC', 'GKON' }, // Truevision - Image |
255 | { "tar", 'TARF', 'SITx' }, // Unix - Tape |
256 | { "taz", 'ZIVU', 'SITx' }, // Compressed - Tape |
257 | { "texinfo", 'TEXT', 'OTEX' }, // TeX - Document |
258 | { "texi", 'TEXT', 'OTEX' }, // TeX - Document |
259 | { "tex", 'TEXT', 'OTEX' }, // TeX - Document |
260 | { "text", 'TEXT', 'ttxt' }, // ASCII - Text |
261 | { "tga", 'TPIC', 'GKON' }, // Truevision - Image |
262 | { "tgz", 'Gzip', 'SITx' }, // Gnu - ZIPed |
263 | { "tiff", 'TIFF', 'ogle' }, // TIFF - Picture |
264 | { "tif", 'TIFF', 'ogle' }, // TIFF - Picture |
265 | { "tny", 'TINY', 'GKON' }, // Atari - TINY |
266 | { "toast", 'CDr3', 'GImg' }, // CD - Image |
267 | { "tsv", 'TEXT', 'XCEL' }, // Tab - Separated |
268 | { "tx8", 'TEXT', 'ttxt' }, // 8-bit - ASCII |
269 | { "txt", 'TEXT', 'ttxt' }, // ASCII - Text |
270 | { "ul", 'ULAW', 'TVOD' }, // Mu-Law - Sound |
271 | { "url", 'AURL', 'Arch' }, // URL - Bookmark |
272 | { "uue", 'TEXT', 'SITx' }, // UUEncode - StuffIt |
273 | { "uu", 'TEXT', 'SITx' }, // UUEncode - StuffIt |
274 | { "vff", 'VFFf', 'GKON' }, // DESR - VFF |
275 | { "vga", 'BMPp', 'ogle' }, // OS/2 - Bitmap |
276 | { "voc", 'VOC ', 'SCPL' }, // VOC - Sound |
277 | { "vpb", 'VPB ', 'GKON' }, // VPB - QUANTEL |
278 | { "w51", '.WP5', 'WPC2' }, // WordPerfect - PC |
279 | { "wav", 'WAVE', 'TVOD' }, // Windows - WAV |
280 | { "wbmp", 'WBMP', 'GKON' }, // WBMP - GraphicConverter |
281 | { "wk1", 'XLBN', 'XCEL' }, // Lotus - Spreadsheet |
282 | { "wks", 'XLBN', 'XCEL' }, // Lotus - Spreadsheet |
283 | { "wmf", 'WMF ', 'GKON' }, // Windows - Metafile |
284 | { "wp4", '.WP4', 'WPC2' }, // WordPerfect - PC |
285 | { "wp5", '.WP5', 'WPC2' }, // WordPerfect - PC |
286 | { "wp6", '.WP6', 'WPC2' }, // WordPerfect - PC |
287 | { "wpg", 'WPGf', 'GKON' }, // WordPerfect - Graphic |
288 | { "wpm", 'WPD1', 'WPC2' }, // WordPerfect - Mac |
289 | { "wp", '.WP5', 'WPC2' }, // WordPerfect - PC |
290 | { "wri", 'WDBN', 'MSWD' }, // MS - Write/Windows |
291 | { "wve", 'BINA', 'SCPL' }, // PSION - sound |
292 | { "x10", 'XWDd', 'GKON' }, // X-Windows - Dump |
293 | { "x11", 'XWDd', 'GKON' }, // X-Windows - Dump |
294 | { "xbm", 'XBM ', 'GKON' }, // X-Windows - Bitmap |
295 | { "x-face", 'TEXT', 'GKON' }, // X-Face - GraphicConverter |
296 | { "xlc", 'XLC ', 'XCEL' }, // Excel - Chart |
297 | { "xlm", 'XLM ', 'XCEL' }, // Excel - Macro |
298 | { "xls", 'XLS ', 'XCEL' }, // Excel - Spreadsheet |
299 | { "xlw", 'XLW ', 'XCEL' }, // Excel - Workspace |
300 | { "xl", 'XLS ', 'XCEL' }, // Excel - Spreadsheet |
301 | { "xm", 'XM ', 'SNPL' }, // FastTracker - MOD |
302 | { "xpm", 'XPM ', 'GKON' }, // X-Windows - Pixmap |
303 | { "xwd", 'XWDd', 'GKON' }, // X-Windows - Dump |
304 | { "zip", 'ZIP ', 'SITx' }, // PC - ZIP |
305 | { "zoo", 'Zoo ', 'Booz' }, // Zoo - Archive |
306 | { "Z", 'ZIVU', 'SITx' }, // Unix - Compress |
307 | }; |
308 | |
309 | Boolean CheckFileExt(const char *ext, OSType *type, OSType *creator) |
310 | { |
311 | short n, j; |
312 | |
313 | for (n = 0; n < (sizeof(exttypes) / sizeof(exttypes[0])); n++) { |
314 | for (j = 0; ; j++) { |
315 | if (exttypes[n].extension[j] != ext[j]) |
316 | break; |
317 | if (exttypes[n].extension[j] == '\0' && ext[j] == '\0') { |
318 | *type = exttypes[n].type; |
319 | *creator = exttypes[n].creator; |
320 | return true; |
321 | } |
322 | } |
323 | } |
324 | return false; |
325 | } |