On Jul 20 05:15, Eric Blake wrote: > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA1 > > The gnulib unit tests are declaring that cygwin's mbrtowc is broken. STC: > > #include <locale.h> > #include <string.h> > #include <wchar.h> > int main () > { > if (setlocale (LC_ALL, "ja_JP.eucJP") != NULL) > { > char input[] = "B\217\253\344\217\251\316er"; > > mbstate_t state; > wchar_t wc; > > memset (&state, '\0', sizeof (mbstate_t)); > if (mbrtowc (&wc, input + 1, 1, &state) == (size_t)(-2)) > { > input[1] = '\0'; > if (mbrtowc (&wc, input + 2, 5, &state) != 2) > return 1; > } > } > return 0; > } > > > According to Bruno Haible[1], the bug is in the __eucjp_wctomb and > __eucjp_mbtowc implementations. > > [1] http://lists.gnu.org/archive/html/bug-gnulib/2009-07/msg00051.html
I'm a bit disappointed that, when looking into the sources anyway, why nobody provides a patch, rather then let me go through the whole test again. Sigh. Here's another problem: Bruno is wrong. Cygwin has it's own implementation of __eucjp_wctomb and __eucjp_mbtowc in winsup/cygwin/strfunc.cc, using the underlying Windows functions WideCharToMultiByte/MultiByteToWideChar. The newlib functions don't need to be rewritten. Thanks all the same for the testcase. Corinna -- Corinna Vinschen Please, send mails regarding Cygwin to Cygwin Project Co-Leader cygwin AT cygwin DOT com Red Hat -- Problem reports: http://cygwin.com/problems.html FAQ: http://cygwin.com/faq/ Documentation: http://cygwin.com/docs.html Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple