OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-old/] [binutils-2.18.50/] [libiberty/] [putenv.c] - Diff between revs 156 and 816

Go to most recent revision | Only display areas with differences | Details | Blame | View Log

Rev 156 Rev 816
/* Copyright (C) 1991, 1994, 1995, 1996, 2002 Free Software Foundation, Inc.
/* Copyright (C) 1991, 1994, 1995, 1996, 2002 Free Software Foundation, Inc.
   This file based on putenv.c in the GNU C Library.
   This file based on putenv.c in the GNU C Library.
 
 
   The GNU C Library is free software; you can redistribute it and/or
   The GNU C Library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Library General Public License as
   modify it under the terms of the GNU Library General Public License as
   published by the Free Software Foundation; either version 2 of the
   published by the Free Software Foundation; either version 2 of the
   License, or (at your option) any later version.
   License, or (at your option) any later version.
 
 
   The GNU C Library is distributed in the hope that it will be useful,
   The GNU C Library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Library General Public License for more details.
   Library General Public License for more details.
 
 
   You should have received a copy of the GNU Library General Public
   You should have received a copy of the GNU Library General Public
   License along with the GNU C Library; see the file COPYING.LIB.  If not,
   License along with the GNU C Library; see the file COPYING.LIB.  If not,
   write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
   write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
   Boston, MA 02110-1301, USA.  */
   Boston, MA 02110-1301, USA.  */
 
 
/*
/*
 
 
@deftypefn Supplemental int putenv (const char *@var{string})
@deftypefn Supplemental int putenv (const char *@var{string})
 
 
Uses @code{setenv} or @code{unsetenv} to put @var{string} into
Uses @code{setenv} or @code{unsetenv} to put @var{string} into
the environment or remove it.  If @var{string} is of the form
the environment or remove it.  If @var{string} is of the form
@samp{name=value} the string is added; if no @samp{=} is present the
@samp{name=value} the string is added; if no @samp{=} is present the
name is unset/removed.
name is unset/removed.
 
 
@end deftypefn
@end deftypefn
 
 
*/
*/
 
 
#if defined (_AIX) && !defined (__GNUC__)
#if defined (_AIX) && !defined (__GNUC__)
 #pragma alloca
 #pragma alloca
#endif
#endif
 
 
#if HAVE_CONFIG_H
#if HAVE_CONFIG_H
# include <config.h>
# include <config.h>
#endif
#endif
 
 
#include "ansidecl.h"
#include "ansidecl.h"
 
 
#define putenv libiberty_putenv
#define putenv libiberty_putenv
 
 
#if HAVE_STDLIB_H
#if HAVE_STDLIB_H
# include <stdlib.h>
# include <stdlib.h>
#endif
#endif
#if HAVE_STRING_H
#if HAVE_STRING_H
# include <string.h>
# include <string.h>
#endif
#endif
 
 
#ifdef HAVE_ALLOCA_H
#ifdef HAVE_ALLOCA_H
# include <alloca.h>
# include <alloca.h>
#else
#else
# ifndef alloca
# ifndef alloca
#  ifdef __GNUC__
#  ifdef __GNUC__
#   define alloca __builtin_alloca
#   define alloca __builtin_alloca
#  else
#  else
extern char *alloca ();
extern char *alloca ();
#  endif /* __GNUC__ */
#  endif /* __GNUC__ */
# endif /* alloca */
# endif /* alloca */
#endif /* HAVE_ALLOCA_H */
#endif /* HAVE_ALLOCA_H */
 
 
#undef putenv
#undef putenv
 
 
/* Below this point, it's verbatim code from the glibc-2.0 implementation */
/* Below this point, it's verbatim code from the glibc-2.0 implementation */
 
 
 
 
/* Put STRING, which is of the form "NAME=VALUE", in the environment.  */
/* Put STRING, which is of the form "NAME=VALUE", in the environment.  */
int
int
putenv (const char *string)
putenv (const char *string)
{
{
  const char *const name_end = strchr (string, '=');
  const char *const name_end = strchr (string, '=');
 
 
  if (name_end)
  if (name_end)
    {
    {
      char *name = (char *) alloca (name_end - string + 1);
      char *name = (char *) alloca (name_end - string + 1);
      memcpy (name, string, name_end - string);
      memcpy (name, string, name_end - string);
      name[name_end - string] = '\0';
      name[name_end - string] = '\0';
      return setenv (name, name_end + 1, 1);
      return setenv (name, name_end + 1, 1);
    }
    }
 
 
  unsetenv (string);
  unsetenv (string);
  return 0;
  return 0;
}
}
 
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.