From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from CY4PR02CU008-vft-obe.outbound.protection.outlook.com (mail-westcentralusazlp170120005.outbound.protection.outlook.com [IPv6:2a01:111:f403:c112::5]) by sourceware.org (Postfix) with ESMTPS id AF3633858D32 for ; Tue, 14 Mar 2023 01:30:20 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org AF3633858D32 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=hotmail.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=hotmail.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=F68uh04/wKGd49BguTzV9YMqmZcIom88YS+o2KshZ0/9dP1VyYGTdSNXWI5iPnauEL1xcYRLiQALxM6Y4z2Z6vlhMNvucMPtZXBWfc7/WIJI8B9zhmB2aB0OJqtcNaszQiLmNwWSBwv7szuWUMrhdEEnKdSHETiESInbgXxJWnaU5pvTlpmnF3NXl/V6PigoKJ9s3Vbu8ec00DQZXMnBZLc4R5/g1OxtJA4hVVKqB81Tl3peQxm4jnqs+G9PlxJCVRYF9H+07VbZfGD25HGVPKflNc5Ab71sanudgCKPKo8xdWhnwvF8UPQ7M41WC/daKztljMy11oUqfgMzOS2PKw== 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=FbSVEqdC5V6LrEgHwB/Ox3NPOlHRwEWZdT9cBCPYSXw=; b=W9zZ68E90DL5Z0dJwKVPRxLszViWTIafSzTvxTuouk9vgPuHWBRIBhzaShmz1xXTsKYrUy2XPjQjcKzoWHeFNOBvWETfzE2yw17X1Nl9nn1XKV3yA/TBVdfdQYLifByTIdj4B9Z8TNBcmnJ07fSSjY0SMB/HiJIoG+gUxHyE/IAsvsvBIeNX+F8Li+uV5lu3IUBtL6jE7Y0GENAuBtv3GiOJR3EFQ7n+sRXWx25bxmVEzWmHZuF5ZSRuoPuG5/0tuFs1GjZsGghXBeNPua+CByKod1+b3KoLKVZo0KGBb4s6BcEfALh9J+SdVXicgAUEkjpUAgM8eAdbSdy4PIwKHA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=hotmail.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=FbSVEqdC5V6LrEgHwB/Ox3NPOlHRwEWZdT9cBCPYSXw=; b=pj9CYkG0C6wu7s55KyHoGbOiDvLqz0a5Vz3sOWJ9Eo8+SbXAHHcQ+WRALUhj5CpxSy1tD3Kag0IZgqFeF9YU0rAnlpO4XBzLvL3P9ux3KsNnAiU8MwQQn0xGpEfx5S+qGC2P80UfYF/TWNg8RVx+R1/sMTQ+GRZL57wsfl/y0QkPybIQG9M5LZuiv+MAqzAYxnxSrpn4zJZrMIIzzakLkoh63NECm56bikDkp5k8gN9w6oeUkDoiAFoMlFk0/GNaxj8GlCBlweNDofBpU6TQr2Kk7Rm65BgvsmLm1u3+dp01+eGQjHNg/o8moK8zrAmF+G2fOYvBEfm/64i2wDbD/w== Received: from PH0PR05MB9918.namprd05.prod.outlook.com (2603:10b6:510:299::5) by BY3PR05MB8291.namprd05.prod.outlook.com (2603:10b6:a03:3b6::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6178.26; Tue, 14 Mar 2023 01:30:19 +0000 Received: from PH0PR05MB9918.namprd05.prod.outlook.com ([fe80::8b30:76bd:8ebe:ef9d]) by PH0PR05MB9918.namprd05.prod.outlook.com ([fe80::8b30:76bd:8ebe:ef9d%5]) with mapi id 15.20.6156.023; Tue, 14 Mar 2023 01:30:18 +0000 Message-ID: Date: Tue, 14 Mar 2023 09:30:02 +0800 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.8.0 Subject: Re: [ERROR] Locale Monetary Symbol Prints Wrongly on Windows : Cygwin To: cygwin@cygwin.com References: Content-Language: en-US From: Yeo Kai Wei In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-TMN: [BoqSKulOvs3NPnR+S9R9OMzZsbwYvUXP] X-ClientProxiedBy: SG2PR02CA0103.apcprd02.prod.outlook.com (2603:1096:4:92::19) To PH0PR05MB9918.namprd05.prod.outlook.com (2603:10b6:510:299::5) X-Microsoft-Original-Message-ID: MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PH0PR05MB9918:EE_|BY3PR05MB8291:EE_ X-MS-Office365-Filtering-Correlation-Id: 71800ce6-a8da-4b69-bf60-08db242bab88 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: eDhQBNFS5iplYg2CZ4fNXRE5CKlph4QwOrzrYR2z4XY3BjFDPkEyvnMbLYyIw2C+Qe/zAWcL6Jr+8QAHRWES1KUV6Y9zcV4A35351l5Y8YgCNZNWbBmqt/mFghZkCCnMm+jb1aIi5AJks36js51ITv76nGXrjQvr+Rrg6UjxH4qKa84TUL87UG5A7WimeFyKKvYdO0lXhTyQni/7/fu+ZzrFoh+CxVVzIDfkCoUMCcQ/TSgVPP5TqcyjC7sJasDyjk7FuTjgFmGe96zG5KNdM27TTIRny3vjujRMDnWZBfiHksGkhf2rUyEbYXUxMLrGrOfNJvgmXAux5DmL6rrxGPB/QybBoT4KQ/mmcgpEjh3Ji0Pdu54fWMvK1AmWghcq9Yz4U6BHYe/A752N4am4xo2K1uRZ8E094wr6biz+6GsIzQL/5tqYtGc6GSJtz2twhZlaJ5Y7RMbsDMnejI+4Jl+xVRDtMd4rW+HJH3BVGBDLiDgXX1wsGu5UxIo7+/VfzChzbWCcTukGxG6g0+AoUKB5I8CtRqkkfnuO4kLDmQOhD+SwPwgK3p6mP9GQIaY96V9MyD7nr+t71lgSwQux88slHPc4plyrUvuKu9gwsIThVivv8B78WMifqlBq+Vqzdu0zzBNnEl+MidVPA3EqfA== X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?OUUwNU9XWTRpRm5YYWdhS1Vlb3RBeXVUOFBiNElqT1FZbWpxVEpoK2FGRUsz?= =?utf-8?B?ODJBLy9NdFcwcE43bk1ZR29ZWHVRT2MvVXFNK3JTMnhlVUF4T2pzR2R5ME85?= =?utf-8?B?STRYZGtXQVkvMytrVVBtUWVTTUdBeU1SSXM2VW8rUGJRWkIzUC9SN09adzQ4?= =?utf-8?B?eXU2d2grVit2MWNpRnJ4UXkzK3dyWStieEhsUjFza3NZMjNmYWk5RGVTRkU5?= =?utf-8?B?OUt1TERrRGF5VEFFaloyTGNhVkRNWTZYZ3Q0MUhvZWJHK0wvb01nejF2Q1Z4?= =?utf-8?B?OG5zdnZKN2RQM0Z5T0JnaGNPVkZCTzZmWWVRbGU3SjRVcnk1c3pPRm1SSE5C?= =?utf-8?B?cTQvV3ZDU1JJanErM2NoV3JCYXUwZWJpczByWHI2d0lwU0QxN21jU3QycktF?= =?utf-8?B?eVlKd3NESlN3K0JIdUo1allMNkZ2Vm1peHZPOHFOeVpjc0Jja2ROSkNUbENU?= =?utf-8?B?WUs1ZzJyU0ROaHNIa2RwUXVSTUlMYXMydDRqYXZHelVGWDk1ZkR0c3g1NmFx?= =?utf-8?B?cy9GZjlYM3dJc3FHTTZESGlaR3UybzQvWklwTVdGN24vdnlJdThqdFdlU1oy?= =?utf-8?B?NE5aTGpEeWNjUmp6THR4eGZGZ0R6SDRMclVYQnlraVNwZzNoNnhCNDIzTTBX?= =?utf-8?B?aVVEcXlNbUpFaDhIa3pkNzdPV1ozemkrR3lnYU5haFZXQzVNRFZZNjNxanhj?= =?utf-8?B?dHhiWkxGL09yQ2JLVjNJV3RkNXlCaHI4bkpWdFY4bGhlb3hIMUtwanluWkM2?= =?utf-8?B?cW5KK2lvTDNCQkkvTHZIQ0FWWWJTSmk5T0xoTnphMk5YdkladjNYSGF2NWhS?= =?utf-8?B?bmYyVEtxQXE1L1ozWlU0WUJPNnFEak9jaXdVMVdHcFRuMXJEczFqV3EwQW1M?= =?utf-8?B?b2NWYlVRa3FsUlpVTDQ2QytvVWE4d2VSMzNVYXpwYm11TCtBYW4rTUQzWmJK?= =?utf-8?B?RVJuTVpwZVR5OU1QWlhRNXduR09mUGNCTy95RDdaOGI1QUkrNDg0Z1ZrZlZ2?= =?utf-8?B?RFA5YTdtVXRab2RyRDFJb3E2QU4ydmQrWjhWSFJVMENieFRIMGo5bzBzNEcr?= =?utf-8?B?dWJaMFBiWHM0cWZFSVFJSlBlNStJZUdMazcrREJ5U04vYVNSZStnQ20wckd0?= =?utf-8?B?aGNsYllxSzRmdW9FalI1a2xLYTVPS296TVFaNmhIS3I3ZHM2UGV5MjRpRjJr?= =?utf-8?B?V1B3d3FZdmE2SDdheTJoS1J1d1krWnh1bzdaSmRGVlN0RkNNMGRHcUZiKzhE?= =?utf-8?B?MHRrQWhETkorcm9EcGxuWWN3NGtPN28vdXdQL3VDMjBIYVN1VTlSVm5PZU96?= =?utf-8?B?a1U1UUwydDdSWnBSNmpsenRxbWpZalpCUFNZVWJZUTBSS3RQKzE1S2RoUVlv?= =?utf-8?B?M0p5M29PR0tCOXZMZ2NhZUE5RVVROXRmOGcvbFFNeFJ4dWY2ajRwb2t6TFVL?= =?utf-8?B?RndwdjhPVWdxMHJ4ZWJvWHBsVWExQ1pOU0dKelRyaVVDVUpnMUFlamRuWVRm?= =?utf-8?B?K0xiUVBlVUo0S2tVSnpWNUY2ZjJPRDMrZ21BUTNQS2w1aFZpSDhLM0k4c2xq?= =?utf-8?B?VmkxaVp1SXBlc1pPYzBuYWdaam9TR04yQUMrejdjeWJBdjZlRE9BYlZJSThy?= =?utf-8?B?TUh2bkQrcTQ3QndrZWFaSllTR2I2bFd2eGVmSm12b29aMnE3Tktoa1NKTHoy?= =?utf-8?B?U2lVMkNUa2o4VlU2OTFNOThzdEs3QitVYkc3QUZhM1JMZ3FRTGkrK05RPT0=?= X-OriginatorOrg: sct-15-20-4823-7-msonline-outlook-84f76.templateTenant X-MS-Exchange-CrossTenant-Network-Message-Id: 71800ce6-a8da-4b69-bf60-08db242bab88 X-MS-Exchange-CrossTenant-AuthSource: PH0PR05MB9918.namprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Mar 2023 01:30:18.8875 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY3PR05MB8291 X-Spam-Status: No, score=2.2 required=5.0 tests=BAYES_00,BODY_8BITS,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FORGED_MUA_MOZILLA,FREEMAIL_FROM,NICE_REPLY_A,SPF_HELO_PASS,SPF_PASS,TXREP autolearn=no autolearn_force=no version=3.4.6 X-Spam-Level: ** X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: Hi Corinna, I can't update to 3.5+, I tried reinstalling using the Cygwin setup Using "uname -a", my current version is 3.4.6-1.x86_64. I assume 3.5 hasn't been released officially. May I know where to get the test release? In the terminal, when I use $LC_MONETARY = "en_ZM.utf-8" locale -ck LC_MONETARY Cygwin replies "-bash: LC_MONETARY: command not found" Thank you very much. Kind Regards, YEO Kai Wei On 13/3/2023 6:49 pm, Corinna Vinschen wrote: > On Mar 13 08:40, Yeo Kai Wei via Cygwin wrote: >> Hi All, >> >> May I ask if there's a bug with Cygwin and Windows currency? > The en_ZM locale isn't yet supported by Cygwin. This will change with > Cygwin 3.5.0. You can install the latest Cygwin test release > 3.5.0-0.231.g93f70d7849b8 and retry. You'll get the correct output: > > Region: en_AU.utf-8 Currency symbol: $ International currency symbol: AUD > Region: en_CA.utf-8 Currency symbol: $ International currency symbol: CAD > Region: en_GB.utf-8 Currency symbol: £ International currency symbol: GBP > Region: en_US.utf-8 Currency symbol: $ International currency symbol: USD > Region: en_NZ.utf-8 Currency symbol: $ International currency symbol: NZD > Region: en_ZM.utf-8 Currency symbol: K International currency symbol: ZMW > > Btw., you don't even need a test application, just call > > $ LC_MONETARY="en_ZM.utf-8" locale -ck LC_MONETARY > >> The correct answer should be "Region: en_ZM.utf-8 Currency symbol: K >> International currency symbol: ZMK" >> >> Supposedly, the code works on Linux. >> >> Is this an issue with Windows? > We're fetching most locale information from Windows, this includes the > LC_MONETARY information. However, the locale support up to Cygwin 3.4.x > is restricted by an issue in Windows: > > Originally, locales were handled in Windows by using so called locale > identifiers, LCID, 2 byte numbers. These LCIDs are used by Cygwin > internally. > > In the meantime, Windows switched from LCIDs to locale string > identifiers following RFC 4646 resp. RFC 5646. Now, the problem is this: > > Cygwin didn't yet follow suite, still using LCIDs internally, but > Windows introduced locales for which no LCID has ever been assigned. > Asking for the LCID for "en-ZW" returns 0. > > For Cygwin 3.5.0, I converted Cygwin to use RFC 5646 locale strings > internally, too, so the next major version of Cygwin will be able to > support all locales Windows supports. > >>     while (regions[i]) >>     { >>         setlocale(LC_MONETARY, regions[i]); > You're not checking for errors here. If the locale isn't supported, > setlocale should return NULL... > >>         const struct lconv* loc = localeconv(); > ...and the locale information stays unchanged. As such, if en_ZM isn't > supported, this call will still fetch the information of the en_NZ.utf-8 > locale. > > > HTH, > Corinna