AmendHub

Download:

nulleric

/

Fix-a-Fork

/

amendments

/

16

Add ability to look at file extensions if all else fails.


eric made amendment 16 about 1 year ago
--- main.c Thu Nov 9 09:46:55 2023 +++ main.c Thu Nov 9 10:27:03 2023 @@ -1,4 +1,5 @@ #include "main.h" +#include <Script.h> pascal OSErr DoOpenDoc(AppleEvent *event, AppleEvent *reply, long handlerRefcon) { @@ -77,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}; + err = FSOpen(fName, vRefNum, &fRefNum); if(err) return err; @@ -110,6 +112,21 @@ OSErr openFile(unsigned char *fName, short fRefNum, sh if(isDsk_1024()) found = true; } + + 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")) + { + gType = 'BINA'; + gCreator = 'SITx'; + found = true; + } + } if(found) { @@ -221,6 +238,18 @@ short strlen(const char *str) const char *s; for (s = str; *s; ++s); return (s-str); +} + +Boolean strcmp(const char *lhs, const char *rhs) +{ + short i = 0; + short len = strlen(lhs); + if(len != strlen(rhs)) return false; + + for(i = 0; i < len; i++) + if(lhs[i] != rhs[i]) + return false; + return true; } Boolean magicCheck(char *magic, short offset, OSType type, OSType creator) --- main.h Thu Nov 9 09:47:04 2023 +++ main.h Thu Nov 9 10:15:33 2023 @@ -18,6 +18,7 @@ OSErr openFile(unsigned char *fName, short fRefNum, sh pascal OSErr DoOpenDoc(AppleEvent *event, AppleEvent *reply, long handlerRefcon); // checks +Boolean strcmp(const char *lhs, const char *rhs); Boolean magicCheck(char *magic, short offset, OSType type, OSType creator); Boolean isBinHex4(); Boolean isSit5();