macro and text revision (-mdoc version 3)
[unix-history] / usr / src / lib / libc / stdlib / putenv.c
CommitLineData
a414eecb 1/*-
7cf51919
KB
2 * Copyright (c) 1988 The Regents of the University of California.
3 * All rights reserved.
4 *
a414eecb 5 * %sccs.include.redist.c%
7cf51919
KB
6 */
7
8#if defined(LIBC_SCCS) && !defined(lint)
f0a345ab 9static char sccsid[] = "@(#)putenv.c 5.4 (Berkeley) %G%";
7cf51919
KB
10#endif /* LIBC_SCCS and not lint */
11
a414eecb 12#include <stdlib.h>
ba29fcd1 13#include <string.h>
a414eecb 14
ba29fcd1 15int
7cf51919 16putenv(str)
f0a345ab 17 const char *str;
7cf51919 18{
ba29fcd1 19 register char *p, *equal;
7cf51919 20 int rval;
7cf51919 21
ba29fcd1 22 if (!(p = strdup(str)))
7cf51919 23 return(1);
ba29fcd1
KB
24 if (!(equal = index(p, '='))) {
25 (void)free(p);
26 return(1);
27 }
7cf51919 28 *equal = '\0';
ba29fcd1
KB
29 rval = setenv(p, equal + 1, 1);
30 (void)free(p);
7cf51919
KB
31 return(rval);
32}