DMARC-Filter: OpenDMARC Filter v1.4.2 delorie.com 51HAoTun2888059
Authentication-Results: delorie.com; dmarc=pass (p=none dis=none) header.from=cygwin.com
Authentication-Results: delorie.com; spf=pass smtp.mailfrom=cygwin.com
DKIM-Filter: OpenDKIM Filter v2.11.0 delorie.com 51HAoTun2888059
Authentication-Results: delorie.com;
	dkim=pass (1024-bit key, unprotected) header.d=cygwin.com header.i=@cygwin.com header.a=rsa-sha256 header.s=default header.b=ARIXPUhN
X-Recipient: archive-cygwin@delorie.com
DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org ED3393858C53
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cygwin.com;
	s=default; t=1739789428;
	bh=kTgQiseEbBpblRR8sSlFl4DhNCQ4RfNLwfrnrj6pN3w=;
	h=To:Subject:Date:In-Reply-To:References:List-Id:List-Unsubscribe:
	 List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:
	 From;
	b=ARIXPUhN5J48zjoIcJVwZZoTTENtGyeVEvq1hp7l6GM2b1inEnBYOQL3AhW02v2Z4
	 xhQ+iOtfndqPieGrJKic7hmvfHNZV7ApKQNM1/As5KvmDw+Pgo/FFeHV046wPa8cUz
	 fgdVSLpomdXqsPMLtmPompzB0wy9yvYqAInsEyqA=
X-Original-To: cygwin@cygwin.com
Delivered-To: cygwin@cygwin.com
DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 112FD3858D35
ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 112FD3858D35
ARC-Seal: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1739789393; cv=pass;
 b=Jpong70A/wfNi5+Vd4P5hTRfqX+FBohLoi0oKrGTHiFujPVzyRXgFD66N+d4udsQmiRszWzi27pvYFwMFcXJSKUsZDEh4IxA34qBV3ecsDQbtBvftYeHk/fF8J9ALIPRHyDegpw0nnIIrJ7qypcK6z3Q/USL9jgmXYttEWHBfdA=
ARC-Message-Signature: i=2; a=rsa-sha256; d=sourceware.org; s=key;
 t=1739789393; c=relaxed/simple;
 bh=L09uCvl/FdeYbHL8+h+iLwmDaEvrGUr9zd1ElnDAVUw=;
 h=DKIM-Signature:DKIM-Signature:From:To:Subject:Date:Message-ID:
 MIME-Version;
 b=Yaqoh/WrWIzyyOI38yyy37n/VKCTQUTaIE4nAssKB/MY8NJORtTB+d7KJ3hakA5a0oSRklU3GuYNgaZOoweWSDYg0hO7xKBOR5kH4yVBk+fLmHsGWIGAfX0M8n0yBwSkr1q0DRzWPkKaAcjyEoSEjVUh8G/d1BKcinyf9LEBca0=
ARC-Authentication-Results: i=2; server2.sourceware.org
DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 112FD3858D35
ARC-Seal: i=1; a=rsa-sha256; t=1739789390; cv=none;
 d=strato.com; s=strato-dkim-0002;
 b=C8KeHZ/X79h5j7FRrZdYCuDc0aSe6KmZdfcxMghApl6sRl6bJAzV0e4y8Q1f0WoAvk
 U4FlGHMSD0naO7qZpO3VyMsZ4SHjSkLB/HKcDMdNn4A7hmRBzMWSeOzCG1HLpXhjN1eW
 3KzqSEksiFN4sOZgyyjj2Wl1Dkhe/RJmjLs33QZFi2QnGueJOHDpAKCJJbUFBA0l5U45
 n/BtMPPDBOk687XqfoN1YLqh2D94eDdsTnlUiAy8AMvvSxmaew343yWYEGEHU7x392Ps
 ONY9rSUH6h4WDU/9JsKBA/qWRufE3qwhF8IXaj/kEWp4IFGFKAOPT/Rvb1/LdJQ0rWHc
 yMiw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; t=1739789390;
 s=strato-dkim-0002; d=strato.com;
 h=References:In-Reply-To:Message-ID:Date:Subject:To:From:Cc:Date:From:
 Subject:Sender;
 bh=L09uCvl/FdeYbHL8+h+iLwmDaEvrGUr9zd1ElnDAVUw=;
 b=lETjXza8E0YvFUKlnP5Yv/zvvDqvaJXmW/brdTlsXQCR8io0KTTAwQ/MFNziRgGwj3
 Ry18lPGax+H8J2vdHHVOAmJqWlMGKj55l9qZ0BHYKW9wECFpoB5ujpsndU3hQkwuXWAm
 r9933ZULvr6XwjULzUwdKZosMGIUDCXOVXpLYWqUmTa+bD3RIx5wPLAEOqNxwEDv8JvD
 g+bEZ8/7oDKjOMJkVdKwA8tgbcNnuHJdEF40dmaGqsABWe6qxxFreVJ74UmWVA0es7QF
 WJlkCnbU9+gnnyjBFH6awHpg4qGMvIrhn+R59In6yee9QOIm4xYAvRh/y4uWKwBkF01d
 Dn6g==
ARC-Authentication-Results: i=1; strato.com;
    arc=none;
    dkim=none
X-RZG-CLASS-ID: mo00
X-RZG-AUTH: ":Ln4Re0+Ic/6oZXR1YgKryK8brlshOcZlLnY4jECd2hdUURIbZgL8PX2QiTuZ3cdB8X/nqmmeHTyqSHKY0MaVUIjzuYeaGlfV"
To: cygwin@cygwin.com
Subject: Re: bug in strcasecmp and strncasecmp
Date: Mon, 17 Feb 2025 11:49:50 +0100
Message-ID: <6261974.2l3rmUXbR5@nimes>
Organization: GNU
In-Reply-To: <Z7MIvRl6XKQ0Ky0m@calimero.vinschen.de>
References: <2031387.2IRrRt1zHL@nimes> <Z7MIvRl6XKQ0Ky0m@calimero.vinschen.de>
MIME-Version: 1.0
X-BeenThere: cygwin@cygwin.com
X-Mailman-Version: 2.1.30
Precedence: list
List-Id: General Cygwin discussions and problem reports <cygwin.cygwin.com>
List-Unsubscribe: <https://cygwin.com/mailman/options/cygwin>,
 <mailto:cygwin-request@cygwin.com?subject=unsubscribe>
List-Archive: <https://cygwin.com/pipermail/cygwin/>
List-Post: <mailto:cygwin@cygwin.com>
List-Help: <mailto:cygwin-request@cygwin.com?subject=help>
List-Subscribe: <https://cygwin.com/mailman/listinfo/cygwin>,
 <mailto:cygwin-request@cygwin.com?subject=subscribe>
From: Bruno Haible via Cygwin <cygwin@cygwin.com>
Reply-To: Bruno Haible <bruno@clisp.org>
Content-Type: text/plain; charset="utf-8"
Errors-To: cygwin-bounces~archive-cygwin=delorie.com@cygwin.com
Sender: "Cygwin" <cygwin-bounces~archive-cygwin=delorie.com@cygwin.com>
Content-Transfer-Encoding: 8bit
X-MIME-Autoconverted: from base64 to 8bit by delorie.com id 51HAoTun2888059

Corinna Vinschen wrote:
> Adding a cast fixes that and I just pushed a matching patch.

Thanks.

> I'm just not sure if that's sufficient in the light of POSIX.1-2024.
> The above expression seems to indicate that strcasecmp and friends are
> now expected to work on multibyte codesets like UTF-8.

They can't work on multibyte strings. This is evident from the fact that
strncasecmp gets one integer as argument, not two integers. In a Turkish
locale, for example, "i" (1 byte) and "İ" (2 bytes) are the same modulo
case.

I agree that the POSIX language is murky because "character" there is
equivalent to "byte", and yet the same page talks about characters and bytes...

For multibyte strings, one needs other functions. See
https://www.gnu.org/software/gnulib/manual/html_node/Comparison-of-string-APIs.html

Bruno




-- 
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

