[Scummvm-cvs-logs] CVS: scummvm/backends/PalmOS/Src/missing _stdlib.cpp,1.6,1.7 stdlib.h,1.5,1.6
Chris Apers
chrilith at users.sourceforge.net
Tue May 25 06:37:00 CEST 2004
Update of /cvsroot/scummvm/scummvm/backends/PalmOS/Src/missing
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv2046
Modified Files:
_stdlib.cpp stdlib.h
Log Message:
New strtol function, bsearch now use system call, cleanup
Index: _stdlib.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/backends/PalmOS/Src/missing/_stdlib.cpp,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -d -r1.6 -r1.7
--- _stdlib.cpp 6 Jan 2004 12:45:25 -0000 1.6
+++ _stdlib.cpp 25 May 2004 13:36:02 -0000 1.7
@@ -21,17 +21,31 @@
*/
#include "stdlib.h"
-///////////////////////////////////////////////////////////////////////////////
-void *bsearch(const void *key, const void *base, UInt32 nmemb,
- UInt32 size, int (*compar)(const void *, const void *)) {
- UInt32 i;
- for (i=0; i<nmemb; i++)
- if (compar(key, (void*)((UInt32)base + size * i)) == 0)
- return (void*)((UInt32)base + size * i);
+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;
@@ -43,15 +57,14 @@
return newP;
}
-///////////////////////////////////////////////////////////////////////////////
+
Err free(MemPtr memP) {
if (memP)
return MemPtrFree(memP);
return memErrInvalidParam;
}
-///////////////////////////////////////////////////////////////////////////////
-MemPtr realloc(MemPtr oldP, UInt32 size)
-{
+
+MemPtr realloc(MemPtr oldP, UInt32 size) {
if (oldP != NULL)
if (MemPtrResize(oldP,size) == 0)
@@ -66,9 +79,8 @@
}
return newP;
}
-///////////////////////////////////////////////////////////////////////////////
-void exit(Int16 status)
-{
+
+void exit(Int16 status) {
// need to change this
EventType event;
event.eType = keyDownEvent;
Index: stdlib.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/backends/PalmOS/Src/missing/stdlib.h,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -d -r1.5 -r1.6
--- stdlib.h 20 Jan 2004 14:33:03 -0000 1.5
+++ stdlib.h 25 May 2004 13:36:02 -0000 1.6
@@ -25,7 +25,6 @@
#include <PalmOS.h>
#include "MemGlue.h"
-#include "mathlib.h"
#define atoi StrAToI
#define atol StrAToI
@@ -33,17 +32,17 @@
//#define abs fabs
#define malloc(a) MemGluePtrNew(a)
//#define free MemPtrFree
-#define strtol(a,b,c) StrAToI(a)
+//#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))
-MemPtr realloc(MemPtr oldP, UInt32 size);
-MemPtr calloc(UInt32 nelem, UInt32 elsize);
-Err free(MemPtr memP);
-void exit(Int16 status);
-void *bsearch(const void *key, const void *base, UInt32 nmemb,
- UInt32 size, int (*compar)(const void *, const void *));
-
+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