From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mo4-p00-ob.smtp.rzone.de (mo4-p00-ob.smtp.rzone.de [81.169.146.161]) by sourceware.org (Postfix) with ESMTPS id BB8C53858403 for ; Mon, 25 Mar 2024 11:26:05 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org BB8C53858403 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=clisp.org Authentication-Results: sourceware.org; spf=none smtp.mailfrom=clisp.org ARC-Filter: OpenARC Filter v1.0.0 sourceware.org BB8C53858403 Authentication-Results: server2.sourceware.org; arc=pass smtp.remote-ip=81.169.146.161 ARC-Seal: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1711365967; cv=pass; b=EZfad2XJV6hIfwETaGLjyTv1H+p2+8k8jclsrjscmjvzHgy0EdEkHt/U1RpUq3RGM+YE+PMx6ld2cATVj8dXhEmlakF+9wB1+MfFCs/7cogRsITbmZGxCesOT72TgFPMs2HKh7xlo2Kcj9BnPKixyIYFBdbdaL7lGc56BckwwnM= ARC-Message-Signature: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1711365967; c=relaxed/simple; bh=FzMWGEREbK0UZ3JbVhrjdWTmfsXrs4b2DbX7P5bfpcY=; h=DKIM-Signature:DKIM-Signature:From:To:Subject:Date:Message-ID: MIME-Version; b=uCAjURLH2qA7hLTQiuaQ6So5kaw00DN9E18EhC5jjgsY2a7WESG+HcUNX+eqQ9qe5PEF+boSdqMsYcY0Zv1zmwcBkTkIw8iCESgTRB6n1cIZ7GYq190pfopeoWLX+F9G0zDIMgX2lpYaFqq7M3BFecdTbljvctI3Jlkuh7Ci/Ao= ARC-Authentication-Results: i=2; server2.sourceware.org ARC-Seal: i=1; a=rsa-sha256; t=1711365962; cv=none; d=strato.com; s=strato-dkim-0002; b=U7/MfzAoMjQjPR1SA/y4GrKra+8S7E0Y+EAMzL6fnrZ5rNrlh+8w0o0kGaYc+vqRYX ymNACDXnllxySibfxBKw6JSIHCKjj1N5SB/55dQmuNcFsiXYZRigbkAX5nuKLpVij5+e kf/c0hLiPkdTbvMovSgIEJwXRh3Ce2RA0qEXG7kx8I6HPKsYYSfvF47go6DgtAv+Op9Z E+4hmMhNz2oOYu/uZyRcxubrSEDCgKjulrGmo76VApT32RDGgMrWVyTXYDjJ+cSrLdwD 3byMHxuqF/2eAp/DD1swMACnWqdGZmu7saKmik4IZ6i0LAJ6Bj4JlN7lI6XRoTwDG0Ta SV1w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; t=1711365962; s=strato-dkim-0002; d=strato.com; h=References:In-Reply-To:Message-ID:Date:Subject:To:From:Cc:Date:From: Subject:Sender; bh=pVgRORNuGRY5v1qycpXHOiZLMdBWeZ1qBF96oWmqyaI=; b=SIo5EeirCSS3Ix5cj+LNC+fT4enhqj+KVt+ONOhm/hgVTVkUOobQUBcSgWm1jPqgzh XIvTg+sCZidXQNX3INaPC1wLgjpve5ssC4294De7un8Hcdp4H2pgmriuuidWn4vbCFOu 9cfv6AhN7VeF9ELO0Ka0P26QZQh99A9nvggZrOslZUPMac+TPayh8Tvd9+6JwtK7ooFl c0Nmtpl57vBG2inRRRnLQlafDVemSv4RurItsB7s533+tM5rof4WIxxbuMV0c1+ALqWD NGp7JNdFDlF01lQQUw/ZlCDzc5S08EOTZHS3okc4s3hW0VHVuI7R6rYSCKfsgvd7HvZB rMqg== ARC-Authentication-Results: i=1; strato.com; arc=none; dkim=none X-RZG-CLASS-ID: mo00 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; t=1711365962; s=strato-dkim-0002; d=clisp.org; h=References:In-Reply-To:Message-ID:Date:Subject:To:From:Cc:Date:From: Subject:Sender; bh=pVgRORNuGRY5v1qycpXHOiZLMdBWeZ1qBF96oWmqyaI=; b=GoCEDMiLl2EwuvJBnjCQHV3F4WaddZ5ZXqwCCm7av512mwH4MDnh1nN18EfEszzew8 sMvH9xU1Jt759pK/VKyUnlcQzeLl8i3cGYCer96BZg3vYQiiI3LQ6wTyT4rsBUTETDZd 5kMo88ho6O2lc6Y1qCwRldALRw1Nbi9heG/YWL8pw7BXo3ZiNxjMRhpf/JBocltYVgd5 8bauR+D+yoXHHoIOga07j/OKNMk6zimCcY7hx7PyPaDDGwLCOCLiuzqMJL9WuTJJuyTf KyNsgYei6uG1he6Tmdnh8u5ahWbRH2UjHS39douagbZCLRWEIytcxrkH+KpyDDpDyiQv bXfA== DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; t=1711365962; s=strato-dkim-0003; d=clisp.org; h=References:In-Reply-To:Message-ID:Date:Subject:To:From:Cc:Date:From: Subject:Sender; bh=pVgRORNuGRY5v1qycpXHOiZLMdBWeZ1qBF96oWmqyaI=; b=IkGgw+7jN4++gdEefDzPIRaX7Q5H5CBzY+H1sbfVxh8x9foyxMhYDgdWcTt23VWUV2 mRBB0xsbvtVnF0qnB5Cw== X-RZG-AUTH: ":Ln4Re0+Ic/6oZXR1YgKryK8brlshOcZlIWs+iCP5vnk6shH0WWb0LN8XZoH94zq68+3cfpPD2PPSnkhDKWp4whfVjhTry15gxA==" Received: from nimes.localnet by smtp.strato.de (RZmta 50.3.2 AUTH) with ESMTPSA id N8610002PBQ0PaI (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256 bits)) (Client did not present a certificate); Mon, 25 Mar 2024 12:26:00 +0100 (CET) From: Bruno Haible To: Jun T , newlib@sourceware.org Subject: Re: wctomb() accepts out-of-range character in C-locale Date: Mon, 25 Mar 2024 12:26:00 +0100 Message-ID: <7028441.Tto2BC3hUo@nimes> In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="us-ascii" X-Spam-Status: No, score=-3.5 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_LOW,RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL,SPF_HELO_PASS,SPF_NONE,TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: Hi Corinna, > Jun T wrote: > > --------------------------------------- > > #include > > #include > > #include > > > > int main() { > > char buf[MB_CUR_MAX]; > > setlocale(LC_ALL, "C"); > > printf("%d\n", wctomb(buf, 0x80)); > > return 0; > > } > > --------------------------------------- > > > > On Linux it outputs '-1'. "On Linux" is ambiguous: - In glibc, it outputs -1 because of this glibc bug: https://sourceware.org/bugzilla/show_bug.cgi?id=19932 https://sourceware.org/bugzilla/show_bug.cgi?id=29511 - In musl libc, it outputs -1 because the "C" locale (like all locales) uses UTF-8 encoding and the lone byte "\x80" is not an entire character in UTF-8. > > But a wide character >= 0x80 can't be converted into a valid > > character in C-loccale (7bit), I think. Err. "C" locale, a.k.a. "POSIX" locale, is not 7-bit but 8-bit. Quoting https://pubs.opengroup.org/onlinepubs/9699919799.2018edition/basedefs/V1_chap06.html#tag_06_02 : "The POSIX locale shall contain 256 single-byte characters ..." > During testing I found that gnulib was replacing various functions built > into Cygwin for several reasons, and one of them was that the conversion > of wide char to multibyte in the "C" locale was not transparently > converting chars from 0x80 up to 0xff. What you did is to make Cygwin POSIX compliant in this aspect, which is good. > I'm actually puzzled right now that this doesn't work in GLibc either. It's the aforementioned glibc bug. > Do you have an idea what gnulib configure test might have been the > trigger for the above revert? It's the "checking whether the C locale is free of encoding errors..." test (macro gl_MBRTOWC_C_LOCALE in m4/mbrtowc.m4). Bruno