File: setenv.putenv.c

package info (click to toggle)
mlton 20061107-1
  • links: PTS
  • area: main
  • in suites: etch, etch-m68k
  • size: 27,828 kB
  • ctags: 61,118
  • sloc: ansic: 11,446; makefile: 1,339; sh: 1,160; lisp: 900; pascal: 256; asm: 97
file content (13 lines) | stat: -rw-r--r-- 463 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
/* This implementation of setenv has a space leak, but I don't see how to avoid
 * it, since the specification of putenv is that it uses the memory for its arg.
 */
int setenv (const char *name, const char *value, int overwrite) {
        char *b;

        if (!overwrite && getenv (name))
                return 0;

        b = malloc (strlen (name) + strlen (value) + 2 /* = and \000 */);
        sprintf (b, "%s=%s", name, value);
        return putenv (b);
}