diff options
Diffstat (limited to 'osdep/setenv.c')
-rw-r--r-- | osdep/setenv.c | 29 |
1 files changed, 29 insertions, 0 deletions
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 |