nulleric
/Fix-a-Fork
/amendments
/34
This format is easier to maintain and should be faster.
jcs made amendment 34 6 months ago
--- file_ext.c Sat Mar 30 20:46:39 2024
+++ file_ext.c Fri Apr 5 08:39:33 2024
@@ -1,305 +1,325 @@
/*
- Copyright Eric Helgeson 2023-2024.
+ Copyright Eric Helgeson, jcs 2023-2024.
*/
// Simple file ext checks as fallback.
-extern OSType gType;
-extern OSType gCreator;
-Boolean CheckFileExt(const char *ext) {
- if(StringCompare(ext, "1st")) { gType = 'TEXT'; gCreator = 'ttxt'; return true; } // Text - Readme
- else if(StringCompare(ext, "669")) { gType = '6669'; gCreator = 'SNPL'; return true; } // 669 - MOD
- else if(StringCompare(ext, "8med")) { gType = 'STrk'; gCreator = 'SCPL'; return true; } // Amiga - OctaMed
- else if(StringCompare(ext, "8svx")) { gType = '8SVX'; gCreator = 'SCPL'; return true; } // Amiga - 8-bit
- else if(StringCompare(ext, "aif")) { gType = 'AIFF'; gCreator = 'SCPL'; return true; } // AIFF - Sound
- else if(StringCompare(ext, "aifc")) { gType = 'AIFC'; gCreator = 'SCPL'; return true; } // AIFF - Sound
- else if(StringCompare(ext, "aiff")) { gType = 'AIFF'; gCreator = 'SCPL'; return true; } // AIFF - Sound
- else if(StringCompare(ext, "al")) { gType = 'ALAW'; gCreator = 'SCPL'; return true; } // ALAW - Sound
- else if(StringCompare(ext, "ani")) { gType = 'ANIi'; gCreator = 'GKON'; return true; } // Animated - NeoChrome
- else if(StringCompare(ext, "apd")) { gType = 'TEXT'; gCreator = 'ALD3'; return true; } // Aldus - Printer
- else if(StringCompare(ext, "arc")) { gType = 'mArc'; gCreator = 'SITx'; return true; } // PC - ARChive
- else if(StringCompare(ext, "arj")) { gType = 'BINA'; gCreator = 'DArj'; return true; } // ARJ - Archive
- else if(StringCompare(ext, "arr")) { gType = 'ARR '; gCreator = 'GKON'; return true; } // Amber - ARR
- else if(StringCompare(ext, "art")) { gType = 'ART '; gCreator = 'GKON'; return true; } // First - Publisher
- else if(StringCompare(ext, "ascii")) { gType = 'TEXT'; gCreator = 'ttxt'; return true; } // ASCII - Text
- else if(StringCompare(ext, "asc")) { gType = 'TEXT'; gCreator = 'ttxt'; return true; } // ASCII - Text
- else if(StringCompare(ext, "asf")) { gType = 'ASF_'; gCreator = 'Ms01'; return true; } // Netshow - Player
- else if(StringCompare(ext, "asm")) { gType = 'TEXT'; gCreator = 'ttxt'; return true; } // Assembly - Source
- else if(StringCompare(ext, "asx")) { gType = 'ASX_'; gCreator = 'Ms01'; return true; } // Netshow - Player
- else if(StringCompare(ext, "a")) { gType = 'TEXT'; gCreator = 'ttxt'; return true; } // Assembly - Source
- else if(StringCompare(ext, "au")) { gType = 'ULAW'; gCreator = 'TVOD'; return true; } // Sun - Sound
- else if(StringCompare(ext, "avi")) { gType = 'VfW '; gCreator = 'TVOD'; return true; } // AVI - Movie
- else if(StringCompare(ext, "bar")) { gType = 'BARF'; gCreator = 'S691'; return true; } // Unix - BAR
- else if(StringCompare(ext, "bas")) { gType = 'TEXT'; gCreator = 'ttxt'; return true; } // BASIC - Source
- else if(StringCompare(ext, "bat")) { gType = 'TEXT'; gCreator = 'ttxt'; return true; } // MS-DOS - Batch
- else if(StringCompare(ext, "bga")) { gType = 'BMPp'; gCreator = 'ogle'; return true; } // OS/2 - Bitmap
- else if(StringCompare(ext, "bib")) { gType = 'TEXT'; gCreator = 'ttxt'; return true; } // BibTex - Bibliography
- else if(StringCompare(ext, "binary")) { gType = 'BINA'; gCreator = 'hDmp'; return true; } // Untyped - Binary
- else if(StringCompare(ext, "bin")) { gType = 'BINA'; gCreator = 'SITx'; return true; } // MacBinary - StuffIt
- else if(StringCompare(ext, "bld")) { gType = 'BLD '; gCreator = 'GKON'; return true; } // BLD - GraphicConverter
- else if(StringCompare(ext, "bmp")) { gType = 'BMPp'; gCreator = 'ogle'; return true; } // Windows - Bitmap
- else if(StringCompare(ext, "boo")) { gType = 'TEXT'; gCreator = 'ttxt'; return true; } // BOO - encoded
- else if(StringCompare(ext, "bst")) { gType = 'TEXT'; gCreator = 'ttxt'; return true; } // BibTex - Style
- else if(StringCompare(ext, "bum")) { gType = '.bMp'; gCreator = 'GKON'; return true; } // QuickTime - Importer(QuickDraw)
- else if(StringCompare(ext, "bw")) { gType = 'SGI '; gCreator = 'GKON'; return true; } // SGI - Image
- else if(StringCompare(ext, "bz")) { gType = 'Bzp2'; gCreator = 'SITx'; return true; } // BZip2 - StuffIt
- else if(StringCompare(ext, "cel")) { gType = 'CEL '; gCreator = 'GKON'; return true; } // KISS - CEL
- else if(StringCompare(ext, "cgm")) { gType = 'CGMm'; gCreator = 'GKON'; return true; } // Computer - Graphics
- else if(StringCompare(ext, "class")) { gType = 'Clss'; gCreator = 'CWIE'; return true; } // Java - Class
- else if(StringCompare(ext, "clp")) { gType = 'CLPp'; gCreator = 'GKON'; return true; } // Windows - Clipboard
- else if(StringCompare(ext, "cmd")) { gType = 'TEXT'; gCreator = 'ttxt'; return true; } // OS/2 - Batch
- else if(StringCompare(ext, "com")) { gType = 'PCFA'; gCreator = 'SWIN'; return true; } // MS-DOS - Executable
- else if(StringCompare(ext, "cpp")) { gType = 'TEXT'; gCreator = 'CWIE'; return true; } // C++ - Source
- else if(StringCompare(ext, "cp")) { gType = 'TEXT'; gCreator = 'CWIE'; return true; } // C++ - Source
- else if(StringCompare(ext, "cpt")) { gType = 'PACT'; gCreator = 'SITx'; return true; } // Compact - Pro
- else if(StringCompare(ext, "csv")) { gType = 'TEXT'; gCreator = 'XCEL'; return true; } // Comma - Separated
- else if(StringCompare(ext, "ct")) { gType = '..CT'; gCreator = 'GKON'; return true; } // Scitex-CT - GraphicConverter
- else if(StringCompare(ext, "c")) { gType = 'TEXT'; gCreator = 'KAHL'; return true; } // C - Source
- else if(StringCompare(ext, "cur")) { gType = 'CUR '; gCreator = 'GKON'; return true; } // Windows - Cursor
- else if(StringCompare(ext, "cut")) { gType = 'Halo'; gCreator = 'GKON'; return true; } // Dr - Halo
- else if(StringCompare(ext, "cvs")) { gType = 'drw2'; gCreator = 'DAD2'; return true; } // Canvas - Drawing
- else if(StringCompare(ext, "cwj")) { gType = 'CWSS'; gCreator = 'cwkj'; return true; } // ClarisWorks - Document
- else if(StringCompare(ext, "dat")) { gType = 'TCLl'; gCreator = 'GKON'; return true; } // TCL - image
- else if(StringCompare(ext, "dbf")) { gType = 'COMP'; gCreator = 'FOX+'; return true; } // DBase - Document
- else if(StringCompare(ext, "dcx")) { gType = 'DCXx'; gCreator = 'GKON'; return true; } // Some - PCX
- else if(StringCompare(ext, "dif")) { gType = 'TEXT'; gCreator = 'XCEL'; return true; } // Data - Interchange
- else if(StringCompare(ext, "diz")) { gType = 'TEXT'; gCreator = 'R*Ch'; return true; } // BBS - Descriptive
- else if(StringCompare(ext, "dl")) { gType = 'DL '; gCreator = 'AnVw'; return true; } // DL - Animation
- else if(StringCompare(ext, "dll")) { gType = 'PCFL'; gCreator = 'SWIN'; return true; } // Windows - DLL
- else if(StringCompare(ext, "doc")) { gType = 'WDBN'; gCreator = 'MSWD'; return true; } // Word - Document
- else if(StringCompare(ext, "dot")) { gType = 'sDBN'; gCreator = 'MSWD'; return true; } // Word - for
- else if(StringCompare(ext, "dsk")) { gType = 'dimg'; gCreator = 'dCpy'; return true; } // Apple - DiskCopy
- else if(StringCompare(ext, "dvi")) { gType = 'ODVI'; gCreator = 'xdvi'; return true; } // TeX - DVI
- else if(StringCompare(ext, "dwt")) { gType = 'TEXT'; gCreator = 'DmWr'; return true; } // Dreamweaver - Template
- else if(StringCompare(ext, "dxf")) { gType = 'TEXT'; gCreator = 'SWVL'; return true; } // AutoCAD - 3D
- else if(StringCompare(ext, "eps")) { gType = 'EPSF'; gCreator = 'vgrd'; return true; } // Postscript - LaserWriter
- else if(StringCompare(ext, "epsf")) { gType = 'EPSF'; gCreator = 'vgrd'; return true; } // Postscript - LaserWriter
- else if(StringCompare(ext, "etx")) { gType = 'TEXT'; gCreator = 'ezVu'; return true; } // SEText - Easy
- else if(StringCompare(ext, "evy")) { gType = 'EVYD'; gCreator = 'ENVY'; return true; } // Envoy - Document
- else if(StringCompare(ext, "exe")) { gType = 'PCFA'; gCreator = 'SWIN'; return true; } // MS-DOS - Executable
- else if(StringCompare(ext, "faq")) { gType = 'TEXT'; gCreator = 'ttxt'; return true; } // ASCII - Text
- else if(StringCompare(ext, "fit")) { gType = 'FITS'; gCreator = 'GKON'; return true; } // Flexible - Image
- else if(StringCompare(ext, "fla")) { gType = 'SPA '; gCreator = 'MFL2'; return true; } // Flash - source
- else if(StringCompare(ext, "flc")) { gType = 'FLI '; gCreator = 'TVOD'; return true; } // FLIC - Animation
- else if(StringCompare(ext, "fli")) { gType = 'FLI '; gCreator = 'TVOD'; return true; } // FLI - Animation
- else if(StringCompare(ext, "fm")) { gType = 'FMPR'; gCreator = 'FMPR'; return true; } // FileMaker - Pro
- else if(StringCompare(ext, "for")) { gType = 'TEXT'; gCreator = 'MPS '; return true; } // Fortran - Source
- else if(StringCompare(ext, "fts")) { gType = 'FITS'; gCreator = 'GKON'; return true; } // Flexible - Image
- else if(StringCompare(ext, "gem")) { gType = 'GEM-'; gCreator = 'GKON'; return true; } // GEM - Metafile
- else if(StringCompare(ext, "gif")) { gType = 'GIFf'; gCreator = 'ogle'; return true; } // GIF - Picture
- else if(StringCompare(ext, "gl")) { gType = 'GL '; gCreator = 'AnVw'; return true; } // GL - Animation
- else if(StringCompare(ext, "grp")) { gType = 'GRPp'; gCreator = 'GKON'; return true; } // GRP - Image
- else if(StringCompare(ext, "gz")) { gType = 'SIT!'; gCreator = 'SITx'; return true; } // Gnu - ZIP
- else if(StringCompare(ext, "hcom")) { gType = 'FSSD'; gCreator = 'SCPL'; return true; } // SoundEdit - Sound
- else if(StringCompare(ext, "hpgl")) { gType = 'HPGL'; gCreator = 'GKON'; return true; } // HP - GL/2
- else if(StringCompare(ext, "hpp")) { gType = 'TEXT'; gCreator = 'CWIE'; return true; } // C - Include
- else if(StringCompare(ext, "hp")) { gType = 'TEXT'; gCreator = 'CWIE'; return true; } // C - Include
- else if(StringCompare(ext, "hqx")) { gType = 'TEXT'; gCreator = 'SITx'; return true; } // BinHex - StuffIt
- else if(StringCompare(ext, "hr")) { gType = 'TR80'; gCreator = 'GKON'; return true; } // TSR-80 - HR
- else if(StringCompare(ext, "h")) { gType = 'TEXT'; gCreator = 'KAHL'; return true; } // C - Include
- else if(StringCompare(ext, "html")) { gType = 'TEXT'; gCreator = 'MOSS'; return true; } // HyperText - Netscape
- else if(StringCompare(ext, "htm")) { gType = 'TEXT'; gCreator = 'MOSS'; return true; } // HyperText - Netscape
- else if(StringCompare(ext, "i3")) { gType = 'TEXT'; gCreator = 'R*ch'; return true; } // Modula - 3
- else if(StringCompare(ext, "ic1")) { gType = 'IMAG'; gCreator = 'GKON'; return true; } // Atari - Image
- else if(StringCompare(ext, "ic2")) { gType = 'IMAG'; gCreator = 'GKON'; return true; } // Atari - Image
- else if(StringCompare(ext, "ic3")) { gType = 'IMAG'; gCreator = 'GKON'; return true; } // Atari - Image
- else if(StringCompare(ext, "icn")) { gType = 'ICO '; gCreator = 'GKON'; return true; } // Windows - Icon
- else if(StringCompare(ext, "ico")) { gType = 'ICO '; gCreator = 'GKON'; return true; } // Windows - Icon
- else if(StringCompare(ext, "ief")) { gType = 'IEF '; gCreator = 'GKON'; return true; } // IEF - image
- else if(StringCompare(ext, "iff")) { gType = 'ILBM'; gCreator = 'GKON'; return true; } // Amiga - IFF
- else if(StringCompare(ext, "ilbm")) { gType = 'ILBM'; gCreator = 'GKON'; return true; } // Amiga - ILBM
- else if(StringCompare(ext, "image")) { gType = 'dImg'; gCreator = 'ddsk'; return true; } // Apple - DiskCopy
- else if(StringCompare(ext, "img")) { gType = 'dImg'; gCreator = 'ddsk'; return true; } // Apple - DiskCopy
- else if(StringCompare(ext, "ini")) { gType = 'TEXT'; gCreator = 'ttxt'; return true; } // Windows - INI
- else if(StringCompare(ext, "iso")) { gType = 'rodh'; gCreator = 'ddsk'; return true; } // Apple - ISO
- else if(StringCompare(ext, "iss")) { gType = 'ISS '; gCreator = 'GKON'; return true; } // ISS - GraphicConverter
- else if(StringCompare(ext, "java")) { gType = 'TEXT'; gCreator = 'CWIE'; return true; } // Java - Source
- else if(StringCompare(ext, "jfif")) { gType = 'JPEG'; gCreator = 'ogle'; return true; } // JFIF - Image
- else if(StringCompare(ext, "jif")) { gType = 'JIFf'; gCreator = 'GKON'; return true; } // JIF99a - GraphicConverter
- else if(StringCompare(ext, "jpeg")) { gType = 'JPEG'; gCreator = 'ogle'; return true; } // JPEG - Picture
- else if(StringCompare(ext, "jpe")) { gType = 'JPEG'; gCreator = 'ogle'; return true; } // JPEG - Picture
- else if(StringCompare(ext, "jpg")) { gType = 'JPEG'; gCreator = 'ogle'; return true; } // JPEG - Picture
- else if(StringCompare(ext, "latex")) { gType = 'TEXT'; gCreator = 'OTEX'; return true; } // Latex - OzTex
- else if(StringCompare(ext, "lbm")) { gType = 'ILBM'; gCreator = 'GKON'; return true; } // Amiga - IFF
- else if(StringCompare(ext, "lha")) { gType = 'LHA '; gCreator = 'SITx'; return true; } // LHArc - Archive
- else if(StringCompare(ext, "lwf")) { gType = 'lwfF'; gCreator = 'GKON'; return true; } // LuraWave(LWF) - GraphicConverter
- else if(StringCompare(ext, "lzh")) { gType = 'LHA '; gCreator = 'SITx'; return true; } // LHArc - Archive
- else if(StringCompare(ext, "m1a")) { gType = 'MPEG'; gCreator = 'TVOD'; return true; } // MPEG-1 - audiostream
- else if(StringCompare(ext, "m1s")) { gType = 'MPEG'; gCreator = 'TVOD'; return true; } // MPEG-1 - systemstream
- else if(StringCompare(ext, "m1v")) { gType = 'M1V '; gCreator = 'TVOD'; return true; } // MPEG-1 - IPB
- else if(StringCompare(ext, "m2")) { gType = 'TEXT'; gCreator = 'R*ch'; return true; } // Modula - 2
- else if(StringCompare(ext, "m2v")) { gType = 'MPG2'; gCreator = 'MPG2'; return true; } // MPEG-2 - IPB
- else if(StringCompare(ext, "m3")) { gType = 'TEXT'; gCreator = 'R*ch'; return true; } // Modula - 3
- else if(StringCompare(ext, "mac")) { gType = 'PICT'; gCreator = 'ogle'; return true; } // PICT - Picture
- else if(StringCompare(ext, "mak")) { gType = 'TEXT'; gCreator = 'R*ch'; return true; } // Makefile - BBEdit
- else if(StringCompare(ext, "mbm")) { gType = 'MBM '; gCreator = 'GKON'; return true; } // PSION - 5(MBM)
- else if(StringCompare(ext, "mcw")) { gType = 'WDBN'; gCreator = 'MSWD'; return true; } // Mac - Word
- else if(StringCompare(ext, "med")) { gType = 'STrk'; gCreator = 'SCPL'; return true; } // Amiga - MED
- else if(StringCompare(ext, "me")) { gType = 'TEXT'; gCreator = 'ttxt'; return true; } // Text - Readme
- else if(StringCompare(ext, "mf")) { gType = 'TEXT'; gCreator = '*MF*'; return true; } // Metafont - Metafont
- else if(StringCompare(ext, "midi")) { gType = 'Midi'; gCreator = 'TVOD'; return true; } // MIDI - Music
- else if(StringCompare(ext, "mid")) { gType = 'Midi'; gCreator = 'TVOD'; return true; } // MIDI - Music
- else if(StringCompare(ext, "mif")) { gType = 'TEXT'; gCreator = 'Fram'; return true; } // FrameMaker - MIF
- else if(StringCompare(ext, "mime")) { gType = 'TEXT'; gCreator = 'SITx'; return true; } // MIME - Message
- else if(StringCompare(ext, "ml")) { gType = 'TEXT'; gCreator = 'R*ch'; return true; } // ML - Source
- else if(StringCompare(ext, "mod")) { gType = 'STrk'; gCreator = 'SCPL'; return true; } // MOD - Music
- else if(StringCompare(ext, "mol")) { gType = 'TEXT'; gCreator = 'RSML'; return true; } // MDL - Molfile
- else if(StringCompare(ext, "moov")) { gType = 'MooV'; gCreator = 'TVOD'; return true; } // QuickTime - Movie
- else if(StringCompare(ext, "mov")) { gType = 'MooV'; gCreator = 'TVOD'; return true; } // QuickTime - Movie
- else if(StringCompare(ext, "mp2")) { gType = 'MPEG'; gCreator = 'TVOD'; return true; } // MPEG-1 - audiostream
- else if(StringCompare(ext, "mp3")) { gType = 'MPG3'; gCreator = 'TVOD'; return true; } // MPEG-3 - audiostream
- else if(StringCompare(ext, "mpa")) { gType = 'MPEG'; gCreator = 'TVOD'; return true; } // MPEG-1 - audiostream
- else if(StringCompare(ext, "mpeg")) { gType = 'MPEG'; gCreator = 'TVOD'; return true; } // MPEG - Movie
- else if(StringCompare(ext, "mpe")) { gType = 'MPEG'; gCreator = 'TVOD'; return true; } // MPEG - Movie
- else if(StringCompare(ext, "mpg")) { gType = 'MPEG'; gCreator = 'TVOD'; return true; } // MPEG - Movie
- else if(StringCompare(ext, "msp")) { gType = 'MSPp'; gCreator = 'GKON'; return true; } // Microsoft - Paint
- else if(StringCompare(ext, "mtm")) { gType = 'MTM '; gCreator = 'SNPL'; return true; } // MultiMOD - Music
- else if(StringCompare(ext, "mwii")) { gType = 'MW2D'; gCreator = 'MWII'; return true; } // MacWrite - Document
- else if(StringCompare(ext, "mw")) { gType = 'MW2D'; gCreator = 'MWII'; return true; } // MacWrite - Document
- else if(StringCompare(ext, "neo")) { gType = 'NeoC'; gCreator = 'GKON'; return true; } // Atari - NeoChrome
- else if(StringCompare(ext, "nfo")) { gType = 'TEXT'; gCreator = 'ttxt'; return true; } // Info - Text
- else if(StringCompare(ext, "ngg")) { gType = 'NGGC'; gCreator = 'GKON'; return true; } // Mobile - Phone(Nokia)Format
- else if(StringCompare(ext, "nol")) { gType = 'NOL '; gCreator = 'GKON'; return true; } // Mobile - Phone(Nokia)Format
- else if(StringCompare(ext, "nst")) { gType = 'STrk'; gCreator = 'SCPL'; return true; } // MOD - Music
- else if(StringCompare(ext, "obj")) { gType = 'PCFL'; gCreator = 'SWIN'; return true; } // Object - (DOS/Windows)
- else if(StringCompare(ext, "oda")) { gType = 'ODIF'; gCreator = 'ODA '; return true; } // ODA - Document
- else if(StringCompare(ext, "okt")) { gType = 'OKTA'; gCreator = 'SCPL'; return true; } // Oktalyser - MOD
- else if(StringCompare(ext, "out")) { gType = 'BINA'; gCreator = 'hDmp'; return true; } // Output - File
- else if(StringCompare(ext, "ovl")) { gType = 'PCFL'; gCreator = 'SWIN'; return true; } // Overlay - (DOS/Windows)
- else if(StringCompare(ext, "pac")) { gType = 'STAD'; gCreator = 'GKON'; return true; } // Atari - STAD
- else if(StringCompare(ext, "pal")) { gType = '8BCT'; gCreator = '8BIM'; return true; } // Color - Table
- else if(StringCompare(ext, "pas")) { gType = 'TEXT'; gCreator = 'CWIE'; return true; } // Pascal - Source
- else if(StringCompare(ext, "pbm")) { gType = 'PPGM'; gCreator = 'GKON'; return true; } // Portable - Bitmap
- else if(StringCompare(ext, "pc1")) { gType = 'Dega'; gCreator = 'GKON'; return true; } // Atari - Degas
- else if(StringCompare(ext, "pc2")) { gType = 'Dega'; gCreator = 'GKON'; return true; } // Atari - Degas
- else if(StringCompare(ext, "pc3")) { gType = 'Dega'; gCreator = 'GKON'; return true; } // Atari - Degas
- else if(StringCompare(ext, "pcs")) { gType = 'PICS'; gCreator = 'GKON'; return true; } // Animated - PICTs
- else if(StringCompare(ext, "pct")) { gType = 'PICT'; gCreator = 'ogle'; return true; } // PICT - Picture
- else if(StringCompare(ext, "pcx")) { gType = 'PCXx'; gCreator = 'GKON'; return true; } // PC - PaintBrush
- else if(StringCompare(ext, "pdb")) { gType = 'TEXT'; gCreator = 'RSML'; return true; } // Brookhaven - PDB
- else if(StringCompare(ext, "pdf")) { gType = 'PDF '; gCreator = 'CARO'; return true; } // Portable - Document
- else if(StringCompare(ext, "pdx")) { gType = 'TEXT'; gCreator = 'ALD5'; return true; } // Printer - Description
- else if(StringCompare(ext, "pf")) { gType = 'CSIT'; gCreator = 'SITx'; return true; } // Private - File
- else if(StringCompare(ext, "pgc")) { gType = 'PGCF'; gCreator = 'GKON'; return true; } // PGC/PGF - Atari
- else if(StringCompare(ext, "pgm")) { gType = 'PPGM'; gCreator = 'GKON'; return true; } // Portable - Graymap
- else if(StringCompare(ext, "pi1")) { gType = 'Dega'; gCreator = 'GKON'; return true; } // Atari - Degas
- else if(StringCompare(ext, "pi2")) { gType = 'Dega'; gCreator = 'GKON'; return true; } // Atari - Degas
- else if(StringCompare(ext, "pi3")) { gType = 'Dega'; gCreator = 'GKON'; return true; } // Atari - Degas
- else if(StringCompare(ext, "pic")) { gType = 'PICT'; gCreator = 'ogle'; return true; } // PICT - Picture
- else if(StringCompare(ext, "pics")) { gType = 'PICS'; gCreator = 'GKON'; return true; } // PICS-PICT - Sequence
- else if(StringCompare(ext, "pict")) { gType = 'PICT'; gCreator = 'ogle'; return true; } // PICT - Picture
- else if(StringCompare(ext, "pit")) { gType = 'PIT '; gCreator = 'SITx'; return true; } // PackIt - Archive
- else if(StringCompare(ext, "pkg")) { gType = 'HBSF'; gCreator = 'SITx'; return true; } // AppleLink - Package
- else if(StringCompare(ext, "pl")) { gType = 'TEXT'; gCreator = 'McPL'; return true; } // Perl - Source
- else if(StringCompare(ext, "plt")) { gType = 'HPGL'; gCreator = 'GKON'; return true; } // HP - GL/2
- else if(StringCompare(ext, "pm3")) { gType = 'ALB3'; gCreator = 'ALD3'; return true; } // PageMaker - 3
- else if(StringCompare(ext, "pm4")) { gType = 'ALB4'; gCreator = 'ALD4'; return true; } // PageMaker - 4
- else if(StringCompare(ext, "pm5")) { gType = 'ALB5'; gCreator = 'ALD5'; return true; } // PageMaker - 5
- else if(StringCompare(ext, "pm")) { gType = 'PMpm'; gCreator = 'GKON'; return true; } // Bitmap - from
- else if(StringCompare(ext, "png")) { gType = 'PNG '; gCreator = 'ogle'; return true; } // Portable - Network
- else if(StringCompare(ext, "pntg")) { gType = 'PNTG'; gCreator = 'ogle'; return true; } // Macintosh - Painting
- else if(StringCompare(ext, "ppd")) { gType = 'TEXT'; gCreator = 'ALD5'; return true; } // Printer - Description
- else if(StringCompare(ext, "ppm")) { gType = 'PPGM'; gCreator = 'GKON'; return true; } // Portable - Pixmap
- else if(StringCompare(ext, "prn")) { gType = 'TEXT'; gCreator = 'R*ch'; return true; } // Printer - Output
- else if(StringCompare(ext, "psd")) { gType = '8BPS'; gCreator = '8BIM'; return true; } // PhotoShop - Document
- else if(StringCompare(ext, "ps")) { gType = 'TEXT'; gCreator = 'vgrd'; return true; } // PostScript - LaserWriter
- else if(StringCompare(ext, "pt4")) { gType = 'ALT4'; gCreator = 'ALD4'; return true; } // PageMaker - 4
- else if(StringCompare(ext, "pt5")) { gType = 'ALT5'; gCreator = 'ALD5'; return true; } // PageMaker - 5
- else if(StringCompare(ext, "p")) { gType = 'TEXT'; gCreator = 'CWIE'; return true; } // Pascal - Source
- else if(StringCompare(ext, "pxr")) { gType = 'PXR '; gCreator = '8BIM'; return true; } // Pixar - Image
- else if(StringCompare(ext, "qdv")) { gType = 'QDVf'; gCreator = 'GKON'; return true; } // QDV - image
- else if(StringCompare(ext, "qt")) { gType = 'MooV'; gCreator = 'TVOD'; return true; } // QuickTime - Movie
- else if(StringCompare(ext, "qxd")) { gType = 'XDOC'; gCreator = 'XPR3'; return true; } // QuarkXpress - Document
- else if(StringCompare(ext, "qxt")) { gType = 'XTMP'; gCreator = 'XPR3'; return true; } // QuarkXpress - Template
- else if(StringCompare(ext, "raw")) { gType = 'rodh'; gCreator = 'ddsk'; return true; } // Apple - raw
- else if(StringCompare(ext, "readme")) { gType = 'TEXT'; gCreator = 'ttxt'; return true; } // Text - Readme
- else if(StringCompare(ext, "rgba")) { gType = 'SGI '; gCreator = 'GKON'; return true; } // SGI - Image
- else if(StringCompare(ext, "rgb")) { gType = 'SGI '; gCreator = 'GKON'; return true; } // SGI - Image
- else if(StringCompare(ext, "rib")) { gType = 'TEXT'; gCreator = 'RINI'; return true; } // Renderman - 3D
- else if(StringCompare(ext, "rif")) { gType = 'RIFF'; gCreator = 'GKON'; return true; } // RIFF - Graphic
- else if(StringCompare(ext, "rle")) { gType = 'RLE '; gCreator = 'GKON'; return true; } // RLE - image
- else if(StringCompare(ext, "rme")) { gType = 'TEXT'; gCreator = 'ttxt'; return true; } // Text - Readme
- else if(StringCompare(ext, "rpl")) { gType = 'FRL!'; gCreator = 'REP!'; return true; } // Replica - Document
- else if(StringCompare(ext, "rsc")) { gType = 'rsrc'; gCreator = 'RSED'; return true; } // Resource - File
- else if(StringCompare(ext, "rsrc")) { gType = 'rsrc'; gCreator = 'RSED'; return true; } // Resource - File
- else if(StringCompare(ext, "rtf")) { gType = 'TEXT'; gCreator = 'MSWD'; return true; } // Rich - Text
- else if(StringCompare(ext, "rtx")) { gType = 'TEXT'; gCreator = 'R*ch'; return true; } // Rich - Text
- else if(StringCompare(ext, "s3m")) { gType = 'S3M '; gCreator = 'SNPL'; return true; } // ScreamTracker - 3
- else if(StringCompare(ext, "scc")) { gType = 'MSX '; gCreator = 'GKON'; return true; } // MSX - pitcure
- else if(StringCompare(ext, "scg")) { gType = 'RIX3'; gCreator = 'GKON'; return true; } // ColoRIX - GraphicConverter
- else if(StringCompare(ext, "sci")) { gType = 'RIX3'; gCreator = 'GKON'; return true; } // ColoRIX - GraphicConverter
- else if(StringCompare(ext, "scp")) { gType = 'RIX3'; gCreator = 'GKON'; return true; } // ColoRIX - GraphicConverter
- else if(StringCompare(ext, "scr")) { gType = 'RIX3'; gCreator = 'GKON'; return true; } // ColoRIX - GraphicConverter
- else if(StringCompare(ext, "scu")) { gType = 'RIX3'; gCreator = 'GKON'; return true; } // ColoRIX - GraphicConverter
- else if(StringCompare(ext, "sea")) { gType = 'APPL'; gCreator = '????'; return true; } // Self-Extracting - Archive
- else if(StringCompare(ext, "sf")) { gType = 'IRCM'; gCreator = 'SDHK'; return true; } // IRCAM - Sound
- else if(StringCompare(ext, "sgi")) { gType = '.SGI'; gCreator = 'ogle'; return true; } // SGI - Image
- else if(StringCompare(ext, "shar")) { gType = 'TEXT'; gCreator = 'UnSh'; return true; } // Unix - Shell
- else if(StringCompare(ext, "sha")) { gType = 'TEXT'; gCreator = 'UnSh'; return true; } // Unix - Shell
- else if(StringCompare(ext, "shp")) { gType = 'SHPp'; gCreator = 'GKON'; return true; } // Printmaster - Icon
- else if(StringCompare(ext, "sithqx")) { gType = 'TEXT'; gCreator = 'SITx'; return true; } // BinHexed - StuffIt
- else if(StringCompare(ext, "sit")) { gType = 'SIT!'; gCreator = 'SITx'; return true; } // StuffIt - 1.5.1
- else if(StringCompare(ext, "six")) { gType = 'SIXE'; gCreator = 'GKON'; return true; } // SIXEL - image
- else if(StringCompare(ext, "slk")) { gType = 'TEXT'; gCreator = 'XCEL'; return true; } // SYLK - Spreadsheet
- else if(StringCompare(ext, "snd")) { gType = 'BINA'; gCreator = 'SCPL'; return true; } // Sound - of
- else if(StringCompare(ext, "spc")) { gType = 'Spec'; gCreator = 'GKON'; return true; } // Atari - Spectrum
- else if(StringCompare(ext, "sr")) { gType = 'SUNn'; gCreator = 'GKON'; return true; } // Sun - Raster
- else if(StringCompare(ext, "sty")) { gType = 'TEXT'; gCreator = '*TEX'; return true; } // TeX - Style
- else if(StringCompare(ext, "sun")) { gType = 'SUNn'; gCreator = 'GKON'; return true; } // Sun - Raster
- else if(StringCompare(ext, "sup")) { gType = 'SCRN'; gCreator = 'GKON'; return true; } // StartupScreen - GraphicConverter
- else if(StringCompare(ext, "svx")) { gType = '8SVX'; gCreator = 'SCPL'; return true; } // Amiga - IFF
- else if(StringCompare(ext, "swf")) { gType = 'SWFL'; gCreator = 'SWF2'; return true; } // Flash - Macromedia
- else if(StringCompare(ext, "syk")) { gType = 'TEXT'; gCreator = 'XCEL'; return true; } // SYLK - Spreadsheet
- else if(StringCompare(ext, "sylk")) { gType = 'TEXT'; gCreator = 'XCEL'; return true; } // SYLK - Spreadsheet
- else if(StringCompare(ext, "targa")) { gType = 'TPIC'; gCreator = 'GKON'; return true; } // Truevision - Image
- else if(StringCompare(ext, "tar")) { gType = 'TARF'; gCreator = 'SITx'; return true; } // Unix - Tape
- else if(StringCompare(ext, "taz")) { gType = 'ZIVU'; gCreator = 'SITx'; return true; } // Compressed - Tape
- else if(StringCompare(ext, "texinfo")) { gType = 'TEXT'; gCreator = 'OTEX'; return true; } // TeX - Document
- else if(StringCompare(ext, "texi")) { gType = 'TEXT'; gCreator = 'OTEX'; return true; } // TeX - Document
- else if(StringCompare(ext, "tex")) { gType = 'TEXT'; gCreator = 'OTEX'; return true; } // TeX - Document
- else if(StringCompare(ext, "text")) { gType = 'TEXT'; gCreator = 'ttxt'; return true; } // ASCII - Text
- else if(StringCompare(ext, "tga")) { gType = 'TPIC'; gCreator = 'GKON'; return true; } // Truevision - Image
- else if(StringCompare(ext, "tgz")) { gType = 'Gzip'; gCreator = 'SITx'; return true; } // Gnu - ZIPed
- else if(StringCompare(ext, "tiff")) { gType = 'TIFF'; gCreator = 'ogle'; return true; } // TIFF - Picture
- else if(StringCompare(ext, "tif")) { gType = 'TIFF'; gCreator = 'ogle'; return true; } // TIFF - Picture
- else if(StringCompare(ext, "tny")) { gType = 'TINY'; gCreator = 'GKON'; return true; } // Atari - TINY
- else if(StringCompare(ext, "toast")) { gType = 'CDr3'; gCreator = 'GImg'; return true; } // CD - Image
- else if(StringCompare(ext, "tsv")) { gType = 'TEXT'; gCreator = 'XCEL'; return true; } // Tab - Separated
- else if(StringCompare(ext, "tx8")) { gType = 'TEXT'; gCreator = 'ttxt'; return true; } // 8-bit - ASCII
- else if(StringCompare(ext, "txt")) { gType = 'TEXT'; gCreator = 'ttxt'; return true; } // ASCII - Text
- else if(StringCompare(ext, "ul")) { gType = 'ULAW'; gCreator = 'TVOD'; return true; } // Mu-Law - Sound
- else if(StringCompare(ext, "url")) { gType = 'AURL'; gCreator = 'Arch'; return true; } // URL - Bookmark
- else if(StringCompare(ext, "uue")) { gType = 'TEXT'; gCreator = 'SITx'; return true; } // UUEncode - StuffIt
- else if(StringCompare(ext, "uu")) { gType = 'TEXT'; gCreator = 'SITx'; return true; } // UUEncode - StuffIt
- else if(StringCompare(ext, "vff")) { gType = 'VFFf'; gCreator = 'GKON'; return true; } // DESR - VFF
- else if(StringCompare(ext, "vga")) { gType = 'BMPp'; gCreator = 'ogle'; return true; } // OS/2 - Bitmap
- else if(StringCompare(ext, "voc")) { gType = 'VOC '; gCreator = 'SCPL'; return true; } // VOC - Sound
- else if(StringCompare(ext, "vpb")) { gType = 'VPB '; gCreator = 'GKON'; return true; } // VPB - QUANTEL
- else if(StringCompare(ext, "w51")) { gType = '.WP5'; gCreator = 'WPC2'; return true; } // WordPerfect - PC
- else if(StringCompare(ext, "wav")) { gType = 'WAVE'; gCreator = 'TVOD'; return true; } // Windows - WAV
- else if(StringCompare(ext, "wbmp")) { gType = 'WBMP'; gCreator = 'GKON'; return true; } // WBMP - GraphicConverter
- else if(StringCompare(ext, "wk1")) { gType = 'XLBN'; gCreator = 'XCEL'; return true; } // Lotus - Spreadsheet
- else if(StringCompare(ext, "wks")) { gType = 'XLBN'; gCreator = 'XCEL'; return true; } // Lotus - Spreadsheet
- else if(StringCompare(ext, "wmf")) { gType = 'WMF '; gCreator = 'GKON'; return true; } // Windows - Metafile
- else if(StringCompare(ext, "wp4")) { gType = '.WP4'; gCreator = 'WPC2'; return true; } // WordPerfect - PC
- else if(StringCompare(ext, "wp5")) { gType = '.WP5'; gCreator = 'WPC2'; return true; } // WordPerfect - PC
- else if(StringCompare(ext, "wp6")) { gType = '.WP6'; gCreator = 'WPC2'; return true; } // WordPerfect - PC
- else if(StringCompare(ext, "wpg")) { gType = 'WPGf'; gCreator = 'GKON'; return true; } // WordPerfect - Graphic
- else if(StringCompare(ext, "wpm")) { gType = 'WPD1'; gCreator = 'WPC2'; return true; } // WordPerfect - Mac
- else if(StringCompare(ext, "wp")) { gType = '.WP5'; gCreator = 'WPC2'; return true; } // WordPerfect - PC
- else if(StringCompare(ext, "wri")) { gType = 'WDBN'; gCreator = 'MSWD'; return true; } // MS - Write/Windows
- else if(StringCompare(ext, "wve")) { gType = 'BINA'; gCreator = 'SCPL'; return true; } // PSION - sound
- else if(StringCompare(ext, "x10")) { gType = 'XWDd'; gCreator = 'GKON'; return true; } // X-Windows - Dump
- else if(StringCompare(ext, "x11")) { gType = 'XWDd'; gCreator = 'GKON'; return true; } // X-Windows - Dump
- else if(StringCompare(ext, "xbm")) { gType = 'XBM '; gCreator = 'GKON'; return true; } // X-Windows - Bitmap
- else if(StringCompare(ext, "x-face")) { gType = 'TEXT'; gCreator = 'GKON'; return true; } // X-Face - GraphicConverter
- else if(StringCompare(ext, "xlc")) { gType = 'XLC '; gCreator = 'XCEL'; return true; } // Excel - Chart
- else if(StringCompare(ext, "xlm")) { gType = 'XLM '; gCreator = 'XCEL'; return true; } // Excel - Macro
- else if(StringCompare(ext, "xls")) { gType = 'XLS '; gCreator = 'XCEL'; return true; } // Excel - Spreadsheet
- else if(StringCompare(ext, "xlw")) { gType = 'XLW '; gCreator = 'XCEL'; return true; } // Excel - Workspace
- else if(StringCompare(ext, "xl")) { gType = 'XLS '; gCreator = 'XCEL'; return true; } // Excel - Spreadsheet
- else if(StringCompare(ext, "xm")) { gType = 'XM '; gCreator = 'SNPL'; return true; } // FastTracker - MOD
- else if(StringCompare(ext, "xpm")) { gType = 'XPM '; gCreator = 'GKON'; return true; } // X-Windows - Pixmap
- else if(StringCompare(ext, "xwd")) { gType = 'XWDd'; gCreator = 'GKON'; return true; } // X-Windows - Dump
- else if(StringCompare(ext, "zip")) { gType = 'ZIP '; gCreator = 'SITx'; return true; } // PC - ZIP
- else if(StringCompare(ext, "zoo")) { gType = 'Zoo '; gCreator = 'Booz'; return true; } // Zoo - Archive
- else if(StringCompare(ext, "Z")) { gType = 'ZIVU'; gCreator = 'SITx'; return true; } // Unix - Compress
+static const struct {
+ char *extension;
+ OSType type;
+ OSType creator;
+} exttypes[] = {
+ { "1st", 'TEXT', 'ttxt' }, // Text Readme
+ { "669", '6669', 'SNPL' }, // 669 - MOD
+ { "8med", 'STrk', 'SCPL' }, // Amiga - OctaMed
+ { "8svx", '8SVX', 'SCPL' }, // Amiga - 8-bit
+ { "aif", 'AIFF', 'SCPL' }, // AIFF - Sound
+ { "aifc", 'AIFC', 'SCPL' }, // AIFF - Sound
+ { "aiff", 'AIFF', 'SCPL' }, // AIFF - Sound
+ { "al", 'ALAW', 'SCPL' }, // ALAW - Sound
+ { "ani", 'ANIi', 'GKON' }, // Animated - NeoChrome
+ { "apd", 'TEXT', 'ALD3' }, // Aldus - Printer
+ { "arc", 'mArc', 'SITx' }, // PC - ARChive
+ { "arj", 'BINA', 'DArj' }, // ARJ - Archive
+ { "arr", 'ARR ', 'GKON' }, // Amber - ARR
+ { "art", 'ART ', 'GKON' }, // First - Publisher
+ { "ascii", 'TEXT', 'ttxt' }, // ASCII - Text
+ { "asc", 'TEXT', 'ttxt' }, // ASCII - Text
+ { "asf", 'ASF_', 'Ms01' }, // Netshow - Player
+ { "asm", 'TEXT', 'ttxt' }, // Assembly - Source
+ { "asx", 'ASX_', 'Ms01' }, // Netshow - Player
+ { "a", 'TEXT', 'ttxt' }, // Assembly - Source
+ { "au", 'ULAW', 'TVOD' }, // Sun - Sound
+ { "avi", 'VfW ', 'TVOD' }, // AVI - Movie
+ { "bar", 'BARF', 'S691' }, // Unix - BAR
+ { "bas", 'TEXT', 'ttxt' }, // BASIC - Source
+ { "bat", 'TEXT', 'ttxt' }, // MS-DOS - Batch
+ { "bga", 'BMPp', 'ogle' }, // OS/2 - Bitmap
+ { "bib", 'TEXT', 'ttxt' }, // BibTex - Bibliography
+ { "binary", 'BINA', 'hDmp' }, // Untyped - Binary
+ { "bin", 'BINA', 'SITx' }, // MacBinary - StuffIt
+ { "bld", 'BLD ', 'GKON' }, // BLD - GraphicConverter
+ { "bmp", 'BMPp', 'ogle' }, // Windows - Bitmap
+ { "boo", 'TEXT', 'ttxt' }, // BOO - encoded
+ { "bst", 'TEXT', 'ttxt' }, // BibTex - Style
+ { "bum", '.bMp', 'GKON' }, // QuickTime - Importer(QuickDraw)
+ { "bw", 'SGI ', 'GKON' }, // SGI - Image
+ { "bz", 'Bzp2', 'SITx' }, // BZip2 - StuffIt
+ { "cel", 'CEL ', 'GKON' }, // KISS - CEL
+ { "cgm", 'CGMm', 'GKON' }, // Computer - Graphics
+ { "class", 'Clss', 'CWIE' }, // Java - Class
+ { "clp", 'CLPp', 'GKON' }, // Windows - Clipboard
+ { "cmd", 'TEXT', 'ttxt' }, // OS/2 - Batch
+ { "com", 'PCFA', 'SWIN' }, // MS-DOS - Executable
+ { "cpp", 'TEXT', 'CWIE' }, // C++ - Source
+ { "cp", 'TEXT', 'CWIE' }, // C++ - Source
+ { "cpt", 'PACT', 'SITx' }, // Compact - Pro
+ { "csv", 'TEXT', 'XCEL' }, // Comma - Separated
+ { "ct", '..CT', 'GKON' }, // Scitex-CT - GraphicConverter
+ { "c", 'TEXT', 'KAHL' }, // C - Source
+ { "cur", 'CUR ', 'GKON' }, // Windows - Cursor
+ { "cut", 'Halo', 'GKON' }, // Dr - Halo
+ { "cvs", 'drw2', 'DAD2' }, // Canvas - Drawing
+ { "cwj", 'CWSS', 'cwkj' }, // ClarisWorks - Document
+ { "dat", 'TCLl', 'GKON' }, // TCL - image
+ { "dbf", 'COMP', 'FOX+' }, // DBase - Document
+ { "dcx", 'DCXx', 'GKON' }, // Some - PCX
+ { "dif", 'TEXT', 'XCEL' }, // Data - Interchange
+ { "diz", 'TEXT', 'R*Ch' }, // BBS - Descriptive
+ { "dl", 'DL ', 'AnVw' }, // DL - Animation
+ { "dll", 'PCFL', 'SWIN' }, // Windows - DLL
+ { "doc", 'WDBN', 'MSWD' }, // Word - Document
+ { "dot", 'sDBN', 'MSWD' }, // Word - for
+ { "dsk", 'dimg', 'dCpy' }, // Apple - DiskCopy
+ { "dvi", 'ODVI', 'xdvi' }, // TeX - DVI
+ { "dwt", 'TEXT', 'DmWr' }, // Dreamweaver - Template
+ { "dxf", 'TEXT', 'SWVL' }, // AutoCAD - 3D
+ { "eps", 'EPSF', 'vgrd' }, // Postscript - LaserWriter
+ { "epsf", 'EPSF', 'vgrd' }, // Postscript - LaserWriter
+ { "etx", 'TEXT', 'ezVu' }, // SEText - Easy
+ { "evy", 'EVYD', 'ENVY' }, // Envoy - Document
+ { "exe", 'PCFA', 'SWIN' }, // MS-DOS - Executable
+ { "faq", 'TEXT', 'ttxt' }, // ASCII - Text
+ { "fit", 'FITS', 'GKON' }, // Flexible - Image
+ { "fla", 'SPA ', 'MFL2' }, // Flash - source
+ { "flc", 'FLI ', 'TVOD' }, // FLIC - Animation
+ { "fli", 'FLI ', 'TVOD' }, // FLI - Animation
+ { "fm", 'FMPR', 'FMPR' }, // FileMaker - Pro
+ { "for", 'TEXT', 'MPS ' }, // Fortran - Source
+ { "fts", 'FITS', 'GKON' }, // Flexible - Image
+ { "gem", 'GEM-', 'GKON' }, // GEM - Metafile
+ { "gif", 'GIFf', 'ogle' }, // GIF - Picture
+ { "gl", 'GL ', 'AnVw' }, // GL - Animation
+ { "grp", 'GRPp', 'GKON' }, // GRP - Image
+ { "gz", 'SIT!', 'SITx' }, // Gnu - ZIP
+ { "hcom", 'FSSD', 'SCPL' }, // SoundEdit - Sound
+ { "hpgl", 'HPGL', 'GKON' }, // HP - GL/2
+ { "hpp", 'TEXT', 'CWIE' }, // C - Include
+ { "hp", 'TEXT', 'CWIE' }, // C - Include
+ { "hqx", 'TEXT', 'SITx' }, // BinHex - StuffIt
+ { "hr", 'TR80', 'GKON' }, // TSR-80 - HR
+ { "h", 'TEXT', 'KAHL' }, // C - Include
+ { "html", 'TEXT', 'MOSS' }, // HyperText - Netscape
+ { "htm", 'TEXT', 'MOSS' }, // HyperText - Netscape
+ { "i3", 'TEXT', 'R*ch' }, // Modula - 3
+ { "ic1", 'IMAG', 'GKON' }, // Atari - Image
+ { "ic2", 'IMAG', 'GKON' }, // Atari - Image
+ { "ic3", 'IMAG', 'GKON' }, // Atari - Image
+ { "icn", 'ICO ', 'GKON' }, // Windows - Icon
+ { "ico", 'ICO ', 'GKON' }, // Windows - Icon
+ { "ief", 'IEF ', 'GKON' }, // IEF - image
+ { "iff", 'ILBM', 'GKON' }, // Amiga - IFF
+ { "ilbm", 'ILBM', 'GKON' }, // Amiga - ILBM
+ { "image", 'dImg', 'ddsk' }, // Apple - DiskCopy
+ { "img", 'dImg', 'ddsk' }, // Apple - DiskCopy
+ { "ini", 'TEXT', 'ttxt' }, // Windows - INI
+ { "iso", 'rodh', 'ddsk' }, // Apple - ISO
+ { "iss", 'ISS ', 'GKON' }, // ISS - GraphicConverter
+ { "java", 'TEXT', 'CWIE' }, // Java - Source
+ { "jfif", 'JPEG', 'ogle' }, // JFIF - Image
+ { "jif", 'JIFf', 'GKON' }, // JIF99a - GraphicConverter
+ { "jpeg", 'JPEG', 'ogle' }, // JPEG - Picture
+ { "jpe", 'JPEG', 'ogle' }, // JPEG - Picture
+ { "jpg", 'JPEG', 'ogle' }, // JPEG - Picture
+ { "latex", 'TEXT', 'OTEX' }, // Latex - OzTex
+ { "lbm", 'ILBM', 'GKON' }, // Amiga - IFF
+ { "lha", 'LHA ', 'SITx' }, // LHArc - Archive
+ { "lwf", 'lwfF', 'GKON' }, // LuraWave(LWF) - GraphicConverter
+ { "lzh", 'LHA ', 'SITx' }, // LHArc - Archive
+ { "m1a", 'MPEG', 'TVOD' }, // MPEG-1 - audiostream
+ { "m1s", 'MPEG', 'TVOD' }, // MPEG-1 - systemstream
+ { "m1v", 'M1V ', 'TVOD' }, // MPEG-1 - IPB
+ { "m2", 'TEXT', 'R*ch' }, // Modula - 2
+ { "m2v", 'MPG2', 'MPG2' }, // MPEG-2 - IPB
+ { "m3", 'TEXT', 'R*ch' }, // Modula - 3
+ { "mac", 'PICT', 'ogle' }, // PICT - Picture
+ { "mak", 'TEXT', 'R*ch' }, // Makefile - BBEdit
+ { "mbm", 'MBM ', 'GKON' }, // PSION - 5(MBM)
+ { "mcw", 'WDBN', 'MSWD' }, // Mac - Word
+ { "med", 'STrk', 'SCPL' }, // Amiga - MED
+ { "me", 'TEXT', 'ttxt' }, // Text - Readme
+ { "mf", 'TEXT', '*MF*' }, // Metafont - Metafont
+ { "midi", 'Midi', 'TVOD' }, // MIDI - Music
+ { "mid", 'Midi', 'TVOD' }, // MIDI - Music
+ { "mif", 'TEXT', 'Fram' }, // FrameMaker - MIF
+ { "mime", 'TEXT', 'SITx' }, // MIME - Message
+ { "ml", 'TEXT', 'R*ch' }, // ML - Source
+ { "mod", 'STrk', 'SCPL' }, // MOD - Music
+ { "mol", 'TEXT', 'RSML' }, // MDL - Molfile
+ { "moov", 'MooV', 'TVOD' }, // QuickTime - Movie
+ { "mov", 'MooV', 'TVOD' }, // QuickTime - Movie
+ { "mp2", 'MPEG', 'TVOD' }, // MPEG-1 - audiostream
+ { "mp3", 'MPG3', 'TVOD' }, // MPEG-3 - audiostream
+ { "mpa", 'MPEG', 'TVOD' }, // MPEG-1 - audiostream
+ { "mpeg", 'MPEG', 'TVOD' }, // MPEG - Movie
+ { "mpe", 'MPEG', 'TVOD' }, // MPEG - Movie
+ { "mpg", 'MPEG', 'TVOD' }, // MPEG - Movie
+ { "msp", 'MSPp', 'GKON' }, // Microsoft - Paint
+ { "mtm", 'MTM ', 'SNPL' }, // MultiMOD - Music
+ { "mwii", 'MW2D', 'MWII' }, // MacWrite - Document
+ { "mw", 'MW2D', 'MWII' }, // MacWrite - Document
+ { "neo", 'NeoC', 'GKON' }, // Atari - NeoChrome
+ { "nfo", 'TEXT', 'ttxt' }, // Info - Text
+ { "ngg", 'NGGC', 'GKON' }, // Mobile - Phone(Nokia)Format
+ { "nol", 'NOL ', 'GKON' }, // Mobile - Phone(Nokia)Format
+ { "nst", 'STrk', 'SCPL' }, // MOD - Music
+ { "obj", 'PCFL', 'SWIN' }, // Object - (DOS/Windows)
+ { "oda", 'ODIF', 'ODA ' }, // ODA - Document
+ { "okt", 'OKTA', 'SCPL' }, // Oktalyser - MOD
+ { "out", 'BINA', 'hDmp' }, // Output - File
+ { "ovl", 'PCFL', 'SWIN' }, // Overlay - (DOS/Windows)
+ { "pac", 'STAD', 'GKON' }, // Atari - STAD
+ { "pal", '8BCT', '8BIM' }, // Color - Table
+ { "pas", 'TEXT', 'CWIE' }, // Pascal - Source
+ { "pbm", 'PPGM', 'GKON' }, // Portable - Bitmap
+ { "pc1", 'Dega', 'GKON' }, // Atari - Degas
+ { "pc2", 'Dega', 'GKON' }, // Atari - Degas
+ { "pc3", 'Dega', 'GKON' }, // Atari - Degas
+ { "pcs", 'PICS', 'GKON' }, // Animated - PICTs
+ { "pct", 'PICT', 'ogle' }, // PICT - Picture
+ { "pcx", 'PCXx', 'GKON' }, // PC - PaintBrush
+ { "pdb", 'TEXT', 'RSML' }, // Brookhaven - PDB
+ { "pdf", 'PDF ', 'CARO' }, // Portable - Document
+ { "pdx", 'TEXT', 'ALD5' }, // Printer - Description
+ { "pf", 'CSIT', 'SITx' }, // Private - File
+ { "pgc", 'PGCF', 'GKON' }, // PGC/PGF - Atari
+ { "pgm", 'PPGM', 'GKON' }, // Portable - Graymap
+ { "pi1", 'Dega', 'GKON' }, // Atari - Degas
+ { "pi2", 'Dega', 'GKON' }, // Atari - Degas
+ { "pi3", 'Dega', 'GKON' }, // Atari - Degas
+ { "pic", 'PICT', 'ogle' }, // PICT - Picture
+ { "pics", 'PICS', 'GKON' }, // PICS-PICT - Sequence
+ { "pict", 'PICT', 'ogle' }, // PICT - Picture
+ { "pit", 'PIT ', 'SITx' }, // PackIt - Archive
+ { "pkg", 'HBSF', 'SITx' }, // AppleLink - Package
+ { "pl", 'TEXT', 'McPL' }, // Perl - Source
+ { "plt", 'HPGL', 'GKON' }, // HP - GL/2
+ { "pm3", 'ALB3', 'ALD3' }, // PageMaker - 3
+ { "pm4", 'ALB4', 'ALD4' }, // PageMaker - 4
+ { "pm5", 'ALB5', 'ALD5' }, // PageMaker - 5
+ { "pm", 'PMpm', 'GKON' }, // Bitmap - from
+ { "png", 'PNG ', 'ogle' }, // Portable - Network
+ { "pntg", 'PNTG', 'ogle' }, // Macintosh - Painting
+ { "ppd", 'TEXT', 'ALD5' }, // Printer - Description
+ { "ppm", 'PPGM', 'GKON' }, // Portable - Pixmap
+ { "prn", 'TEXT', 'R*ch' }, // Printer - Output
+ { "psd", '8BPS', '8BIM' }, // PhotoShop - Document
+ { "ps", 'TEXT', 'vgrd' }, // PostScript - LaserWriter
+ { "pt4", 'ALT4', 'ALD4' }, // PageMaker - 4
+ { "pt5", 'ALT5', 'ALD5' }, // PageMaker - 5
+ { "p", 'TEXT', 'CWIE' }, // Pascal - Source
+ { "pxr", 'PXR ', '8BIM' }, // Pixar - Image
+ { "qdv", 'QDVf', 'GKON' }, // QDV - image
+ { "qt", 'MooV', 'TVOD' }, // QuickTime - Movie
+ { "qxd", 'XDOC', 'XPR3' }, // QuarkXpress - Document
+ { "qxt", 'XTMP', 'XPR3' }, // QuarkXpress - Template
+ { "raw", 'rodh', 'ddsk' }, // Apple - raw
+ { "readme", 'TEXT', 'ttxt' }, // Text - Readme
+ { "rgba", 'SGI ', 'GKON' }, // SGI - Image
+ { "rgb", 'SGI ', 'GKON' }, // SGI - Image
+ { "rib", 'TEXT', 'RINI' }, // Renderman - 3D
+ { "rif", 'RIFF', 'GKON' }, // RIFF - Graphic
+ { "rle", 'RLE ', 'GKON' }, // RLE - image
+ { "rme", 'TEXT', 'ttxt' }, // Text - Readme
+ { "rpl", 'FRL!', 'REP!' }, // Replica - Document
+ { "rsc", 'rsrc', 'RSED' }, // Resource - File
+ { "rsrc", 'rsrc', 'RSED' }, // Resource - File
+ { "rtf", 'TEXT', 'MSWD' }, // Rich - Text
+ { "rtx", 'TEXT', 'R*ch' }, // Rich - Text
+ { "s3m", 'S3M ', 'SNPL' }, // ScreamTracker - 3
+ { "scc", 'MSX ', 'GKON' }, // MSX - pitcure
+ { "scg", 'RIX3', 'GKON' }, // ColoRIX - GraphicConverter
+ { "sci", 'RIX3', 'GKON' }, // ColoRIX - GraphicConverter
+ { "scp", 'RIX3', 'GKON' }, // ColoRIX - GraphicConverter
+ { "scr", 'RIX3', 'GKON' }, // ColoRIX - GraphicConverter
+ { "scu", 'RIX3', 'GKON' }, // ColoRIX - GraphicConverter
+ { "sea", 'APPL', '????' }, // Self-Extracting - Archive
+ { "sf", 'IRCM', 'SDHK' }, // IRCAM - Sound
+ { "sgi", '.SGI', 'ogle' }, // SGI - Image
+ { "shar", 'TEXT', 'UnSh' }, // Unix - Shell
+ { "sha", 'TEXT', 'UnSh' }, // Unix - Shell
+ { "shp", 'SHPp', 'GKON' }, // Printmaster - Icon
+ { "sithqx", 'TEXT', 'SITx' }, // BinHexed - StuffIt
+ { "sit", 'SIT!', 'SITx' }, // StuffIt - 1.5.1
+ { "six", 'SIXE', 'GKON' }, // SIXEL - image
+ { "slk", 'TEXT', 'XCEL' }, // SYLK - Spreadsheet
+ { "snd", 'BINA', 'SCPL' }, // Sound - of
+ { "spc", 'Spec', 'GKON' }, // Atari - Spectrum
+ { "sr", 'SUNn', 'GKON' }, // Sun - Raster
+ { "sty", 'TEXT', '*TEX' }, // TeX - Style
+ { "sun", 'SUNn', 'GKON' }, // Sun - Raster
+ { "sup", 'SCRN', 'GKON' }, // StartupScreen - GraphicConverter
+ { "svx", '8SVX', 'SCPL' }, // Amiga - IFF
+ { "swf", 'SWFL', 'SWF2' }, // Flash - Macromedia
+ { "syk", 'TEXT', 'XCEL' }, // SYLK - Spreadsheet
+ { "sylk", 'TEXT', 'XCEL' }, // SYLK - Spreadsheet
+ { "targa", 'TPIC', 'GKON' }, // Truevision - Image
+ { "tar", 'TARF', 'SITx' }, // Unix - Tape
+ { "taz", 'ZIVU', 'SITx' }, // Compressed - Tape
+ { "texinfo", 'TEXT', 'OTEX' }, // TeX - Document
+ { "texi", 'TEXT', 'OTEX' }, // TeX - Document
+ { "tex", 'TEXT', 'OTEX' }, // TeX - Document
+ { "text", 'TEXT', 'ttxt' }, // ASCII - Text
+ { "tga", 'TPIC', 'GKON' }, // Truevision - Image
+ { "tgz", 'Gzip', 'SITx' }, // Gnu - ZIPed
+ { "tiff", 'TIFF', 'ogle' }, // TIFF - Picture
+ { "tif", 'TIFF', 'ogle' }, // TIFF - Picture
+ { "tny", 'TINY', 'GKON' }, // Atari - TINY
+ { "toast", 'CDr3', 'GImg' }, // CD - Image
+ { "tsv", 'TEXT', 'XCEL' }, // Tab - Separated
+ { "tx8", 'TEXT', 'ttxt' }, // 8-bit - ASCII
+ { "txt", 'TEXT', 'ttxt' }, // ASCII - Text
+ { "ul", 'ULAW', 'TVOD' }, // Mu-Law - Sound
+ { "url", 'AURL', 'Arch' }, // URL - Bookmark
+ { "uue", 'TEXT', 'SITx' }, // UUEncode - StuffIt
+ { "uu", 'TEXT', 'SITx' }, // UUEncode - StuffIt
+ { "vff", 'VFFf', 'GKON' }, // DESR - VFF
+ { "vga", 'BMPp', 'ogle' }, // OS/2 - Bitmap
+ { "voc", 'VOC ', 'SCPL' }, // VOC - Sound
+ { "vpb", 'VPB ', 'GKON' }, // VPB - QUANTEL
+ { "w51", '.WP5', 'WPC2' }, // WordPerfect - PC
+ { "wav", 'WAVE', 'TVOD' }, // Windows - WAV
+ { "wbmp", 'WBMP', 'GKON' }, // WBMP - GraphicConverter
+ { "wk1", 'XLBN', 'XCEL' }, // Lotus - Spreadsheet
+ { "wks", 'XLBN', 'XCEL' }, // Lotus - Spreadsheet
+ { "wmf", 'WMF ', 'GKON' }, // Windows - Metafile
+ { "wp4", '.WP4', 'WPC2' }, // WordPerfect - PC
+ { "wp5", '.WP5', 'WPC2' }, // WordPerfect - PC
+ { "wp6", '.WP6', 'WPC2' }, // WordPerfect - PC
+ { "wpg", 'WPGf', 'GKON' }, // WordPerfect - Graphic
+ { "wpm", 'WPD1', 'WPC2' }, // WordPerfect - Mac
+ { "wp", '.WP5', 'WPC2' }, // WordPerfect - PC
+ { "wri", 'WDBN', 'MSWD' }, // MS - Write/Windows
+ { "wve", 'BINA', 'SCPL' }, // PSION - sound
+ { "x10", 'XWDd', 'GKON' }, // X-Windows - Dump
+ { "x11", 'XWDd', 'GKON' }, // X-Windows - Dump
+ { "xbm", 'XBM ', 'GKON' }, // X-Windows - Bitmap
+ { "x-face", 'TEXT', 'GKON' }, // X-Face - GraphicConverter
+ { "xlc", 'XLC ', 'XCEL' }, // Excel - Chart
+ { "xlm", 'XLM ', 'XCEL' }, // Excel - Macro
+ { "xls", 'XLS ', 'XCEL' }, // Excel - Spreadsheet
+ { "xlw", 'XLW ', 'XCEL' }, // Excel - Workspace
+ { "xl", 'XLS ', 'XCEL' }, // Excel - Spreadsheet
+ { "xm", 'XM ', 'SNPL' }, // FastTracker - MOD
+ { "xpm", 'XPM ', 'GKON' }, // X-Windows - Pixmap
+ { "xwd", 'XWDd', 'GKON' }, // X-Windows - Dump
+ { "zip", 'ZIP ', 'SITx' }, // PC - ZIP
+ { "zoo", 'Zoo ', 'Booz' }, // Zoo - Archive
+ { "Z", 'ZIVU', 'SITx' }, // Unix - Compress
+};
+
+Boolean CheckFileExt(const char *ext, OSType *type, OSType *creator)
+{
+ short n, j;
+
+ for (n = 0; n < (sizeof(exttypes) / sizeof(exttypes[0])); n++) {
+ for (j = 0; ; j++) {
+ if (exttypes[n].extension[j] != ext[j])
+ break;
+ if (exttypes[n].extension[j] == '\0' && ext[j] == '\0') {
+ *type = exttypes[n].type;
+ *creator = exttypes[n].creator;
+ return true;
+ }
+ }
+ }
+ return false;
}
--- file_ext.h Sat Mar 30 20:46:48 2024
+++ file_ext.h Fri Apr 5 08:35:47 2024
@@ -1,4 +1,5 @@
/*
Copyright Eric Helgeson 2023-2024.
*/
-Boolean CheckFileExt(const char *ext);
+Boolean
+CheckFileExt(const char *ext, OSType *type, OSType *creator);
--- main.c Sat Mar 30 19:21:17 2024
+++ main.c Fri Apr 5 08:36:15 2024
@@ -153,7 +153,7 @@ OSErr openFile(unsigned char *fName, short fRefNum, sh
for(; i <= fName[0]; i++)
ext[j++] = fName[i];
LowerText(ext, StringLen(ext));
- found = CheckFileExt(ext);
+ found = CheckFileExt(ext, &gType, &gCreator);
}
}