diff options
Diffstat (limited to 'mdk-stage1/dietlibc/libugly/setenv.c')
-rw-r--r-- | mdk-stage1/dietlibc/libugly/setenv.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/mdk-stage1/dietlibc/libugly/setenv.c b/mdk-stage1/dietlibc/libugly/setenv.c new file mode 100644 index 000000000..bf47cdb79 --- /dev/null +++ b/mdk-stage1/dietlibc/libugly/setenv.c @@ -0,0 +1,17 @@ +#include <string.h> +#include <stdlib.h> + +#include <dietwarning.h> +link_warning("setenv","setenv calls malloc. Avoid it in small programs."); + +int setenv(const char *name, const char *value, int overwrite) { + char *c=malloc(strlen(name)+strlen(value)+3); + if (getenv(name)) { + if (!overwrite) return 0; + unsetenv(name); + } + strcpy(c,name); + strcat(c,"="); + strcat(c,value); + return putenv(c); +} |