X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=lib%2Fsetenv.c;h=83b52b88b980a297ca1944746be527eeeee79ad8;hb=a9577e5bdf9e9814ff774a2a68e9f83b5e842fe6;hp=c3f9dc4ca4495c75803fda6de49581c335310bfd;hpb=cca613ab9274178a7655f1974539428f25728f72;p=gnulib.git diff --git a/lib/setenv.c b/lib/setenv.c index c3f9dc4ca..83b52b88b 100644 --- a/lib/setenv.c +++ b/lib/setenv.c @@ -1,48 +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., 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 -#if !_LIBC -# if !defined errno && !defined HAVE_ERRNO_DECL -extern int errno; -# endif +#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 @@ -163,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); @@ -183,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; @@ -203,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 } @@ -231,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); @@ -251,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; @@ -269,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 } @@ -329,3 +326,5 @@ text_set_element (__libc_subfreeres, free_mem); weak_alias (__setenv, setenv) weak_alias (__clearenv, clearenv) #endif + +#endif /* _LIBC || !HAVE_SETENV */