Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristopher Faylor <me@cgf.cx>2005-12-06 01:30:03 +0300
committerChristopher Faylor <me@cgf.cx>2005-12-06 01:30:03 +0300
commite5a0cf24156069135fcbcf6519280ae3eea6267c (patch)
tree6f843276d6493becef6434f7b7adf83be689fdf1
parentb1da33a0b031088846a1fb6417f73c4a8cd35853 (diff)
* 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.
-rw-r--r--winsup/cygwin/ChangeLog6
-rw-r--r--winsup/cygwin/environ.cc10
-rw-r--r--winsup/cygwin/include/cygwin/stdlib.h61
-rw-r--r--winsup/cygwin/include/cygwin/version.h3
4 files changed, 78 insertions, 2 deletions
diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog
index 2c18ff8e2..151597dbd 100644
--- a/winsup/cygwin/ChangeLog
+++ b/winsup/cygwin/ChangeLog
@@ -1,5 +1,11 @@
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>
+
* dir.cc (readdir_workdir): Only fill out d_ino when linked into older
app.
* include/cygwin/version.h: Bump api minor number to 147, reflecting
diff --git a/winsup/cygwin/environ.cc b/winsup/cygwin/environ.cc
index e7bd292c7..af950dd05 100644
--- a/winsup/cygwin/environ.cc
+++ b/winsup/cygwin/environ.cc
@@ -362,17 +362,25 @@ setenv (const char *name, const char *value, int overwrite)
}
/* unsetenv(name) -- Delete environment variable "name". */
-extern "C" void
+extern "C" int
unsetenv (const char *name)
{
register char **e;
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 */
/* Move up the rest of the array */
for (e = cur_environ () + offset; ; e++)
if (!(*e = *(e + 1)))
break;
+
+ return 0;
}
/* Turn environment variable part of a=b string into uppercase. */
diff --git a/winsup/cygwin/include/cygwin/stdlib.h b/winsup/cygwin/include/cygwin/stdlib.h
new file mode 100644
index 000000000..5eb707a22
--- /dev/null
+++ b/winsup/cygwin/include/cygwin/stdlib.h
@@ -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*/
diff --git a/winsup/cygwin/include/cygwin/version.h b/winsup/cygwin/include/cygwin/version.h
index d40dd8786..db65e43a4 100644
--- a/winsup/cygwin/include/cygwin/version.h
+++ b/winsup/cygwin/include/cygwin/version.h
@@ -280,7 +280,8 @@ details. */
145: Add MAP_NORESERVE flag to mmap.
146: Change SI_USER definition. FIXME: Need to develop compatibility macro
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 */