diff options
Diffstat (limited to 'libc/stdlib')
| -rw-r--r-- | libc/stdlib/stdlib.c | 6 | 
1 files changed, 5 insertions, 1 deletions
| diff --git a/libc/stdlib/stdlib.c b/libc/stdlib/stdlib.c index 075e6e5d6..f5936630c 100644 --- a/libc/stdlib/stdlib.c +++ b/libc/stdlib/stdlib.c @@ -895,9 +895,13 @@ int mbtowc(wchar_t *__restrict pwc, register const char *__restrict s, size_t n)  		return is_stateful(ENCODING);  	} -	if (*s == '\0') +	if (*s == '\0') {  		/* According to the ISO C 89 standard this is the expected behaviour.  */ +		/* Standard not very clear here, so do like glibc.  */ +        	if (pwc != NULL) +	        	*pwc = L'\0';  		return 0; +    }  	if ((r = mbrtowc(pwc, s, n, &state)) == (size_t) -2) {  		/* TODO: Should we set an error state? */ | 
