File: setenv.putenv.c

package info (click to toggle)
mlton 20100608-5
  • links: PTS
  • area: main
  • in suites: wheezy
  • size: 36,624 kB
  • sloc: ansic: 18,441; lisp: 2,879; makefile: 1,572; sh: 1,326; pascal: 256; asm: 97
file content (15 lines) | stat: -rw-r--r-- 508 bytes parent folder | download | duplicates (6)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
/* 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) {
        size_t len;
        char *b;

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

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