*** empty log message ***
[deliverable/binutils-gdb.git] / gdb / environ.c
index 3469f88e7f7248e4489e18ec38d259f39f2d27b9..50653dafdc71fb155bf7a8e7b59e652a3f3d6ce9 100644 (file)
@@ -1,11 +1,10 @@
 /* environ.c -- library for manipulating environments for GNU.
 
-   Copyright 1986, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 2000, 2005
-   2003 Free Software Foundation, Inc.
+   Copyright (C) 1986-2013 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 2 of the License, or
+   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,
@@ -14,9 +13,7 @@
    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.  */
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
 #define min(a, b) ((a) < (b) ? (a) : (b))
 #define max(a, b) ((a) > (b) ? (a) : (b))
@@ -51,6 +48,7 @@ free_environ (struct gdb_environ *e)
   while (*vector)
     xfree (*vector++);
 
+  xfree (e->vector);
   xfree (e);
 }
 
@@ -82,6 +80,7 @@ init_environ (struct gdb_environ *e)
     {
       int len = strlen (e->vector[i]);
       char *new = (char *) xmalloc (len + 1);
+
       memcpy (new, e->vector[i], len + 1);
       e->vector[i] = new;
     }
@@ -170,12 +169,12 @@ unset_in_environ (struct gdb_environ *e, char *var)
 
   for (; (s = *vector) != NULL; vector++)
     {
-      if (DEPRECATED_STREQN (s, var, len) && s[len] == '=')
+      if (strncmp (s, var, len) == 0 && s[len] == '=')
        {
          xfree (s);
          /* Walk through the vector, shuffling args down by one, including
             the NULL terminator.  Can't use memcpy() here since the regions
-            overlap, and memmove() might not be available. */
+            overlap, and memmove() might not be available.  */
          while ((vector[0] = vector[1]) != NULL)
            {
              vector++;
This page took 0.026661 seconds and 4 git commands to generate.