X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=lib%2Fsetenv.c;h=83b52b88b980a297ca1944746be527eeeee79ad8;hb=10a856eb3aa7ffe196fa20c9901d356f2109c40f;hp=320469b86309b0b9221e0ba80d5fb749a3441c9c;hpb=a62be9f4039b4499cfbb76e394cad2259d03fa84;p=gnulib.git diff --git a/lib/setenv.c b/lib/setenv.c index 320469b86..83b52b88b 100644 --- a/lib/setenv.c +++ b/lib/setenv.c @@ -1,45 +1,45 @@ -/* Copyright (C) 1992,1995-1999,2000-2004 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, 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 */