summaryrefslogtreecommitdiff
path: root/command_line/CmdLine/Src/MacEmul/ErrMgr.c
diff options
context:
space:
mode:
Diffstat (limited to 'command_line/CmdLine/Src/MacEmul/ErrMgr.c')
-rw-r--r--command_line/CmdLine/Src/MacEmul/ErrMgr.c54
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;
+}