1 /*-
2 * Copyright (c) 1988 The Regents of the University of California.
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms are permitted
6 * provided that: (1) source distributions retain this entire copyright
7 * notice and comment, and (2) distributions including binaries display
8 * the following acknowledgement: ``This product includes software
9 * developed by the University of California, Berkeley and its contributors''
10 * in the documentation or other materials provided with the distribution.
11 * Neither the name of the University nor the names of its
12 * contributors may be used to endorse or promote products derived
13 * from this software without specific prior written permission.
14 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
15 * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
16 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
17 */
18
19 #define _DEFAULT_SOURCE
20 #include <stdlib.h>
21 #include <string.h>
22
23 int
putenv(char * str)24 putenv (char *str)
25 {
26 register char *p, *equal;
27 int rval;
28
29 p = strdup (str);
30
31 if (!p)
32 return 1;
33
34 if (!(equal = strchr (p, '=')))
35 {
36 (void) free (p);
37 return 1;
38 }
39
40 *equal = '\0';
41 rval = setenv (p, equal + 1, 1);
42 (void) free (p);
43
44 return rval;
45 }
46