summaryrefslogtreecommitdiffstats
path: root/mdk-stage1/dietlibc/libugly/setenv.c
blob: bf47cdb79bb46e0bde0cbe2b7217c252d0c65cc6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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);
}