X-Recipient: archive-cygwin AT delorie DOT com X-Spam-Check-By: sourceware.org Date: Tue, 12 May 2009 19:31:53 +0200 From: Corinna Vinschen To: newlib AT sourceware DOT org, cygwin AT cygwin DOT com Subject: Re: [Fwd: [1.7] wcwidth failing configure tests] Message-ID: <20090512173153.GY21324@calimero.vinschen.de> Reply-To: newlib AT sourceware DOT org Mail-Followup-To: newlib AT sourceware DOT org, cygwin AT cygwin DOT com References: <20090512165404 DOT GW21324 AT calimero DOT vinschen DOT de> <416096c60905120956n5521929bm69586f5e6325a994 AT mail DOT gmail DOT com> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <416096c60905120956n5521929bm69586f5e6325a994@mail.gmail.com> User-Agent: Mutt/1.5.19 (2009-02-20) Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , 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 May 12 17:56, Andy Koppe wrote: > > And here's another question.  The utf8*.h files claim they have been > > generated from the unicode.txt file of the Unicode 3.2 standard.  Do we > > have the script which generated the utf8*.h files?  Can we regenerate > > the files to match the current Unicode 5.1 standard? > > There's Markus Kuhn's wcwidth implementation, which says it's based on > Unicode 5.0: > > http://www.cl.cam.ac.uk/~mgk25/ucs/wcwidth.c This looks nice. > Trouble is, there's the thorny issue of the "CJK Ambiguous Width" > category of characters, which consists of things like Greek and > Cyrillic letters as well as line drawing symbols. Those have a width > of 1 in Western use, yet with CJK fonts they have a width of 2. That's > why Markus Kuhn's code includes the mk_wcswidth_cjk() variant. We should use the standard variation alone, imho. And we need some workaround for UTF-16 systems like Cygwin. Unfortunately, surrogate pairs only work well as part of a string, not as standalone chars. So wcwidth would return -1 for each single char, but wcswidth could be tweaked to handle them gracefully. Corinna -- Corinna Vinschen Cygwin Project Co-Leader Red Hat -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Problem reports: http://cygwin.com/problems.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/