diff options
author | ProjectRevoTPP <projectrevotpp@hotmail.com> | 2017-12-20 16:34:35 -0500 |
---|---|---|
committer | ProjectRevoTPP <projectrevotpp@hotmail.com> | 2017-12-20 16:34:35 -0500 |
commit | 48ef7704c03e7e554c05de01bf8d1d70c16cb6f4 (patch) | |
tree | 34d52513de6c903b4f52ef87d885c73472daf469 /libc/stdlib/putenv.c | |
parent | f49e7cbb33e6e27b0ce5eb35244d7241c800a7c1 (diff) |
add libc building to agbcc.
Diffstat (limited to 'libc/stdlib/putenv.c')
-rw-r--r-- | libc/stdlib/putenv.c | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/libc/stdlib/putenv.c b/libc/stdlib/putenv.c new file mode 100644 index 0000000..07bb14b --- /dev/null +++ b/libc/stdlib/putenv.c @@ -0,0 +1,46 @@ +/* This file may have been modified by DJ Delorie (Jan 1991). If so, +** these modifications are Coyright (C) 1991 DJ Delorie, 24 Kirsten Ave, +** Rochester NH, 03867-2954, USA. +*/ + +/*- + * Copyright (c) 1988 The Regents of the University of California. + * All rights reserved. + * + * Redistribution and use in source and binary forms are permitted + * provided that: (1) source distributions retain this entire copyright + * notice and comment, and (2) distributions including binaries display + * the following acknowledgement: ``This product includes software + * developed by the University of California, Berkeley and its contributors'' + * in the documentation or other materials provided with the distribution + * and in all advertising materials mentioning features or use of this + * software. Neither the name of the University nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. + */ + +#include <stdlib.h> +#include <string.h> + +int +_DEFUN (putenv, (str), + _CONST char *str) +{ + register char *p, *equal; + int rval; + + if (!(p = strdup (str))) + return 1; + if (!(equal = index (p, '='))) + { + (void) free (p); + return 1; + } + *equal = '\0'; + rval = setenv (p, equal + 1, 1); + (void) free (p); + return rval; +} |