www.delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2026/06/11/07:24:09

DMARC-Filter: OpenDMARC Filter v1.4.2 delorie.com 65BBO9CB2685012
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 65BBO9CB2685012
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=H5dJyy0P
X-Recipient: archive-cygwin AT delorie DOT com
DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 99D5C4BAD16D
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cygwin.com;
s=default; t=1781177048;
bh=inpBUB5AyI/AMgX00Y6NFcNF8ln8ISpAv/r80LkUaCU=;
h=Resent-From:Resent-Date:Resent-To:References:In-Reply-To:Date:
Subject:To:List-Id:List-Unsubscribe:List-Archive:List-Post:
List-Help:List-Subscribe:From:Reply-To:From;
b=H5dJyy0PT4ZMWdrtDJm0IEv+ORi4tZ8m54zhA8yhfGD1ljE9u5QYAKE7CTmFIn9Lv
KrIY+jhpL7hByqRRnH2dWlKkVWha4ZDKBKoa2GhxxkNPxTN7qncgPFitBmDzLi10jd
aIe7s0s++Ob40xVR5k7m4KVfTV7gxicHqbhRSobM=
X-Original-To: cygwin AT cygwin DOT com
Delivered-To: cygwin AT cygwin DOT com
DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org AFD074BA2E17
Resent-From: root <root AT sourceware DOT org>
Resent-Date: Thu, 11 Jun 2026 11:23:16 +0000
Resent-Message-ID: <aiqapAC8DZ5gHxSc AT sourceware DOT org>
Resent-To: cygwin AT cygwin DOT com
X-Original-To: spam AT localhost
Delivered-To: spam AT localhost
DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 09EBC4BA543C
ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 09EBC4BA543C
ARC-Seal: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1780425801; cv=pass;
b=po421o3olSzr86KSki3rHeZHoUz7CRWy4MTSXslaE95kBNdQnnKUytlsNQy66mb7MX5obESc4oNtHeEJXAq7wbsseALkxkiPQnAe4wJagww81snLR3MdZgOug4wU3d0t/h47imSkr55BXBNFsP/5qvJM5souBLEK24ec7lH1gGQ=
ARC-Message-Signature: i=2; a=rsa-sha256; d=sourceware.org; s=key;
t=1780425801; c=relaxed/simple;
bh=aQBqz6u/L8phMKBUJJF0yo5o+xPc2qtntBVPtf5ts+8=;
h=DKIM-Signature:MIME-Version:From:Date:Message-ID:Subject:To;
b=F/nNcX6Nq9TgYHSBtyuO3BJSXBMCsp/gLNo/BDkgHf8OkSNBogdvu+o+SutenXNIMmphiXrqcb2JYn6zqJdsb0VgNBPZRIbmdOvBHiCEQzIYJLysYSMvDMAv+mETXtsO2jlcGarBixvqMO5aOAp8JoZIT1w8vkmZo4Bfy8fThdc=
ARC-Authentication-Results: i=2; sourceware.org;
dkim=pass (2048-bit key, unprotected)
header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20251104
header.b=eb5uMEH5
DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 09EBC4BA543C
ARC-Seal: i=1; a=rsa-sha256; t=1780425800; cv=none;
d=google.com; s=arc-20240605;
b=PpOToqJwZXakxmZx9dp7jtwDQJX7O3ROsBocWsejSF9D3FMoYXYTRzH4g150KcHH30
RdMyydPRp+8TWF2tCpF55aZYeuG5BqEPe8A1DZLdEOVK4L1q/Q+DQR3QYG/4/QF27Xk3
yzVV/sWtBjZ4rHxbdw3MY2dnj5VF22ZT3iwr0kXDlIVR8mQCOLhi/lMVhxGx9P9wdR5g
QLPyuU3Kp4q3XhCRD5ow+tZMgMtZPzjhhctq+tPCzP5ciuRKGViJLEawkiGhEFl4KGPB
v7Af7cL9mv7feb31McpMXGi1dr7jc4m4aLufogzrkDlirCa3EQoZZFow5HFFfDCKS4gL
t4YQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com;
s=arc-20240605;
h=to:subject:message-id:date:from:in-reply-to:references:mime-version
:dkim-signature;
bh=gHQqSz2FvZMsIj2KuVmKyWBiXF9uNrLCfxTsLne9Ef8=;
fh=UKNFaOBO97U3RYl3PEse//nArTqr7SLJjCCEBz281Ew=;
b=U/YUBjGhidT9XGLKjZEDA3Upw4xA+hiFifbtV/c4LVlWI4vH792gEGsZGNLYL5+You
AI8BX3VDD0KypJfFhlIGkLY8qEAS2lmz0VB8b6ygv6dnMTs+oLSUteJ9s98QTZlIeWSA
sCTGYJGQWo8CTkNAsFawgU5hbJfkNdGFs5ySie4UjRh9UKnO97wk7QoLcmckC/ZPFOrI
11RZg4b3Mi+r6/it6w7ofW/cUzLL7vFHUCYFcgv5HdGheIGyGJAtrseyMBo5p+Ik6fFc
fXBKWBtdjfzwaUPobWyazmn/US1wAmZyxbFs7IUto1rAGTUv1p7y4kNPO4M8jNrPM3Dj
KIqg==; darn=cygwin.com
ARC-Authentication-Results: i=1; mx.google.com; arc=none
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=1e100.net; s=20251104; t=1780425800; x=1781030600;
h=to:subject:message-id:date:from:in-reply-to:references:mime-version
:x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
:reply-to;
bh=gHQqSz2FvZMsIj2KuVmKyWBiXF9uNrLCfxTsLne9Ef8=;
b=jWDy0rMd97tjubK5VhRmxceioiyDOljMnietyKMfZhZh6umQXas/xqgHgNUhbCQKo9
SBqo7pWmFwXKjL5VNjKzAVYIEsoPrtGRa4N1wBXHqK9Fjt1D/MjGnpz1lctEqBeubS3k
gRUciQu3RJJED/+ROI7ovZjwJbuCl2TzAloXfJ4ENdE+GZMfkwfzH3ncxV5U+40yDKdx
mSU78JJJZYKcJbfARXwyxLIiZkyyB9ubvCKaR+X3vKEreAiv5IjiG4uehtDiZiVw+qGU
BSaPlDSLPjzJVoGTEyAAJ9ikuBS66RLtz1PcVxjkjPAOZ4OILvUlQGA3hees5tJk6tQt
gilw==
X-Gm-Message-State: AOJu0YzKoyKDRZv9/FSYeMagurUdttvWIWnX530rzogpYvUji0qt3p8f
qv5whyBv+bV9c+vxDHpq6GB0r2PDN6loS5ezbqkmPiiqCCPx7bAUMP+HpIYgBuDrj9sG81N4bLo
aiLJ7CMCUv3Bu8fkWcWP65QGoRiRLJ5c5RF/DWVA=
X-Gm-Gg: Acq92OE7IeKVtWijDVBaAEkHeG3M3VxOq3Y0xdMFy+u2vEot958ny6qEO4+kQgbLCyd
umlm0Hm9gg9ANzyvWA76vRWQwHZA/4fTMGZOJW/DWaN44D1VOhclzyyhaaoVB9cvUFkv9IFZwZZ
6s29oFImqMprL0JiPQN7W1mzesWZvXyqWNHN+DZeiKW5+cJm1icLn0ARE8cq77R6TokuoRbciof
SeKbxJytnoUQvSaXWQPgKoktuJ1qRZXpD8q7J4hahpaw5pBk2J4tLJxd6/28DsR3U9L012BNNSv
SSbSveRNvEGPlHljFTBsPBUNhoo3clLcfan1JxwoGq+2GOYCt21wiFGa+TD+a7s=
X-Received: by 2002:a05:6402:348a:b0:676:e619:2be0 with SMTP id
4fb4d7f45d1cf-68e633c51e0mr214443a12.8.1780425799614; Tue, 02 Jun 2026
11:43:19 -0700 (PDT)
MIME-Version: 1.0
References: <a9676834-0368-4a8a-88b0-da5e9483b536 AT towo DOT net>
<874ikpawdk DOT fsf AT Gerda DOT invalid> <8ff2ab8d-dfdc-459c-96f3-ed4a4f451440 AT towo DOT net>
<0140C1F4-CA22-46DE-AE21-69C5427C59B5 AT unified-streaming DOT com>
<e94174b7-ea9b-45ca-bfd3-7979ce988920 AT towo DOT net>
<e362b49c-521c-4cd5-8963-c17d5770619b AT SystematicSW DOT ab DOT ca>
<fbbeb91a-4c5a-dbe6-1bb3-206cf14a73bc AT wisemo DOT com>
<4f885156-7772-43d7-ab72-c88f0a7d1e52 AT towo DOT net>
<112594ad-3c25-4dad-b1bc-071b4951ed98 AT towo DOT net>
<97f0f3c6-9f2c-429c-aa8e-875b7806b275 AT towo DOT net>
<8733z9jpfj DOT fsf AT Gerda DOT invalid> <b70d8366-8970-4cdc-a693-6d826fe76277 AT towo DOT net>
<b8c1571a-1956-4316-a6a9-32176b6c7c80 AT towo DOT net> <87pl2bab08 DOT fsf AT Gerda DOT invalid>
<2a39e204-bd8b-4511-bd34-703899600e9e AT towo DOT net> <87ldcza133 DOT fsf AT Gerda DOT invalid>
<21ca1d38-7b82-49af-b954-b83141237843 AT towo DOT net>
<5c46f199-128c-4409-a354-9d3e1deb29bb AT towo DOT net>
<87y0gyyqm2 DOT fsf AT Gerda DOT invalid> <bd3062e4-47c4-45f3-b44c-004dc7e889f3 AT towo DOT net>
In-Reply-To: <bd3062e4-47c4-45f3-b44c-004dc7e889f3@towo.net>
Date: Tue, 2 Jun 2026 12:43:06 -0600
X-Gm-Features: AVHnY4KTzYJFq4yv8o5J7bnve3hWAQ-r3bhcNFc3N9Zb2YLzlrN44CFlcNe7peM
Message-ID: <CAJ1FpuNwd4TcJFv+3z2tsDWMADfSC=+1v9m1p9a3vK9xs4bZ_Q@mail.gmail.com>
Subject: Re: wcwidth broken with gcc 16
To: cygwin AT cygwin DOT com
X-Content-Filtered-By: Mailman/MimeDel 2.1.30
X-BeenThere: cygwin AT cygwin DOT com
X-Mailman-Version: 2.1.30
List-Id: General Cygwin discussions and problem reports <cygwin.cygwin.com>
List-Archive: <https://cygwin.com/pipermail/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-request AT cygwin DOT com?subject=help>
List-Subscribe: <https://cygwin.com/mailman/listinfo/cygwin>,
<mailto:cygwin-request AT cygwin DOT com?subject=subscribe>
From: Doug Henderson via Cygwin <cygwin AT cygwin DOT com>
Reply-To: Doug Henderson <djndnbvg AT gmail DOT com>
Sender: "Cygwin" <cygwin-bounces~archive-cygwin=delorie DOT com AT cygwin DOT com>

--00000000000055ffc5065349af68
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

 On Tue, Jun 2, 2026 at 1:46=E2=80=AFAM Thomas Wolff via Cygwin <cygwin AT cyg=
win.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?

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 =E2=80=B9=F0=9D=92=9E=E2=80=BA  GC=3DLu    MATHEMATICAL SCR=
IPT CAPITAL C")

outputs:
U+01D49E =E2=80=B9=F0=9D=92=9E=E2=80=BA  GC=3DLu    MATHEMATICAL SCRIPT CAP=
ITAL C

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 =E2=80=B9=F0=9D=92=9E=E2=80=BA  GC=3DLu    MATHEMATICAL SCR=
IPT CAPITAL C")
$ python3 main.py
U+01D49E =E2=80=B9=F0=9D=92=9E=E2=80=BA  GC=3DLu    MATHEMATICAL SCRIPT CAP=
ITAL 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

--00000000000055ffc5065349af68
Content-Type: image/png; name="MATHEMATICAL SCRIPT CAPITAL C.png"
Content-Disposition: attachment; 
	filename="MATHEMATICAL SCRIPT CAPITAL C.png"
Content-Transfer-Encoding: base64
Content-ID: <f_mpwyzp2w0>
X-Attachment-Id: f_mpwyzp2w0

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
--00000000000055ffc5065349af68
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline


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

--00000000000055ffc5065349af68--

















































































































































































































- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019