AmendHub

Download:

nulleric

/

Fix-a-Fork

/

amendments

/

34

This format is easier to maintain and should be faster.


jcs made amendment 34 8 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); } }