diff options
Diffstat (limited to 'osdep')
-rw-r--r-- | osdep/Makefile | 2 | ||||
-rw-r--r-- | osdep/setenv.c | 29 |
2 files changed, 30 insertions, 1 deletions
diff --git a/osdep/Makefile b/osdep/Makefile index 0cc5c2bbda..341da0d9eb 100644 --- a/osdep/Makefile +++ b/osdep/Makefile @@ -4,7 +4,7 @@ include ../config.mak LIBNAME = libosdep.a SRCS= shmem.c strsep.c strl.c vsscanf.c scandir.c gettimeofday.c fseeko.c \ - swab.c + swab.c setenv.c # timer.c getch = getch2.c diff --git a/osdep/setenv.c b/osdep/setenv.c new file mode 100644 index 0000000000..e0ef9a35bc --- /dev/null +++ b/osdep/setenv.c @@ -0,0 +1,29 @@ +/* setenv implementation for systems lacking it. */ + +#include "../config.h" + +#ifndef HAVE_SETENV + +#include <stdlib.h> +#include <string.h> +#ifndef MP_DEBUG + #define NDEBUG +#endif +#include <assert.h> + +int setenv(const char *name, const char *val, int overwrite) +{ + int len = strlen(name) + strlen(val) + 2; + char *env = malloc(len); + if (!env) { return -1; } + + assert(overwrite != 0); + + strcpy(env, name); + strcat(env, "="); + strcat(env, val); + putenv(env); + + return 0; +} +#endif |