GNU logs - #79297, boring messages


Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#79297: patch: full color in windows terminal
Resent-From: Ewan <ewan@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Sun, 24 Aug 2025 06:07:01 +0000
Resent-Message-ID: <handler.79297.B.175601558311168 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: report 79297
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: 
To: 79297 <at> debbugs.gnu.org
X-Debbugs-Original-To: "bug-gnu-emacs@HIDDEN" <bug-gnu-emacs@HIDDEN>
Received: via spool by submit <at> debbugs.gnu.org id=B.175601558311168
          (code B ref -1); Sun, 24 Aug 2025 06:07:01 +0000
Received: (at submit) by debbugs.gnu.org; 24 Aug 2025 06:06:23 +0000
Received: from localhost ([127.0.0.1]:43061 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1uq3ry-0002u2-0B
	for submit <at> debbugs.gnu.org; Sun, 24 Aug 2025 02:06:23 -0400
Received: from lists.gnu.org ([2001:470:142::17]:39442)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <ewan@HIDDEN>) id 1upyOt-00082r-DH
 for submit <at> debbugs.gnu.org; Sat, 23 Aug 2025 20:16:02 -0400
Received: from eggs.gnu.org ([2001:470:142:3::10])
 by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <ewan@HIDDEN>) id 1upyOh-0007eG-CS
 for bug-gnu-emacs@HIDDEN; Sat, 23 Aug 2025 20:15:48 -0400
Received: from mail-4317.protonmail.ch ([185.70.43.17])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <ewan@HIDDEN>) id 1upyOd-0001eP-3a
 for bug-gnu-emacs@HIDDEN; Sat, 23 Aug 2025 20:15:47 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=etown.dev;
 s=protonmail; t=1755994531; x=1756253731;
 bh=z2gsPnJMx4CA0U3Uqo6mny17ZYzYceZRgrFXI2qeW2Q=;
 h=Date:To:From:Subject:Message-ID:Feedback-ID:From:To:Cc:Date:
 Subject:Reply-To:Feedback-ID:Message-ID:BIMI-Selector;
 b=Zulrs2RGItn1Q0aITT2jfgcQFoTH5OmHXlGe402vR/OzfeytWh55dK2MHLXb1twT2
 kcuQK2eigciYBDYwbtQvrHSu3HU7/4N1f/6jjLD2jiAov85QffE5JAc1xRLAK0w1xM
 5JNlsop6cTu5+9xjOTo6ffQ9lgPXWPMySpzwEddbe2zNhIMA9KNZJ8bxLZmCDzs+/P
 ISW7isV9uQvyrbYNdtAfb5lMsVMm5WpXbu2+QnLOrbxJERYS6Bwi+a50AiW9r1asT2
 /hP6/fGXtEkZ5bbEz17YGZj5r+Z1OjQWAsCooRY5ni41lgqIIUKWdasFpPcrwd78Gh
 5b6ZvznzM/Vag==
Date: Sun, 24 Aug 2025 00:15:28 +0000
From: Ewan <ewan@HIDDEN>
Message-ID: <G4Tou5OvKHBfVV6-9kmLezwXc0HkZ4RfJuFP5jFYbXZOVCiHPUDok76STaDWDT3d7nlqLLsJll2fHv8k9u3xgT1_DfsosfScbqHDWZG01-o=@etown.dev>
Feedback-ID: 150490971:user:proton
X-Pm-Message-ID: 6d3cc7c65001ef92ebe760897973c20457f9bb84
MIME-Version: 1.0
Content-Type: multipart/mixed;
 boundary="b1=_56Ex8KSqHpskbdU57OtDQXkNvCk2Cjxq6qorpOWB4I"
Received-SPF: pass client-ip=185.70.43.17; envelope-from=ewan@HIDDEN;
 helo=mail-4317.protonmail.ch
X-Spam_score_int: -20
X-Spam_score: -2.1
X-Spam_bar: --
X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1,
 DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1,
 RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001,
 RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001,
 SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no
X-Spam_action: no action
X-Spam-Score: 1.0 (+)
X-Mailman-Approved-At: Sun, 24 Aug 2025 02:06:20 -0400
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -0.0 (/)

--b1=_56Ex8KSqHpskbdU57OtDQXkNvCk2Cjxq6qorpOWB4I
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

* configure.ac: Compiler flag for setting w32 console color space.
* lisp/term/w32console.el: Define and apply different color spaces.
* src/nsterm.c: Delete working text after inserting new text.
* src/term.c: Set tty max colors based on compiler flag.
* src/w32console.c: Write face colors to console via VT sequences.

Most of the work was done here:=20
https://github.com/tsuu32/emacs-w32con-vt

I just updated it for Emacs 30.2 and fixed some bugs.

Full branch here:=20
https://github.com/ewantown/emacs/tree/w32-vt-seq

Working builds here:
https://github.com/ewantown/wemacs-build/releases/tag/v31.9.20250823.99d9b7=
5

Patch attached.
--b1=_56Ex8KSqHpskbdU57OtDQXkNvCk2Cjxq6qorpOWB4I
Content-Type: application/octet-stream; name=0001-Windows-Terminal-full-color-with-VT-Sequences.patch
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename=0001-Windows-Terminal-full-color-with-VT-Sequences.patch

RnJvbSAyNmMxZGViNTFmYjU0YTA4YWQ2ZTRjOGE1NDcwNGRkZjAzNjNhNzRjIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBld2FudG93biA8ZXdhbkBldG93bi5kZXY+CkRhdGU6IEZyaSwg
MjIgQXVnIDIwMjUgMjM6Mjg6MDUgLTA3MDAKU3ViamVjdDogW1BBVENIXSBXaW5kb3dzIFRlcm1p
bmFsIGZ1bGwgY29sb3Igd2l0aCBWVCBTZXF1ZW5jZXMKCi0tLQogY29uZmlndXJlLmFjICAgICAg
ICAgICAgfCAgMjIgKysrKysKIGxpc3AvdGVybS93MzJjb25zb2xlLmVsIHwgMTI1ICsrKysrKysr
KysrKysrKysrKystLS0tLS0tLQogc3JjL25zdGVybS5tICAgICAgICAgICAgfCAgIDggKy0KIHNy
Yy90ZXJtLmMgICAgICAgICAgICAgIHwgIDEyICsrLQogc3JjL3czMmNvbnNvbGUuYyAgICAgICAg
fCAxODQgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLQogNSBmaWxlcyBj
aGFuZ2VkLCAyOTMgaW5zZXJ0aW9ucygrKSwgNTggZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEv
Y29uZmlndXJlLmFjIGIvY29uZmlndXJlLmFjCmluZGV4IDhjMmU2YjQyMWQ5Li5mMTQ5OWNjNTRm
NSAxMDA2NDQKLS0tIGEvY29uZmlndXJlLmFjCisrKyBiL2NvbmZpZ3VyZS5hYwpAQCAtMjk5LDYg
KzI5OSwyMSBAQCBBQ19BUkdfV0lUSChbYWxsXSwKICAgW3dpdGhfZmVhdHVyZXM9JHdpdGh2YWxd
LAogICBbd2l0aF9mZWF0dXJlcz15ZXNdKQogCitBQ19BUkdfV0lUSChbdzMyLXZ0LWNvbG9yXSwK
K1tBU19IRUxQX1NUUklORyhbLS13aXRoLXczMi12dC1jb2xvcj1BUkddLAorW3VzZSBWVCBzZXF1
ZW5jZXMgZm9yIHczMiBjb25zb2xlIGNvbG9yIChBUkcgb25lIG9mOiBubywgMTYsIDE1NiwgMjRi
aXQpXSldLAorWyAgICBjYXNlICIke3dpdGh2YWx9IiBpbgorICAgICBubyApICAgIHZhbD1ubyA7
OworICAgICAxNiApICAgIHZhbD0xNiA7OworICAgICAyNTYgKSAgIHZhbD0yNTYgOzsKKyAgICAg
MjRiaXQgKSB2YWw9MjRiaXQgOzsKKyAgICAgKiApCisgICAgIEFDX01TR19FUlJPUihbJy0td2l0
aC12dC1jb2xvcj0kd2l0aHZhbCcgaXMgaW52YWxpZDsKKyAgICAgdGhlIHZhbHVlIHNob3VsZCBi
ZSAnbm8nLCAnMTYnLCAnMjU2Jywgb3IgJzI0Yml0J10pIDs7CisgICAgIGVzYWMKKyAgICAgd2l0
aF93MzJfdnRfY29sb3I9JHZhbAorXSkKKwogZG5sIEFSQ0hfSU5ERVBFTkRFTlRfQ09ORklHX0ZJ
TEVTKEZJTEUuLi4pCiBkbmwgTGlrZSBBQ19DT05GSUdfRklMRVMoRklMRSkuICBIb3dldmVyLCBk
byBub3QgZ2VuZXJhdGUgdGhpcwogZG5sICAgaWYgY29uZmlndXJlIGlzIGJlaW5nIGNhbGxlZCBy
ZWN1cnNpdmVseSBpbiBwcmVwYXJhdGlvbgpAQCAtMzAzMyw2ICszMDQ4LDEzIEBAIGlmIHRlc3Qg
IiR7b3BzeXN9IiA9ICJtaW5ndzMyIjsgdGhlbgogICAgIEFDX01TR19FUlJPUihbdGhlIFdpbmRv
d3MgQVBJIGhlYWRlcnMgYXJlIHRvbyBvbGQgdG8gc3VwcG9ydCB0aGlzIGJ1aWxkLl0pCiAgIGZp
CiAgIEhBVkVfVzMyPSR7ZW1hY3NfY3ZfdzMyYXBpfQorICBjYXNlICIke3dpdGhfdzMyX3Z0X2Nv
bG9yfSIgaW4KKyAgICAgICAxNiApIEFDX0RFRklORShVU0VfVzMyQ09OVlRDT0xPUl8xNiwgMSwg
W0RlZmluZSB0byB1c2UgVlQgc2VxdWVuY2VzIGZvciAxNiBjb2xvcnMuXSkgOzsKKyAgICAgICAy
NTYgKSBBQ19ERUZJTkUoVVNFX1czMkNPTlZUQ09MT1JfMjU2LCAxLCBbRGVmaW5lIHRvIHVzZSBW
VCBzZXF1ZW5jZXMgZm9yIDI1NiBjb2xvcnMuXSkgOzsKKyAgICAgICAyNGJpdCApIEFDX0RFRklO
RShVU0VfVzMyQ09OVlRDT0xPUl8yNEJJVCwgMSwgW0RlZmluZSB0byB1c2UgVlQgc2VxdWVuY2Vz
IGZvciAyNGJpdCBjb2xvcnMuXSkgOzsKKyAgICAgICBubyApIDs7CisgICAgICAgKiApIDs7Cisg
IGVzYWMKIGZpCiAKIE5URElSPQpkaWZmIC0tZ2l0IGEvbGlzcC90ZXJtL3czMmNvbnNvbGUuZWwg
Yi9saXNwL3Rlcm0vdzMyY29uc29sZS5lbAppbmRleCAxYjQ0ZGE0OGJmNy4uMjc3NGNhZThjZDYg
MTAwNjQ0Ci0tLSBhL2xpc3AvdGVybS93MzJjb25zb2xlLmVsCisrKyBiL2xpc3AvdGVybS93MzJj
b25zb2xlLmVsCkBAIC0yNCwyNSArMjQsNDIgQEAKIAogOzs7IENvZGU6CiAKLTs7IFczMiB1c2Vz
IGRpZmZlcmVudCBjb2xvciBpbmRleGVzIHRoYW4gc3RhbmRhcmQ6Ci0KKzs7IFczMiB1c2VzIGRp
ZmZlcmVudCBjb2xvciBpbmRleGVzIHRoYW4gc3RhbmRhcmQKKzs7IFdoZW4gdXNpbmcgVlQgc2Vx
dWVuY2VzIGZvciBjb2xvciwgc3RhbmRhcmRpemUKIChkZWZ2YXIgdzMyLXR0eS1zdGFuZGFyZC1j
b2xvcnMKLSAgJygoImJsYWNrIiAgICAgICAgICAwICAgICAwICAgICAwICAgICAwKQotICAgICgi
Ymx1ZSIgICAgICAgICAgIDEgICAgIDAgICAgIDAgNTI0ODApIDsgTWVkaXVtQmx1ZQotICAgICgi
Z3JlZW4iICAgICAgICAgIDIgIDg3MDQgMzU1ODQgIDg3MDQpIDsgRm9yZXN0R3JlZW4KLSAgICAo
ImN5YW4iICAgICAgICAgICAzICAgICAwIDUyNzM2IDUzNTA0KSA7IERhcmtUdXJxdW9pc2UKLSAg
ICAoInJlZCIgICAgICAgICAgICA0IDQ1NTY4ICA4NzA0ICA4NzA0KSA7IEZpcmVCcmljawotICAg
ICgibWFnZW50YSIgICAgICAgIDUgMzU1ODQgICAgIDAgMzU1ODQpIDsgRGFya01hZ2VudGEKLSAg
ICAoImJyb3duIiAgICAgICAgICA2IDQwOTYwIDIwOTkyIDExNTIwKSA7IFNpZW5uYQotICAgICgi
bGlnaHRncmF5IiAgICAgIDcgNDg2NDAgNDg2NDAgNDg2NDApIDsgR3JheQotICAgICgiZGFya2dy
YXkiICAgICAgIDggMjYxMTIgMjYxMTIgMjYxMTIpIDsgR3JheTQwCi0gICAgKCJsaWdodGJsdWUi
ICAgICAgOSAgICAgMCAgICAgMCA2NTUzNSkgOyBCbHVlCi0gICAgKCJsaWdodGdyZWVuIiAgICAx
MCAgICAgMCA2NTUzNSAgICAgMCkgOyBHcmVlbgotICAgICgibGlnaHRjeWFuIiAgICAgMTEgICAg
IDAgNjU1MzUgNjU1MzUpIDsgQ3lhbgotICAgICgibGlnaHRyZWQiICAgICAgMTIgNjU1MzUgICAg
IDAgICAgIDApIDsgUmVkCi0gICAgKCJsaWdodG1hZ2VudGEiICAxMyA2NTUzNSAgICAgMCA2NTUz
NSkgOyBNYWdlbnRhCi0gICAgKCJ5ZWxsb3ciICAgICAgICAxNCA2NTUzNSA2NTUzNSAgICAgMCkg
OyBZZWxsb3cKLSAgICAoIndoaXRlIiAgICAgICAgIDE1IDY1NTM1IDY1NTM1IDY1NTM1KSkKKyAg
KGlmIHczMmNvbi11c2UtdnQtY29sb3IKKyAgICAgICcoKCJibGFjayIgICAgICAgICAgMCAgICAg
MCAgICAgMCAgICAgMCkKKyAgICAgICAgKCJyZWQiICAgICAgICAgICAgMSA0NTU2OCAgODcwNCAg
ODcwNCkgOyBGaXJlQnJpY2sKKyAgICAgICAgKCJncmVlbiIgICAgICAgICAgMiAgODcwNCAzNTU4
NCAgODcwNCkgOyBGb3Jlc3RHcmVlbgorICAgICAgICAoImJyb3duIiAgICAgICAgICAzIDQwOTYw
IDIwOTkyIDExNTIwKSA7IFNpZW5uYQorICAgICAgICAoImJsdWUiICAgICAgICAgICA0ICAgICAw
ICAgICAwIDUyNDgwKSA7IE1lZGl1bUJsdWUKKyAgICAgICAgKCJtYWdlbnRhIiAgICAgICAgNSAz
NTU4NCAgICAgMCAzNTU4NCkgOyBEYXJrTWFnZW50YQorICAgICAgICAoImN5YW4iICAgICAgICAg
ICA2ICAgICAwIDUyNzM2IDUzNTA0KSA7IERhcmtUdXJxdW9pc2UKKyAgICAgICAgKCJsaWdodGdy
YXkiICAgICAgNyA0ODY0MCA0ODY0MCA0ODY0MCkgOyBHcmF5CisgICAgICAgICgiZGFya2dyYXki
ICAgICAgIDggMjYxMTIgMjYxMTIgMjYxMTIpIDsgR3JheTQwCisgICAgICAgICgibGlnaHRyZWQi
ICAgICAgIDkgNjU1MzUgICAgIDAgICAgIDApIDsgUmVkCisgICAgICAgICgibGlnaHRncmVlbiIg
ICAgMTAgICAgIDAgNjU1MzUgICAgIDApIDsgR3JlZW4KKyAgICAgICAgKCJ5ZWxsb3ciICAgICAg
ICAxMSA2NTUzNSA2NTUzNSAgICAgMCkgOyBZZWxsb3cKKyAgICAgICAgKCJsaWdodGJsdWUiICAg
ICAxMiAgICAgMCAgICAgMCA2NTUzNSkgOyBCbHVlCisgICAgICAgICgibGlnaHRtYWdlbnRhIiAg
MTMgNjU1MzUgICAgIDAgNjU1MzUpIDsgTWFnZW50YQorICAgICAgICAoImxpZ2h0Y3lhbiIgICAg
IDE0ICAgICAwIDY1NTM1IDY1NTM1KSA7IEN5YW4KKyAgICAgICAgKCJ3aGl0ZSIgICAgICAgICAx
NSA2NTUzNSA2NTUzNSA2NTUzNSkpCisgICAgJygoImJsYWNrIiAgICAgICAgICAwICAgICAwICAg
ICAwICAgICAwKQorICAgICAgKCJibHVlIiAgICAgICAgICAgMSAgICAgMCAgICAgMCA1MjQ4MCkg
OyBNZWRpdW1CbHVlCisgICAgICAoImdyZWVuIiAgICAgICAgICAyICA4NzA0IDM1NTg0ICA4NzA0
KSA7IEZvcmVzdEdyZWVuCisgICAgICAoImN5YW4iICAgICAgICAgICAzICAgICAwIDUyNzM2IDUz
NTA0KSA7IERhcmtUdXJxdW9pc2UKKyAgICAgICgicmVkIiAgICAgICAgICAgIDQgNDU1NjggIDg3
MDQgIDg3MDQpIDsgRmlyZUJyaWNrCisgICAgICAoIm1hZ2VudGEiICAgICAgICA1IDM1NTg0ICAg
ICAwIDM1NTg0KSA7IERhcmtNYWdlbnRhCisgICAgICAoImJyb3duIiAgICAgICAgICA2IDQwOTYw
IDIwOTkyIDExNTIwKSA7IFNpZW5uYQorICAgICAgKCJsaWdodGdyYXkiICAgICAgNyA0ODY0MCA0
ODY0MCA0ODY0MCkgOyBHcmF5CisgICAgICAoImRhcmtncmF5IiAgICAgICA4IDI2MTEyIDI2MTEy
IDI2MTEyKSA7IEdyYXk0MAorICAgICAgKCJsaWdodGJsdWUiICAgICAgOSAgICAgMCAgICAgMCA2
NTUzNSkgOyBCbHVlCisgICAgICAoImxpZ2h0Z3JlZW4iICAgIDEwICAgICAwIDY1NTM1ICAgICAw
KSA7IEdyZWVuCisgICAgICAoImxpZ2h0Y3lhbiIgICAgIDExICAgICAwIDY1NTM1IDY1NTM1KSA7
IEN5YW4KKyAgICAgICgibGlnaHRyZWQiICAgICAgMTIgNjU1MzUgICAgIDAgICAgIDApIDsgUmVk
CisgICAgICAoImxpZ2h0bWFnZW50YSIgIDEzIDY1NTM1ICAgICAwIDY1NTM1KSA7IE1hZ2VudGEK
KyAgICAgICgieWVsbG93IiAgICAgICAgMTQgNjU1MzUgNjU1MzUgICAgIDApIDsgWWVsbG93Cisg
ICAgICAoIndoaXRlIiAgICAgICAgIDE1IDY1NTM1IDY1NTM1IDY1NTM1KSkpCiAiQSBsaXN0IG9m
IFZHQSBjb25zb2xlIGNvbG9ycywgdGhlaXIgaW5kaWNlcyBhbmQgMTYtYml0IFJHQiB2YWx1ZXMu
IikKIAogKGRlY2xhcmUtZnVuY3Rpb24geC1zZXR1cC1mdW5jdGlvbi1rZXlzICJ0ZXJtL2NvbW1v
bi13aW4iIChmcmFtZSkpCkBAIC01MCw2ICs2Nyw0NyBAQAogKGRlY2xhcmUtZnVuY3Rpb24gdzMy
LWdldC1jb25zb2xlLWNvZGVwYWdlICJ3MzJwcm9jLmMiICgpKQogKGRlY2xhcmUtZnVuY3Rpb24g
dzMyLWdldC1jb25zb2xlLW91dHB1dC1jb2RlcGFnZSAidzMycHJvYy5jIiAoKSkKIAorKGRlZnVu
IHczMmNvbi1kZWZpbmUtYmFzZS1jb2xvcnMgKCkKKyAgIkRlZmluZXMgYmFzZSBjb2xvciBzcGFj
ZSBmb3IgdzMyIgorICAobGV0KiAoKGNvbG9ycyB3MzItdHR5LXN0YW5kYXJkLWNvbG9ycykKKyAg
ICAgICAgIChuYmFzZSAobGVuZ3RoIGNvbG9ycykpCisgICAgICAgICAoY29sb3IgKGNhciBjb2xv
cnMpKSkKKyAgICAocHJvZ24gKHdoaWxlIGNvbG9ycworICAgICAgICAgICAgICh0dHktY29sb3It
ZGVmaW5lIChjYXIgY29sb3IpIChjYWRyIGNvbG9yKSAoY2RkciBjb2xvcikpCisgICAgICAgICAg
ICAgKHNldHEgY29sb3JzIChjZHIgY29sb3JzKQorICAgICAgICAgICAgICAgICAgIGNvbG9yICAo
Y2FyIGNvbG9ycykpKQorICAgICAgICAgICBuYmFzZSkpKQorCisoZGVmdW4gdzMyY29uLWRlZmlu
ZS0yNTYtY29sb3JzICgpCisgICJEZWZpbmVzIDI1NiBjb2xvciBzcGFjZSIKKyAgKGxldCAoKHIg
MCkgKGIgMCkgKGcgMCkKKyAgICAgICAgKG4gKC0gMjU2ICh3MzJjb24tZGVmaW5lLWJhc2UtY29s
b3JzKSkpCisgICAgICAgIChjb252ZXJ0LXRvLTE2Yml0IChsYW1iZGEgKHByaW0pIChsb2dpb3Ig
cHJpbSAoYXNoIHByaW0gOCkpKSkpCisgICAgKHdoaWxlICg+IG4gMjQpIDs7IG5vbi1ncmV5Cisg
ICAgICAobGV0ICgoaSAoLSAyNTYgbikpCisgICAgICAgICAgICAoYyAobWFwY2FyIGNvbnZlcnQt
dG8tMTZiaXQKKyAgICAgICAgICAgICAgICAgICAgICAgKG1hcGNhciAobGFtYmRhICh4KSAoaWYg
KHplcm9wIHgpIDAgKCsgKCogeCA0MCkgNTUpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAobGlzdCByIGcgYikpKSkpCisgICAgICAgICh0dHktY29sb3ItZGVmaW5lIChmb3JtYXQg
ImNvbG9yLSVkIiBpKSBpIGMpKQorICAgICAgKHNldHEgYiAoMSsgYikpCisgICAgICAod2hlbiAo
PiBiIDUpIChzZXRxIGcgKDErIGcpIGIgMCkpCisgICAgICAod2hlbiAoPiBnIDUpIChzZXRxIHIg
KDErIHIpIGcgMCkpCisgICAgICAoc2V0cSBuICgxLSBuKSkpCisgICAgKHdoaWxlICg+IG4gMCkg
OzsgYWxsLWdyZXkKKyAgICAgIChsZXQqICgoaSAoLSAyNTYgbikpCisgICAgICAgICAgICAgKHYg
KGZ1bmNhbGwgY29udmVydC10by0xNmJpdCAoKyA4ICgqICgtIDI0IG4pIDEwKSkpKQorICAgICAg
ICAgICAgIChjIChsaXN0IHYgdiB2KSkpCisgICAgICAgICh0dHktY29sb3ItZGVmaW5lIChmb3Jt
YXQgImNvbG9yLSVkIiBpKSBpIGMpKQorICAgICAgKHNldHEgbiAoMS0gbikpKSkpCisKKyhkZWZ1
biB3MzJjb24tZGVmaW5lLTI0Yml0LWNvbG9ycyAoKQorICAiRGVmaW5lcyAyNCBiaXQgY29sb3Ig
c3BhY2UiCisgIChsZXQgKChpICh3MzJjb24tZGVmaW5lLWJhc2UtY29sb3JzKSkpCisgICAgKG1h
cGMgKGxhbWJkYSAoYykgKHVubGVzcyAoYXNzb2MgKGNhciBjKSB3MzItdHR5LXN0YW5kYXJkLWNv
bG9ycykKKyAgICAgICAgICAgICAgICAgICAodHR5LWNvbG9yLWRlZmluZSAoY2FyIGMpIGkgKGNk
ciBjKSkKKyAgICAgICAgICAgICAgICAgICAoc2V0cSBpICgxKyBpKSkpKQorICAgICAgICAgIGNv
bG9yLW5hbWUtcmdiLWFsaXN0KSkpCisKIChkZWZ1biB0ZXJtaW5hbC1pbml0LXczMmNvbnNvbGUg
KCkKICAgIlRlcm1pbmFsIGluaXRpYWxpemF0aW9uIGZ1bmN0aW9uIGZvciB3MzIgY29uc29sZS4i
CiAgIDs7IFNoYXJlIGZ1bmN0aW9uIGtleSBpbml0aWFsaXphdGlvbiB3aXRoIHczMiBndWkgZnJh
bWVzCkBAIC02MCwyMiArMTE4LDIxIEBACiAJKG9lbS1jb2RlLXBhZ2Utb3V0cHV0LWNvZGluZwog
CSAoaW50ZXJuIChmb3JtYXQgImNwJWQiICh3MzItZ2V0LWNvbnNvbGUtb3V0cHV0LWNvZGVwYWdl
KSkpKQogCW9lbS1jcy1wIG9lbS1vLWNzLXApCi0JKHNldHEgb2VtLWNzLXAgKGNvZGluZy1zeXN0
ZW0tcCBvZW0tY29kZS1wYWdlLWNvZGluZykpCi0JKHNldHEgb2VtLW8tY3MtcCAoY29kaW5nLXN5
c3RlbS1wIG9lbS1jb2RlLXBhZ2Utb3V0cHV0LWNvZGluZykpCi0JKHdoZW4gb2VtLWNzLXAKLQkg
IChzZXQta2V5Ym9hcmQtY29kaW5nLXN5c3RlbSBvZW0tY29kZS1wYWdlLWNvZGluZykKLQkgIChz
ZXQtdGVybWluYWwtY29kaW5nLXN5c3RlbQotCSAgIChpZiBvZW0tby1jcy1wIG9lbS1jb2RlLXBh
Z2Utb3V0cHV0LWNvZGluZyBvZW0tY29kZS1wYWdlLWNvZGluZykpCi0gICAgICAgICAgOzsgU2lu
Y2Ugd2UgY2hhbmdlZCB0aGUgdGVybWluYWwgZW5jb2RpbmcsIHdlIG5lZWQgdG8gcmVwZWF0Ci0g
ICAgICAgICAgOzsgdGhlIHRlc3QgZm9yIFVuaWNvZGUgcXVvdGVzIGJlaW5nIGRpc3BsYXlhYmxl
LgotICAgICAgICAgIChzdGFydHVwLS1zZXR1cC1xdW90ZS1kaXNwbGF5KSkpCi0gIChsZXQqICgo
Y29sb3JzIHczMi10dHktc3RhbmRhcmQtY29sb3JzKQotICAgICAgICAgKGNvbG9yIChjYXIgY29s
b3JzKSkpCi0gICAgKHR0eS1jb2xvci1jbGVhcikKLSAgICAod2hpbGUgY29sb3JzCi0gICAgICAo
dHR5LWNvbG9yLWRlZmluZSAoY2FyIGNvbG9yKSAoY2FkciBjb2xvcikgKGNkZHIgY29sb3IpKQot
ICAgICAgKHNldHEgY29sb3JzIChjZHIgY29sb3JzKQotICAgICAgICAgICAgY29sb3IgKGNhciBj
b2xvcnMpKSkpCisgICAgKHNldHEgb2VtLWNzLXAgKGNvZGluZy1zeXN0ZW0tcCBvZW0tY29kZS1w
YWdlLWNvZGluZykpCisgICAgKHNldHEgb2VtLW8tY3MtcCAoY29kaW5nLXN5c3RlbS1wIG9lbS1j
b2RlLXBhZ2Utb3V0cHV0LWNvZGluZykpCisgICAgKHdoZW4gb2VtLWNzLXAKKyAgICAgIChzZXQt
a2V5Ym9hcmQtY29kaW5nLXN5c3RlbSBvZW0tY29kZS1wYWdlLWNvZGluZykKKyAgICAgIChzZXQt
dGVybWluYWwtY29kaW5nLXN5c3RlbQorICAgICAgIChpZiBvZW0tby1jcy1wIG9lbS1jb2RlLXBh
Z2Utb3V0cHV0LWNvZGluZyBvZW0tY29kZS1wYWdlLWNvZGluZykpCisgICAgICA7OyBTaW5jZSB3
ZSBjaGFuZ2VkIHRoZSB0ZXJtaW5hbCBlbmNvZGluZywgd2UgbmVlZCB0byByZXBlYXQKKyAgICAg
IDs7IHRoZSB0ZXN0IGZvciBVbmljb2RlIHF1b3RlcyBiZWluZyBkaXNwbGF5YWJsZS4KKyAgICAg
IChzdGFydHVwLS1zZXR1cC1xdW90ZS1kaXNwbGF5KSkpCisgIDs7IERlZmluZSB0aGUgY29sb3Ig
c3BhY2UKKyAgKHR0eS1jb2xvci1jbGVhcikKKyAgKGxldCAoKG5jb2xvcnMgKGRpc3BsYXktY29s
b3ItY2VsbHMpKSkKKyAgICAoY29uZCAoKD0gbmNvbG9ycyAxNjc3NzIxNikgKHczMmNvbi1kZWZp
bmUtMjRiaXQtY29sb3JzKSkKKyAgICAgICAgICAoKD0gbmNvbG9ycyAyNjUgICAgICAgKHczMmNv
bi1kZWZpbmUtMjU2LWNvbG9ycykpKQorICAgICAgICAgICh0ICAgICAgICAgICAgICAgICAgICAo
dzMyY29uLWRlZmluZS1iYXNlLWNvbG9ycykpKSkKICAgKGNsZWFyLWZhY2UtY2FjaGUpCiAgIDs7
IEZpZ3VyZSBvdXQgd2hhdCBhcmUgdGhlIGNvbG9ycyBvZiB0aGUgY29uc29sZSB3aW5kb3csIGFu
ZCBzZXQgdXAKICAgOzsgdGhlIGJhY2tncm91bmQtbW9kZSBjb3JyZXNwb25kaW5nbHkuCmRpZmYg
LS1naXQgYS9zcmMvbnN0ZXJtLm0gYi9zcmMvbnN0ZXJtLm0KaW5kZXggNTEyNzczOWUyZDkuLjY4
NGI3NTg2MDE5IDEwMDY0NAotLS0gYS9zcmMvbnN0ZXJtLm0KKysrIGIvc3JjL25zdGVybS5tCkBA
IC03MjY1LDEwICs3MjY1LDYgQEAgLSAodm9pZClpbnNlcnRUZXh0OiAoaWQpYVN0cmluZwogICBp
ZiAoIWVtYWNzX2V2ZW50KQogICAgIHJldHVybjsKIAotICAvKiBGaXJzdCwgY2xlYXIgYW55IHdv
cmtpbmcgdGV4dC4gICovCi0gIGlmICh3b3JraW5nVGV4dCAhPSBuaWwpCi0gICAgW3NlbGYgZGVs
ZXRlV29ya2luZ1RleHRdOwotCiAgIC8qIEl0IG1pZ2h0IGJlIHByZWZlcmFibGUgdG8gdXNlIGdl
dENoYXJhY3RlcnM6cmFuZ2U6IGJlbG93LAogICAgICBjZi4gaHR0cHM6Ly9kZXZlbG9wZXIuYXBw
bGUuY29tL2xpYnJhcnkvY29udGVudC9kb2N1bWVudGF0aW9uL0NvY29hL0NvbmNlcHR1YWwvQ29j
b2FQZXJmb3JtYW5jZS9BcnRpY2xlcy9TdHJpbmdEcmF3aW5nLmh0bWwjLy9hcHBsZV9yZWYvZG9j
L3VpZC9UUDQwMDAxNDQ1LTExMjM3OC4KICAgICAgSG93ZXZlciwgd2UgcHJvYmFibHkgY2FuJ3Qg
dXNlIFNBRkVfTkFMTE9DQSBoZXJlIGJlY2F1c2UgaXQgbWlnaHQKQEAgLTcyOTcsNiArNzI5Mywx
MCBAQCAtICh2b2lkKWluc2VydFRleHQ6IChpZClhU3RyaW5nCiAgICAgICBlbWFjc19ldmVudC0+
Y29kZSA9IGNvZGU7CiAgICAgICBFVl9UUkFJTEVSICgoaWQpbmlsKTsKICAgICB9CisKKyAgLyog
RmluYWxseSwgY2xlYXIgYW55IHdvcmtpbmcgdGV4dC4gICovCisgIGlmICh3b3JraW5nVGV4dCAh
PSBuaWwpCisgICAgW3NlbGYgZGVsZXRlV29ya2luZ1RleHRdOwogfQogCiAKZGlmZiAtLWdpdCBh
L3NyYy90ZXJtLmMgYi9zcmMvdGVybS5jCmluZGV4IGExZTNmNjMxMmM2Li5lNzYyMDI0YmRkNSAx
MDA2NDQKLS0tIGEvc3JjL3Rlcm0uYworKysgYi9zcmMvdGVybS5jCkBAIC00Njg2LDcgKzQ2ODYs
MTcgQEAgdXNlIHRoZSBCb3VybmUgc2hlbGwgY29tbWFuZCAnVEVSTT0uLi47IGV4cG9ydCBURVJN
JyAoQy1zaGVsbDpcblwKICAgICAgZG9uJ3QgdGhpbmsgd2UncmUgbG9zaW5nIGFueXRoaW5nIGJ5
IHR1cm5pbmcgaXQgb2ZmLiAgKi8KICAgdHR5LT5saW5lX2luc19kZWxfb2sgPSAwOwogCi0gIHR0
eS0+VE5fbWF4X2NvbG9ycyA9IDE2OyAgLyogTXVzdCBiZSBub24temVybyBmb3IgdHR5LWRpc3Bs
YXktY29sb3ItcC4gICovCisgIC8qIFN1cHBvcnQgZnVsbCByYW5nZSBvZiBjb2xvcnMgaW4gbmV3
IHdpbmRvd3MgdGVybWluYWwgYXBwICovCisgICNpZiBkZWZpbmVkKFVTRV9XMzJDT05WVENPTE9S
XzE2KQorICAgIHR0eS0+VE5fbWF4X2NvbG9ycyA9IDE2OworICAjZWxpZiBkZWZpbmVkKFVTRV9X
MzJDT05WVENPTE9SXzI1NikKKyAgICB0dHktPlROX21heF9jb2xvcnMgPSAyNTY7CisgICNlbGlm
IGRlZmluZWQoVVNFX1czMkNPTlZUQ09MT1JfMjRCSVQpCisgICAgdHR5LT5UTl9tYXhfY29sb3Jz
ID0gMTY3NzcyMTY7CisgICNlbHNlCisgICAgLyogTXVzdCBiZSBub24temVybyBmb3IgdHR5LWRp
c3BsYXktY29sb3ItcC4gICovCisgICAgdHR5LT5UTl9tYXhfY29sb3JzID0gMTY7CisgICNlbmRp
ZgogI2VuZGlmCS8qIERPU19OVCAqLwogCiAjaWZkZWYgSEFWRV9HUE0KZGlmZiAtLWdpdCBhL3Ny
Yy93MzJjb25zb2xlLmMgYi9zcmMvdzMyY29uc29sZS5jCmluZGV4IDFiY2EwY2FkZmY5Li41YTVk
NTE5ZmZjMyAxMDA2NDQKLS0tIGEvc3JjL3czMmNvbnNvbGUuYworKysgYi9zcmMvdzMyY29uc29s
ZS5jCkBAIC01Myw2ICs1MywxMCBAQCBzdGF0aWMgdm9pZCB3MzJjb25fc2V0X3Rlcm1pbmFsX21v
ZGVzIChzdHJ1Y3QgdGVybWluYWwgKnQpOwogc3RhdGljIHZvaWQgdzMyY29uX3VwZGF0ZV9iZWdp
biAoc3RydWN0IGZyYW1lICogZik7CiBzdGF0aWMgdm9pZCB3MzJjb25fdXBkYXRlX2VuZCAoc3Ry
dWN0IGZyYW1lICogZik7CiBzdGF0aWMgV09SRCB3MzJfZmFjZV9hdHRyaWJ1dGVzIChzdHJ1Y3Qg
ZnJhbWUgKmYsIGludCBmYWNlX2lkKTsKKyNpZiBkZWZpbmVkKFVTRV9XMzJDT05WVENPTE9SXzE2
KSB8fCBkZWZpbmVkKFVTRV9XMzJDT05WVENPTE9SXzI1NikgfHwgZGVmaW5lZChVU0VfVzMyQ09O
VlRDT0xPUl8yNEJJVCkKK3N0YXRpYyB2b2lkIHR1cm5fb25fZmFjZSAoc3RydWN0IGZyYW1lICos
IGludCBmYWNlX2lkKTsKK3N0YXRpYyB2b2lkIHR1cm5fb2ZmX2ZhY2UgKHN0cnVjdCBmcmFtZSAq
LCBpbnQgZmFjZV9pZCk7CisjZW5kaWYKIAogc3RhdGljIENPT1JECWN1cnNvcl9jb29yZHM7CiBz
dGF0aWMgSEFORExFCXByZXZfc2NyZWVuLCBjdXJfc2NyZWVuOwpAQCAtMTY2LDEwICsxNzAsMTAg
QEAgdzMyY29uX2NsZWFyX2VuZF9vZl9saW5lIChzdHJ1Y3QgZnJhbWUgKmYsIGludCBlbmQpCiAg
ICAgewogICAgICAgaW50IGk7CiAgICAgICBmb3IgKGkgPSAwOyBpIDwgZ2x5cGhzX2xlbjsgaSsr
KQotICAgICAgICB7CisJewogCSAgbWVtY3B5ICgmZ2x5cGhzW2ldLCAmc3BhY2VfZ2x5cGgsIHNp
emVvZiAoc3RydWN0IGdseXBoKSk7CiAJICBnbHlwaHNbaV0uZnJhbWUgPSBOVUxMOwotICAgICAg
ICB9CisJfQogICAgICAgY2VvbF9pbml0aWFsaXplZCA9IFRSVUU7CiAgICAgfQogICB3MzJjb25f
d3JpdGVfZ2x5cGhzIChmLCBnbHlwaHMsIGVuZCAtIGN1cnNvcl9jb29yZHMuWCk7CkBAIC0yMTgs
MjYgKzIyMiwyNiBAQCB3MzJjb25faW5zX2RlbF9saW5lcyAoc3RydWN0IGZyYW1lICpmLCBpbnQg
dnBvcywgaW50IG4pCiAgIGlmIChuID4gMCkKICAgICB7CiAgICAgICBpZiAoc2Nyb2xsLkJvdHRv
bSA8IGRlc3QuWSkKLSAgICAgICAgeworCXsKIAkgIGZvciAoaSA9IHNjcm9sbC5Cb3R0b207IGkg
PCBkZXN0Llk7IGkrKykKLSAgICAgICAgICAgIHsKKwkgICAgewogCSAgICAgIHczMmNvbl9tb3Zl
X2N1cnNvciAoZiwgaSwgMCk7CiAJICAgICAgdzMyY29uX2NsZWFyX2VuZF9vZl9saW5lIChmLCBG
UkFNRV9DT0xTIChmKSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KKwkgICAgfQorCX0KICAg
ICB9CiAgIGVsc2UKICAgICB7CiAgICAgICBuYiA9IGRlc3QuWSArIChzY3JvbGwuQm90dG9tIC0g
c2Nyb2xsLlRvcCkgKyAxOwogCiAgICAgICBpZiAobmIgPCBzY3JvbGwuVG9wKQotICAgICAgICB7
CisJewogCSAgZm9yIChpID0gbmI7IGkgPCBzY3JvbGwuVG9wOyBpKyspCi0gICAgICAgICAgICB7
CisJICAgIHsKIAkgICAgICB3MzJjb25fbW92ZV9jdXJzb3IgKGYsIGksIDApOwogCSAgICAgIHcz
MmNvbl9jbGVhcl9lbmRfb2ZfbGluZSAoZiwgRlJBTUVfQ09MUyAoZikpOwotICAgICAgICAgICAg
fQotICAgICAgICB9CisJICAgIH0KKwl9CiAgICAgfQogCiAgIGN1cnNvcl9jb29yZHMuWCA9IDA7
CkBAIC0zMDYsMTAgKzMxMCwxNCBAQCB3MzJjb25faW5zZXJ0X2dseXBocyAoc3RydWN0IGZyYW1l
ICpmLCByZWdpc3RlciBzdHJ1Y3QgZ2x5cGggKnN0YXJ0LAogCiBzdGF0aWMgdm9pZAogdzMyY29u
X3dyaXRlX2dseXBocyAoc3RydWN0IGZyYW1lICpmLCByZWdpc3RlciBzdHJ1Y3QgZ2x5cGggKnN0
cmluZywKLSAgICAgICAgICAgICAgICAgICAgIHJlZ2lzdGVyIGludCBsZW4pCisJCSAgICAgcmVn
aXN0ZXIgaW50IGxlbikKIHsKICAgRFdPUkQgcjsKKworICAjaWYgZGVmaW5lZChVU0VfVzMyQ09O
VlRDT0xPUl8xNikgfHwgZGVmaW5lZChVU0VfVzMyQ09OVlRDT0xPUl8yNTYpIHx8IGRlZmluZWQo
VVNFX1czMkNPTlZUQ09MT1JfMjRCSVQpCisgICNlbHNlCiAgIFdPUkQgY2hhcl9hdHRyOworICAj
ZW5kaWYKICAgTFBDU1RSIGNvbnZlcnNpb25fYnVmZmVyOwogICBzdHJ1Y3QgY29kaW5nX3N5c3Rl
bSAqY29kaW5nOwogCkBAIC0zNDAsMTAgKzM0OCwxNSBAQCB3MzJjb25fd3JpdGVfZ2x5cGhzIChz
dHJ1Y3QgZnJhbWUgKmYsIHJlZ2lzdGVyIHN0cnVjdCBnbHlwaCAqc3RyaW5nLAogCSAgICAgICYm
IHN0cmluZ1tuXS5mcmFtZSA9PSBmYWNlX2lkX2ZyYW1lKSkKIAkgIGJyZWFrOwogCi0gICAgICAv
KiB3MzJjb25fY2xlYXJfZW5kX29mX2xpbmUgc2V0cyBmcmFtZSBvZiBnbHlwaHMgdG8gTlVMTC4g
ICovCi0gICAgICBzdHJ1Y3QgZnJhbWUgKmF0dHJfZnJhbWUgPSBmYWNlX2lkX2ZyYW1lID8gZmFj
ZV9pZF9mcmFtZSA6IGY7Ci0gICAgICAvKiBUdXJuIGFwcGVhcmFuY2UgbW9kZXMgb2YgdGhlIGZh
Y2Ugb2YgdGhlIHJ1biBvbi4gICovCi0gICAgICBjaGFyX2F0dHIgPSB3MzJfZmFjZV9hdHRyaWJ1
dGVzIChhdHRyX2ZyYW1lLCBmYWNlX2lkKTsKKyNpZiBkZWZpbmVkKFVTRV9XMzJDT05WVENPTE9S
XzE2KSB8fCBkZWZpbmVkKFVTRV9XMzJDT05WVENPTE9SXzI1NikgfHwgZGVmaW5lZChVU0VfVzMy
Q09OVlRDT0xPUl8yNEJJVCkKKwl0dXJuX29uX2ZhY2UgKGYsIGZhY2VfaWQpOworI2Vsc2UKKwkv
KiB3MzJjb25fY2xlYXJfZW5kX29mX2xpbmUgc2V0cyBmcmFtZSBvZiBnbHlwaHMgdG8gTlVMTC4g
ICovCisJc3RydWN0IGZyYW1lICphdHRyX2ZyYW1lID0gZmFjZV9pZF9mcmFtZSA/IGZhY2VfaWRf
ZnJhbWUgOiBmOworCisJLyogVHVybiBhcHBlYXJhbmNlIG1vZGVzIG9mIHRoZSBmYWNlIG9mIHRo
ZSBydW4gb24uICAqLworCWNoYXJfYXR0ciA9IHczMl9mYWNlX2F0dHJpYnV0ZXMgKGF0dHJfZnJh
bWUsIGZhY2VfaWQpOworI2VuZGlmCiAKICAgICAgIGlmIChuID09IGxlbikKIAkvKiBUaGlzIGlz
IHRoZSBsYXN0IHJ1bi4gICovCkBAIC0zNTEsNiArMzY0LDE1IEBAIHczMmNvbl93cml0ZV9nbHlw
aHMgKHN0cnVjdCBmcmFtZSAqZiwgcmVnaXN0ZXIgc3RydWN0IGdseXBoICpzdHJpbmcsCiAgICAg
ICBjb252ZXJzaW9uX2J1ZmZlciA9IChMUENTVFIpIGVuY29kZV90ZXJtaW5hbF9jb2RlIChzdHJp
bmcsIG4sIGNvZGluZyk7CiAgICAgICBpZiAoY29kaW5nLT5wcm9kdWNlZCA+IDApCiAJeworI2lm
IGRlZmluZWQoVVNFX1czMkNPTlZUQ09MT1JfMTYpIHx8IGRlZmluZWQoVVNFX1czMkNPTlZUQ09M
T1JfMjU2KSB8fCBkZWZpbmVkKFVTRV9XMzJDT05WVENPTE9SXzI0QklUKQorCSAgaWYgKCFXcml0
ZUNvbnNvbGUgKGN1cl9zY3JlZW4sIGNvbnZlcnNpb25fYnVmZmVyLAorCQkJICAgICBjb2Rpbmct
PnByb2R1Y2VkLCAmciwgTlVMTCkpCisJICAgIHsKKwkgICAgICBwcmludGYgKCJGYWlsZWQgd3Jp
dGluZyBjb25zb2xlIGNoYXJhY3RlcnM6ICVsdVxuIiwKKwkJICAgICAgR2V0TGFzdEVycm9yICgp
KTsKKwkgICAgICBmZmx1c2ggKHN0ZG91dCk7CisJICAgIH0KKyNlbHNlCiAJICAvKiBTZXQgdGhl
IGF0dHJpYnV0ZSBmb3IgdGhlc2UgY2hhcmFjdGVycy4gICovCiAJICBpZiAoIUZpbGxDb25zb2xl
T3V0cHV0QXR0cmlidXRlIChjdXJfc2NyZWVuLCBjaGFyX2F0dHIsCiAJCQkJCSAgIGNvZGluZy0+
cHJvZHVjZWQsIGN1cnNvcl9jb29yZHMsCkBAIC0zNzAsMTIgKzM5MiwxNiBAQCB3MzJjb25fd3Jp
dGVfZ2x5cGhzIChzdHJ1Y3QgZnJhbWUgKmYsIHJlZ2lzdGVyIHN0cnVjdCBnbHlwaCAqc3RyaW5n
LAogCQkgICAgICBHZXRMYXN0RXJyb3IgKCkpOwogCSAgICAgIGZmbHVzaCAoc3Rkb3V0KTsKIAkg
ICAgfQotCisjZW5kaWYKIAkgIGN1cnNvcl9jb29yZHMuWCArPSBjb2RpbmctPnByb2R1Y2VkOwog
CSAgdzMyY29uX21vdmVfY3Vyc29yIChmLCBjdXJzb3JfY29vcmRzLlksIGN1cnNvcl9jb29yZHMu
WCk7CiAJfQogICAgICAgbGVuIC09IG47CiAgICAgICBzdHJpbmcgKz0gbjsKKworI2lmIGRlZmlu
ZWQoVVNFX1czMkNPTlZUQ09MT1JfMTYpIHx8IGRlZmluZWQoVVNFX1czMkNPTlZUQ09MT1JfMjU2
KSB8fCBkZWZpbmVkKFVTRV9XMzJDT05WVENPTE9SXzI0QklUKQorICAgICAgdHVybl9vZmZfZmFj
ZSAoZiwgZmFjZV9pZCk7CisjZW5kaWYKICAgICB9CiB9CiAKQEAgLTQ5OCw3ICs1MjQsNyBAQCB0
dHlfZHJhd19yb3dfd2l0aF9tb3VzZV9mYWNlIChzdHJ1Y3Qgd2luZG93ICp3LCBzdHJ1Y3QgZ2x5
cGhfcm93ICp3aW5kb3dfcm93LAogCQkgIH0KIAkJICBicmVhazsKIAotCQljYXNlIERSQVdfSU5W
RVJTRV9WSURFTzoKKwkJY2FzZSBEUkFXX0lOVkVSU0VfVklERU86IC8vIHNlZSBjb21tZW50IGlu
IHR1cm5fb25fZmFjZQogCQljYXNlIERSQVdfQ1VSU09SOgogCQljYXNlIERSQVdfSU1BR0VfUkFJ
U0VEOgogCQljYXNlIERSQVdfSU1BR0VfU1VOS0VOOgpAQCAtNTc4LDYgKzYwNCwxMyBAQCB3MzJj
b25fc2V0X3Rlcm1pbmFsX21vZGVzIChzdHJ1Y3QgdGVybWluYWwgKnQpCiAgIC8qIEluaXRpYWxp
emUgaW5wdXQgbW9kZTogaW50ZXJydXB0X2lucHV0IG9mZiwgbm8gZmxvdyBjb250cm9sLCBhbGxv
dwogICAgICA4IGJpdCBjaGFyYWN0ZXIgaW5wdXQsIHN0YW5kYXJkIHF1aXQgY2hhci4gICovCiAg
IEZzZXRfaW5wdXRfbW9kZSAoUW5pbCwgUW5pbCwgbWFrZV9maXhudW0gKDIpLCBRbmlsKTsKKwor
I2lmIGRlZmluZWQoVVNFX1czMkNPTlZUQ09MT1JfMTYpIHx8IGRlZmluZWQoVVNFX1czMkNPTlZU
Q09MT1JfMjU2KSB8fCBkZWZpbmVkKFVTRV9XMzJDT05WVENPTE9SXzI0QklUKQorICBEV09SRCBt
b2RlOworICBHZXRDb25zb2xlTW9kZSAoY3VyX3NjcmVlbiwgJm1vZGUpOworICBtb2RlIHw9IEVO
QUJMRV9WSVJUVUFMX1RFUk1JTkFMX1BST0NFU1NJTkc7CisgIFNldENvbnNvbGVNb2RlIChjdXJf
c2NyZWVuLCBtb2RlKTsKKyNlbmRpZgogfQogCiAvKiBobW1tLi4uIHBlcmhhcHMgdGhlc2UgbGV0
IHVzIGJyYWNrZXQgc2NyZWVuIGNoYW5nZXMgc28gdGhhdCB3ZSBjYW4gZmx1c2gKQEAgLTcyOSw2
ICs3NjIsMTEwIEBAIHczMl9mYWNlX2F0dHJpYnV0ZXMgKHN0cnVjdCBmcmFtZSAqZiwgaW50IGZh
Y2VfaWQpCiAgIHJldHVybiBjaGFyX2F0dHI7CiB9CiAKKyNpZiBkZWZpbmVkKFVTRV9XMzJDT05W
VENPTE9SXzE2KSB8fCBkZWZpbmVkKFVTRV9XMzJDT05WVENPTE9SXzI1NikgfHwgZGVmaW5lZChV
U0VfVzMyQ09OVlRDT0xPUl8yNEJJVCkKK3N0YXRpYyB2b2lkCit0dXJuX29uX2ZhY2UgKHN0cnVj
dCBmcmFtZSAqZiwgaW50IGZhY2VfaWQpCit7CisgIHN0cnVjdCBmYWNlICpmYWNlID0gRkFDRV9G
Uk9NX0lEIChmLCBmYWNlX2lkKTsKKyAgdW5zaWduZWQgbG9uZyBmZyA9IGZhY2UtPmZvcmVncm91
bmQ7CisgIHVuc2lnbmVkIGxvbmcgYmcgPSBmYWNlLT5iYWNrZ3JvdW5kOworICBzdHJ1Y3QgdHR5
X2Rpc3BsYXlfaW5mbyAqdHR5ID0gRlJBTUVfVFRZIChmKTsKKyAgRFdPUkQgcjsKKworICAvKiBy
ZWFsaXplX3R0eV9mYWNlIGluIHhmYWNlcy5jIHN3YXBzIHRoZSB2YWx1ZXMgb2YgZmcgYW5kIGJn
IGlmCisgIGZhY2UtPnR0eV9yZXZlcnNlX3AuIEFkZGluZyB0aGUgdGVybWluYWwgc2VxdWVuY2Ug
IhtbN20iIGhlcmUKKyAgc3dhcHMgdGhlbSBiYWNrLCBhbmQgbWFrZXMgZm9yIGEgdHJpY2t5IGxp
dHRsZSBidWcuIEJld2FyZSEgKi8KKyAgaWYgKGZhY2UtPnR0eV9ib2xkX3ApCisgICAgV3JpdGVD
b25zb2xlIChjdXJfc2NyZWVuLCAiG1sxbSIsIDQsICZyLCBOVUxMKTsKKyAgaWYgKGZhY2UtPnR0
eV9pdGFsaWNfcCkKKyAgICBXcml0ZUNvbnNvbGUgKGN1cl9zY3JlZW4sICIbWzNtIiwgNCwgJnIs
IE5VTEwpOworICBpZiAoZmFjZS0+dHR5X3N0cmlrZV90aHJvdWdoX3ApCisgICAgV3JpdGVDb25z
b2xlIChjdXJfc2NyZWVuLCAiG1s5bSIsIDQsICZyLCBOVUxMKTsKKyAgaWYgKGZhY2UtPnVuZGVy
bGluZSAhPSAwKSAvKiBubyBzdXBwb3J0IGZvciBtdWx0aWNvbG9yIGdseXBocyBub3cgKi8KKyAg
ICBXcml0ZUNvbnNvbGUgKGN1cl9zY3JlZW4sICIbWzRtIiwgNCwgJnIsIE5VTEwpOworCisgIGlm
ICh0dHktPlROX21heF9jb2xvcnMgPiAwKQorICAgIHsKKyAgICAgIGlmICh0dHktPlROX21heF9j
b2xvcnMgPT0gMTYgfHwgdHR5LT5UTl9tYXhfY29sb3JzID09IDI1NikKKwl7CisJICBpZiAoZmcg
Pj0gMCAmJiBmZyA8IDgpCisJICAgIHsKKwkgICAgICBjaGFyIHBbMTBdOworCSAgICAgIHNucHJp
bnRmKHAsIDEwLCAiG1slbHVtIiwgZmcgKyAzMCk7CisJICAgICAgV3JpdGVDb25zb2xlIChjdXJf
c2NyZWVuLCBwLCBzdHJsZW4ocCksICZyLCBOVUxMKTsKKwkgICAgfQorCSAgaWYgKGZnID49IDgg
JiYgZmcgPCAxNikKKwkgICAgeworCSAgICAgIGNoYXIgcFsxMF07CisJICAgICAgc25wcmludGYo
cCwgMTAsICIbWyVsdW0iLCBmZyAtIDggKyA5MCk7CisJICAgICAgV3JpdGVDb25zb2xlIChjdXJf
c2NyZWVuLCBwLCBzdHJsZW4ocCksICZyLCBOVUxMKTsKKwkgICAgfQorCSAgaWYgKGZnID49IDE2
ICYmIGZnIDwgMjU2KQorCSAgICB7CisJICAgICAgY2hhciBwWzIwXTsKKwkgICAgICBzbnByaW50
ZihwLCAyMCwgIhtbMzg7NTslbHVtIiwgZmcpOworCSAgICAgIFdyaXRlQ29uc29sZSAoY3VyX3Nj
cmVlbiwgcCwgc3RybGVuKHApLCAmciwgTlVMTCk7CisJICAgIH0KKwkgIGlmIChiZyA+PSAwICYm
IGJnIDwgOCkKKwkgICAgeworCSAgICAgIGNoYXIgcFsxMF07CisJICAgICAgc25wcmludGYocCwg
MTAsICIbWyVsdW0iLCBiZyArIDQwKTsKKwkgICAgICBXcml0ZUNvbnNvbGUgKGN1cl9zY3JlZW4s
IHAsIHN0cmxlbihwKSwgJnIsIE5VTEwpOworCSAgICB9CisJICBpZiAoYmcgPj0gOCAmJiBiZyA8
IDE2KQorCSAgICB7CisJICAgICAgY2hhciBwWzEwXTsKKwkgICAgICBzbnByaW50ZihwLCAxMCwg
IhtbJWx1bSIsIGJnIC0gOCArIDEwMCk7CisJICAgICAgV3JpdGVDb25zb2xlIChjdXJfc2NyZWVu
LCBwLCBzdHJsZW4ocCksICZyLCBOVUxMKTsKKwkgICAgfQorCSAgaWYgKGJnPj0gMTYgJiYgYmcg
PCAyNTYpCisJICAgIHsKKwkgICAgICBjaGFyIHBbMjBdOworCSAgICAgIHNucHJpbnRmKHAsIDIw
LCAiG1s0ODs1OyVsdW0iLCBiZyk7CisJICAgICAgV3JpdGVDb25zb2xlIChjdXJfc2NyZWVuLCBw
LCBzdHJsZW4ocCksICZyLCBOVUxMKTsKKwkgICAgfQorCX0KKyAgICAgIGVsc2UgaWYgKHR0eS0+
VE5fbWF4X2NvbG9ycyA9PSAxNjc3NzIxNikKKworCisJeworCSAgY2hhciBwWzMwXTsKKwkgIHNu
cHJpbnRmKHAsMzAsICIbWzM4OzI7JWx1OyVsdTslbHVtIiwgZmcvNjU1MzYsIChmZy8yNTYpJjI1
NSwgZmcmMjU1KTsKKwkgIFdyaXRlQ29uc29sZSAoY3VyX3NjcmVlbiwgcCwgc3RybGVuKHApLCAm
ciwgTlVMTCk7CisKKwkgIGNoYXIgcVszMF07CisJICBzbnByaW50ZihxLCAzMCwgIhtbNDg7Mjsl
bHU7JWx1OyVsdW0iLCBiZy82NTUzNiwgKGJnLzI1NikmMjU1LCBiZyYyNTUpOworCSAgV3JpdGVD
b25zb2xlIChjdXJfc2NyZWVuLCBxLCBzdHJsZW4ocSksICZyLCBOVUxMKTsKKwl9CisgICAgfQor
fQorCitzdGF0aWMgdm9pZAordHVybl9vZmZfZmFjZSAoc3RydWN0IGZyYW1lICpmLCBpbnQgZmFj
ZV9pZCkKK3sKKyAgc3RydWN0IGZhY2UgKmZhY2UgPSBGQUNFX0ZST01fSUQgKGYsIGZhY2VfaWQp
OworICBzdHJ1Y3QgdHR5X2Rpc3BsYXlfaW5mbyAqdHR5ID0gRlJBTUVfVFRZIChmKTsKKyAgRFdP
UkQgcjsKKworICBpZiAoZmFjZS0+dHR5X2JvbGRfcAorICAgICAgfHwgZmFjZS0+dHR5X2l0YWxp
Y19wCisgICAgICB8fCBmYWNlLT50dHlfc3RyaWtlX3Rocm91Z2hfcAorICAgICAgfHwgKGZhY2Ut
PnVuZGVybGluZSAhPSAwKSkKKyAgICB7CisgICAgICBXcml0ZUNvbnNvbGUgKGN1cl9zY3JlZW4s
ICIbW20iLCAzLCAmciwgTlVMTCk7CisgICAgfQorICAvKiBTd2l0Y2ggYmFjayB0byBkZWZhdWx0
IGNvbG9ycy4gICovCisgIGlmICh0dHktPlROX21heF9jb2xvcnMgPiAwCisgICAgICAmJiAoKGZh
Y2UtPmZvcmVncm91bmQgIT0gRkFDRV9UVFlfREVGQVVMVF9DT0xPUgorCSAgICYmIGZhY2UtPmZv
cmVncm91bmQgIT0gRkFDRV9UVFlfREVGQVVMVF9GR19DT0xPUikKKwkgIHx8IChmYWNlLT5iYWNr
Z3JvdW5kICE9IEZBQ0VfVFRZX0RFRkFVTFRfQ09MT1IKKwkgICAgICAmJiBmYWNlLT5iYWNrZ3Jv
dW5kICE9IEZBQ0VfVFRZX0RFRkFVTFRfQkdfQ09MT1IpKSkKKyAgICB7CisgICAgICBXcml0ZUNv
bnNvbGUgKGN1cl9zY3JlZW4sICIbWzM5OzQ5bSIsIDgsICZyLCBOVUxMKTsKKyAgICB9Cit9Cisj
ZW5kaWYKKwogLyogVGhlIElNRSB3aW5kb3cgaXMgbmVlZGVkIHRvIHJlY2VpdmUgdGhlIHNlc3Np
b24gbm90aWZpY2F0aW9ucwogICAgcmVxdWlyZWQgdG8gcmVzZXQgdGhlIGxvdyBsZXZlbCBrZXli
b2FyZCBob29rIHN0YXRlLiAgKi8KIApAQCAtODM0LDcgKzk3MSw3IEBAIGluaXRpYWxpemVfdzMy
X2Rpc3BsYXkgKHN0cnVjdCB0ZXJtaW5hbCAqdGVybSwgaW50ICp3aWR0aCwgaW50ICpoZWlnaHQp
CiAJR2V0Q29uc29sZVNjcmVlbkJ1ZmZlckluZm8gKGN1cl9zY3JlZW4sICZpbmZvKTsKIAogCS8q
IFNocmluayB0aGUgd2luZG93IGZpcnN0LCBzbyB0aGUgYnVmZmVyIGRpbWVuc2lvbnMgY2FuIGJl
Ci0gICAgICAgICAgIHJlZHVjZWQgaWYgbmVjZXNzYXJ5LiAgKi8KKwkgICByZWR1Y2VkIGlmIG5l
Y2Vzc2FyeS4gICovCiAJbmV3X3dpbl9kaW1zLlRvcCA9IDA7CiAJbmV3X3dpbl9kaW1zLkxlZnQg
PSAwOwogCW5ld193aW5fZGltcy5Cb3R0b20gPSBtaW4gKG5ld19zaXplLlksIGluZm8uZHdTaXpl
LlkpIC0gMTsKQEAgLTk1Nyw3ICsxMDk0LDcgQEAgdm9pZAogc3ltc19vZl9udHRlcm0gKHZvaWQp
CiB7CiAgIERFRlZBUl9CT09MICgidzMyLXVzZS1mdWxsLXNjcmVlbi1idWZmZXIiLAotICAgICAg
ICAgICAgICAgdzMyX3VzZV9mdWxsX3NjcmVlbl9idWZmZXIsCisJICAgICAgIHczMl91c2VfZnVs
bF9zY3JlZW5fYnVmZmVyLAogCSAgICAgICBkb2M6IC8qIE5vbi1uaWwgbWVhbnMgbWFrZSB0ZXJt
aW5hbCBmcmFtZXMgdXNlIHRoZSBmdWxsIHNjcmVlbiBidWZmZXIgZGltZW5zaW9ucy4KIFRoaXMg
aXMgZGVzaXJhYmxlIHdoZW4gcnVubmluZyBFbWFjcyBvdmVyIHRlbG5ldC4KIEEgdmFsdWUgb2Yg
bmlsIG1lYW5zIHVzZSB0aGUgY3VycmVudCBjb25zb2xlIHdpbmRvdyBkaW1lbnNpb25zOyB0aGlz
CkBAIC05NjUsNiArMTEwMiwxNSBAQCBtYXkgYmUgcHJlZmVyYWJsZSB3aGVuIHdvcmtpbmcgZGly
ZWN0bHkgYXQgdGhlIGNvbnNvbGUgd2l0aCBhIGxhcmdlCiBzY3JvbGwtYmFjayBidWZmZXIuICAq
Lyk7CiAgIHczMl91c2VfZnVsbF9zY3JlZW5fYnVmZmVyID0gMDsKIAorICBERUZWQVJfQk9PTCAo
InczMmNvbi11c2UtdnQtY29sb3IiLAorCQl3MzJjb25fdXNlX3Z0X2NvbG9yLAorCQlkb2M6IC8q
IE5vbi1uaWwgbWVhbnMgdzMyY29uc29sZSB1c2VzIHRlcm1pbmFsIHNlcXVlbmNlcyByYXRoZXIg
dGhhbiB3MzIgY29uc29sZSBBUEkgZm9yIGNvbG9yLiAqLyk7CisjaWYgZGVmaW5lZChVU0VfVzMy
Q09OVlRDT0xPUl8xNikgfHwgZGVmaW5lZChVU0VfVzMyQ09OVlRDT0xPUl8yNTYpIHx8IGRlZmlu
ZWQoVVNFX1czMkNPTlZUQ09MT1JfMjRCSVQpCisgIHczMmNvbl91c2VfdnRfY29sb3IgPSAxOwor
I2Vsc2UKKyAgdzMyY29uX3VzZV92dF9jb2xvciA9IDA7CisjZW5kaWYKKwogICBkZWZzdWJyICgm
U3NldF9zY3JlZW5fY29sb3IpOwogICBkZWZzdWJyICgmU2dldF9zY3JlZW5fY29sb3IpOwogICBk
ZWZzdWJyICgmU3NldF9jdXJzb3Jfc2l6ZSk7Ci0tIAoyLjQ5LjAKCg==

--b1=_56Ex8KSqHpskbdU57OtDQXkNvCk2Cjxq6qorpOWB4I--





Message sent:


Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-Mailer: MIME-tools 5.505 (Entity 5.505)
Content-Type: text/plain; charset=utf-8
X-Loop: help-debbugs@HIDDEN
From: help-debbugs@HIDDEN (GNU bug Tracking System)
To: Ewan <ewan@HIDDEN>
Subject: bug#79297: Acknowledgement (patch: full color in windows terminal)
Message-ID: <handler.79297.B.175601558311168.ack <at> debbugs.gnu.org>
References: <G4Tou5OvKHBfVV6-9kmLezwXc0HkZ4RfJuFP5jFYbXZOVCiHPUDok76STaDWDT3d7nlqLLsJll2fHv8k9u3xgT1_DfsosfScbqHDWZG01-o=@etown.dev>
X-Gnu-PR-Message: ack 79297
X-Gnu-PR-Package: emacs
Reply-To: 79297 <at> debbugs.gnu.org
Date: Sun, 24 Aug 2025 06:07:02 +0000

Thank you for filing a new bug report with debbugs.gnu.org.

This is an automatically generated reply to let you know your message
has been received.

Your message is being forwarded to the package maintainers and other
interested parties for their attention; they will reply in due course.

Your message has been sent to the package maintainer(s):
 bug-gnu-emacs@HIDDEN

If you wish to submit further information on this problem, please
send it to 79297 <at> debbugs.gnu.org.

Please do not send mail to help-debbugs@HIDDEN unless you wish
to report a problem with the Bug-tracking system.

--=20
79297: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D79297
GNU Bug Tracking System
Contact help-debbugs@HIDDEN with problems


Message received at control <at> debbugs.gnu.org:


Received: (at control) by debbugs.gnu.org; 24 Aug 2025 07:20:20 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sun Aug 24 03:20:20 2025
Received: from localhost ([127.0.0.1]:43221 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1uq51X-0006NV-PK
	for submit <at> debbugs.gnu.org; Sun, 24 Aug 2025 03:20:20 -0400
Received: from eggs.gnu.org ([2001:470:142:3::10]:57656)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <eliz@HIDDEN>)
 id 1uq51U-0006NC-P8; Sun, 24 Aug 2025 03:20:17 -0400
Received: from fencepost.gnu.org ([2001:470:142:3::e])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <eliz@HIDDEN>)
 id 1uq51P-0004Tk-0V; Sun, 24 Aug 2025 03:20:11 -0400
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org;
 s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date:
 mime-version; bh=luldEC5fLhQGPRGWCX9HrEgt9rAjcQqh9LfCO8Dlbh4=; b=fPFEaH45fpv8
 2XCFzwrvDXzxkPQ1Qds5HCUWmfgN13fUWViLJ6xWGtKJcl4Cx4z72dub+LL9pQKnM8dZNI9l235ZG
 Gw+oTAthNi9+r4zqX9ui0YqYA+XZf3lpk5N7Z0I2gC6y53l7h/E7KHYfPZ3av7zCaHq9TqqHrY2m0
 RHiK81gSof8Ob8dHHzTcXQQbBOGUd3eDmBjzrcEmcjysrE3HR8AzYhpShZTiVoTsstfhtkvSuUqCK
 VtM5czD1k36qZSF9ks8VTbYuPB7FnPWzCNqsmSTZTTOpn/7hPUynTZyXxCboys5QsdE605egESRcf
 0Ec6E+UPgNZEoYluRD/fSw==;
Date: Sun, 24 Aug 2025 10:20:08 +0300
Message-Id: <865xed89uf.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
To: Ewan <ewan@HIDDEN>
In-Reply-To: <iQstamC8sjpAdYHarDC0EYuKLwA42KW8wwBRbnUUdRK8Hp_HpKYXLbMhescsq6pcwoX-j1Xv7ijxxN03scsuYr6p0CKnzmBXY0ZrEH5dKB8=@etown.dev>
 (bug-gnu-emacs@HIDDEN)
Subject: Re: bug#79298: patch: full color in windows terminal
References: <G4Tou5OvKHBfVV6-9kmLezwXc0HkZ4RfJuFP5jFYbXZOVCiHPUDok76STaDWDT3d7nlqLLsJll2fHv8k9u3xgT1_DfsosfScbqHDWZG01-o=@etown.dev>
 <iQstamC8sjpAdYHarDC0EYuKLwA42KW8wwBRbnUUdRK8Hp_HpKYXLbMhescsq6pcwoX-j1Xv7ijxxN03scsuYr6p0CKnzmBXY0ZrEH5dKB8=@etown.dev>
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: control
Cc: 79298 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

merge 79298 79297
thanks

> Date: Sun, 24 Aug 2025 02:27:35 +0000
> From:  Ewan via "Bug reports for GNU Emacs,
>  the Swiss army knife of text editors" <bug-gnu-emacs@HIDDEN>
> 
> * configure.ac: Compiler flag for setting w32 console color space.
> * lisp/term/w32console.el: Define and apply different color spaces.
> * src/term.c: Set tty max colors based on compiler flag.
> * src/w32console.c: Write face colors to console via VT sequences.

Thanks.  Such a large contribution will need you to sign a
copyright-assignment agreement with the FSF.  If you agree to do it, I
will send you the form to fill and the instructions to go with it.

> --- a/configure.ac
> +++ b/configure.ac
> @@ -299,6 +299,21 @@ AC_ARG_WITH([all],
>    [with_features=$withval],
>    [with_features=yes])
>  
> +AC_ARG_WITH([w32-vt-color],
> +[AS_HELP_STRING([--with-w32-vt-color=ARG],
> +[use VT sequences for w32 console color (ARG one of: no, 16, 156, 24bit)])],
> +[    case "${withval}" in
> +     no )    val=no ;;
> +     16 )    val=16 ;;
> +     256 )   val=256 ;;
> +     24bit ) val=24bit ;;
> +     * )
> +     AC_MSG_ERROR(['--with-vt-color=$withval' is invalid;
> +     the value should be 'no', '16', '256', or '24bit']) ;;
> +     esac
> +     with_w32_vt_color=$val
> +])

Why do we need this configure-time switch? why not compile this
feature into Emacs unconditionally?

> +(defun w32con-define-256-colors ()
> +  "Defines 256 color space"

The first line of a doc string should be a single complete sentence,
and must end in a period (here and elsewhere in the patch).

> +  ;; Define the color space
> +  (tty-color-clear)
> +  (let ((ncolors (display-color-cells)))
> +    (cond ((= ncolors 16777216) (w32con-define-24bit-colors))
> +          ((= ncolors 265       (w32con-define-256-colors)))
> +          (t                    (w32con-define-base-colors))))
>    (clear-face-cache)
>    ;; Figure out what are the colors of the console window, and set up
>    ;; the background-mode correspondingly.
> diff --git a/src/term.c b/src/term.c
> index a1e3f6312c6..e762024bdd5 100644
> --- a/src/term.c
> +++ b/src/term.c
> @@ -4686,7 +4686,17 @@ use the Bourne shell command 'TERM=...; export TERM' (C-shell:\n\
>       don't think we're losing anything by turning it off.  */
>    tty->line_ins_del_ok = 0;
>  
> -  tty->TN_max_colors = 16;  /* Must be non-zero for tty-display-color-p.  */
> +  /* Support full range of colors in new windows terminal app */
> +  #if defined(USE_W32CONVTCOLOR_16)
> +    tty->TN_max_colors = 16;
> +  #elif defined(USE_W32CONVTCOLOR_256)
> +    tty->TN_max_colors = 256;
> +  #elif defined(USE_W32CONVTCOLOR_24BIT)
> +    tty->TN_max_colors = 16777216;
> +  #else
> +    /* Must be non-zero for tty-display-color-p.  */
> +    tty->TN_max_colors = 16;
> +  #endif

I think it's sub-optimal to have this conditioned on the build-time
conditions.  I think users should be able to change the number of
supported colors when starting Emacs (using the --color command-line
option) and/or from within a running Emacs session by changing the
value of a variable.  Could you please rework the patch to allow that?

> +#if defined(USE_W32CONVTCOLOR_16) || defined(USE_W32CONVTCOLOR_256) || defined(USE_W32CONVTCOLOR_24BIT)
> +	  if (!WriteConsole (cur_screen, conversion_buffer,
> +			     coding->produced, &r, NULL))
> +	    {
> +	      printf ("Failed writing console characters: %lu\n",
> +		      GetLastError ());
> +	      fflush (stdout);
> +	    }

We cannot use such printf's in a production session.  I guess this is
debugging code that should be removed?

> +#if defined(USE_W32CONVTCOLOR_16) || defined(USE_W32CONVTCOLOR_256) || defined(USE_W32CONVTCOLOR_24BIT)
> +  DWORD mode;
> +  GetConsoleMode (cur_screen, &mode);
> +  mode |= ENABLE_VIRTUAL_TERMINAL_PROCESSING;
> +  SetConsoleMode (cur_screen, mode);
> +#endif

AFAIK, the ENABLE_VIRTUAL_TERMINAL_PROCESSING is not supported on
Windows 9X (which we still strive to support).  So either we should
make sure it is ignored on those old systems, or we should disable
these enhanced color modes on those systems.

> +	      snprintf(p, 10, "[%lum", fg + 30);

Our style is to leave 1 space between the function's name and the
following opening parenthesis.

> +	      WriteConsole (cur_screen, p, strlen(p), &r, NULL);
> +	    }
> +	  if (fg >= 8 && fg < 16)
> +	    {
> +	      char p[10];
> +	      snprintf(p, 10, "[%lum", fg - 8 + 90);
> +	      WriteConsole (cur_screen, p, strlen(p), &r, NULL);
> +	    }
> +	  if (fg >= 16 && fg < 256)
> +	    {
> +	      char p[20];
> +	      snprintf(p, 20, "[38;5;%lum", fg);
> +	      WriteConsole (cur_screen, p, strlen(p), &r, NULL);
> +	    }
> +	  if (bg >= 0 && bg < 8)
> +	    {
> +	      char p[10];
> +	      snprintf(p, 10, "[%lum", bg + 40);
> +	      WriteConsole (cur_screen, p, strlen(p), &r, NULL);
> +	    }
> +	  if (bg >= 8 && bg < 16)
> +	    {
> +	      char p[10];
> +	      snprintf(p, 10, "[%lum", bg - 8 + 100);
> +	      WriteConsole (cur_screen, p, strlen(p), &r, NULL);
> +	    }
> +	  if (bg>= 16 && bg < 256)
> +	    {
> +	      char p[20];
> +	      snprintf(p, 20, "[48;5;%lum", bg);
> +	      WriteConsole (cur_screen, p, strlen(p), &r, NULL);
> +	    }
> +	}
> +      else if (tty->TN_max_colors == 16777216)
> +
> +
> +	{
> +	  char p[30];
> +	  snprintf(p,30, "[38;2;%lu;%lu;%lum", fg/65536, (fg/256)&255, fg&255);
> +	  WriteConsole (cur_screen, p, strlen(p), &r, NULL);
> +
> +	  char q[30];
> +	  snprintf(q, 30, "[48;2;%lu;%lu;%lum", bg/65536, (bg/256)&255, bg&255);
> +	  WriteConsole (cur_screen, q, strlen(q), &r, NULL);
> +	}
> +    }

Can we make this code more compact, like by using fewer snprintf calls
(since they are all so much alike), and just a single WriteConsole
call for each of foreground and background colors?

Finally, these changes will need a NEWS entry and suitable
additions/changes to the user manual.

Thanks again for working on this.





Last modified: Sun, 24 Aug 2025 07:30:02 UTC

GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997 nCipher Corporation Ltd, 1994-97 Ian Jackson.