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