From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Mike Gran Newsgroups: gmane.lisp.guile.devel Subject: Re: uc_tolower (uc_toupper (x)) Date: Thu, 10 Mar 2011 16:54:41 -0800 (PST) Message-ID: <486722.32491.qm@web37905.mail.mud.yahoo.com> Reply-To: Mike Gran NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: quoted-printable X-Trace: dough.gmane.org 1299805097 23303 80.91.229.12 (11 Mar 2011 00:58:17 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Fri, 11 Mar 2011 00:58:17 +0000 (UTC) To: Mark H Weaver , "guile-devel@gnu.org" Original-X-From: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Fri Mar 11 01:58:12 2011 Return-path: Envelope-to: guile-devel@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by lo.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1PxqgG-0003Kb-4S for guile-devel@m.gmane.org; Fri, 11 Mar 2011 01:58:12 +0100 Original-Received: from localhost ([127.0.0.1]:58512 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1PxqgE-0002dC-9u for guile-devel@m.gmane.org; Thu, 10 Mar 2011 19:58:10 -0500 Original-Received: from [140.186.70.92] (port=47818 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Pxqg2-0002Zr-Fj for guile-devel@gnu.org; Thu, 10 Mar 2011 19:58:06 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Pxqcs-0006Mm-VY for guile-devel@gnu.org; Thu, 10 Mar 2011 19:57:53 -0500 Original-Received: from web37905.mail.mud.yahoo.com ([209.191.91.167]:31145) by eggs.gnu.org with smtp (Exim 4.71) (envelope-from ) id 1Pxqcs-0006Mi-Kl for guile-devel@gnu.org; Thu, 10 Mar 2011 19:54:42 -0500 Original-Received: (qmail 49427 invoked by uid 60001); 11 Mar 2011 00:54:41 -0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s1024; t=1299804881; bh=prvZpDnJG/11XXwMktj0J6PpPgkL5+kAMmD9UL3OCvA=; h=Message-ID:X-YMail-OSG:Received:X-Mailer:Date:From:Reply-To:Subject:To:MIME-Version:Content-Type:Content-Transfer-Encoding; b=J15ALfVQeaIquvgco7d6fSrJRwg2JzbR9T3pHxNskUTUS0tUx6mBeoE36+sHLemCPv+GzcAtjLx4UdzFyHWS0Qp0zJrGEFh/taKGahm07506QIv9F0wExUtPx0Zr0snDeYQu10B6iTdZ5GZ5TZXjETZAXV0fNGco8FzOcc0lshw= DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=s1024; d=yahoo.com; h=Message-ID:X-YMail-OSG:Received:X-Mailer:Date:From:Reply-To:Subject:To:MIME-Version:Content-Type:Content-Transfer-Encoding; b=gjUKAH4WwiLu8FY7DXAzUKrKbDdp1UvVHk+PypLfymEMZPkdFBDkoEBS9RYmhwSPXYbUV943s2ZJuNpRyoAJaM0LH+gN6w3phJfheCnNjyWV7F9/IJlwbRwGCrCJCmutIw4f9Vm35Sl0N/mLeL7yBy31TdwAZFBvKrcTVrdAsdY=; X-YMail-OSG: NOIzUTsVM1mv.K1Lwzq6gJgRB9vUj5xXXEW5xCvJ8WGqxOM 0Qi0WhyuqFOohr_LWgDchvVeu_6w3DNKUz0xHfAeHtUIiFcXC8iNLYZO58tP .MaTTWtrbr81INSCPshGfx9MAohiYRfwo.Iw7MXBHDo_WMuxLhO0.DDVOyKl NGo6pPaone1pSpCrsOC36KMHQDQAeB0raqwcvR2uzJF0.yD4ZbR1f7FSLWaA DLq__YBYxOdY1V.BGCtAtxazbrkSME_bUzAOIX3NF7axY7lQ6sa.G7MSaJrA Sqw7d_mow8Z.3yi.9R5L249kFIoikZxNlJA3G2b4NG_Eu.gnI_.udCxvyFiv 4LdW1d_sO7O0y9g-- Original-Received: from [207.8.91.2] by web37905.mail.mud.yahoo.com via HTTP; Thu, 10 Mar 2011 16:54:41 PST X-Mailer: YahooMailWebService/0.8.109.295617 X-detected-operating-system: by eggs.gnu.org: FreeBSD 6.x (1) X-Received-From: 209.191.91.167 X-BeenThere: guile-devel@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Developers list for Guile, the GNU extensibility library" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Errors-To: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.lisp.guile.devel:11850 Archived-At: > From:Mark H Weaver =0A> To:guile-devel@gnu.org=0A> Cc:=0A= > Sent:Thursday, March 10, 2011 3:39 PM=0A> Subject:uc_tolower (uc_toupper = (x))=0A> =0A> I've noticed that srfi-13.c very frequently does:=0A> =0A> = =A0 uc_tolower (uc_toupper (x))=0A> =0A> Is there a good reason to do this = instead of:=0A> =0A> =A0 uc_tolower (x)=0A=0AUnicode defines a case folding= algorithm as well as=0Aa data table for case insensitive sorting.=A0 Setti= ng=0Athings to lowercase is a decent approximation of=0Acase folding.=A0 Bu= t doing the upper->lower operation picks=0Aup a few more of the corner case= s, like U+03C2 GREEK=0ASMALL LETTER FINAL SIGMA and U+03C3 GREEK SMALL LETT= ER SIGMA=0Awhich are the same letter with different representations,=0Aor U= +00B5 MICRO SIGN and U+039C GREEK SMALL LETTER MU=0Awhich are supposed to h= ave the same sort ordering.=0A=0ANow that we've pulled in all of libunistri= ng, it might=0Abe a good idea to see if it has a complete implementation=0A= of unicode case folding, because upper->lower is also not=0Acompletely corr= ect.=0A=0A-Mike