aboutsummaryrefslogtreecommitdiff
path: root/backends/PalmOS/Src/missing
diff options
context:
space:
mode:
authorChris Apers2004-09-12 11:27:36 +0000
committerChris Apers2004-09-12 11:27:36 +0000
commit3a89406b76efee69496d1620fc5111949ff11e00 (patch)
tree6afc3ad1447f26b1d52bafe09105d1324babee23 /backends/PalmOS/Src/missing
parenta1c22f9d7f823bef55be5c2c31e5d963ac29c8d6 (diff)
downloadscummvm-rg350-3a89406b76efee69496d1620fc5111949ff11e00.tar.gz
scummvm-rg350-3a89406b76efee69496d1620fc5111949ff11e00.tar.bz2
scummvm-rg350-3a89406b76efee69496d1620fc5111949ff11e00.zip
New exit(...) function
svn-id: r15030
Diffstat (limited to 'backends/PalmOS/Src/missing')
-rw-r--r--backends/PalmOS/Src/missing/_stdlib.cpp8
-rw-r--r--backends/PalmOS/Src/missing/stdlib.h5
2 files changed, 11 insertions, 2 deletions
diff --git a/backends/PalmOS/Src/missing/_stdlib.cpp b/backends/PalmOS/Src/missing/_stdlib.cpp
index 0c89ecd0d9..3b8bdb4b62 100644
--- a/backends/PalmOS/Src/missing/_stdlib.cpp
+++ b/backends/PalmOS/Src/missing/_stdlib.cpp
@@ -80,11 +80,15 @@ MemPtr realloc(MemPtr oldP, UInt32 size) {
return newP;
}
+ErrJumpBuf stdlib_errJumpBuf;
+#define ERR_MAGIC 0xDADA
+
void exit(Int16 status) {
- // need to change this
EventType event;
event.eType = keyDownEvent;
event.data.keyDown.chr = vchrLaunch;
event.data.keyDown.modifiers = commandKeyMask;
- EvtAddUniqueEventToQueue (&event, 0, true);
+ EvtAddUniqueEventToQueue(&event, 0, true);
+
+ ErrLongJump(stdlib_errJumpBuf, status == 0 ? 0xDADA : status);
}
diff --git a/backends/PalmOS/Src/missing/stdlib.h b/backends/PalmOS/Src/missing/stdlib.h
index 5d0337dac2..6448ee390e 100644
--- a/backends/PalmOS/Src/missing/stdlib.h
+++ b/backends/PalmOS/Src/missing/stdlib.h
@@ -26,6 +26,11 @@
#include <PalmOS.h>
#include "MemGlue.h"
+extern ErrJumpBuf stdlib_errJumpBuf;
+
+#define DO_EXIT( code ) \
+ if (ErrSetJump(stdlib_errJumpBuf) == 0) { code }
+
#define atoi StrAToI
#define atol StrAToI
#define abs(a) ((a) < 0 ? -(a) : (a))