delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2023/03/24/09:58:58

X-Recipient: archive-cygwin AT delorie DOT com
DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org E2799385B52D
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cygwin.com;
s=default; t=1679666295;
bh=+mYB5g/Z1hGY6a9KXZAX8moH6Cmm3IzGFQXmOg8vkV8=;
h=Date:Subject:To:References:In-Reply-To:List-Id:List-Unsubscribe:
List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:
From;
b=e0hZfQmzO8ARaqCMxo/a67AAqM4hZ2qpz09NDu5UkNXjjtwL0JGL02gdPhz/oUevq
cyR2humo+SZpr4/LFOavQNcWYjd0bzbCj5FYIKgO3jAo+ja5/z/Nte4N3/3ceHSOsi
N5j1Sgkvscjls/aDQFfUualee/4ylvI49Ia/VtoE=
X-Original-To: cygwin AT cygwin DOT com
Delivered-To: cygwin AT cygwin DOT com
DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org DED553858C50
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
b=OqHMubI+OxZRDKGRDF9v1DFcEplxGnzOYWGO7iWMkt2OmLVNxwnWp+nEZvbUkM47DCP6MbVF4E0RzCZ95NVlwKn8TGf/S0ZPS24ntompgJD+TktSvODuiqIOqJAVyFUmr1TizkK/zMp+15Z/Hu3YFLkOOxnL+ZjhFHdGEBAKVv5LHQHI15/qG+33B0jiOUquF/Em35DGTZENs7vdXTIwUsWD8NBqsadj5Jhs98/r1mDaXFVGS29q3sqkdCm6/AgjZ9rrUnX6+Q8hQU9T7TKax1/xc8AbZYAWpOFPq9ZIh3Ur3waGrd3W5C1+ifmSez259viUjmd+CWf+vNVXWEgdxw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
s=arcselector9901;
h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
bh=61lx63LzRHpDESmGBE7rGlpwPpEMgVAdJI8bxTgaNlI=;
b=ZCln6RrNs0L1jOswWRLe8XoXkJXQR3PNdOa/nRzbsE2/qRhFx05Lyy7EYVDomlNvVYKj4Ym/xRvGFdherKwNM0t7qXUcyc6EaPuIDGAl1hVqxArZTsFbpVkGlEdkPRO0OZ7GEyqqfFcDeXJqgsiErU5UcsffaU6IFjXYecDoSpcacE7oaGK5UzeyzVlaA31bXxs1l5AjU8Fe4YlBOpYuBPy+NR1RPrgE1aEvT1DhH8v426jhMm5rFXfW9B+qPcY358lcZt6mnZVDO4MyIcc0n3GphdGIq4KvYQSwjIZI7noUgJdf+5NEAc7cEKm25C47BL86b1FuUEo1Va/VxsfN6Q==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
smtp.mailfrom=cornell.edu; dmarc=pass action=none header.from=cornell.edu;
dkim=pass header.d=cornell.edu; arc=none
Message-ID: <5b6899da-555a-6574-6e8b-43c2288f636e@cornell.edu>
Date: Fri, 24 Mar 2023 09:57:31 -0400
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101
Thunderbird/102.9.0
Subject: Re: newlocale: Linux incompatibility
To: cygwin AT cygwin DOT com
References: <bd7ebebc-cf90-d509-ef15-11d702a6126c AT cornell DOT edu>
<ZBzBL2jFO7Oltjd1 AT calimero DOT vinschen DOT de>
<ZB2U/JCFrwSUo1+U AT calimero DOT vinschen DOT de>
In-Reply-To: <ZB2U/JCFrwSUo1+U@calimero.vinschen.de>
X-ClientProxiedBy: BLAPR03CA0142.namprd03.prod.outlook.com
(2603:10b6:208:32e::27) To SA0PR04MB7322.namprd04.prod.outlook.com
(2603:10b6:806:e2::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SA0PR04MB7322:EE_|SJ2PR04MB8584:EE_
X-MS-Office365-Filtering-Correlation-Id: fc3d47a1-b98e-406d-2e4b-08db2c6fb83b
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: aIhM5uxBB6IAdup3vl7eW2yyfaiA537yc1e6AuU+xerenj4rBNmx3sKgkPCnBW9lU3NL/Fv09/X44lMG9JrwWrJKDwZSrzIj066woCSOyrgGSMHhiLp9CkB50oEFUaUipXvzcrIpciWg7WB0dg8mLjDxe7IR5yBXwdIcJbNm83U+PMYJT8m5Ix7MO4Qrc+ecaSMtoWh+ZOZ4x3rUwZJyLiy7w2i7zQIRoQfcQ9YrUwazVYsETqK0p90NPYb9jNyC+Twd1smvZBQj/Vvn81RIQd6BI7Z+kszWEpYyR2IwVylelT2fNGQR7xqPHOKDnXIg+4Ca7kJKD2OwuwBHUDJJlFsetmfcGggn4xqN55uhS1vH0zPs6n2VPqjWkknAB6ugxt2xaHWU+mb2EMLRVy3+RN1xgo+itjTw2O9X2XWXbldyqkqCHyvKX83WDJ1Q1bDDxlhyuaRjhHQKXt3d4MU8Z0lsP7Zsl8kWBFj6P0rWt0xvhuuLZfnh1hb/uzbx5Po0X2/qAo29WuMkS77qOfg7xC3L3pQqifalwXe2LFsx22fxeTV4FiUDoz7TAC9p2xU53DjwJjbMbfvGFTOubRpzneltDj70GJsvnomLKlFtTB2t49WEKXx1mtC9cnuon61BeXcMwDtLmU+BS0+B34fIuMfFAfH2v+yEzSro/q9CH68=
X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:;
IPV:NLI; SFV:NSPM; H:SA0PR04MB7322.namprd04.prod.outlook.com; PTR:; CAT:NONE;
SFS:(13230025)(4636009)(39860400002)(136003)(366004)(376002)(396003)(346002)(451199018)(36756003)(75432002)(38100700002)(8936002)(6916009)(8676002)(86362001)(66946007)(66556008)(41300700001)(66476007)(316002)(6486002)(786003)(478600001)(2906002)(41320700001)(5660300002)(31696002)(26005)(53546011)(6506007)(6512007)(186003)(2616005)(6666004)(83380400001)(31686004)(45980500001)(43740500002)(460985005);
DIR:OUT; SFP:1102;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?MEw4a2puOGpWczVKV0ZPa3cwZmVCMXJLNXg2Tk5TOTJuRjVpTG1QV0orNDZY?=
=?utf-8?B?Wmo1Ny85dFVoUlc5MzRJVm5WcWczZnhaaU5rNjF6bFIwSzlzZDRtSDI0Q1Q5?=
=?utf-8?B?NGZsc1BJOWtBQ2hWSldmeUVZZExybDRXUkw2QjlYRVQwb0hGMnZIaXRSUmNN?=
=?utf-8?B?bFYxYVoxMldiSTFkaXphOVBxa0dTVDNYa1F0THpaYUF4eXFBK1dlTjBhckRO?=
=?utf-8?B?SG9YUExTd1FjMDJONEszOGNlNXVyMlhQbGZCNmNDbkFuQnVOM0dVUjh4R011?=
=?utf-8?B?bm1vVkxoRm1uTVZiVU1VdmFVakR4cGJkR1pIc0dnalBZM3dMTjdhbVJOcWVn?=
=?utf-8?B?dnh3Q3BMOVE1MkxVaEViZVFZa0dwQ2h5c3dLRlFJQ2RlTWk5OEhrMW4xcUx5?=
=?utf-8?B?aWd2aGFMOVludTlZVEdsak45bjJxc2UrQlFwN1Z2cGdNOEsreExSNXh0S1R3?=
=?utf-8?B?cy9aVlJlQ3lkbUJ2aXZXUWg5R0VSY0k2YkkwdXdHMDJCYUYvdXE1WTdkaVRP?=
=?utf-8?B?WWFDL2d5ZGxnQU9sanI4WVN0RUhQYjhHYlU5NXVKTFZjUkFvc2Q1Q2ZCMDdP?=
=?utf-8?B?YU1WVEg2NXlnVmJtZTJVdVNGUjM3bEZpTVlGVyszTE5UTXFwMFVUY2RiRFk2?=
=?utf-8?B?VGtTWGZvb05lV3ZXcTlDUkM0OFpvSTZQTGRDaXNuZmM2eFlrbWl1ZWlTZUVv?=
=?utf-8?B?ZXlaaGM5RWt2Rnk4R1lvMk1qMzJNd0M3YmtXbENUek85NExGazVDdDlmWDl2?=
=?utf-8?B?UHhHcldXRDF6T3BTbUJzWGhhZ2ZDSml0OTRkQjhPZzR3bFF5elN3aTQyV0Vw?=
=?utf-8?B?eFhEQjduR05TRkZTa1JFSFlvSkUwaFhlSUdaQVVUMXhkYkJ2N0pWdUJWbVpm?=
=?utf-8?B?S3VzUE9JdlJJK1dCaWFDM1g3dldKNVZ2cWsyYS9uVTJlYkVZa2t6cnRCd1U0?=
=?utf-8?B?RklZZElGZ1F4MUxJUWFteXVPQ2RGdzRFWjQ2dTVQNy83VnVzeEk5VWd0R0NV?=
=?utf-8?B?cy9FVUZUbU9UUnY0L2pEckJSTk0yT0h3TE12TExIRXcyRnJpeXhzWmN1eU5x?=
=?utf-8?B?TW1TYzBZVnBHZUkwdll6TzMrS3g2clBiLzVTT29XaDhHbTVTc0J5ZGY5ZGJR?=
=?utf-8?B?K3BrWlBLa0ljdGhRdTJFaE5IS29zamhWYXRsWkorcUpiL251dTNjQ2dmamdK?=
=?utf-8?B?L0IyOXozNnlhQXBlakVuR2x2aURKUWRodFlMUUlSMmRtbmV5dkc2Wm1mN2pM?=
=?utf-8?B?TjlTbUJtd2haMDJWcGttdW9sczVLSmhrWVFmeVFKT3FNK3ZIOU9ldGc1N3R4?=
=?utf-8?B?WXZFU3djWit1eU5UbnRhb1E0TjRsdlRzVm5FbWdHZFl0RUJLcHdsc0I2OHZk?=
=?utf-8?B?aGluVjBPZVVGRTVHT0owYVRDa3A5SlZwaXZkTDdiWFhJYmx4a0xpRnFJbDFX?=
=?utf-8?B?Zm5oQlJrRm5YeHR0NlhyMGl4SzJScTREcEpvQmxISWZ5UzRQd2FrVVVGaTRC?=
=?utf-8?B?UVFvajRhVmlRUVVyV2tzTXNLQ0tWTXBIQ2lqOFZ2MWZSZGdMZlI2YW5WcDdZ?=
=?utf-8?B?SVUyWmszTXB5NkZLdE54MHZYQ0U1bjBwM0txYmlmN1pGcUN4VFB4M3h2UWJT?=
=?utf-8?B?NVA0ZzJHSitKVjhtYjdsc0kvdUNoUDVkdTBscGN4RlovMm1Sck1ZU2t2d0Fp?=
=?utf-8?B?L0xOSVFQZzBZaWk2VTQ4QzZNczBJaXc2SjcyaHpXY2RROTFrMTExUHU4ZEFX?=
=?utf-8?B?YU1BQVYvTEhDNzZFZ1lnQldGWGpSUGFYQ2Rabml0bXpEa1ZocGhyUVNnbU1W?=
=?utf-8?B?aEF4aXFVaU4wUldBcFZQbG02SVBDd05iZ1lzaElkRlQ4RVJoRUVCdTJRRDhW?=
=?utf-8?B?L3RHOWJSM0FYQk1RcW94VUp0OWNBRkdHeG5nV05JZFVRWFZVUnNmZU4xc3U4?=
=?utf-8?B?NnIzNXUxbG9kTTdCb2RsVCtPV0V5TEVpU1hSclF0MGovMDM4SWh6cDQzVU5u?=
=?utf-8?B?N1JPdDBsdWN2aVgyWXZPYmdYenpGT1A1Sk5hQ09iWDk3aWdlQVlEK0gwYmVG?=
=?utf-8?B?UEp5Nkt0UTBMdndtSEdxQ3B4ODRWb0xteEp1UTFnVnBkTWZKdEFmdEpJRXFX?=
=?utf-8?Q?F1nPJryQTdRDPk8ziOawJAJG3?=
X-OriginatorOrg: cornell.edu
X-MS-Exchange-CrossTenant-Network-Message-Id: fc3d47a1-b98e-406d-2e4b-08db2c6fb83b
X-MS-Exchange-CrossTenant-AuthSource: SA0PR04MB7322.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Mar 2023 13:57:34.9122 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 5d7e4366-1b9b-45cf-8e79-b14b27df46e1
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: mbGLoArkOKgkMzxbWg0Uom6aiPydrimDzACeVWkWFlpkkT1xdx1LdyEVPAQAJACRz/uRZGKkjpdbvLMV8OoM1A==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ2PR04MB8584
X-Spam-Status: No, score=-2.7 required=5.0 tests=BAYES_00, DKIM_SIGNED,
DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, JMQ_SPF_NEUTRAL, NICE_REPLY_A,
SPF_HELO_PASS, SPF_PASS, TXREP autolearn=no autolearn_force=no version=3.4.6
X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on
server2.sourceware.org
X-BeenThere: cygwin AT cygwin DOT com
X-Mailman-Version: 2.1.29
List-Id: General Cygwin discussions and problem reports <cygwin.cygwin.com>
List-Archive: <https://cygwin.com/pipermail/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-request AT cygwin DOT com?subject=help>
List-Subscribe: <https://cygwin.com/mailman/listinfo/cygwin>,
<mailto:cygwin-request AT cygwin DOT com?subject=subscribe>
From: Ken Brown via Cygwin <cygwin AT cygwin DOT com>
Reply-To: Ken Brown <kbrown AT cornell DOT edu>
Sender: "Cygwin" <cygwin-bounces+archive-cygwin=delorie DOT com AT cygwin DOT com>

On 3/24/2023 8:18 AM, Corinna Vinschen via Cygwin wrote:
> On Mar 23 22:14, Corinna Vinschen via Cygwin wrote:
>> On Mar 23 15:48, Ken Brown via Cygwin wrote:
>>> Consider the following test case:
>>>
>>> $ cat locale_test.c
>>> #include <stdio.h>
>>> #include <locale.h>
>>>
>>> int main ()
>>> {
>>>    const char *locale = "en_DE.UTF-8";
>>>    locale_t loc = newlocale (LC_COLLATE_MASK | LC_CTYPE_MASK, locale, 0);
>>>    if (!loc)
>>>      perror ("newlocale");
>>>    else
>>>      printf ("newlocale succeeded on invalid locale %s\n", locale);
>>> }
>>>
>>> $ gcc -o locale_test locale_test.c
>>>
>>> $ ./locale_test.exe
>>> newlocale succeeded on invalid locale en_DE.UTF-8
>>>
>>> On Linux, the newlocale call fails with ENOENT, as is documented on the man
>>> page.
>> Three bugs in fact.
>>
>> First, it's a bug in the Emacs testsuite.  The test simply assumes that
>> there's no en_DE locale on any system, but that's just not true.
>> Windows support the RFC 5646 locale "en-DE", which is called "English
>> (Germany)" in the "Region" settings.
>>
>> You can also check with `locale -av | less' and search for en_DE.
>>
>> For the reminder of this mail, I assume you're talking about Cygwin 3.5.
>> I won't fix this for 3.4 anymore, given how much locale handling has
>> changed for 3.5.
>>
>> The second bug is that Cygwin blindly trusts the Windows function
>> ResolveLocaleName().  That function blatantly converts even vaguely
>> similar locales into something it supports.  E.g., it converts "en-XY"
>> to "en-US".  I. .e., even if you use "en_XY.utf8" as locale, the above
>> testcase will wrongly succeed.  So I have to rethink how I resolve POSIX
>> locales to Windows locales.
>>
>> And the third bug is that Cygwin fails to set errno if it doesn't
>> support a locale, but that's a minor inconvenience in comparison.
>>
>> Thanks for the report, I totally missed the above problem with
>> ResolveLocaleName.
> 
> I pushed a couple of patches which hopefully clean up the code. 
> 
> I had to create a replacement function for ResolveLocaleName which
> doesn't return totally screwy and unexpected results, and special case
> two more locales in /proc/locales output so the output makes sense.
> 
> Oh, and I added error handling to the code so newlocale is now able to
> set errno to ENOENT if the locale is not supported.
> 
> If you want to test this, the changes are in test release
> 3.5.0-0.260.gb5b67a65f87c, which is just building.

That was fast!  I can confirm that newlocale now fails with ENOENT on 
the invalid locale en_XY.utf8.

Thanks.

Ken

-- 
Problem reports:      https://cygwin.com/problems.html
FAQ:                  https://cygwin.com/faq/
Documentation:        https://cygwin.com/docs.html
Unsubscribe info:     https://cygwin.com/ml/#unsubscribe-simple

- Raw text -


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