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

X-Recipient: archive-cygwin AT delorie DOT com
X-Spam-Check-By: sourceware.org
Date: Mon, 20 Jul 2009 14:15:33 +0200
From: Corinna Vinschen <corinna-cygwin AT cygwin DOT com>
To: cygwin AT cygwin DOT com
Subject: Re: mbrtowc bug
Message-ID: <20090720121533.GO27613@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> <20090720120833 DOT GF30066 AT calimero DOT vinschen DOT de>
MIME-Version: 1.0
In-Reply-To: <20090720120833.GF30066@calimero.vinschen.de>
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 14:08, Corinna Vinschen wrote:
> 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.

Btw., this is only a problem for the codepages 932 (SJIS), 936 (GBK),
949 (eucKR), 950 (Big5), and 20932 (eucJP).  These codepages need OS
support in the current implementation.  We could get rid of that if
we had our own conversion routines to Unicode and vice versa.
This is a sure http://cygwin.com/acronyms/#PTC case.


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