diff --git a/libguile/Makefile.am b/libguile/Makefile.am index 6c2081a87..80a6245b9 100644 --- a/libguile/Makefile.am +++ b/libguile/Makefile.am @@ -398,7 +398,7 @@ BUILT_SOURCES = cpp_err_symbols.c cpp_sig_symbols.c libpath.h \ $(DOT_I_FILES) $(DOT_X_FILES) $(EXTRA_DOT_X_FILES) EXTRA_libguile_la_SOURCES = _scm.h \ - memmove.c putenv.c strerror.c \ + memmove.c strerror.c \ dynl.c regex-posix.c \ filesys.c posix.c net_db.c socket.c \ debug-malloc.c mkstemp.c \ diff --git a/libguile/putenv.c b/libguile/putenv.c deleted file mode 100644 index cdc05dd7e..000000000 --- a/libguile/putenv.c +++ /dev/null @@ -1,127 +0,0 @@ -/* Copyright (C) 1991, 2000, 2001, 2004, 2005, 2006 Free Software Foundation, Inc. - - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public License - * as published by the Free Software Foundation; either version 3 of - * the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA - * 02110-1301 USA - */ - - -#ifdef HAVE_CONFIG_H -# include -#endif - -#include "libguile/scmconfig.h" - -#include -#include - -/* Don't include stdlib.h for non-GNU C libraries because some of them - contain conflicting prototypes for getopt. - This needs to come after some library #include - to get __GNU_LIBRARY__ defined. */ -#ifdef __GNU_LIBRARY__ -#include -#else -char *malloc (); -#endif /* GNU C library. */ - -#if defined(STDC_HEADERS) || defined(HAVE_STRING_H) -#include -#else -#include -#ifndef strchr -#define strchr index -#endif -#ifndef memcpy -#define memcpy(d, s, n) bcopy((s), (d), (n)) -#endif -#endif - -#ifdef HAVE_UNISTD_H -#include -#endif - -#if HAVE_CRT_EXTERNS_H -#include /* for Darwin _NSGetEnviron */ -#endif - -#ifndef NULL -#define NULL 0 -#endif - -extern char **environ; - -/* On Apple Darwin in a shared library there's no "environ" to access - directly, instead the address of that variable must be obtained with - _NSGetEnviron(). */ -#if HAVE__NSGETENVIRON && defined (PIC) -#define environ (*_NSGetEnviron()) -#endif - -/* Put STRING, which is of the form "NAME=VALUE", in the environment. */ -int -putenv (const char *string) -{ - char *name_end = strchr (string, '='); - register size_t size; - register char **ep; - - if (name_end == NULL) - { - /* Remove the variable from the environment. */ - size = strlen (string); - for (ep = environ; *ep != NULL; ++ep) - if (!strncmp (*ep, string, size) && (*ep)[size] == '=') - { - while (ep[1] != NULL) - { - ep[0] = ep[1]; - ++ep; - } - *ep = NULL; - return 0; - } - } - - size = 0; - for (ep = environ; *ep != NULL; ++ep) - if (!strncmp (*ep, string, name_end - string) && - (*ep)[name_end - string] == '=') - break; - else - ++size; - - if (*ep == NULL) - { - static char **last_environ = NULL; - char **new_environ = (char **) scm_malloc ((size + 2) * sizeof (char *)); - memcpy ((char *) new_environ, (char *) environ, size * sizeof (char *)); - new_environ[size] = (char *) string; - new_environ[size + 1] = NULL; - if (last_environ != NULL) - free ((char *) last_environ); - last_environ = new_environ; - environ = new_environ; - } - else - *ep = (char *) string; - - return 0; -} - -/* - Local Variables: - c-file-style: "gnu" - End: -*/