Mail Archives: cygwin/2009/07/20/07:43:12
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
- Raw text -