Match glibc behavior. * libc/stdlib/stdlib.c (mbtowc): Fix end of string behavior.
Signed-off-by: Mickaël Guêné <mickael.gu...@st.com> Signed-off-by: Christophe Lyon <christophe.l...@st.com> diff --git a/libc/stdlib/stdlib.c b/libc/stdlib/stdlib.c index 075e6e5..f593663 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? */ -- 2.6.3 _______________________________________________ devel mailing list devel@uclibc-ng.org https://mailman.uclibc-ng.org/cgi-bin/mailman/listinfo/devel