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