diff --git a/library/changes b/library/changes index 653ed34..b010975 100644 --- a/library/changes +++ b/library/changes @@ -1,3 +1,10 @@ +- unsetenv() now returns a status value. + +- Corrected the function prototype for wcspbrk(). + +- Added function prototypes for mbrtowc_l(), wcscoll_l(), wcscspn() and wcsrchr(). + + c.lib 1.203 (28.4.2008) - Added 68k stubs to amiga_rexxvars.c for the OS4 build to use. The new code now diff --git a/library/include/stdlib.h b/library/include/stdlib.h index 37a57b1..4b85941 100644 --- a/library/include/stdlib.h +++ b/library/include/stdlib.h @@ -1,5 +1,5 @@ /* - * $Id: stdlib.h,v 1.18 2006-11-13 09:51:53 obarthel Exp $ + * $Id: stdlib.h,v 1.19 2008-04-30 14:34:03 obarthel Exp $ * * :ts=4 * @@ -195,7 +195,7 @@ extern int rand_r(unsigned int * seed); extern int setenv(const char *name, const char *value, int overwrite); extern int putenv(const char *string); -extern void unsetenv(const char *name); +extern int unsetenv(const char *name); extern char * mktemp(char * name_template); extern int mkstemp(char *name_template); extern char * mkdtemp(char *name_template); diff --git a/library/include/wchar.h b/library/include/wchar.h index 5a0bbba..6163bc5 100644 --- a/library/include/wchar.h +++ b/library/include/wchar.h @@ -1,5 +1,5 @@ /* - * $Id: wchar.h,v 1.7 2006-01-08 12:06:14 obarthel Exp $ + * $Id: wchar.h,v 1.8 2008-04-30 14:34:03 obarthel Exp $ * * :ts=4 * @@ -97,7 +97,7 @@ extern wchar_t * wcsncpy(wchar_t *dest, const wchar_t *src, size_t n); extern size_t wcslen(const wchar_t *s); extern wchar_t * wcschr(const wchar_t *s, wchar_t c); extern size_t wcsspn(const wchar_t *s, const wchar_t *set); -extern wchar_t wcspbrk(const wchar_t *s, const wchar_t *set); +extern wchar_t *wcspbrk(const wchar_t *s, const wchar_t *set); extern wchar_t *wcstok(wchar_t *str, const wchar_t *set); extern wchar_t *wcsstr(const wchar_t *src, const wchar_t *sub); @@ -179,6 +179,11 @@ extern size_t wcsftime(wchar_t *s, size_t maxsize, const wchar_t *format, const extern long long wcstoll(const wchar_t *str, wchar_t **ptr, int base); extern unsigned long long wcstoull(const wchar_t *str, wchar_t **ptr, int base); +extern size_t mbrtowc_l(wchar_t *restrict pwc, const char *restrict s, size_t n, mbstate_t *restrict ps, locale_t loc); +extern int wcscoll_l(const wchar_t *ws1, const wchar_t *ws2, locale_t loc); +extern size_t wcscspn(const wchar_t *ws1, const wchar_t *ws2); +extern wchar_t * wcsrchr(const wchar_t *ws, wchar_t wc); + #endif /* __STDC_VERSION__ && __STDC_VERSION__ >= 199901L */ /****************************************************************************/ diff --git a/library/stdlib_unsetenv.c b/library/stdlib_unsetenv.c index a93834b..38d9884 100644 --- a/library/stdlib_unsetenv.c +++ b/library/stdlib_unsetenv.c @@ -1,5 +1,5 @@ /* - * $Id: stdlib_unsetenv.c,v 1.8 2006-09-25 14:51:15 obarthel Exp $ + * $Id: stdlib_unsetenv.c,v 1.9 2008-04-30 14:34:03 obarthel Exp $ * * :ts=4 * @@ -53,10 +53,12 @@ /****************************************************************************/ -void +int unsetenv(const char *name) { char * name_copy = NULL; + int result = -1; + LONG status; size_t i; if(__check_abort_enabled) @@ -91,11 +93,21 @@ unsetenv(const char *name) } PROFILE_OFF(); - DeleteVar((STRPTR)name,0); + status = DeleteVar((STRPTR)name,0); PROFILE_ON(); + + if(status == DOSFALSE) + { + __set_errno(__translate_access_io_error_to_errno(IoErr())); + goto out; + } + + result = 0; out: if(name_copy != NULL) free(name_copy); + + return(result); }