/* environ.c -- library for manipulating environments for GNU.
- Copyright (C) 1986, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 2000, 2005
- 2003, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
+ Copyright (C) 1986-2015 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
#include "defs.h"
#include "environ.h"
-#include "gdb_string.h"
\f
/* Return a new environment object. */
{
struct gdb_environ *e;
- e = (struct gdb_environ *) xmalloc (sizeof (struct gdb_environ));
+ e = XNEW (struct gdb_environ);
e->allocated = 10;
e->vector = (char **) xmalloc ((e->allocated + 1) * sizeof (char *));
while (--i >= 0)
{
int len = strlen (e->vector[i]);
- char *new = (char *) xmalloc (len + 1);
+ char *newobj = (char *) xmalloc (len + 1);
- memcpy (new, e->vector[i], len + 1);
- e->vector[i] = new;
+ memcpy (newobj, e->vector[i], len + 1);
+ e->vector[i] = newobj;
}
}
/* Remove the setting for variable VAR from environment E. */
void
-unset_in_environ (struct gdb_environ *e, char *var)
+unset_in_environ (struct gdb_environ *e, const char *var)
{
int len = strlen (var);
char **vector = e->vector;
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++;