1/*
2   libc of DJGPP 2.03 does not offer function unsetenv,
3   so this version from DJGPP 2.04 CVS tree is supplied.
4   This file will become superflous and will be removed
5   from the  distribution as soon as DJGPP 2.04 has been
6   released.
7*/
8
9/* Copyright (C) 2001 DJ Delorie, see COPYING.DJ for details */
10
11#include <libc/stubs.h>
12#include <libc/unconst.h>
13#include <errno.h>
14#include <stdlib.h>
15#include <string.h>
16
17extern char **environ;
18
19int
20unsetenv(const char *name)
21{
22  /* No environment == success */
23  if (environ == 0)
24    return 0;
25
26  /* Check for the failure conditions */
27  if (name == NULL || *name == '\0' || strchr (name, '=') != NULL)
28  {
29    errno = EINVAL;
30    return -1;
31  }
32
33  /* Let putenv() do the work
34   * Note that we can just pass name directly as our putenv() treats
35   * this the same as passing 'name='. */
36  /* The cast is needed because POSIX specifies putenv() to take a non-const
37   * parameter.  Our putenv is well-behaved, so this is OK.  */
38  putenv (unconst (name, char*));
39
40  return 0;
41}
42