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 AT delorie DOT 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 AT cygwin DOT com Delivered-To: cygwin AT cygwin DOT 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 AT cygwin DOT 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: References: <2031387 DOT 2IRrRt1zHL AT nimes> MIME-Version: 1.0 X-BeenThere: cygwin AT cygwin DOT com X-Mailman-Version: 2.1.30 Precedence: list List-Id: General Cygwin discussions and problem reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , From: Bruno Haible via Cygwin Reply-To: Bruno Haible Content-Type: text/plain; charset="utf-8" Errors-To: cygwin-bounces~archive-cygwin=delorie DOT com AT cygwin DOT com Sender: "Cygwin" 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