aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorraysan5 <raysan5@gmail.com>2015-09-03 01:27:49 +0200
committerraysan5 <raysan5@gmail.com>2015-09-03 01:27:49 +0200
commitef1f9fe450180b1fbd48f0eadae13c2edf0b11b6 (patch)
tree8c155533279b0e9c7e85c13ca1f0ca4326ed0d5e
parent4e0378ab7cc930b82f2af7cf99201d9851cc7ef0 (diff)
downloadraylib-ef1f9fe450180b1fbd48f0eadae13c2edf0b11b6.tar.gz
raylib-ef1f9fe450180b1fbd48f0eadae13c2edf0b11b6.zip
Added strdup() function replacement
strdup() is not a C99 function (it's POSIX), not available in emscripten
-rw-r--r--src/rlgl.c16
1 files changed, 15 insertions, 1 deletions
diff --git a/src/rlgl.c b/src/rlgl.c
index 0169a74d..ec23e988 100644
--- a/src/rlgl.c
+++ b/src/rlgl.c
@@ -287,6 +287,20 @@ static pixel *GenNextMipmap(pixel *srcData, int srcWidth, int srcHeight);
static void TraceLog(int msgType, const char *text, ...);
#endif
+#if defined(GRAPHICS_API_OPENGL_ES2)
+// NOTE: strdup() functions replacement (not C99, POSIX function, not available on emscripten)
+// Duplicates a string, returning an identical malloc'd string
+char *mystrdup(const char *str)
+{
+ size_t len = strlen(str) + 1;
+ void *newstr = malloc(len);
+
+ if (newstr == NULL) return NULL;
+
+ return (char *)memcpy(newstr, str, len);
+}
+#endif
+
//----------------------------------------------------------------------------------
// Module Functions Definition - Matrix operations
//----------------------------------------------------------------------------------
@@ -928,7 +942,7 @@ void rlglInit(void)
// NOTE: We have to duplicate string because glGetString() returns a const value
// If not duplicated, it fails in some systems (Raspberry Pi)
- char *extensionsDup = strdup(extensions);
+ char *extensionsDup = mystrdup(extensions);
// NOTE: String could be splitted using strtok() function (string.h)
// NOTE: strtok() modifies the received string, it can not be const