delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2009/07/20/08:09:00

X-Recipient: archive-cygwin AT delorie DOT com
X-Spam-Check-By: sourceware.org
Date: Mon, 20 Jul 2009 14:08:33 +0200
From: Corinna Vinschen <corinna-cygwin AT cygwin DOT com>
To: cygwin AT cygwin DOT com
Subject: Re: mbrtowc bug
Message-ID: <20090720120833.GF30066@calimero.vinschen.de>
Reply-To: cygwin AT cygwin DOT com
Mail-Followup-To: cygwin AT cygwin DOT com
References: <4A6451C0 DOT 9050504 AT byu DOT net> <20090720114240 DOT GB30066 AT calimero DOT vinschen DOT de> <20090720115529 DOT GC30066 AT calimero DOT vinschen DOT de> <4A645C07 DOT 4090501 AT byu DOT net>
MIME-Version: 1.0
In-Reply-To: <4A645C07.4090501@byu.net>
User-Agent: Mutt/1.5.19 (2009-02-20)
Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm
List-Id: <cygwin.cygwin.com>
List-Unsubscribe: <mailto:cygwin-unsubscribe-archive-cygwin=delorie DOT com AT cygwin DOT com>
List-Subscribe: <mailto:cygwin-subscribe AT cygwin DOT com>
List-Archive: <http://sourceware.org/ml/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-help AT cygwin DOT com>, <http://sourceware.org/ml/#faqs>
Sender: cygwin-owner AT cygwin DOT com
Mail-Followup-To: cygwin AT cygwin DOT com
Delivered-To: mailing list cygwin AT cygwin DOT com

On Jul 20 05:59, Eric Blake wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
> 
> According to Corinna Vinschen on 7/20/2009 5:55 AM:
> > 
> > What bug?!?  When I run this testcase on Cygwin 1.7, it returns 0.  What
> > is the supposed error and what is expected if it's behaving correctly?
> 
> Hmm.  Here's what it did for me on Windows XP (maybe the bug is in the
> underlying Windows functions, which has since been fixed in your Windows
> version?)
> 
> Breakpoint 1, main () at foo.c:5
> 5       {
> (gdb) n
> 6         if (setlocale (LC_ALL, "ja_JP.eucJP") != NULL)
> (gdb)
> 8             char input[] = "B\217\253\344\217\251\316er";
> (gdb)
> 13            memset (&state, '\0', sizeof (mbstate_t));
> (gdb)
> 14            if (mbrtowc (&wc, input + 1, 1, &state) == (size_t)(-2))
> (gdb)
> 16                input[1] = '\0';
> (gdb)
> 17                if (mbrtowc (&wc, input + 2, 5, &state) != 2)
> (gdb)
> 18                  return 1;
> (gdb)

I'm running the testcase on XP SP3.  I have an idea why it fails for
you.  The eucJP codepage 20932 is not installed by default on US and
other western language systems by default up to Windows 2003.  What you
have to do is, open the "Regional and Language Options" control panel,
go to the "Advanced" tab, scroll the "Code page conversion tables" list
down to the 20932 entry, select it and install it.

This is not necessary anymore startying with Vista, which comes with
almost all important conversion tables preinstalled.


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 -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019