[Scummvm-cvs-logs] CVS: scummvm/backends/PalmOS/Src/missing _stdlib.cpp,1.7,1.8 stdlib.h,1.6,1.7
Chris Apers
chrilith at users.sourceforge.net
Sun Sep 12 04:28:03 CEST 2004
Update of /cvsroot/scummvm/scummvm/backends/PalmOS/Src/missing
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv17885
Modified Files:
_stdlib.cpp stdlib.h
Log Message:
New exit(...) function
Index: _stdlib.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/backends/PalmOS/Src/missing/_stdlib.cpp,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -d -r1.7 -r1.8
--- _stdlib.cpp 25 May 2004 13:36:02 -0000 1.7
+++ _stdlib.cpp 12 Sep 2004 11:27:36 -0000 1.8
@@ -1,90 +1,94 @@
-/* ScummVM - Scumm Interpreter
- * Copyright (C) 2001 Ludvig Strigeus
- * Copyright (C) 2001-2004 The ScummVM project
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
-
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
-
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- *
- * $Header$
- *
- */
-
-#include "stdlib.h"
-
-void *bsearch(const void *key, const void *base, UInt32 nmemb, UInt32 size, int (*compar)(const void *, const void *)) {
- Int32 position;
-
- if (SysBinarySearch(base, nmemb, size, (SearchFuncPtr)compar, key, 0, &position, true))
- return (void *)((UInt32)base + size * position);
-
- return NULL;
-}
-
-long strtol(const char *s, char **endptr, int base) {
- // WARNING : only base = 10 supported
- long val = StrAToI(s);
-
- if (endptr) {
- Char str[maxStrIToALen];
- StrIToA(str, val);
-
- if (StrNCompare(s, str, StrLen(str)) == 0)
- *endptr = (char *)s + StrLen(str);
- }
-
- return val;
-}
-
-MemPtr calloc(UInt32 nelem, UInt32 elsize) {
- MemPtr newP;
- UInt32 size = nelem*elsize;
-
- newP = MemGluePtrNew(size);
-
- if (newP)
- MemSet(newP,size,0);
-
- return newP;
-}
-
-Err free(MemPtr memP) {
- if (memP)
- return MemPtrFree(memP);
- return memErrInvalidParam;
-}
-
-MemPtr realloc(MemPtr oldP, UInt32 size) {
-
- if (oldP != NULL)
- if (MemPtrResize(oldP,size) == 0)
- return oldP;
-
- MemPtr newP = MemPtrNew(size);
-
- if (oldP!=NULL)
- {
- MemMove(newP,oldP,MemPtrSize(oldP));
- MemPtrFree(oldP);
- }
- return newP;
-}
-
-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);
-}
+/* ScummVM - Scumm Interpreter
+ * Copyright (C) 2001 Ludvig Strigeus
+ * Copyright (C) 2001-2004 The ScummVM project
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *
+ * $Header$
+ *
+ */
+
+#include "stdlib.h"
+
+void *bsearch(const void *key, const void *base, UInt32 nmemb, UInt32 size, int (*compar)(const void *, const void *)) {
+ Int32 position;
+
+ if (SysBinarySearch(base, nmemb, size, (SearchFuncPtr)compar, key, 0, &position, true))
+ return (void *)((UInt32)base + size * position);
+
+ return NULL;
+}
+
+long strtol(const char *s, char **endptr, int base) {
+ // WARNING : only base = 10 supported
+ long val = StrAToI(s);
+
+ if (endptr) {
+ Char str[maxStrIToALen];
+ StrIToA(str, val);
+
+ if (StrNCompare(s, str, StrLen(str)) == 0)
+ *endptr = (char *)s + StrLen(str);
+ }
+
+ return val;
+}
+
+MemPtr calloc(UInt32 nelem, UInt32 elsize) {
+ MemPtr newP;
+ UInt32 size = nelem*elsize;
+
+ newP = MemGluePtrNew(size);
+
+ if (newP)
+ MemSet(newP,size,0);
+
+ return newP;
+}
+
+Err free(MemPtr memP) {
+ if (memP)
+ return MemPtrFree(memP);
+ return memErrInvalidParam;
+}
+
+MemPtr realloc(MemPtr oldP, UInt32 size) {
+
+ if (oldP != NULL)
+ if (MemPtrResize(oldP,size) == 0)
+ return oldP;
+
+ MemPtr newP = MemPtrNew(size);
+
+ if (oldP!=NULL)
+ {
+ MemMove(newP,oldP,MemPtrSize(oldP));
+ MemPtrFree(oldP);
+ }
+ return newP;
+}
+
+ErrJumpBuf stdlib_errJumpBuf;
+#define ERR_MAGIC 0xDADA
+
+void exit(Int16 status) {
+ EventType event;
+ event.eType = keyDownEvent;
+ event.data.keyDown.chr = vchrLaunch;
+ event.data.keyDown.modifiers = commandKeyMask;
+ EvtAddUniqueEventToQueue(&event, 0, true);
+
+ ErrLongJump(stdlib_errJumpBuf, status == 0 ? 0xDADA : status);
+}
Index: stdlib.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/backends/PalmOS/Src/missing/stdlib.h,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -d -r1.6 -r1.7
--- stdlib.h 25 May 2004 13:36:02 -0000 1.6
+++ stdlib.h 12 Sep 2004 11:27:36 -0000 1.7
@@ -1,48 +1,53 @@
-/* ScummVM - Scumm Interpreter
- * Copyright (C) 2001 Ludvig Strigeus
- * Copyright (C) 2001-2004 The ScummVM project
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
-
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
-
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- *
- * $Header$
- *
- */
-
-#ifndef STDLIB_H
-#define STDLIB_H
-
-#include <PalmOS.h>
-#include "MemGlue.h"
-
-#define atoi StrAToI
-#define atol StrAToI
-#define abs(a) ((a) < 0 ? -(a) : (a))
-//#define abs fabs
-#define malloc(a) MemGluePtrNew(a)
-//#define free MemPtrFree
-//#define strtol(a,b,c) StrAToI(a)
-#define qsort(a,b,c,d) SysQSort((a), (b), (c), (CmpFuncPtr)(&d), 0);
-#define rand() SysRandom(0)
-#define abort()
-#define strtoul(a,b,c) ((unsigned long)strtol(a,b,c))
-
-void *bsearch (const void *key, const void *base, UInt32 nmemb, UInt32 size, int (*compar)(const void *, const void *));
-MemPtr calloc (UInt32 nelem, UInt32 elsize);
-void exit (Int16 status);
-Err free (MemPtr memP);
-MemPtr realloc (MemPtr oldP, UInt32 size);
-long strtol (const char *s, char **endptr, int base);
-
-#endif
+/* ScummVM - Scumm Interpreter
+ * Copyright (C) 2001 Ludvig Strigeus
+ * Copyright (C) 2001-2004 The ScummVM project
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *
+ * $Header$
+ *
+ */
+
+#ifndef STDLIB_H
+#define STDLIB_H
+
+#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))
+//#define abs fabs
+#define malloc(a) MemGluePtrNew(a)
+//#define free MemPtrFree
+//#define strtol(a,b,c) StrAToI(a)
+#define qsort(a,b,c,d) SysQSort((a), (b), (c), (CmpFuncPtr)(&d), 0);
+#define rand() SysRandom(0)
+#define abort()
+#define strtoul(a,b,c) ((unsigned long)strtol(a,b,c))
+
+void *bsearch (const void *key, const void *base, UInt32 nmemb, UInt32 size, int (*compar)(const void *, const void *));
+MemPtr calloc (UInt32 nelem, UInt32 elsize);
+void exit (Int16 status);
+Err free (MemPtr memP);
+MemPtr realloc (MemPtr oldP, UInt32 size);
+long strtol (const char *s, char **endptr, int base);
+
+#endif
More information about the Scummvm-git-logs
mailing list