diff options
Diffstat (limited to 'command_line/CmdLine/Src/MacEmul/ErrMgr.c')
-rw-r--r-- | command_line/CmdLine/Src/MacEmul/ErrMgr.c | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/command_line/CmdLine/Src/MacEmul/ErrMgr.c b/command_line/CmdLine/Src/MacEmul/ErrMgr.c new file mode 100644 index 0000000..65bb89c --- /dev/null +++ b/command_line/CmdLine/Src/MacEmul/ErrMgr.c @@ -0,0 +1,54 @@ +#include "mwcc_decomp.h" + +static const char *getsyserr(SInt16 msgNbr) { + switch (msgNbr) { + case 0: return "No error"; + case -27: return "I/O call aborted by KillIO"; + case -34: return "Disk full"; + case -35: return "No such volume"; + case -36: return "Input/output error"; + case -37: return "Some component of filename is too long"; + case -39: return "End-of-file error"; + case -40: return "Tried to position before EOF"; + case -42: return "Too many files open"; + case -43: return "File or directory not found"; + case -48: return "Filename already exists on rename or create"; + case -50: return "Error in user parameter list"; + case -51: return "Bad reference number"; + case -52: return "Get file position error"; + case -54: return "Invalid file access or invalid permissions"; + case -61: return "Write permissions error"; + case -108: return "Null or invalid address detected"; + case -109: return "invalid handle detected"; + case -113: return "Directory not found"; + case -120: return "User cancelled"; + case -192: return "Resource not found"; + case -1302: return "Not a file"; + case -1309: return "Seek position exceeds boundaries for filesystem"; + case -1310: return "File size too big for filesystem"; + case -188: return "Resource already in memory"; + case -189: return "Writing past end of file"; + case -190: return "Offset of Count out of bounds"; + case -193: return "Resource file not found"; + case -194: return "Could not add resource"; + case -195: return "Could not add reference"; + case -196: return "Could not remove resource"; + case -197: return "Could not remove reference"; + case -198: return "Resource attribute inconsistent with operation"; + case -199: return "Resource map corrupted or inconsistent with operation"; + case -32767: return "Feature not supported"; + default: return 0; + } +} + +char *GetSysErrText(SInt16 msgNbr, char *errMsg) { + const char *txt; + + txt = getsyserr(msgNbr); + if (!txt) + sprintf(errMsg, "Operating system error %ld", msgNbr & 0x7FFF); + else + strcpy(errMsg, txt); + + return errMsg; +} |