42 lines
1.0 KiB
C
42 lines
1.0 KiB
C
/*
|
|
libc of DJGPP 2.03 does not offer function unsetenv,
|
|
so this version from DJGPP 2.04 CVS tree is supplied.
|
|
This file will become superflous and will be removed
|
|
from the distribution as soon as DJGPP 2.04 has been
|
|
released.
|
|
*/
|
|
|
|
/* Copyright (C) 2001 DJ Delorie, see COPYING.DJ for details */
|
|
|
|
#include <libc/stubs.h>
|
|
#include <libc/unconst.h>
|
|
#include <errno.h>
|
|
#include <stdlib.h>
|
|
#include <string.h>
|
|
|
|
extern char **environ;
|
|
|
|
int
|
|
unsetenv(const char *name)
|
|
{
|
|
/* No environment == success */
|
|
if (environ == 0)
|
|
return 0;
|
|
|
|
/* Check for the failure conditions */
|
|
if (name == NULL || *name == '\0' || strchr (name, '=') != NULL)
|
|
{
|
|
errno = EINVAL;
|
|
return -1;
|
|
}
|
|
|
|
/* Let putenv() do the work
|
|
* Note that we can just pass name directly as our putenv() treats
|
|
* this the same as passing 'name='. */
|
|
/* The cast is needed because POSIX specifies putenv() to take a non-const
|
|
* parameter. Our putenv is well-behaved, so this is OK. */
|
|
putenv (unconst (name, char*));
|
|
|
|
return 0;
|
|
}
|