X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;ds=inline;f=lib%2Fsetenv.c;h=83b52b88b980a297ca1944746be527eeeee79ad8;hb=10a856eb3aa7ffe196fa20c9901d356f2109c40f;hp=33dbeb7a39f32e21fc6be51ecae169a0796f319d;hpb=267a39bafd249d7eb9c37df06dc6defcf41cb343;p=gnulib.git
diff --git a/lib/setenv.c b/lib/setenv.c
index 33dbeb7a3..83b52b88b 100644
--- a/lib/setenv.c
+++ b/lib/setenv.c
@@ -1,45 +1,45 @@
-/* Copyright (C) 1992,1995-1999,2000-2003 Free Software Foundation, Inc.
+/* Copyright (C) 1992,1995-1999,2000-2003,2005-2008 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
+ 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 2, or (at your option)
- any later version.
+ 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, write to the Free Software Foundation,
- Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see . */
-#if HAVE_CONFIG_H
+#if !_LIBC
# include
#endif
#include
+/* Specification. */
+#include
+
#include
#ifndef __set_errno
# define __set_errno(ev) ((errno) = (ev))
#endif
-#include
#include
#if _LIBC || HAVE_UNISTD_H
# include
#endif
+#if _LIBC || !HAVE_SETENV
+
#if !_LIBC
-# include "allocsa.h"
+# include "malloca.h"
#endif
#if !_LIBC
# define __environ environ
-# ifndef HAVE_ENVIRON_DECL
-extern char **environ;
-# endif
#endif
#if _LIBC
@@ -160,7 +160,7 @@ __add_to_environ (const char *name, const char *value, const char *combined,
__mempcpy (__mempcpy (__mempcpy (new_value, name, namelen), "=", 1),
value, vallen);
# else
- new_value = (char *) allocsa (namelen + 1 + vallen);
+ new_value = (char *) malloca (namelen + 1 + vallen);
if (new_value == NULL)
{
__set_errno (ENOMEM);
@@ -180,7 +180,7 @@ __add_to_environ (const char *name, const char *value, const char *combined,
if (new_environ[size] == NULL)
{
#if defined USE_TSEARCH && !defined _LIBC
- freesa (new_value);
+ freea (new_value);
#endif
__set_errno (ENOMEM);
UNLOCK;
@@ -200,7 +200,7 @@ __add_to_environ (const char *name, const char *value, const char *combined,
STORE_VALUE (new_environ[size]);
}
#if defined USE_TSEARCH && !defined _LIBC
- freesa (new_value);
+ freea (new_value);
#endif
}
@@ -228,7 +228,7 @@ __add_to_environ (const char *name, const char *value, const char *combined,
__mempcpy (__mempcpy (__mempcpy (new_value, name, namelen), "=", 1),
value, vallen);
# else
- new_value = allocsa (namelen + 1 + vallen);
+ new_value = malloca (namelen + 1 + vallen);
if (new_value == NULL)
{
__set_errno (ENOMEM);
@@ -248,7 +248,7 @@ __add_to_environ (const char *name, const char *value, const char *combined,
if (np == NULL)
{
#if defined USE_TSEARCH && !defined _LIBC
- freesa (new_value);
+ freea (new_value);
#endif
__set_errno (ENOMEM);
UNLOCK;
@@ -266,7 +266,7 @@ __add_to_environ (const char *name, const char *value, const char *combined,
STORE_VALUE (np);
}
#if defined USE_TSEARCH && !defined _LIBC
- freesa (new_value);
+ freea (new_value);
#endif
}
@@ -326,3 +326,5 @@ text_set_element (__libc_subfreeres, free_mem);
weak_alias (__setenv, setenv)
weak_alias (__clearenv, clearenv)
#endif
+
+#endif /* _LIBC || !HAVE_SETENV */