DMARC-Filter: OpenDMARC Filter v1.4.2 delorie.com 65CAFknK3691085
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 65CAFknK3691085
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=IxxMxlgh
X-Recipient: archive-cygwin@delorie.com
DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 3425F4BA2E1A
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cygwin.com;
	s=default; t=1781259344;
	bh=mTtTXzWOTr0LNMME9pzjHfkbtiSuXcgTvoNqBxkLhm4=;
	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=IxxMxlghF71W5OqF3KcyDKhFBOs21Hk70dZPVXldntNfj/duwI7AZop0XEpq79Qyk
	 GDt7I6xmBd1pMSbTqvRyrk8RHfgaL4HT8tm8oYd1U4wtjawrLLLlfJ/2OytOJgtIEH
	 HGVnnGRko7tIvzdkLFu+1I4SMvyMsLySeN3EsoXk=
X-Original-To: cygwin@cygwin.com
Delivered-To: cygwin@cygwin.com
DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 7D4054BA2E16
ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 7D4054BA2E16
ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1781259323; cv=none;
 b=M6BjqZPwi4LTE+G1lajLbMKT+StLizTMP4VFmzGRpdRO3D4ZcnP/v5Cierqg/P5IijrDxNrJ6EJPCqyQXjz4XiQl1HgEGsCbRCUsX8TcLk8ymUVWXvpINVkZEHbRgBoiBXVWaESyhBuqIo3vQAn+5dM+cvOLD7W8PHSQvI1PX3M=
ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key;
 t=1781259323; c=relaxed/simple;
 bh=YDLXLfvLG4gG1ZcIcZvrvP6CZgeOKO9gIA+7Fbmw41E=;
 h=DKIM-Signature:Message-ID:Date:MIME-Version:Subject:To:From;
 b=bsV+62YurNvDlxrMBphzQG/4LMalps6LU+gKjDVu2aHoDlXjvnPQqPyEEmU/h5ED9JZy34cc+65ULPAd0a8tF48RQkKwWrwO8GhThWcGOgQiOtT03WXUflUHSrS+cHzypdktCZ3ihLXHZBhDhcoonTPezrEOmEtgVm0PUediZss=
ARC-Authentication-Results: i=1; sourceware.org;
 dkim=pass (2048-bit key, unprotected)
 header.d=towo.net header.i=towo@towo.net header.a=rsa-sha256
 header.s=s1-ionos header.b=0FIk5zzL
DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 7D4054BA2E16
X-UI-Sender-Class: 55c96926-9e95-11ee-ae09-1f7a4046a0f6
Message-ID: <fe9d86bc-fdaf-4942-ba50-d3defb31d2b1@towo.net>
Date: Fri, 12 Jun 2026 12:15:20 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: wcwidth broken with gcc 16
To: cygwin@cygwin.com
References: <a9676834-0368-4a8a-88b0-da5e9483b536@towo.net>
 <874ikpawdk.fsf@Gerda.invalid>
 <8ff2ab8d-dfdc-459c-96f3-ed4a4f451440@towo.net>
 <0140C1F4-CA22-46DE-AE21-69C5427C59B5@unified-streaming.com>
 <e94174b7-ea9b-45ca-bfd3-7979ce988920@towo.net>
 <e362b49c-521c-4cd5-8963-c17d5770619b@SystematicSW.ab.ca>
 <fbbeb91a-4c5a-dbe6-1bb3-206cf14a73bc@wisemo.com>
 <4f885156-7772-43d7-ab72-c88f0a7d1e52@towo.net>
 <112594ad-3c25-4dad-b1bc-071b4951ed98@towo.net>
 <97f0f3c6-9f2c-429c-aa8e-875b7806b275@towo.net>
 <8733z9jpfj.fsf@Gerda.invalid>
 <b70d8366-8970-4cdc-a693-6d826fe76277@towo.net>
 <b8c1571a-1956-4316-a6a9-32176b6c7c80@towo.net>
 <87pl2bab08.fsf@Gerda.invalid>
 <2a39e204-bd8b-4511-bd34-703899600e9e@towo.net>
 <87ldcza133.fsf@Gerda.invalid>
 <21ca1d38-7b82-49af-b954-b83141237843@towo.net>
 <5c46f199-128c-4409-a354-9d3e1deb29bb@towo.net>
 <87y0gyyqm2.fsf@Gerda.invalid>
 <bd3062e4-47c4-45f3-b44c-004dc7e889f3@towo.net>
 <CAJ1FpuNwd4TcJFv+3z2tsDWMADfSC=+1v9m1p9a3vK9xs4bZ_Q@mail.gmail.com>
Autocrypt: addr=towo@towo.net; keydata=
 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 kQ==
In-Reply-To: <CAJ1FpuNwd4TcJFv+3z2tsDWMADfSC=+1v9m1p9a3vK9xs4bZ_Q@mail.gmail.com>
X-Provags-ID: V03:K1:EC4UJKVbHXH9pN8c4xPct5HZoU5xui4Bj92/3hZ5iOHzeVcsxd0
 8//xRSSlAwJ4F7haH8DHO3z2fwBqZyWVuIK7+GVLkk2O4GWEQLgcPsEErEwUNmCLGy1GxFf
 ppLI2eLT3HZr+7NedEDi9ZFABOAfVBMWDSq+AoQsiWE0qY4dcVnEsEPSgAonOuVs6UBdO/2
 1XSHpYZtU/9XvdU8P3B5Q==
UI-OutboundReport: notjunk:1;M01:P0:v0v+cJJ7710=;baF+CzDynTz7huTfo+xIY5nFG1P
 QzQWVZyQOVdcri+dC+FusK+JKb7XOKnQSbqLxzEruYTy7kUTXYhiP9IHKFtwNbR15szrZdtnr
 YjRiZ5OGpgsflNgITDg9et5hE/EeQkgw0WfzqfzErp+jJXhb8aaoZHLSvFmKR4rPgs7c8b3OE
 Yr58NsbXJeutsmMSJuVIuD482Vhw9qt2fg4bwNYi+RnT+obPPctbiM25JHju9ZI4Ofy+r4+MO
 TECJ4p37aytW5o0hWuJdcUjX0ZFz8lJ/wUs6P59E3sr75XbTevoKNQ1AYaaIt4D1C9zFUubeg
 ySEi5ozm6zHC4H0E7S2oaS2BSkCf33HGl8CCeXnq39vHq+p60YaBEnj4Pvj0icHWIsC0xW71t
 xoimW9mPN+Ko+Qfzl5A6MNDBa96+JpWxNfAHfMe3hlcL+2OyBd/cOlMH+/vtElrfOimOIywOa
 hyBjQjPgzEX9zLcnfExAZbAaLpq6S5v0AeMpsAWdnpqKG+4o8BXqxdSpQb42bishHVnhRPPoz
 vlDRkj4CSM97I7ZEChFYBoW8zB/TO82A/bo1SbxMDzbJRFGbt40ZMYltPZxMZ/HJWynGjksXo
 JkuApZuzS6KcQe3UAEsJssqm2gWAaUVnYnriTzATkY9K0RkR/RwMTs/GVKBPzW9J1+32wIrZC
 MGM3Uf4SE2I1zryKI6KOMr49vH9WGA5uPTEhIAToo2O40FC4QOJzR+tjE1DPYV/G59wwErZw/
 5vTbH1pURmvvDB/hidbagOJ6txcL7mQK+y1JXqhyTayq4qRrx5zEktCDg18qFkD9VkhH6X2IH
 NqOC7wb8jrsWc5ul+bWVMppqhTekZbqBEMHtJB4i+Q/rxho2IE8uxOULT/A1KD2ZZuNlCbHjz
 SsK53hrxhoLBkXdf0Pp6yBoVO4Oht3c2ZnxH+jlJMoZBpcqtqfb73rBG0Rx4PuazOdEIV7hSI
 DufilV9iCutwUP2VVHe8EEGgWBSmwPnyy7wSsZAUdYHmhlZ0QkUo8fSDMR+kndKi7uN+ZjRdI
 MIr7IaCKipLYt9Dd61U/mBR8u253rRpZF26Q2XT60CydCeAd5+s/R2qeyzo/qMqadLXvH/dbJ
 UyQTzIRlbY2wPczKkQO/k+ek9gm/Db6BDdiotZBwV8r7Q1+WP2JvUFsIJ1SaMFbR7nLv4ljYi
 jLNFTFMY1CftgN04nDjDuUAfXVCbJdnuXktHMtVmKsvtM4vd/shBYktfjU9IFH1WyDFf/8fYn
 s/td5gmdn9z4ECVijQ3a1gmV/Qg0j5Rrx0ctXL5Hq2S3NeR3N7mi5aYFSKKdtN9joVhRvqIru
 KC+Umt9TGBykvsvGtS/LeMOqUfjnrsY7wk4dvdy9wDd910tSgdTHwYFMieWbs/UkSyx7UgMz3
 BxCDWI4VdA5yf5mhG2G+JmcXekKcnSG1aCUu3X6w+EZ9EwSvvpvS9sza9gmPKFcX0F8VQkeLb
 DayZC0z5fZiBjalW0voyS5H1M9hsQtMLpm5GAmFrQaanG87dpXgm89dVARtjpgSLwziQ5D8C/
 pWhx5XFwPhiKSjNzlWVpHEe9ZQg0C1WrdbtNQGFDvw4AXSnmXHvDi1u6kIDl/1S4IQxQ/xqa+
 p90ISXI2R0/KGCwaXmqlDVLdsffOufXest661lIH9MZU0qhBeJ8DBTkZYv+cQqSRs7QMiCvPG
 ZANBMBvSuBKbr7MjKbq+SlhbFyUg04cBarCimcnRosvlWEoeJ43jqrdTm3LhKp1zEHhVuA6AY
 VLYcSdb7czHC0RsmOqr1GWQ3hCx1Ne0hFUC0JsuT98KoQT56jVczhVETNFGS86Z8R0p4rRP2I
 +D58Nd6qOMcCktlccyvrOAr1c/DGpqdV5bt20jqqEKxooh33cuzo8LXHTmOMX05VcpPpDp2rM
 B4FoRjfmQC6TfhsmtP7D3g6LIHyZFcYQoCENlw=
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: Thomas Wolff via Cygwin <cygwin@cygwin.com>
Reply-To: Thomas Wolff <towo@towo.net>
Content-Type: text/plain; charset="utf-8"; Format="flowed"
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 65CAFknK3691085

Hi Doug,

Am 02.06.2026 um 20:43 schrieb Doug Henderson via Cygwin:
>   On Tue, Jun 2, 2026 at 1:46 AM Thomas Wolff via Cygwin <cygwin@cygwin.com>
> wrote:
>
> Thomas Wolff, et. al.,
>
> I have been carefully following this discussion of technical issues, API
> conformance, and related issues,.
>
> There has been no significant discussion of the user experience that
> depends on the resolution of this problem.
>
> Will non-BMP Unicode code points display correctly in terminal windows
> (that use an appropriate font), e.g. mintty?
I noticed the problem when I compiled mintty on a system where I had 
installed the test release of gcc 16 and various display widths were 
wrong, actually also within the BMP. So a fix was needed and it turned 
out that the issue was raised by, as I still think, wrong sign-extension 
of a 16-bit value to a 32-bit parameter by gcc 16 where previous gcc 
versions had only applied unsigned bit extension. Well, for subtle 
reasons, this was not accepted as a bug in gcc, so the cygwin API had to 
be adjusted.
About non-BMP characters, requesting their width with the wcwidth 
function never used to work (my first plan was to make it work but this 
was rejected as not standard-conformant and in fact would not have been 
portable so actually useless in the first place). If a program wants to 
determine the locale width of a non-BMP character on a UTF-16-based 
system, it needs to split it into its Unicode surrogates and use the 
wcswidth function. This was also done by mintty already, so there was no 
non-BMP-specific problem.
This will be handled under-the-hood by mintty, applications can use 
UTF-8 4-byte sequences towards the terminal of course.

> Non-BMP Unicode code points include emojis, mathematical script glyphs, and many others.
>
> For me, I care if a small Python script like:
>
> $ type main.py
> print("U+01D49E ‹𝒞›  GC=Lu    MATHEMATICAL SCRIPT CAPITAL C")
>
> outputs:
> U+01D49E ‹𝒞›  GC=Lu    MATHEMATICAL SCRIPT CAPITAL C
Your test case does not cover the problem. Plain output will always 
appear properly as long as you don't reach the end of the line.
The question is whether for example python has an idea of current cursor 
position and whether it is consistent with output.
Maybe you can try to evaluate that too.

> on Windows Terminal, as expected
>
> and when running cygwin in a mintty window:
>
> $ uname -a
> CYGWIN_NT-10.0-26200 mercury 3.6.9-1.x86_64 2026-04-21 15:46 UTC x86_64
> Cygwin
> $ mintty --version
> mintty 3.8.2 (Cygwin-x86_64)
> $ date
> Jun  2, 2026 11:36:33
> $ python3 -V
> Python 3.12.12
> $ cat main.py
> print("U+01D49E ‹𝒞›  GC=Lu    MATHEMATICAL SCRIPT CAPITAL C")
> $ python3 main.py
> U+01D49E ‹𝒞›  GC=Lu    MATHEMATICAL SCRIPT CAPITAL C
>
> correctly displays the Mathematical Script Capital C glyph as seen in the
> attached screen capture.
>
> If the resolution of this problem changes "our" user experience, that will
> be another problem.
>
> As an after thought, I may be seeing success due to the byte stream
> containing UTF-8 4-byte sequences all the way through Windows 11 APIs,
> without any conversions to UTF-16 or UTF-32.
>
> I am not so up-to-date with C as to rattle off a demo in seconds, as I can
> in Python. I would like to see such a minimal C demo program that I can try
> with cmd in WT, with MINGW64 in mintty, and with cygwin in mintty. The demo
> should send UTF-8 4-byte, UTF-16 2-short, and UTF-32 1-long characters, if
> possible. TIA.
>
> Just my take,
> Doug
>
> -- Doug Henderson, Calgary, Alberta, Canada - from gmail.com
>


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

