source: trunk/third/tcp_wrappers/setenv.c @ 11717

Revision 11717, 931 bytes checked in by danw, 26 years ago (diff)
This commit was generated by cvs2svn to compensate for changes in r11716, which included commits to RCS files with non-trunk default branches.
Line 
1 /*
2  * Some systems do not have setenv(). This one is modeled after 4.4 BSD, but
3  * is implemented in terms of portable primitives only: getenv(), putenv()
4  * and malloc(). It should therefore be safe to use on every UNIX system.
5  *
6  * If clobber == 0, do not overwrite an existing variable.
7  *
8  * Returns nonzero if memory allocation fails.
9  *
10  * Author: Wietse Venema, Eindhoven University of Technology, The Netherlands.
11  */
12
13#ifndef lint
14static char sccsid[] = "@(#) setenv.c 1.1 93/03/07 22:47:58";
15#endif
16
17/* setenv - update or insert environment (name,value) pair */
18
19int     setenv(name, value, clobber)
20char   *name;
21char   *value;
22int     clobber;
23{
24    char   *malloc();
25    char   *getenv();
26    char   *cp;
27
28    if (clobber == 0 && getenv(name) != 0)
29        return (0);
30    if ((cp = malloc(strlen(name) + strlen(value) + 2)) == 0)
31        return (1);
32    sprintf(cp, "%s=%s", name, value);
33    return (putenv(cp));
34}
Note: See TracBrowser for help on using the repository browser.