[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
texinfo ChangeLog gnulib/lib/Makefile.am gnulib...
From: |
Karl Berry |
Subject: |
texinfo ChangeLog gnulib/lib/Makefile.am gnulib... |
Date: |
Sat, 15 Oct 2011 15:11:38 +0000 |
CVSROOT: /sources/texinfo
Module name: texinfo
Changes by: Karl Berry <karl> 11/10/15 15:11:37
Modified files:
. : ChangeLog
gnulib/lib : Makefile.am
gnulib/m4 : gnulib-cache.m4 gnulib-comp.m4
Removed files:
gnulib/lib : setenv.c unsetenv.c xsetenv.c xsetenv.h
gnulib/m4 : environ.m4 setenv.m4
Log message:
rm gnulib module xsetenv, only used in C makeinfo
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/texinfo/ChangeLog?cvsroot=texinfo&r1=1.1265&r2=1.1266
http://cvs.savannah.gnu.org/viewcvs/texinfo/gnulib/lib/Makefile.am?cvsroot=texinfo&r1=1.47&r2=1.48
http://cvs.savannah.gnu.org/viewcvs/texinfo/gnulib/lib/setenv.c?cvsroot=texinfo&r1=1.11&r2=0
http://cvs.savannah.gnu.org/viewcvs/texinfo/gnulib/lib/unsetenv.c?cvsroot=texinfo&r1=1.8&r2=0
http://cvs.savannah.gnu.org/viewcvs/texinfo/gnulib/lib/xsetenv.c?cvsroot=texinfo&r1=1.8&r2=0
http://cvs.savannah.gnu.org/viewcvs/texinfo/gnulib/lib/xsetenv.h?cvsroot=texinfo&r1=1.6&r2=0
http://cvs.savannah.gnu.org/viewcvs/texinfo/gnulib/m4/gnulib-cache.m4?cvsroot=texinfo&r1=1.20&r2=1.21
http://cvs.savannah.gnu.org/viewcvs/texinfo/gnulib/m4/gnulib-comp.m4?cvsroot=texinfo&r1=1.43&r2=1.44
http://cvs.savannah.gnu.org/viewcvs/texinfo/gnulib/m4/environ.m4?cvsroot=texinfo&r1=1.6&r2=0
http://cvs.savannah.gnu.org/viewcvs/texinfo/gnulib/m4/setenv.m4?cvsroot=texinfo&r1=1.8&r2=0
Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/texinfo/texinfo/ChangeLog,v
retrieving revision 1.1265
retrieving revision 1.1266
diff -u -b -r1.1265 -r1.1266
--- ChangeLog 15 Oct 2011 15:05:21 -0000 1.1265
+++ ChangeLog 15 Oct 2011 15:11:36 -0000 1.1266
@@ -1,7 +1,11 @@
2011-10-15 Karl Berry <address@hidden>
+ * system.h: rm decls for xmalloc, xrealloc, xstrdup.
+ rm old DMALLOC debugging stuff.
+
* gnulib: switch from now-deprecated getopt to getopt-gnu,
likewise strdup to strdup-posix.
+ rm gnulib module xsetenv, was only used in C makeinfo.
2011-10-15 Patrice Dumas <address@hidden>
Index: gnulib/lib/Makefile.am
===================================================================
RCS file: /sources/texinfo/texinfo/gnulib/lib/Makefile.am,v
retrieving revision 1.47
retrieving revision 1.48
diff -u -b -r1.47 -r1.48
--- gnulib/lib/Makefile.am 15 Oct 2011 15:05:22 -0000 1.47
+++ gnulib/lib/Makefile.am 15 Oct 2011 15:11:36 -0000 1.48
@@ -21,7 +21,7 @@
# the same distribution terms as the rest of that program.
#
# Generated by gnulib-tool.
-# Reproduce by: gnulib-tool --import --dir=. --lib=libgnu
--source-base=gnulib/lib --m4-base=gnulib/m4 --doc-base=doc --tests-base=tests
--aux-dir=build-aux --no-conditional-dependencies --no-libtool
--macro-prefix=gl --no-vc-files argz getopt-gnu gettext mbchar mbiter
mbscasecmp mbschr mbslen mbsncasecmp mbsstr mbswidth memmem mkstemp
strdup-posix strerror xalloc xsetenv
+# Reproduce by: gnulib-tool --import --dir=. --lib=libgnu
--source-base=gnulib/lib --m4-base=gnulib/m4 --doc-base=doc --tests-base=tests
--aux-dir=build-aux --no-conditional-dependencies --no-libtool
--macro-prefix=gl --no-vc-files argz getopt-gnu gettext mbchar mbiter
mbscasecmp mbschr mbslen mbsncasecmp mbsstr mbswidth memmem mkstemp
strdup-posix strerror xalloc
AUTOMAKE_OPTIONS = 1.5 gnits subdir-objects
@@ -551,15 +551,6 @@
## end gnulib module pathmax
-## begin gnulib module setenv
-
-
-EXTRA_DIST += setenv.c
-
-EXTRA_libgnu_a_SOURCES += setenv.c
-
-## end gnulib module setenv
-
## begin gnulib module snippet/_Noreturn
# Because this Makefile snippet defines a variable used by other
@@ -1350,15 +1341,6 @@
## end gnulib module uniwidth/width
-## begin gnulib module unsetenv
-
-
-EXTRA_DIST += unsetenv.c
-
-EXTRA_libgnu_a_SOURCES += unsetenv.c
-
-## end gnulib module unsetenv
-
## begin gnulib module verify
@@ -1556,12 +1538,6 @@
## end gnulib module xalloc-oversized
-## begin gnulib module xsetenv
-
-libgnu_a_SOURCES += xsetenv.h xsetenv.c
-
-## end gnulib module xsetenv
-
mostlyclean-local: mostlyclean-generic
@for dir in '' $(MOSTLYCLEANDIRS); do \
Index: gnulib/m4/gnulib-cache.m4
===================================================================
RCS file: /sources/texinfo/texinfo/gnulib/m4/gnulib-cache.m4,v
retrieving revision 1.20
retrieving revision 1.21
diff -u -b -r1.20 -r1.21
--- gnulib/m4/gnulib-cache.m4 15 Oct 2011 15:05:22 -0000 1.20
+++ gnulib/m4/gnulib-cache.m4 15 Oct 2011 15:11:37 -0000 1.21
@@ -27,7 +27,7 @@
# Specification in the form of a command-line invocation:
-# gnulib-tool --import --dir=. --lib=libgnu --source-base=gnulib/lib
--m4-base=gnulib/m4 --doc-base=doc --tests-base=tests --aux-dir=build-aux
--no-conditional-dependencies --no-libtool --macro-prefix=gl --no-vc-files argz
getopt-gnu gettext mbchar mbiter mbscasecmp mbschr mbslen mbsncasecmp mbsstr
mbswidth memmem mkstemp strdup-posix strerror xalloc xsetenv
+# gnulib-tool --import --dir=. --lib=libgnu --source-base=gnulib/lib
--m4-base=gnulib/m4 --doc-base=doc --tests-base=tests --aux-dir=build-aux
--no-conditional-dependencies --no-libtool --macro-prefix=gl --no-vc-files argz
getopt-gnu gettext mbchar mbiter mbscasecmp mbschr mbslen mbsncasecmp mbsstr
mbswidth memmem mkstemp strdup-posix strerror xalloc
# Specification in the form of a few gnulib-tool.m4 macro invocations:
gl_LOCAL_DIR([])
@@ -48,7 +48,6 @@
strdup-posix
strerror
xalloc
- xsetenv
])
gl_AVOID([])
gl_SOURCE_BASE([gnulib/lib])
Index: gnulib/m4/gnulib-comp.m4
===================================================================
RCS file: /sources/texinfo/texinfo/gnulib/m4/gnulib-comp.m4,v
retrieving revision 1.43
retrieving revision 1.44
diff -u -b -r1.43 -r1.44
--- gnulib/m4/gnulib-comp.m4 15 Oct 2011 15:05:22 -0000 1.43
+++ gnulib/m4/gnulib-comp.m4 15 Oct 2011 15:11:37 -0000 1.44
@@ -43,7 +43,6 @@
# Code from module argz:
# Code from module configmake:
# Code from module dosname:
- # Code from module environ:
# Code from module errno:
# Code from module error:
# Code from module exitfail:
@@ -87,7 +86,6 @@
# Code from module multiarch:
# Code from module nocrash:
# Code from module pathmax:
- # Code from module setenv:
# Code from module snippet/_Noreturn:
# Code from module snippet/arg-nonnull:
# Code from module snippet/c++defs:
@@ -117,7 +115,6 @@
# Code from module unitypes:
# Code from module uniwidth/base:
# Code from module uniwidth/width:
- # Code from module unsetenv:
# Code from module verify:
# Code from module wchar:
# Code from module wctype-h:
@@ -125,7 +122,6 @@
# Code from module xalloc:
# Code from module xalloc-die:
# Code from module xalloc-oversized:
- # Code from module xsetenv:
])
# This macro should be invoked from ./configure.ac, in the section
@@ -150,8 +146,6 @@
AC_LIBOBJ([argz])
fi
gl_CONFIGMAKE_PREP
-gl_ENVIRON
-gl_UNISTD_MODULE_INDICATOR([environ])
gl_HEADER_ERRNO_H
gl_ERROR
if test $ac_cv_lib_error_at_line = no; then
@@ -269,11 +263,6 @@
fi
gl_MULTIARCH
gl_PATHMAX
-gl_FUNC_SETENV
-if test $HAVE_SETENV = 0 || test $REPLACE_SETENV = 1; then
- AC_LIBOBJ([setenv])
-fi
-gl_STDLIB_MODULE_INDICATOR([setenv])
gt_TYPE_SSIZE_T
gl_FUNC_STAT
if test $REPLACE_STAT = 1; then
@@ -340,12 +329,6 @@
gl_LIBUNISTRING_LIBHEADER([0.9], [unitypes.h])
gl_LIBUNISTRING_LIBHEADER([0.9], [uniwidth.h])
gl_LIBUNISTRING_MODULE([0.9.4], [uniwidth/width])
-gl_FUNC_UNSETENV
-if test $HAVE_UNSETENV = 0 || test $REPLACE_UNSETENV = 1; then
- AC_LIBOBJ([unsetenv])
- gl_PREREQ_UNSETENV
-fi
-gl_STDLIB_MODULE_INDICATOR([unsetenv])
gl_WCHAR_H
gl_WCTYPE_H
gl_FUNC_WCWIDTH
@@ -550,7 +533,6 @@
lib/pathmax.h
lib/ref-add.sin
lib/ref-del.sin
- lib/setenv.c
lib/stat.c
lib/stdbool.in.h
lib/stddef.in.h
@@ -580,7 +562,6 @@
lib/uniwidth.in.h
lib/uniwidth/cjk.h
lib/uniwidth/width.c
- lib/unsetenv.c
lib/verify.h
lib/wchar.in.h
lib/wctype.in.h
@@ -589,15 +570,12 @@
lib/xalloc-oversized.h
lib/xalloc.h
lib/xmalloc.c
- lib/xsetenv.c
- lib/xsetenv.h
m4/00gnulib.m4
m4/alloca.m4
m4/argz.m4
m4/codeset.m4
m4/configmake.m4
m4/eealloc.m4
- m4/environ.m4
m4/errno_h.m4
m4/error.m4
m4/extensions.m4
@@ -657,7 +635,6 @@
m4/po.m4
m4/printf-posix.m4
m4/progtest.m4
- m4/setenv.m4
m4/size_max.m4
m4/ssize_t.m4
m4/stat.m4
Index: gnulib/lib/setenv.c
===================================================================
RCS file: gnulib/lib/setenv.c
diff -N gnulib/lib/setenv.c
--- gnulib/lib/setenv.c 13 Oct 2011 17:41:19 -0000 1.11
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,390 +0,0 @@
-/* Copyright (C) 1992, 1995-2003, 2005-2011 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- This program is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 3 of the License, or
- (at your option) any later version.
-
- This program 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 General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
-
-#if !_LIBC
-# define _GL_USE_STDLIB_ALLOC 1
-# include <config.h>
-#endif
-
-/* Don't use __attribute__ __nonnull__ in this compilation unit. Otherwise gcc
- optimizes away the name == NULL test below. */
-#define _GL_ARG_NONNULL(params)
-
-#include <alloca.h>
-
-/* Specification. */
-#include <stdlib.h>
-
-#include <errno.h>
-#ifndef __set_errno
-# define __set_errno(ev) ((errno) = (ev))
-#endif
-
-#include <string.h>
-#if _LIBC || HAVE_UNISTD_H
-# include <unistd.h>
-#endif
-
-#if !_LIBC
-# include "malloca.h"
-#endif
-
-#if _LIBC || !HAVE_SETENV
-
-#if !_LIBC
-# define __environ environ
-#endif
-
-#if _LIBC
-/* This lock protects against simultaneous modifications of `environ'. */
-# include <bits/libc-lock.h>
-__libc_lock_define_initialized (static, envlock)
-# define LOCK __libc_lock_lock (envlock)
-# define UNLOCK __libc_lock_unlock (envlock)
-#else
-# define LOCK
-# define UNLOCK
-#endif
-
-/* In the GNU C library we must keep the namespace clean. */
-#ifdef _LIBC
-# define setenv __setenv
-# define clearenv __clearenv
-# define tfind __tfind
-# define tsearch __tsearch
-#endif
-
-/* In the GNU C library implementation we try to be more clever and
- allow arbitrarily many changes of the environment given that the used
- values are from a small set. Outside glibc this will eat up all
- memory after a while. */
-#if defined _LIBC || (defined HAVE_SEARCH_H && defined HAVE_TSEARCH \
- && defined __GNUC__)
-# define USE_TSEARCH 1
-# include <search.h>
-typedef int (*compar_fn_t) (const void *, const void *);
-
-/* This is a pointer to the root of the search tree with the known
- values. */
-static void *known_values;
-
-# define KNOWN_VALUE(Str) \
- ({ \
- void *value = tfind (Str, &known_values, (compar_fn_t) strcmp); \
- value != NULL ? *(char **) value : NULL; \
- })
-# define STORE_VALUE(Str) \
- tsearch (Str, &known_values, (compar_fn_t) strcmp)
-
-#else
-# undef USE_TSEARCH
-
-# define KNOWN_VALUE(Str) NULL
-# define STORE_VALUE(Str) do { } while (0)
-
-#endif
-
-
-/* If this variable is not a null pointer we allocated the current
- environment. */
-static char **last_environ;
-
-
-/* This function is used by `setenv' and `putenv'. The difference between
- the two functions is that for the former must create a new string which
- is then placed in the environment, while the argument of `putenv'
- must be used directly. This is all complicated by the fact that we try
- to reuse values once generated for a `setenv' call since we can never
- free the strings. */
-int
-__add_to_environ (const char *name, const char *value, const char *combined,
- int replace)
-{
- char **ep;
- size_t size;
- const size_t namelen = strlen (name);
- const size_t vallen = value != NULL ? strlen (value) + 1 : 0;
-
- LOCK;
-
- /* We have to get the pointer now that we have the lock and not earlier
- since another thread might have created a new environment. */
- ep = __environ;
-
- size = 0;
- if (ep != NULL)
- {
- for (; *ep != NULL; ++ep)
- if (!strncmp (*ep, name, namelen) && (*ep)[namelen] == '=')
- break;
- else
- ++size;
- }
-
- if (ep == NULL || *ep == NULL)
- {
- char **new_environ;
-#ifdef USE_TSEARCH
- char *new_value;
-#endif
-
- /* We allocated this space; we can extend it. */
- new_environ =
- (char **) (last_environ == NULL
- ? malloc ((size + 2) * sizeof (char *))
- : realloc (last_environ, (size + 2) * sizeof (char *)));
- if (new_environ == NULL)
- {
- /* It's easier to set errno to ENOMEM than to rely on the
- 'malloc-posix' and 'realloc-posix' gnulib modules. */
- __set_errno (ENOMEM);
- UNLOCK;
- return -1;
- }
-
- /* If the whole entry is given add it. */
- if (combined != NULL)
- /* We must not add the string to the search tree since it belongs
- to the user. */
- new_environ[size] = (char *) combined;
- else
- {
- /* See whether the value is already known. */
-#ifdef USE_TSEARCH
-# ifdef _LIBC
- new_value = (char *) alloca (namelen + 1 + vallen);
- __mempcpy (__mempcpy (__mempcpy (new_value, name, namelen), "=", 1),
- value, vallen);
-# else
- new_value = (char *) malloca (namelen + 1 + vallen);
- if (new_value == NULL)
- {
- __set_errno (ENOMEM);
- UNLOCK;
- return -1;
- }
- memcpy (new_value, name, namelen);
- new_value[namelen] = '=';
- memcpy (&new_value[namelen + 1], value, vallen);
-# endif
-
- new_environ[size] = KNOWN_VALUE (new_value);
- if (new_environ[size] == NULL)
-#endif
- {
- new_environ[size] = (char *) malloc (namelen + 1 + vallen);
- if (new_environ[size] == NULL)
- {
-#if defined USE_TSEARCH && !defined _LIBC
- freea (new_value);
-#endif
- __set_errno (ENOMEM);
- UNLOCK;
- return -1;
- }
-
-#ifdef USE_TSEARCH
- memcpy (new_environ[size], new_value, namelen + 1 + vallen);
-#else
- memcpy (new_environ[size], name, namelen);
- new_environ[size][namelen] = '=';
- memcpy (&new_environ[size][namelen + 1], value, vallen);
-#endif
- /* And save the value now. We cannot do this when we remove
- the string since then we cannot decide whether it is a
- user string or not. */
- STORE_VALUE (new_environ[size]);
- }
-#if defined USE_TSEARCH && !defined _LIBC
- freea (new_value);
-#endif
- }
-
- if (__environ != last_environ)
- memcpy ((char *) new_environ, (char *) __environ,
- size * sizeof (char *));
-
- new_environ[size + 1] = NULL;
-
- last_environ = __environ = new_environ;
- }
- else if (replace)
- {
- char *np;
-
- /* Use the user string if given. */
- if (combined != NULL)
- np = (char *) combined;
- else
- {
-#ifdef USE_TSEARCH
- char *new_value;
-# ifdef _LIBC
- new_value = alloca (namelen + 1 + vallen);
- __mempcpy (__mempcpy (__mempcpy (new_value, name, namelen), "=", 1),
- value, vallen);
-# else
- new_value = malloca (namelen + 1 + vallen);
- if (new_value == NULL)
- {
- __set_errno (ENOMEM);
- UNLOCK;
- return -1;
- }
- memcpy (new_value, name, namelen);
- new_value[namelen] = '=';
- memcpy (&new_value[namelen + 1], value, vallen);
-# endif
-
- np = KNOWN_VALUE (new_value);
- if (np == NULL)
-#endif
- {
- np = (char *) malloc (namelen + 1 + vallen);
- if (np == NULL)
- {
-#if defined USE_TSEARCH && !defined _LIBC
- freea (new_value);
-#endif
- __set_errno (ENOMEM);
- UNLOCK;
- return -1;
- }
-
-#ifdef USE_TSEARCH
- memcpy (np, new_value, namelen + 1 + vallen);
-#else
- memcpy (np, name, namelen);
- np[namelen] = '=';
- memcpy (&np[namelen + 1], value, vallen);
-#endif
- /* And remember the value. */
- STORE_VALUE (np);
- }
-#if defined USE_TSEARCH && !defined _LIBC
- freea (new_value);
-#endif
- }
-
- *ep = np;
- }
-
- UNLOCK;
-
- return 0;
-}
-
-int
-setenv (const char *name, const char *value, int replace)
-{
- if (name == NULL || *name == '\0' || strchr (name, '=') != NULL)
- {
- __set_errno (EINVAL);
- return -1;
- }
-
- return __add_to_environ (name, value, NULL, replace);
-}
-
-/* The `clearenv' was planned to be added to POSIX.1 but probably
- never made it. Nevertheless the POSIX.9 standard (POSIX bindings
- for Fortran 77) requires this function. */
-int
-clearenv (void)
-{
- LOCK;
-
- if (__environ == last_environ && __environ != NULL)
- {
- /* We allocated this environment so we can free it. */
- free (__environ);
- last_environ = NULL;
- }
-
- /* Clear the environment pointer removes the whole environment. */
- __environ = NULL;
-
- UNLOCK;
-
- return 0;
-}
-
-#ifdef _LIBC
-static void
-free_mem (void)
-{
- /* Remove all traces. */
- clearenv ();
-
- /* Now remove the search tree. */
- __tdestroy (known_values, free);
- known_values = NULL;
-}
-text_set_element (__libc_subfreeres, free_mem);
-
-
-# undef setenv
-# undef clearenv
-weak_alias (__setenv, setenv)
-weak_alias (__clearenv, clearenv)
-#endif
-
-#endif /* _LIBC || !HAVE_SETENV */
-
-/* The rest of this file is called into use when replacing an existing
- but buggy setenv. Known bugs include failure to diagnose invalid
- name, and consuming a leading '=' from value. */
-#if HAVE_SETENV
-
-# undef setenv
-# if !HAVE_DECL_SETENV
-extern int setenv (const char *, const char *, int);
-# endif
-# define STREQ(a, b) (strcmp (a, b) == 0)
-
-int
-rpl_setenv (const char *name, const char *value, int replace)
-{
- int result;
- if (!name || !*name || strchr (name, '='))
- {
- errno = EINVAL;
- return -1;
- }
- /* Call the real setenv even if replace is 0, in case implementation
- has underlying data to update, such as when environ changes. */
- result = setenv (name, value, replace);
- if (result == 0 && replace && *value == '=')
- {
- char *tmp = getenv (name);
- if (!STREQ (tmp, value))
- {
- int saved_errno;
- size_t len = strlen (value);
- tmp = malloca (len + 2);
- /* Since leading '=' is eaten, double it up. */
- *tmp = '=';
- memcpy (tmp + 1, value, len + 1);
- result = setenv (name, tmp, replace);
- saved_errno = errno;
- freea (tmp);
- errno = saved_errno;
- }
- }
- return result;
-}
-
-#endif /* HAVE_SETENV */
Index: gnulib/lib/unsetenv.c
===================================================================
RCS file: gnulib/lib/unsetenv.c
diff -N gnulib/lib/unsetenv.c
--- gnulib/lib/unsetenv.c 13 Oct 2011 17:41:22 -0000 1.8
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,127 +0,0 @@
-/* Copyright (C) 1992, 1995-2002, 2005-2011 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- This program is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 3 of the License, or
- (at your option) any later version.
-
- This program 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 General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
-
-#include <config.h>
-
-/* Don't use __attribute__ __nonnull__ in this compilation unit. Otherwise gcc
- optimizes away the name == NULL test below. */
-#define _GL_ARG_NONNULL(params)
-
-/* Specification. */
-#include <stdlib.h>
-
-#include <errno.h>
-#if !_LIBC
-# define __set_errno(ev) ((errno) = (ev))
-#endif
-
-#include <string.h>
-#include <unistd.h>
-
-#if !_LIBC
-# define __environ environ
-#endif
-
-#if _LIBC
-/* This lock protects against simultaneous modifications of `environ'. */
-# include <bits/libc-lock.h>
-__libc_lock_define_initialized (static, envlock)
-# define LOCK __libc_lock_lock (envlock)
-# define UNLOCK __libc_lock_unlock (envlock)
-#else
-# define LOCK
-# define UNLOCK
-#endif
-
-/* In the GNU C library we must keep the namespace clean. */
-#ifdef _LIBC
-# define unsetenv __unsetenv
-#endif
-
-#if _LIBC || !HAVE_UNSETENV
-
-int
-unsetenv (const char *name)
-{
- size_t len;
- char **ep;
-
- if (name == NULL || *name == '\0' || strchr (name, '=') != NULL)
- {
- __set_errno (EINVAL);
- return -1;
- }
-
- len = strlen (name);
-
- LOCK;
-
- ep = __environ;
- while (*ep != NULL)
- if (!strncmp (*ep, name, len) && (*ep)[len] == '=')
- {
- /* Found it. Remove this pointer by moving later ones back. */
- char **dp = ep;
-
- do
- dp[0] = dp[1];
- while (*dp++);
- /* Continue the loop in case NAME appears again. */
- }
- else
- ++ep;
-
- UNLOCK;
-
- return 0;
-}
-
-#ifdef _LIBC
-# undef unsetenv
-weak_alias (__unsetenv, unsetenv)
-#endif
-
-#else /* HAVE_UNSETENV */
-
-# undef unsetenv
-# if !HAVE_DECL_UNSETENV
-# if VOID_UNSETENV
-extern void unsetenv (const char *);
-# else
-extern int unsetenv (const char *);
-# endif
-# endif
-
-/* Call the underlying unsetenv, in case there is hidden bookkeeping
- that needs updating beyond just modifying environ. */
-int
-rpl_unsetenv (const char *name)
-{
- int result = 0;
- if (!name || !*name || strchr (name, '='))
- {
- errno = EINVAL;
- return -1;
- }
- while (getenv (name))
-# if !VOID_UNSETENV
- result =
-# endif
- unsetenv (name);
- return result;
-}
-
-#endif /* HAVE_UNSETENV */
Index: gnulib/lib/xsetenv.c
===================================================================
RCS file: gnulib/lib/xsetenv.c
diff -N gnulib/lib/xsetenv.c
--- gnulib/lib/xsetenv.c 5 Feb 2011 19:06:04 -0000 1.8
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,38 +0,0 @@
-/* Setting environment variables, with out-of-memory checking.
- Copyright (C) 2001-2002, 2005-2007, 2009-2011 Free Software Foundation, Inc.
-
- This program is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 3 of the License, or
- (at your option) any later version.
-
- This program 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 General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
-
-#include <config.h>
-
-/* Specification. */
-#include "xsetenv.h"
-
-#include <stdlib.h>
-
-#include "error.h"
-#include "gettext.h"
-
-#define _(str) gettext (str)
-
-
-/* Set NAME to VALUE in the environment.
- If REPLACE is nonzero, overwrite an existing value.
- With error checking. */
-void
-xsetenv (const char *name, const char *value, int replace)
-{
- if (setenv (name, value, replace) < 0)
- error (EXIT_FAILURE, 0, _("memory exhausted"));
-}
Index: gnulib/lib/xsetenv.h
===================================================================
RCS file: gnulib/lib/xsetenv.h
diff -N gnulib/lib/xsetenv.h
--- gnulib/lib/xsetenv.h 5 Feb 2011 19:06:04 -0000 1.6
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,31 +0,0 @@
-/* Setting environment variables, with out-of-memory checking.
- Copyright (C) 2001-2002, 2007, 2009-2011 Free Software Foundation, Inc.
-
- This program is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 3 of the License, or
- (at your option) any later version.
-
- This program 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 General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
-
-/* Get unsetenv(). It can be used without error checking. */
-#include <stdlib.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* Set NAME to VALUE in the environment.
- If REPLACE is nonzero, overwrite an existing value.
- With error checking. */
-extern void xsetenv (const char *name, const char *value, int replace);
-
-#ifdef __cplusplus
-}
-#endif
Index: gnulib/m4/environ.m4
===================================================================
RCS file: gnulib/m4/environ.m4
diff -N gnulib/m4/environ.m4
--- gnulib/m4/environ.m4 13 Oct 2011 17:41:23 -0000 1.6
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,47 +0,0 @@
-# environ.m4 serial 6
-dnl Copyright (C) 2001-2004, 2006-2011 Free Software Foundation, Inc.
-dnl This file is free software; the Free Software Foundation
-dnl gives unlimited permission to copy and/or distribute it,
-dnl with or without modifications, as long as this notice is preserved.
-
-AC_DEFUN_ONCE([gl_ENVIRON],
-[
- AC_REQUIRE([gl_UNISTD_H_DEFAULTS])
- dnl Persuade glibc <unistd.h> to declare environ.
- AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
-
- AC_CHECK_HEADERS_ONCE([unistd.h])
- gt_CHECK_VAR_DECL(
- [#if HAVE_UNISTD_H
- #include <unistd.h>
- #endif
- /* mingw, BeOS, Haiku declare environ in <stdlib.h>, not in <unistd.h>.
*/
- #include <stdlib.h>
- ],
- [environ])
- if test $gt_cv_var_environ_declaration != yes; then
- HAVE_DECL_ENVIRON=0
- fi
-])
-
-# Check if a variable is properly declared.
-# gt_CHECK_VAR_DECL(includes,variable)
-AC_DEFUN([gt_CHECK_VAR_DECL],
-[
- define([gt_cv_var], [gt_cv_var_]$2[_declaration])
- AC_MSG_CHECKING([if $2 is properly declared])
- AC_CACHE_VAL([gt_cv_var], [
- AC_COMPILE_IFELSE(
- [AC_LANG_PROGRAM(
- [[$1
- extern struct { int foo; } $2;]],
- [[$2.foo = 1;]])],
- [gt_cv_var=no],
- [gt_cv_var=yes])])
- AC_MSG_RESULT([$gt_cv_var])
- if test $gt_cv_var = yes; then
- AC_DEFINE([HAVE_]m4_translit($2, [a-z], [A-Z])[_DECL], 1,
- [Define if you have the declaration of $2.])
- fi
- undefine([gt_cv_var])
-])
Index: gnulib/m4/setenv.m4
===================================================================
RCS file: gnulib/m4/setenv.m4
diff -N gnulib/m4/setenv.m4
--- gnulib/m4/setenv.m4 13 Oct 2011 17:41:33 -0000 1.8
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,140 +0,0 @@
-# setenv.m4 serial 25
-dnl Copyright (C) 2001-2004, 2006-2011 Free Software Foundation, Inc.
-dnl This file is free software; the Free Software Foundation
-dnl gives unlimited permission to copy and/or distribute it,
-dnl with or without modifications, as long as this notice is preserved.
-
-AC_DEFUN([gl_FUNC_SETENV],
-[
- AC_REQUIRE([gl_FUNC_SETENV_SEPARATE])
- if test $ac_cv_func_setenv = no; then
- HAVE_SETENV=0
- else
- AC_CACHE_CHECK([whether setenv validates arguments],
- [gl_cv_func_setenv_works],
- [AC_RUN_IFELSE([AC_LANG_PROGRAM([[
- #include <stdlib.h>
- #include <errno.h>
- #include <string.h>
- ]], [[
- int result = 0;
- {
- if (setenv ("", "", 0) != -1)
- result |= 1;
- else if (errno != EINVAL)
- result |= 2;
- }
- {
- if (setenv ("a", "=", 1) != 0)
- result |= 4;
- else if (strcmp (getenv ("a"), "=") != 0)
- result |= 8;
- }
- return result;
- ]])],
- [gl_cv_func_setenv_works=yes], [gl_cv_func_setenv_works=no],
- [gl_cv_func_setenv_works="guessing no"])])
- if test "$gl_cv_func_setenv_works" != yes; then
- REPLACE_SETENV=1
- fi
- fi
-])
-
-# Like gl_FUNC_SETENV, except prepare for separate compilation
-# (no REPLACE_SETENV, no AC_LIBOBJ).
-AC_DEFUN([gl_FUNC_SETENV_SEPARATE],
-[
- AC_REQUIRE([gl_STDLIB_H_DEFAULTS])
- AC_CHECK_DECLS_ONCE([setenv])
- if test $ac_cv_have_decl_setenv = no; then
- HAVE_DECL_SETENV=0
- fi
- AC_CHECK_FUNCS_ONCE([setenv])
- gl_PREREQ_SETENV
-])
-
-AC_DEFUN([gl_FUNC_UNSETENV],
-[
- AC_REQUIRE([gl_STDLIB_H_DEFAULTS])
- AC_CHECK_DECLS_ONCE([unsetenv])
- if test $ac_cv_have_decl_unsetenv = no; then
- HAVE_DECL_UNSETENV=0
- fi
- AC_CHECK_FUNCS([unsetenv])
- if test $ac_cv_func_unsetenv = no; then
- HAVE_UNSETENV=0
- else
- HAVE_UNSETENV=1
- dnl Some BSDs return void, failing to do error checking.
- AC_CACHE_CHECK([for unsetenv() return type], [gt_cv_func_unsetenv_ret],
- [AC_COMPILE_IFELSE(
- [AC_LANG_PROGRAM(
- [[
-#undef _BSD
-#define _BSD 1 /* unhide unsetenv declaration in OSF/1 5.1 <stdlib.h> */
-#include <stdlib.h>
-extern
-#ifdef __cplusplus
-"C"
-#endif
-int unsetenv (const char *name);
- ]],
- [[]])],
- [gt_cv_func_unsetenv_ret='int'],
- [gt_cv_func_unsetenv_ret='void'])])
- if test $gt_cv_func_unsetenv_ret = 'void'; then
- AC_DEFINE([VOID_UNSETENV], [1], [Define to 1 if unsetenv returns void
- instead of int.])
- REPLACE_UNSETENV=1
- fi
-
- dnl Solaris 10 unsetenv does not remove all copies of a name.
- dnl Haiku alpha 2 unsetenv gets confused by assignment to environ.
- dnl OpenBSD 4.7 unsetenv("") does not fail.
- AC_CACHE_CHECK([whether unsetenv obeys POSIX],
- [gl_cv_func_unsetenv_works],
- [AC_RUN_IFELSE([AC_LANG_PROGRAM([[
- #include <stdlib.h>
- #include <errno.h>
- extern char **environ;
- ]], [[
- char entry1[] = "a=1";
- char entry2[] = "b=2";
- char *env[] = { entry1, entry2, NULL };
- if (putenv ((char *) "a=1")) return 1;
- if (putenv (entry2)) return 2;
- entry2[0] = 'a';
- unsetenv ("a");
- if (getenv ("a")) return 3;
- if (!unsetenv ("") || errno != EINVAL) return 4;
- entry2[0] = 'b';
- environ = env;
- if (!getenv ("a")) return 5;
- entry2[0] = 'a';
- unsetenv ("a");
- if (getenv ("a")) return 6;
- ]])],
- [gl_cv_func_unsetenv_works=yes], [gl_cv_func_unsetenv_works=no],
- [gl_cv_func_unsetenv_works="guessing no"])])
- if test "$gl_cv_func_unsetenv_works" != yes; then
- REPLACE_UNSETENV=1
- fi
- fi
-])
-
-# Prerequisites of lib/setenv.c.
-AC_DEFUN([gl_PREREQ_SETENV],
-[
- AC_REQUIRE([AC_FUNC_ALLOCA])
- AC_REQUIRE([gl_ENVIRON])
- AC_CHECK_HEADERS_ONCE([unistd.h])
- AC_CHECK_HEADERS([search.h])
- AC_CHECK_FUNCS([tsearch])
-])
-
-# Prerequisites of lib/unsetenv.c.
-AC_DEFUN([gl_PREREQ_UNSETENV],
-[
- AC_REQUIRE([gl_ENVIRON])
- AC_CHECK_HEADERS_ONCE([unistd.h])
-])