summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Weil <weil@mail.berlios.de>2010-07-01 00:47:49 +0000
committerBlue Swirl <blauwirbel@gmail.com>2010-08-15 09:45:28 +0000
commit0a1574bb1347f856524014ef23cb2d686361075c (patch)
tree80a6e67ae04dc919fc03855b19eb598640c990d7
parent3dcbf8f9ca5f361a38bf1b699080daeb40d5185e (diff)
win32: Add missing function setenv
Mingw32 does not provide a declaration and implementation of function setenv (which is used in sdl.c), so this patch adds both. Signed-off-by: Stefan Weil <weil@mail.berlios.de> Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
-rw-r--r--os-win32.c15
-rw-r--r--osdep.h2
2 files changed, 17 insertions, 0 deletions
diff --git a/os-win32.c b/os-win32.c
index d98fd77c1..dd46bf459 100644
--- a/os-win32.c
+++ b/os-win32.c
@@ -34,6 +34,21 @@
#include "qemu-options.h"
/***********************************************************/
+/* Functions missing in mingw */
+
+int setenv(const char *name, const char *value, int overwrite)
+{
+ int result = 0;
+ if (overwrite || !getenv(name)) {
+ size_t length = strlen(name) + strlen(value) + 2;
+ char *string = qemu_malloc(length);
+ snprintf(string, length, "%s=%s", name, value);
+ result = putenv(string);
+ }
+ return result;
+}
+
+/***********************************************************/
/* Polling handling */
typedef struct PollingEntry {
diff --git a/osdep.h b/osdep.h
index 75b581630..1cdc7e2e3 100644
--- a/osdep.h
+++ b/osdep.h
@@ -95,6 +95,8 @@ int qemu_create_pidfile(const char *filename);
#ifdef _WIN32
int ffs(int i);
+int setenv(const char *name, const char *value, int overwrite);
+
typedef struct {
long tv_sec;
long tv_usec;