* include/cygwin/stdlib.h: New file.

* environ.cc (unsetenv): Change to return -1 on input error.
* include/cygwin/version.h: Add more description to latest api bump.
This commit is contained in:
Christopher Faylor 2005-12-05 22:30:03 +00:00
parent b1da33a0b0
commit e5a0cf2415
4 changed files with 78 additions and 2 deletions

View File

@ -1,3 +1,9 @@
2005-12-05 Christopher Faylor <cgf@timesys.com>
* include/cygwin/stdlib.h: New file.
* environ.cc (unsetenv): Change to return -1 on input error.
* include/cygwin/version.h: Add more description to latest api bump.
2005-12-05 Christopher Faylor <cgf@timesys.com> 2005-12-05 Christopher Faylor <cgf@timesys.com>
* dir.cc (readdir_workdir): Only fill out d_ino when linked into older * dir.cc (readdir_workdir): Only fill out d_ino when linked into older

View File

@ -362,17 +362,25 @@ setenv (const char *name, const char *value, int overwrite)
} }
/* unsetenv(name) -- Delete environment variable "name". */ /* unsetenv(name) -- Delete environment variable "name". */
extern "C" void extern "C" int
unsetenv (const char *name) unsetenv (const char *name)
{ {
register char **e; register char **e;
int offset; int offset;
myfault efault;
if (efault.faulted () || *name == '\0' || strchr (name, '='))
{
set_errno (EINVAL);
return -1;
}
while (my_findenv (name, &offset)) /* if set multiple times */ while (my_findenv (name, &offset)) /* if set multiple times */
/* Move up the rest of the array */ /* Move up the rest of the array */
for (e = cur_environ () + offset; ; e++) for (e = cur_environ () + offset; ; e++)
if (!(*e = *(e + 1))) if (!(*e = *(e + 1)))
break; break;
return 0;
} }
/* Turn environment variable part of a=b string into uppercase. */ /* Turn environment variable part of a=b string into uppercase. */

View File

@ -0,0 +1,61 @@
/* stdlib.h
Copyright 2005 Red Hat Inc.
This file is part of Cygwin.
This software is a copyrighted work licensed under the terms of the
Cygwin license. Please consult the file "CYGWIN_LICENSE" for
details. */
#ifndef _CYGWIN_STDLIB_H
#define _CYGWIN_STDLIB_H
#ifdef __cplusplus
extern "C"
{
#endif
const char *getprogname (void);
void setprogname (const char *);
#ifndef __STRICT_ANSI__
char *realpath (const char *, char *);
int unsetenv (const char *);
int random (void);
long srandom (unsigned);
char *ptsname (int);
int grantpt (int);
int unlockpt (int);
#endif /*__STRICT_ANSI__*/
#undef _malloc_r
#define _malloc_r(r, s) malloc (s)
#undef _free_r
#define _free_r(r, p) free (p)
#undef _realloc_r
#define _realloc_r(r, p, s) realloc (p, s)
#undef _calloc_r
#define _calloc_r(r, s1, s2) calloc (s1, s2);
#undef _memalign_r
#define _memalign_r(r, s1, s2) memalign (s1, s2);
#undef _mallinfo_r
#define _mallinfo_r(r) mallinfo ()
#undef _malloc_stats_r
#define _malloc_stats_r(r) malloc_stats ()
#undef _mallopt_r
#define _mallopt_r(i1, i2) mallopt (i1, i2)
#undef _malloc_usable_size_r
#define _malloc_usable_size_r(r, p) malloc_usable_size (p)
#undef _valloc_r
#define _valloc_r(r, s) valloc (s)
#undef _pvalloc_r
#define _pvalloc_r(r, s) pvalloc (s)
#undef _malloc_trim_r
#define _malloc_trim_r(r, s) malloc_trim (s)
#undef _mstats_r
#define _mstats_r(r, p) mstats (p)
#ifdef __cplusplus
}
#endif
#endif /*_CYGWIN_STDLIB_H*/

View File

@ -280,7 +280,8 @@ details. */
145: Add MAP_NORESERVE flag to mmap. 145: Add MAP_NORESERVE flag to mmap.
146: Change SI_USER definition. FIXME: Need to develop compatibility macro 146: Change SI_USER definition. FIXME: Need to develop compatibility macro
for this? for this?
147: Eliminate problematic d_ino from dirent structure. 147: Eliminate problematic d_ino from dirent structure. unsetenv now returns
int, as per linux.
*/ */
/* Note that we forgot to bump the api for ualarm, strtoll, strtoull */ /* Note that we forgot to bump the api for ualarm, strtoll, strtoull */