From unknown Fri Jun 20 07:16:11 2025 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-Mailer: MIME-tools 5.509 (Entity 5.509) Content-Type: text/plain; charset=utf-8 From: bug#77717 <77717@debbugs.gnu.org> To: bug#77717 <77717@debbugs.gnu.org> Subject: Status: [PATCH] Add row-properties to 'vtable' Reply-To: bug#77717 <77717@debbugs.gnu.org> Date: Fri, 20 Jun 2025 14:16:11 +0000 retitle 77717 [PATCH] Add row-properties to 'vtable' reassign 77717 emacs submitter 77717 Ship Mints severity 77717 normal tag 77717 patch thanks From debbugs-submit-bounces@debbugs.gnu.org Thu Apr 10 18:10:45 2025 Received: (at submit) by debbugs.gnu.org; 10 Apr 2025 22:10:45 +0000 Received: from localhost ([127.0.0.1]:47427 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1u306e-0000oe-QV for submit@debbugs.gnu.org; Thu, 10 Apr 2025 18:10:45 -0400 Received: from lists.gnu.org ([2001:470:142::17]:39976) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1u306b-0000oK-Gj for submit@debbugs.gnu.org; Thu, 10 Apr 2025 18:10:42 -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 ) id 1u306V-000829-Hg for bug-gnu-emacs@gnu.org; Thu, 10 Apr 2025 18:10:35 -0400 Received: from mail-ej1-x62a.google.com ([2a00:1450:4864:20::62a]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1u306Q-0005Ml-Ev for bug-gnu-emacs@gnu.org; Thu, 10 Apr 2025 18:10:35 -0400 Received: by mail-ej1-x62a.google.com with SMTP id a640c23a62f3a-ac339f53df9so251473666b.1 for ; Thu, 10 Apr 2025 15:10:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1744323027; x=1744927827; darn=gnu.org; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=KvRBAXqhPmLM74SBDgk8BnI+gkvkAwnXpdgxeAqU7K8=; b=YgAt8/eDrMIVy/kYO5dlo+O5PjlunuTWwJpt6CsvG1G1Bu17ezuvh6aEB/avXC536y zzdYUWsERUheKotOhlooJ6hWOMg4UGSrOhMHW6rbvB+42anaODQF4VGaSArhdck3zoh8 y90vjzI3GyVXIiN29B/iywUKb53Y3xia5OQ5/ZP6KwfMJdYF/RvlyTJgkHOJLi6Ciur1 PcxESgaxA8uZ2WBJ7yUBqxi6btRKBevgo04zqGq3vfasu9FY74bHvPL+tLgMj5GN2v81 RuOwSdVqE5Fnbc3bb2dYjYfDiJQPNRL0iMbM2oQa/wSqjgoEk/FTSGMfxVS25EpFS8jY CNgw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744323027; x=1744927827; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=KvRBAXqhPmLM74SBDgk8BnI+gkvkAwnXpdgxeAqU7K8=; b=VUPPW63zanwGT1w0x+Yt/pu2oRv3iG8Ka8XUlpR6w2oihOCDwrtRNWNVlqe68LsQ9X SyrSjX/rc0QepygWftKXxMeXSMV3T7JYw+77lWxS0UyxPhiNxuyTnyxXdQvLQEmH65nv JzpeHXIvlZU7UjlNQEzfTFNVlmrCCSXKcWKEU4hBclPMMDOOcPBBau8IFi+rYNORnv6U E0MzNypRhIChHxp04EarvnZv+GIt6kdjqcFQ4wjglInDErYYUoWg2eABD+d0Nv7nt54N jbes3ePoXmkGDDgAPU+9I1SsEqjl3HavliHCDoqQStqtQTqF43pv0u9GjbyMcr6bSHiM zrUQ== X-Gm-Message-State: AOJu0YztutAvVFUkw5ZHDgLj0Wwo0Ed4Z94QU8Lp4dN2ZIvKnwP6h4tc L70cGPD/RiMQ7QJXrSBFnq3Pcd/b0Jp8LC82NUlPZC9pEBtW2R2Uj9i0i0cYkU9Q00BP68sNVer vPTLfshtxktCzf7fWos/2Q4W+F3TBDJpL X-Gm-Gg: ASbGncuGTtCzt1skaYH81ZvkJJG/70/eOgbdK/ENEQEdwdvUQcHuSpgiymM1nmpuwsH 5YyZgVpDnHrYMTRI4cZQFDYBDFMOMtiJA6zcw8vJ/Y4xDMlD05AEOeCq6Rr33i8aJwYQrc1bAe9 quK/77uqju1vNnrhFVoJrruw== X-Google-Smtp-Source: AGHT+IFeqbJAIqN9TAwx24HtjrKJSLYINupASg7I+m38VWD1afmMLeguC0OHKzq7WjkErEDecF6fC9+l2lYateVfDxo= X-Received: by 2002:a17:906:dc90:b0:ac7:f2b9:ec3b with SMTP id a640c23a62f3a-acad3430f1bmr24371566b.4.1744323026877; Thu, 10 Apr 2025 15:10:26 -0700 (PDT) MIME-Version: 1.0 From: Ship Mints Date: Thu, 10 Apr 2025 18:10:11 -0400 X-Gm-Features: ATxdqUGXiijbgFJCtuQ3FkzfTr9RHVkbLOglzv1oN3dpjPXrl3iA_2sUI128zjg Message-ID: Subject: [PATCH] Add row-properties to 'vtable' To: bug-gnu-emacs@gnu.org Content-Type: multipart/mixed; boundary="0000000000006441ed063273da43" Received-SPF: pass client-ip=2a00:1450:4864:20::62a; envelope-from=shipmints@gmail.com; helo=mail-ej1-x62a.google.com 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, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: 1.0 (+) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.0 (/) --0000000000006441ed063273da43 Content-Type: multipart/alternative; boundary="0000000000006441e9063273da41" --0000000000006441e9063273da41 Content-Type: text/plain; charset="UTF-8" This is useful for adding 'cursor-face or 'mouse-face to each row. I've been advising 'vtable--insert-line' with an after advice. This is better. Example: (make-vtable :columns '(( :name "Foo" :primary ascending )) :allow-other-keys t ; backward compatibility for :row-properties :row-properties '( mouse-face highlight cursor-face region) -Stephane --0000000000006441e9063273da41 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
This is useful for adding 'cursor-face or 'mouse-face to each ro= w.=C2=A0 I've been advising 'vtable--insert-line' with an after= advice.=C2=A0 This is better.

Example:

=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 (make-vtable
=C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0:columns
=C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0'(( :name "Foo"
=C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0:primary ascending
=C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0))
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0:allow-other-keys t ; backward compatibility for :row-properties
= =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0:row-properties '( mouse-face = highlight
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 cursor-face region)

-Stephane
--0000000000006441e9063273da41-- --0000000000006441ed063273da43 Content-Type: application/octet-stream; name="0001-Add-row-properties-to-vtable.patch" Content-Disposition: attachment; filename="0001-Add-row-properties-to-vtable.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m9bwupar0 RnJvbSA1YzkxYjVlM2ViOWUwOWNjNmY3N2QxYmY3YjRmY2ZlMDU0MmQyOWMwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBzaGlwbWludHMgPHNoaXBtaW50c0BnbWFpbC5jb20+CkRhdGU6 IFRodSwgMTAgQXByIDIwMjUgMTg6MDA6NTUgLTA0MDAKU3ViamVjdDogW1BBVENIXSBBZGQgcm93 LXByb3BlcnRpZXMgdG8gJ3Z0YWJsZScKClRoaXMgaXMgdXNlZnVsIGZvciBhZGRpbmcgJ2N1cnNv ci1mYWNlIG9yICdtb3VzZS1mYWNlIHRvIGVhY2ggcm93LgoKKiBkb2MvbWlzYy92dGFibGUudGV4 aSAoTWFraW5nIEEgVGFibGUpOiBEb2N1bWVudAonOnJvdy1wcm9wZXJ0aWVzJy4KKiBsaXNwL2Vt YWNzLWxpc3AvdnRhYmxlLmVsICh2dGFibGUpOiBBZGQgc2xvdAonOnJvdy1wcm9wZXJ0aWVzJy4K KG1ha2UtdnRhYmxlKTogQWRkIGtleXdvcmQgJzpyb3ctcHJvcGVydGllcycuCih2dGFibGUtLWlu c2VydC1saW5lKTogQWRvcm4gZWFjaCByb3cgd2l0aCAnOnJvdy1wcm9wZXJ0aWVzJywgaWYKcHJl c2VudC4KLS0tCiBkb2MvbWlzYy92dGFibGUudGV4aSAgICAgIHwgNiArKysrKysKIGxpc3AvZW1h Y3MtbGlzcC92dGFibGUuZWwgfCA5ICsrKysrKysrLQogMiBmaWxlcyBjaGFuZ2VkLCAxNCBpbnNl cnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvZG9jL21pc2MvdnRhYmxlLnRl eGkgYi9kb2MvbWlzYy92dGFibGUudGV4aQppbmRleCBkZDJmNzk1MTJjMS4uZDFjZDEzY2ZhMzMg MTAwNjQ0Ci0tLSBhL2RvYy9taXNjL3Z0YWJsZS50ZXhpCisrKyBiL2RvYy9taXNjL3Z0YWJsZS50 ZXhpCkBAIC00MjQsNiArNDI0LDEyIEBAIE1ha2luZyBBIFRhYmxlCiBAY29kZXs6Y29sdW1uLWNv bG9yc30gaXMgcHJlc2VudCwgdGhlIGNvbG9ycyB3aWxsIGJlIGBgYmxlbmRlZCcnIHRvCiBwcm9k dWNlIHRoZSBmaW5hbCBjb2xvcnMgaW4gdGhlIHRhYmxlLgogCitAaXRlbSA6cm93LXByb3BlcnRp ZXMKK0lmIHByZXNlbnQsIHRoaXMgc2hvdWxkIGJlIGEgbGlzdCBvZiB0ZXh0IHByb3BlcnRpZXMg KEBweHJlZntUZXh0CitQcm9wZXJ0aWVzLCwsIGVsaXNwLCBUaGUgRW1hY3MgTGlzcCBSZWZlcmVu Y2UgTWFudWFsfSkgdGhhdCB3aWxsIGJlCithZGRlZCB0byBlYWNoIHJvdy4gIFRoaXMgaXMgdXNl ZnVsIHRvIGFkZCBAY29kZXsnY3Vyc29yLWZhY2V9IG9yCitAY29kZXsnbW91c2UtZmFjZX0gdG8g dGFibGUgcm93cy4KKwogQGl0ZW0gOmFjdGlvbnMKIFRoaXMgdXNlcyB0aGUgc2FtZSBzeW50YXgg YXMgQGNvZGV7ZGVmaW5lLWtleW1hcH0sIGJ1dCBkb2Vzbid0IHJlZmVyCiB0byBjb21tYW5kcyBk aXJlY3RseS4gIEluc3RlYWQgZWFjaCBrZXkgaXMgYm91bmQgdG8gYSBjb21tYW5kIHRoYXQKZGlm ZiAtLWdpdCBhL2xpc3AvZW1hY3MtbGlzcC92dGFibGUuZWwgYi9saXNwL2VtYWNzLWxpc3AvdnRh YmxlLmVsCmluZGV4IDAwNzg1MTEzZWRiLi42ZjkzYmI0YmNiYyAxMDA2NDQKLS0tIGEvbGlzcC9l bWFjcy1saXNwL3Z0YWJsZS5lbAorKysgYi9saXNwL2VtYWNzLWxpc3AvdnRhYmxlLmVsCkBAIC02 NSw2ICs2NSw3IEBAIHZ0YWJsZQogICAgKGRpdmlkZXIgOmluaXRhcmcgOmRpdmlkZXIgOmFjY2Vz c29yIHZ0YWJsZS1kaXZpZGVyIDppbml0Zm9ybSBuaWwpCiAgICAoc29ydC1ieSA6aW5pdGFyZyA6 c29ydC1ieSA6YWNjZXNzb3IgdnRhYmxlLXNvcnQtYnkpCiAgICAoZWxsaXBzaXMgOmluaXRhcmcg OmVsbGlwc2lzIDphY2Nlc3NvciB2dGFibGUtZWxsaXBzaXMpCisgICAocm93LXByb3BlcnRpZXMg OmluaXRhcmcgOnJvdy1wcm9wZXJ0aWVzIDphY2Nlc3NvciB2dGFibGUtcm93LXByb3BlcnRpZXMp CiAgICAoY29sdW1uLWNvbG9ycyA6aW5pdGFyZyA6Y29sdW1uLWNvbG9ycyA6YWNjZXNzb3IgdnRh YmxlLWNvbHVtbi1jb2xvcnMpCiAgICAocm93LWNvbG9ycyA6aW5pdGFyZyA6cm93LWNvbG9ycyA6 YWNjZXNzb3IgdnRhYmxlLXJvdy1jb2xvcnMpCiAgICAoLWNhY2hlZC1jb2xvcnMgOmluaXRmb3Jt IG5pbCkKQEAgLTk5LDYgKzEwMCw3IEBAIG1ha2UtdnRhYmxlCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc29ydC1ieQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbGxpcHNpcyB0 KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnNlcnQgdCkKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICByb3ctcHJvcGVydGllcwogICAgICAgICAgICAgICAgICAgICAgICAgICAg IHJvdy1jb2xvcnMKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW4tY29sb3JzKQog ICAiQ3JlYXRlIGFuZCBpbnNlcnQgYSB2dGFibGUgYXQgcG9pbnQuCkBAIC0xMjQsNiArMTI2LDcg QEAgbWFrZS12dGFibGUKICAgICAgICAgICA6a2V5bWFwIGtleW1hcAogICAgICAgICAgIDpzZXBh cmF0b3Itd2lkdGggc2VwYXJhdG9yLXdpZHRoCiAgICAgICAgICAgOnNvcnQtYnkgc29ydC1ieQor ICAgICAgICAgIDpyb3ctcHJvcGVydGllcyByb3ctcHJvcGVydGllcwogICAgICAgICAgIDpyb3ct Y29sb3JzIHJvdy1jb2xvcnMKICAgICAgICAgICA6Y29sdW1uLWNvbG9ycyBjb2x1bW4tY29sb3Jz CiAgICAgICAgICAgOmVsbGlwc2lzIGVsbGlwc2lzKSkpCkBAIC02NTQsNyArNjU3LDExIEBAIHZ0 YWJsZS0taW5zZXJ0LWxpbmUKICAgICAgICh3aGVuLWxldCogKChyb3ctY29sb3JzIChzbG90LXZh bHVlIHRhYmxlICctY2FjaGVkLWNvbG9ycykpKQogICAgICAgICAoYWRkLWZhY2UtdGV4dC1wcm9w ZXJ0eQogICAgICAgICAgc3RhcnQgKHBvaW50KQotICAgICAgICAgKGVsdCByb3ctY29sb3JzICht b2QgbGluZS1udW1iZXIgKGxlbmd0aCByb3ctY29sb3JzKSkpKSkpKSkKKyAgICAgICAgIChlbHQg cm93LWNvbG9ycyAobW9kIGxpbmUtbnVtYmVyIChsZW5ndGggcm93LWNvbG9ycykpKSkpKQorICAg ICh3aGVuICh2dGFibGUtcm93LXByb3BlcnRpZXMgdGFibGUpCisgICAgICAoc2F2ZS1leGN1cnNp b24KKyAgICAgICAgKGZvcndhcmQtbGluZSAtMSkKKyAgICAgICAgKGFkZC10ZXh0LXByb3BlcnRp ZXMgKHBvcy1ib2wpIChwb3MtZW9sKSAodnRhYmxlLXJvdy1wcm9wZXJ0aWVzIHRhYmxlKSkpKSkp CiAKIChkZWZ1biB2dGFibGUtLWNhY2hlLWtleSAoKQogICAoY29ucyAoZnJhbWUtdGVybWluYWwp ICh3aW5kb3ctd2lkdGgpKSkKLS0gCjIuNDcuMQoK --0000000000006441ed063273da43-- From debbugs-submit-bounces@debbugs.gnu.org Fri Apr 11 16:02:40 2025 Received: (at 77717) by debbugs.gnu.org; 11 Apr 2025 20:02:40 +0000 Received: from localhost ([127.0.0.1]:51878 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1u3KaG-0006Sl-EZ for submit@debbugs.gnu.org; Fri, 11 Apr 2025 16:02:40 -0400 Received: from mail-yb1-xb31.google.com ([2607:f8b0:4864:20::b31]:45338) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from ) id 1u3KaD-0006SV-VB for 77717@debbugs.gnu.org; Fri, 11 Apr 2025 16:02:38 -0400 Received: by mail-yb1-xb31.google.com with SMTP id 3f1490d57ef6-e6a8aa771e8so1998321276.3 for <77717@debbugs.gnu.org>; Fri, 11 Apr 2025 13:02:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1744401752; x=1745006552; darn=debbugs.gnu.org; h=to:subject:message-id:date:from:in-reply-to:references:mime-version :from:to:cc:subject:date:message-id:reply-to; bh=ve3jan6tYyRUZ5kEqxwUW+NsOkrvhjmyKvbM1LTaRxU=; b=R49O9MP88IA0l+fVzULCVCcUvZXpq5rP9chYG7V5iuo3mL6YcQG8Ko5LebtqdPuaEX qlLuhGObq+YFHvOacrEOXHkHZtYu1IJOAFetWy35lzztgqiVst8a+2cJJJV0/wSxiiuO nmqjHREYNp7QQHxKdk6YzKUEtZNERiVPk/v/bYJSvbtGF0XSGNHnBqKozl4lhLdppoS0 nYxDUfDUCcNutRsx93n4nAlNX1vYDCBaEGuJnsMDDICf2KKdCjAtNM22+c1embLAoeXB /grIwLPr7c0sr4uHau2LIWHQHgdJHz8Mzf2C785evPS70enfweWA0tWMESsioHvOKcQL vWyA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744401752; x=1745006552; h=to:subject:message-id:date:from:in-reply-to:references:mime-version :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=ve3jan6tYyRUZ5kEqxwUW+NsOkrvhjmyKvbM1LTaRxU=; b=bv2eT/mCHJsKwtquEvoHYqJNrh9ZuLkU/Th+hueuaUl3VSe28QDtIitZIpNWPou9Hh /+eFnNIG6jz4Vf8FJtrmSW0hzpN0q7Ct9JwFOsNUPzD+mNkFc4/2v+jK+rTOtbev4FUn GQyz/EcK0kcuYno2REm+5dcc47tCKRFtPCydzMqJEFyPhnRLfYxxPi7LAig5QhiFdqgJ ftraAyQbkXluWlSgMnjjalNrRUUNEWMjPZCGDCYJBAYidKSjxUU+LcjlZS08bjiC2dEs 1AlgBvsZMHhjwuJVk0EmhZYTFo3YgFIQ2WdwOsrBX4WNExGx2Nu2dC/gYFOaapnDKRwy G4Sg== X-Gm-Message-State: AOJu0YwiAggtV1Dkuqf//pusBd6uefmGA9q/F5qJCBZvUFRK9n4YgAqY 9iZXwazZFF/A/YYcMeJ5a1+ikEbJUDD/KwiZER/ZAVGAV60vz3tCNsFrJ6hkFujWyr6L0w5GxGA eqRrLlNVAT8/AFpAzp/aCC8wypuey5Q== X-Gm-Gg: ASbGncsueqS0TGsqHLNVnNSBSYj/Vd6Ihz47xi/elig7Gz3jVBpEpDeZh08vzFroFe0 CebRmICgTcDG+MGM2z+Xq2LDt3WYyRon/nooWO6KwHdJ7HLpQNUO4HUoW+l28BtKwni7+8SXWUA 8KRWX6ZmNisoZYW66i8rxfeA== X-Google-Smtp-Source: AGHT+IGiTJwGl5Pq9PLa/8ODOck9tZHWpxTJnC1j6jELRxszjcUHhc5zcH5aENOl3tyBZrMJiqjHVXgTZQnB8HNEJII= X-Received: by 2002:a05:6902:2190:b0:e64:3e3a:f000 with SMTP id 3f1490d57ef6-e704decaac4mr7176777276.25.1744401751894; Fri, 11 Apr 2025 13:02:31 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Ship Mints Date: Fri, 11 Apr 2025 16:02:20 -0400 X-Gm-Features: ATxdqUF-NQxyaF0zmpTVNP4I4kQGLSMNFDFR7H_QzqU6oPkJj4hkx2EyHuCKNZM Message-ID: Subject: Re: bug#77717: [PATCH] Add row-properties to 'vtable' To: 77717@debbugs.gnu.org Content-Type: multipart/mixed; boundary="000000000000c4efe90632862ec1" X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 77717 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) --000000000000c4efe90632862ec1 Content-Type: multipart/alternative; boundary="000000000000c4efe90632862ebf" --000000000000c4efe90632862ebf Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Thu, Apr 10, 2025 at 6:11=E2=80=AFPM Ship Mints wr= ote: > This is useful for adding 'cursor-face or 'mouse-face to each row. I've > been advising 'vtable--insert-line' with an after advice. This is better= . > > Example: > > (make-vtable > :columns > '(( :name "Foo" > :primary ascending > )) > :allow-other-keys t ; backward compatibility for :row-properti= es > :row-properties '( mouse-face highlight > cursor-face region) > Revised patch attached with the bug number and with 'keymap now applied to the whole row vs. just the row text. This ensures that keys (e.g., "q" to quit) operate correctly if point is at the newline. -Stephane --000000000000c4efe90632862ebf Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
= On Thu, Apr 10, 2025 at 6:11=E2=80=AFPM Ship Mints <shipmints@gmail.com> wrote:
= This is useful for adding 'cursor-face or 'mouse-face to each row.= =C2=A0 I've been advising 'vtable--insert-line' with an after a= dvice.=C2=A0 This is better.
=
Example:

=C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 (make-vtable
=C2=A0 =C2=A0 =C2=A0 =C2=A0= =C2=A0 =C2=A0:columns
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0'(( = :name "Foo"
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0:primary ascending
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0))
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0:allow-other-keys = t ; backward compatibility for :row-properties
=C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0:row-properties '( mouse-face highlight
=C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 cursor-face region)

<= /div>
Revised p= atch attached with the bug number and with 'keymap now applied to the w= hole row vs. just the row text.=C2=A0 This ensures that keys (e.g., "q= " to quit) operate correctly=C2=A0if point is at the newline.

-Stephane
= --000000000000c4efe90632862ebf-- --000000000000c4efe90632862ec1 Content-Type: application/octet-stream; name="0001-Fix-row-keymap-and-add-row-properties-to-vtable-bug-.patch" Content-Disposition: attachment; filename="0001-Fix-row-keymap-and-add-row-properties-to-vtable-bug-.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m9d7q50o0 RnJvbSA5ODk3MGU4YWJlYjliZWYwZTJjZGYwMjdiMWI0OTVkOTlkZGU5N2E3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBzaGlwbWludHMgPHNoaXBtaW50c0BnbWFpbC5jb20+CkRhdGU6 IFRodSwgMTAgQXByIDIwMjUgMTg6MDA6NTUgLTA0MDAKU3ViamVjdDogW1BBVENIXSBGaXggcm93 ICdrZXltYXAgYW5kIGFkZCA6cm93LXByb3BlcnRpZXMgdG8gJ3Z0YWJsZScKIChidWcjNzc3MTcp Cgona2V5bWFwIG9uIHRoZSB3aG9sZSByb3cgZW5zdXJlcyBrZXlzIHdvcmsgZXZlbiBvbiB0aGUg bmV3bGluZS4KOnJvdy1wcm9wZXJ0aWVzIGFyZSB1c2VmdWwgZm9yIGFkZGluZyAnY3Vyc29yLWZh Y2Ugb3IKJ21vdXNlLWZhY2UgdG8gZWFjaCByb3cuCgoqIGRvYy9taXNjL3Z0YWJsZS50ZXhpIChN YWtpbmcgQSBUYWJsZSk6IERvY3VtZW50Cic6cm93LXByb3BlcnRpZXMnLgoqIGxpc3AvZW1hY3Mt bGlzcC92dGFibGUuZWwgKHZ0YWJsZSk6IEFkZCBzbG90Cic6cm93LXByb3BlcnRpZXMnLgoobWFr ZS12dGFibGUpOiBBZGQga2V5d29yZCAnOnJvdy1wcm9wZXJ0aWVzJy4KKHZ0YWJsZS0taW5zZXJ0 LWxpbmUpOiBNb3ZlICdrZXltYXAgdGV4dCBwcm9wZXJ0eSB0byBpbmNsdWRlIHRoZQpuZXdsaW5l LiAgQWRvcm4gZWFjaCByb3cgd2l0aCAnOnJvdy1wcm9wZXJ0aWVzJywgaWYgcHJlc2VudC4KLS0t CiBkb2MvbWlzYy92dGFibGUudGV4aSAgICAgIHwgIDYgKysrKysrCiBsaXNwL2VtYWNzLWxpc3Av dnRhYmxlLmVsIHwgMTEgKysrKysrKysrLS0KIDIgZmlsZXMgY2hhbmdlZCwgMTUgaW5zZXJ0aW9u cygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kb2MvbWlzYy92dGFibGUudGV4aSBi L2RvYy9taXNjL3Z0YWJsZS50ZXhpCmluZGV4IGRkMmY3OTUxMmMxLi5kMWNkMTNjZmEzMyAxMDA2 NDQKLS0tIGEvZG9jL21pc2MvdnRhYmxlLnRleGkKKysrIGIvZG9jL21pc2MvdnRhYmxlLnRleGkK QEAgLTQyNCw2ICs0MjQsMTIgQEAgTWFraW5nIEEgVGFibGUKIEBjb2Rlezpjb2x1bW4tY29sb3Jz fSBpcyBwcmVzZW50LCB0aGUgY29sb3JzIHdpbGwgYmUgYGBibGVuZGVkJycgdG8KIHByb2R1Y2Ug dGhlIGZpbmFsIGNvbG9ycyBpbiB0aGUgdGFibGUuCiAKK0BpdGVtIDpyb3ctcHJvcGVydGllcwor SWYgcHJlc2VudCwgdGhpcyBzaG91bGQgYmUgYSBsaXN0IG9mIHRleHQgcHJvcGVydGllcyAoQHB4 cmVme1RleHQKK1Byb3BlcnRpZXMsLCwgZWxpc3AsIFRoZSBFbWFjcyBMaXNwIFJlZmVyZW5jZSBN YW51YWx9KSB0aGF0IHdpbGwgYmUKK2FkZGVkIHRvIGVhY2ggcm93LiAgVGhpcyBpcyB1c2VmdWwg dG8gYWRkIEBjb2RleydjdXJzb3ItZmFjZX0gb3IKK0Bjb2Rleydtb3VzZS1mYWNlfSB0byB0YWJs ZSByb3dzLgorCiBAaXRlbSA6YWN0aW9ucwogVGhpcyB1c2VzIHRoZSBzYW1lIHN5bnRheCBhcyBA Y29kZXtkZWZpbmUta2V5bWFwfSwgYnV0IGRvZXNuJ3QgcmVmZXIKIHRvIGNvbW1hbmRzIGRpcmVj dGx5LiAgSW5zdGVhZCBlYWNoIGtleSBpcyBib3VuZCB0byBhIGNvbW1hbmQgdGhhdApkaWZmIC0t Z2l0IGEvbGlzcC9lbWFjcy1saXNwL3Z0YWJsZS5lbCBiL2xpc3AvZW1hY3MtbGlzcC92dGFibGUu ZWwKaW5kZXggMDA3ODUxMTNlZGIuLjViNzM4YjUyNWU5IDEwMDY0NAotLS0gYS9saXNwL2VtYWNz LWxpc3AvdnRhYmxlLmVsCisrKyBiL2xpc3AvZW1hY3MtbGlzcC92dGFibGUuZWwKQEAgLTY1LDYg KzY1LDcgQEAgdnRhYmxlCiAgICAoZGl2aWRlciA6aW5pdGFyZyA6ZGl2aWRlciA6YWNjZXNzb3Ig dnRhYmxlLWRpdmlkZXIgOmluaXRmb3JtIG5pbCkKICAgIChzb3J0LWJ5IDppbml0YXJnIDpzb3J0 LWJ5IDphY2Nlc3NvciB2dGFibGUtc29ydC1ieSkKICAgIChlbGxpcHNpcyA6aW5pdGFyZyA6ZWxs aXBzaXMgOmFjY2Vzc29yIHZ0YWJsZS1lbGxpcHNpcykKKyAgIChyb3ctcHJvcGVydGllcyA6aW5p dGFyZyA6cm93LXByb3BlcnRpZXMgOmFjY2Vzc29yIHZ0YWJsZS1yb3ctcHJvcGVydGllcykKICAg IChjb2x1bW4tY29sb3JzIDppbml0YXJnIDpjb2x1bW4tY29sb3JzIDphY2Nlc3NvciB2dGFibGUt Y29sdW1uLWNvbG9ycykKICAgIChyb3ctY29sb3JzIDppbml0YXJnIDpyb3ctY29sb3JzIDphY2Nl c3NvciB2dGFibGUtcm93LWNvbG9ycykKICAgICgtY2FjaGVkLWNvbG9ycyA6aW5pdGZvcm0gbmls KQpAQCAtOTksNiArMTAwLDcgQEAgbWFrZS12dGFibGUKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBzb3J0LWJ5CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVsbGlwc2lzIHQpCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKGluc2VydCB0KQorICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHJvdy1wcm9wZXJ0aWVzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm93 LWNvbG9ycwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtbi1jb2xvcnMpCiAgICJD cmVhdGUgYW5kIGluc2VydCBhIHZ0YWJsZSBhdCBwb2ludC4KQEAgLTEyNCw2ICsxMjYsNyBAQCBt YWtlLXZ0YWJsZQogICAgICAgICAgIDprZXltYXAga2V5bWFwCiAgICAgICAgICAgOnNlcGFyYXRv ci13aWR0aCBzZXBhcmF0b3Itd2lkdGgKICAgICAgICAgICA6c29ydC1ieSBzb3J0LWJ5CisgICAg ICAgICAgOnJvdy1wcm9wZXJ0aWVzIHJvdy1wcm9wZXJ0aWVzCiAgICAgICAgICAgOnJvdy1jb2xv cnMgcm93LWNvbG9ycwogICAgICAgICAgIDpjb2x1bW4tY29sb3JzIGNvbHVtbi1jb2xvcnMKICAg ICAgICAgICA6ZWxsaXBzaXMgZWxsaXBzaXMpKSkKQEAgLTYzOSw3ICs2NDIsNiBAQCB2dGFibGUt LWluc2VydC1saW5lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaXN0ICdz cGFjZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6d2lkdGggKGxp c3Qgc3BhY2VyKSkpKSkpCiAgICAgICAgICAgIChwdXQtdGV4dC1wcm9wZXJ0eSBzdGFydCAocG9p bnQpICd2dGFibGUtY29sdW1uIGluZGV4KQotICAgICAgICAgICAocHV0LXRleHQtcHJvcGVydHkg c3RhcnQgKHBvaW50KSAna2V5bWFwIGtleW1hcCkKICAgICAgICAgICAgKHdoZW4gY29sdW1uLWNv bG9ycwogICAgICAgICAgICAgIChhZGQtZmFjZS10ZXh0LXByb3BlcnR5CiAgICAgICAgICAgICAg IHN0YXJ0IChwb2ludCkKQEAgLTY0OSwxMiArNjUxLDE3IEBAIHZ0YWJsZS0taW5zZXJ0LWxpbmUK ICAgICAgICAgICAgICAoc2V0cSBzdGFydCAocG9pbnQpKSkpKSkKICAgICAgKGNkciBsaW5lKSkK ICAgICAoaW5zZXJ0ICJcbiIpCisgICAgKHB1dC10ZXh0LXByb3BlcnR5IHN0YXJ0IChwb2ludCkg J2tleW1hcCBrZXltYXApCiAgICAgKHB1dC10ZXh0LXByb3BlcnR5IHN0YXJ0IChwb2ludCkgJ3Z0 YWJsZS1vYmplY3QgKGNhciBsaW5lKSkKICAgICAodW5sZXNzIGNvbHVtbi1jb2xvcnMKICAgICAg ICh3aGVuLWxldCogKChyb3ctY29sb3JzIChzbG90LXZhbHVlIHRhYmxlICctY2FjaGVkLWNvbG9y cykpKQogICAgICAgICAoYWRkLWZhY2UtdGV4dC1wcm9wZXJ0eQogICAgICAgICAgc3RhcnQgKHBv aW50KQotICAgICAgICAgKGVsdCByb3ctY29sb3JzIChtb2QgbGluZS1udW1iZXIgKGxlbmd0aCBy b3ctY29sb3JzKSkpKSkpKSkKKyAgICAgICAgIChlbHQgcm93LWNvbG9ycyAobW9kIGxpbmUtbnVt YmVyIChsZW5ndGggcm93LWNvbG9ycykpKSkpKQorICAgICh3aGVuICh2dGFibGUtcm93LXByb3Bl cnRpZXMgdGFibGUpCisgICAgICAoc2F2ZS1leGN1cnNpb24KKyAgICAgICAgKGZvcndhcmQtbGlu ZSAtMSkKKyAgICAgICAgKGFkZC10ZXh0LXByb3BlcnRpZXMgKHBvcy1ib2wpIChwb3MtZW9sKSAo dnRhYmxlLXJvdy1wcm9wZXJ0aWVzIHRhYmxlKSkpKSkpCiAKIChkZWZ1biB2dGFibGUtLWNhY2hl LWtleSAoKQogICAoY29ucyAoZnJhbWUtdGVybWluYWwpICh3aW5kb3ctd2lkdGgpKSkKLS0gCjIu NDcuMQoK --000000000000c4efe90632862ec1-- From debbugs-submit-bounces@debbugs.gnu.org Sat Apr 12 07:52:08 2025 Received: (at 77717) by debbugs.gnu.org; 12 Apr 2025 11:52:09 +0000 Received: from localhost ([127.0.0.1]:54314 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1u3ZP3-0002Ut-6p for submit@debbugs.gnu.org; Sat, 12 Apr 2025 07:52:08 -0400 Received: from mail-ua1-x931.google.com ([2607:f8b0:4864:20::931]:47593) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from ) id 1u3ZOw-0002TD-Rq for 77717@debbugs.gnu.org; Sat, 12 Apr 2025 07:52:01 -0400 Received: by mail-ua1-x931.google.com with SMTP id a1e0cc1a2514c-86b9b1def28so2470216241.3 for <77717@debbugs.gnu.org>; Sat, 12 Apr 2025 04:51:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1744458713; x=1745063513; darn=debbugs.gnu.org; h=to:subject:message-id:date:from:in-reply-to:references:mime-version :from:to:cc:subject:date:message-id:reply-to; bh=bdhRYFNNsG5+iTaZfb/zPYMHgywMtFaNVqzmNKqgyOI=; b=TZXjrRG36yS4qr7GARE0Xge4FuCKHGbHpsm16tBVlirqM5vUI4FxDoAU8/X73r+v9W ImLYRQcYQbG1GUiRjAzER3yVYWNbUHAmXSzotc3UzXbIb2AafC5x/CH4SkCC8Lg8dEWg qGDqh8dUHyMEbghyTN9VWPHWguPgYrsezGedcz2AwIzTrrydc//uI0T2+NsoYbJg8E7j EAM7nHjAoNN0CEFmgmG7BvNJCZG2wb7KtczUglHYiDtmikgX/ftjdhdmn5ALTnvO4Dq0 tFlb4ukveJaaIcFy1fV2gReGGiax6pGzdd2JKmQBE7R3CjVLaRSxkGRtWXMFkCZQDoGg qf0g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744458713; x=1745063513; h=to:subject:message-id:date:from:in-reply-to:references:mime-version :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=bdhRYFNNsG5+iTaZfb/zPYMHgywMtFaNVqzmNKqgyOI=; b=SB4DjyO3ZM7x/drpUrjLKO9HCn20Rp3VpiV1u//FyK1Iiuc0/j3611X/7wpxzU1pNc tRCGSiXqPUtDx9kgfD7MyfcErFOMWtgjEuh0PaGKVFYewr3+zsGWyTyhnRH7dYg4WhNq AvbkhoBjLXh7m5yp5Ny1b56aJ0grn3O4F9xw4oO/jLXmbtzgPX+NgcTCCuerpjtv/uLI h2ezxBA8Lu+RIaN6aMDQhw4CFs1nBORHWpqvzuPOVA9ZOib6LjOqOg+k1VYlcvvlNFsG 3qVCwlHA7nD3LT8SNSIDHgFmsgCKlg8Gn+fbAw9w8aNHUhd3g65DcN71KS9x7nrcJLHp vSYA== X-Gm-Message-State: AOJu0YwdWbgVMTiFUJdCSImzgi6B/gNBLtzTCLR+i3mXdEScrzBHe0l4 Nsf3B7EJ6iNx+pLLCktu/XDOmdynCdZwKIb6sKyC251MXTZ55hOoYmrILKHNG5ECFTvGyHrW8ec Rn2Ze+rEfmgDFkcdQw1glpzDY2YaHeg== X-Gm-Gg: ASbGnct2moaxNBambsqnpO0y4jRKbuj0IX7M9UUIlnJqBNdyxzG8+9K7IUalpNpyGWb Zi8boD6Q9wpyT3qNzuBiUWF+bd5AOEmrhLaKflsHMtUYugFlNXoDB8+mKrgSaqJ4fbXIFluG+b7 F8NS5F71U/v7k+b7Y6TabbOQ== X-Google-Smtp-Source: AGHT+IHCoMXzq5w1+hdca6Ux4sGuAXS5AMIvdLhq2mp/K9exGtZM2faIeG7zjC4hwSZlT7aIyOX3dcseh3sahZnJlF4= X-Received: by 2002:a05:6102:5e85:b0:4bb:623:e1f7 with SMTP id ada2fe7eead31-4c9e4ffec8emr4174700137.16.1744458712451; Sat, 12 Apr 2025 04:51:52 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Ship Mints Date: Sat, 12 Apr 2025 07:51:40 -0400 X-Gm-Features: ATxdqUE5FUMf9bUGk0qBQfEE-_6ebk3SRNkAE-nOS-4c_rcSwshxW3vQk0MgsHM Message-ID: Subject: Re: bug#77717: [PATCH] Add row-properties to 'vtable' To: 77717@debbugs.gnu.org Content-Type: multipart/mixed; boundary="000000000000e1b34c0632937187" X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 77717 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) --000000000000e1b34c0632937187 Content-Type: multipart/alternative; boundary="000000000000e1b34a0632937185" --000000000000e1b34a0632937185 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Fri, Apr 11, 2025 at 4:02=E2=80=AFPM Ship Mints wr= ote: > On Thu, Apr 10, 2025 at 6:11=E2=80=AFPM Ship Mints = wrote: > >> This is useful for adding 'cursor-face or 'mouse-face to each row. I've >> been advising 'vtable--insert-line' with an after advice. This is bette= r. >> >> Example: >> >> (make-vtable >> :columns >> '(( :name "Foo" >> :primary ascending >> )) >> :allow-other-keys t ; backward compatibility for >> :row-properties >> :row-properties '( mouse-face highlight >> cursor-face region) >> > > Revised patch attached with the bug number and with 'keymap now applied t= o > the whole row vs. just the row text. This ensures that keys (e.g., "q" t= o > quit) operate correctly if point is at the newline. > While I have vtable cracked open, this revised patch now includes unsort. vtable is nice. Now, a bit nicer. -Stephane --000000000000e1b34a0632937185 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
= On Fri, Apr 11, 2025 at 4:02=E2=80=AFPM Ship Mints <shipmints@gmail.com> wrote:
On = Thu, Apr 10, 2025 at 6:11=E2=80=AFPM Ship Mints <shipmints@gmail.com> wrote:=
This is= useful for adding 'cursor-face or 'mouse-face to each row.=C2=A0 I= 've been advising 'vtable--insert-line' with an after advice.= =C2=A0 This is better.

Example:

=C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 (make-vtable
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= =C2=A0:columns
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0'(( :name &= quot;Foo"
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0:p= rimary ascending
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= ))
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0:allow-other-keys t ; backwa= rd compatibility for :row-properties
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0:row-properties '( mouse-face highlight
=C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 cursor-face region)

Revised patch attached with the bug number = and with 'keymap now applied to the whole row vs. just the row text.=C2= =A0 This ensures that keys (e.g., "q" to quit) operate correctly= =C2=A0if point is at the newline.

While I ha= ve vtable cracked open, this revised patch now includes unsort.=C2=A0 vtabl= e is nice.=C2=A0 Now, a bit nicer.

-Stephane
--000000000000e1b34a0632937185-- --000000000000e1b34c0632937187 Content-Type: application/octet-stream; name="0001-vtable-row-keymap-row-properties-unsort-bug-77717.patch" Content-Disposition: attachment; filename="0001-vtable-row-keymap-row-properties-unsort-bug-77717.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m9e5nkub0 RnJvbSBkNjVkMjllZDU3OWY3ZDhmNGY0MjJkNzY4NTM3NjYxZDNiYWJhNTU4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBzaGlwbWludHMgPHNoaXBtaW50c0BnbWFpbC5jb20+CkRhdGU6 IFRodSwgMTAgQXByIDIwMjUgMTg6MDA6NTUgLTA0MDAKU3ViamVjdDogW1BBVENIXSB2dGFibGU6 IHJvdyBrZXltYXAsIDpyb3ctcHJvcGVydGllcywgdW5zb3J0IChidWcjNzc3MTcpCgotICdrZXlt YXAgb24gdGhlIHdob2xlIHJvdyBlbnN1cmVzIGtleXMgd29yayBldmVuIG9uIHRoZQpuZXdsaW5l LgotIDpyb3ctcHJvcGVydGllcyBhcmUgdXNlZnVsIGZvciBhZGRpbmcgJ2N1cnNvci1mYWNlIG9y Cidtb3VzZS1mYWNlIHRvIGVhY2ggcm93LgotIHVuc29ydCB0byByZXZlcnQgdG8gb3JpZ2luYWwg b3JkZXIuCgoqIGRvYy9taXNjL3Z0YWJsZS50ZXhpIChNYWtpbmcgQSBUYWJsZSk6IERvY3VtZW50 Cic6cm93LXByb3BlcnRpZXMnLgoqIGxpc3AvZW1hY3MtbGlzcC92dGFibGUuZWwgKHZ0YWJsZSk6 IEFkZCBzbG90Cic6cm93LXByb3BlcnRpZXMnLgoodnRhYmxlLW1hcCk6IEJpbmQgIlUiIHRvICd2 dGFibGUtdW5zb3J0Jy4KKG1ha2UtdnRhYmxlKTogQWRkIGtleXdvcmQgJzpyb3ctcHJvcGVydGll cycuCih2dGFibGUtLWluc2VydC1saW5lKTogTW92ZSAna2V5bWFwIHRleHQgcHJvcGVydHkgdG8g aW5jbHVkZSB0aGUKbmV3bGluZS4gIEFkb3JuIGVhY2ggcm93IHdpdGggJzpyb3ctcHJvcGVydGll cycsIGlmIHByZXNlbnQuCih2dGFibGUtdW5zb3J0KTogTmV3IGNvbW1hbmQuCi0tLQogZG9jL21p c2MvdnRhYmxlLnRleGkgICAgICB8ICA2ICsrKysrKwogbGlzcC9lbWFjcy1saXNwL3Z0YWJsZS5l bCB8IDIyICsrKysrKysrKysrKysrKysrKysrLS0KIDIgZmlsZXMgY2hhbmdlZCwgMjYgaW5zZXJ0 aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kb2MvbWlzYy92dGFibGUudGV4 aSBiL2RvYy9taXNjL3Z0YWJsZS50ZXhpCmluZGV4IGRkMmY3OTUxMmMxLi5kMWNkMTNjZmEzMyAx MDA2NDQKLS0tIGEvZG9jL21pc2MvdnRhYmxlLnRleGkKKysrIGIvZG9jL21pc2MvdnRhYmxlLnRl eGkKQEAgLTQyNCw2ICs0MjQsMTIgQEAgTWFraW5nIEEgVGFibGUKIEBjb2Rlezpjb2x1bW4tY29s b3JzfSBpcyBwcmVzZW50LCB0aGUgY29sb3JzIHdpbGwgYmUgYGBibGVuZGVkJycgdG8KIHByb2R1 Y2UgdGhlIGZpbmFsIGNvbG9ycyBpbiB0aGUgdGFibGUuCiAKK0BpdGVtIDpyb3ctcHJvcGVydGll cworSWYgcHJlc2VudCwgdGhpcyBzaG91bGQgYmUgYSBsaXN0IG9mIHRleHQgcHJvcGVydGllcyAo QHB4cmVme1RleHQKK1Byb3BlcnRpZXMsLCwgZWxpc3AsIFRoZSBFbWFjcyBMaXNwIFJlZmVyZW5j ZSBNYW51YWx9KSB0aGF0IHdpbGwgYmUKK2FkZGVkIHRvIGVhY2ggcm93LiAgVGhpcyBpcyB1c2Vm dWwgdG8gYWRkIEBjb2RleydjdXJzb3ItZmFjZX0gb3IKK0Bjb2Rleydtb3VzZS1mYWNlfSB0byB0 YWJsZSByb3dzLgorCiBAaXRlbSA6YWN0aW9ucwogVGhpcyB1c2VzIHRoZSBzYW1lIHN5bnRheCBh cyBAY29kZXtkZWZpbmUta2V5bWFwfSwgYnV0IGRvZXNuJ3QgcmVmZXIKIHRvIGNvbW1hbmRzIGRp cmVjdGx5LiAgSW5zdGVhZCBlYWNoIGtleSBpcyBib3VuZCB0byBhIGNvbW1hbmQgdGhhdApkaWZm IC0tZ2l0IGEvbGlzcC9lbWFjcy1saXNwL3Z0YWJsZS5lbCBiL2xpc3AvZW1hY3MtbGlzcC92dGFi bGUuZWwKaW5kZXggMDA3ODUxMTNlZGIuLjZkMjFhYzExNWNkIDEwMDY0NAotLS0gYS9saXNwL2Vt YWNzLWxpc3AvdnRhYmxlLmVsCisrKyBiL2xpc3AvZW1hY3MtbGlzcC92dGFibGUuZWwKQEAgLTY1 LDYgKzY1LDcgQEAgdnRhYmxlCiAgICAoZGl2aWRlciA6aW5pdGFyZyA6ZGl2aWRlciA6YWNjZXNz b3IgdnRhYmxlLWRpdmlkZXIgOmluaXRmb3JtIG5pbCkKICAgIChzb3J0LWJ5IDppbml0YXJnIDpz b3J0LWJ5IDphY2Nlc3NvciB2dGFibGUtc29ydC1ieSkKICAgIChlbGxpcHNpcyA6aW5pdGFyZyA6 ZWxsaXBzaXMgOmFjY2Vzc29yIHZ0YWJsZS1lbGxpcHNpcykKKyAgIChyb3ctcHJvcGVydGllcyA6 aW5pdGFyZyA6cm93LXByb3BlcnRpZXMgOmFjY2Vzc29yIHZ0YWJsZS1yb3ctcHJvcGVydGllcykK ICAgIChjb2x1bW4tY29sb3JzIDppbml0YXJnIDpjb2x1bW4tY29sb3JzIDphY2Nlc3NvciB2dGFi bGUtY29sdW1uLWNvbG9ycykKICAgIChyb3ctY29sb3JzIDppbml0YXJnIDpyb3ctY29sb3JzIDph Y2Nlc3NvciB2dGFibGUtcm93LWNvbG9ycykKICAgICgtY2FjaGVkLWNvbG9ycyA6aW5pdGZvcm0g bmlsKQpAQCAtNzUsNiArNzYsNyBAQCB2dGFibGUKIAogKGRlZnZhci1rZXltYXAgdnRhYmxlLW1h cAogICAiUyIgIyd2dGFibGUtc29ydC1ieS1jdXJyZW50LWNvbHVtbgorICAiVSIgIyd2dGFibGUt dW5zb3J0CiAgICJ7IiAjJ3Z0YWJsZS1uYXJyb3ctY3VycmVudC1jb2x1bW4KICAgIn0iICMndnRh YmxlLXdpZGVuLWN1cnJlbnQtY29sdW1uCiAgICJnIiAjJ3Z0YWJsZS1yZXZlcnQtY29tbWFuZApA QCAtOTksNiArMTAxLDcgQEAgbWFrZS12dGFibGUKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzb3J0LWJ5CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVsbGlwc2lzIHQpCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKGluc2VydCB0KQorICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHJvdy1wcm9wZXJ0aWVzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm93LWNv bG9ycwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtbi1jb2xvcnMpCiAgICJDcmVh dGUgYW5kIGluc2VydCBhIHZ0YWJsZSBhdCBwb2ludC4KQEAgLTEyNCw2ICsxMjcsNyBAQCBtYWtl LXZ0YWJsZQogICAgICAgICAgIDprZXltYXAga2V5bWFwCiAgICAgICAgICAgOnNlcGFyYXRvci13 aWR0aCBzZXBhcmF0b3Itd2lkdGgKICAgICAgICAgICA6c29ydC1ieSBzb3J0LWJ5CisgICAgICAg ICAgOnJvdy1wcm9wZXJ0aWVzIHJvdy1wcm9wZXJ0aWVzCiAgICAgICAgICAgOnJvdy1jb2xvcnMg cm93LWNvbG9ycwogICAgICAgICAgIDpjb2x1bW4tY29sb3JzIGNvbHVtbi1jb2xvcnMKICAgICAg ICAgICA6ZWxsaXBzaXMgZWxsaXBzaXMpKSkKQEAgLTYzOSw3ICs2NDMsNiBAQCB2dGFibGUtLWlu c2VydC1saW5lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaXN0ICdzcGFj ZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6d2lkdGggKGxpc3Qg c3BhY2VyKSkpKSkpCiAgICAgICAgICAgIChwdXQtdGV4dC1wcm9wZXJ0eSBzdGFydCAocG9pbnQp ICd2dGFibGUtY29sdW1uIGluZGV4KQotICAgICAgICAgICAocHV0LXRleHQtcHJvcGVydHkgc3Rh cnQgKHBvaW50KSAna2V5bWFwIGtleW1hcCkKICAgICAgICAgICAgKHdoZW4gY29sdW1uLWNvbG9y cwogICAgICAgICAgICAgIChhZGQtZmFjZS10ZXh0LXByb3BlcnR5CiAgICAgICAgICAgICAgIHN0 YXJ0IChwb2ludCkKQEAgLTY0OSwxMiArNjUyLDE3IEBAIHZ0YWJsZS0taW5zZXJ0LWxpbmUKICAg ICAgICAgICAgICAoc2V0cSBzdGFydCAocG9pbnQpKSkpKSkKICAgICAgKGNkciBsaW5lKSkKICAg ICAoaW5zZXJ0ICJcbiIpCisgICAgKHB1dC10ZXh0LXByb3BlcnR5IHN0YXJ0IChwb2ludCkgJ2tl eW1hcCBrZXltYXApCiAgICAgKHB1dC10ZXh0LXByb3BlcnR5IHN0YXJ0IChwb2ludCkgJ3Z0YWJs ZS1vYmplY3QgKGNhciBsaW5lKSkKICAgICAodW5sZXNzIGNvbHVtbi1jb2xvcnMKICAgICAgICh3 aGVuLWxldCogKChyb3ctY29sb3JzIChzbG90LXZhbHVlIHRhYmxlICctY2FjaGVkLWNvbG9ycykp KQogICAgICAgICAoYWRkLWZhY2UtdGV4dC1wcm9wZXJ0eQogICAgICAgICAgc3RhcnQgKHBvaW50 KQotICAgICAgICAgKGVsdCByb3ctY29sb3JzIChtb2QgbGluZS1udW1iZXIgKGxlbmd0aCByb3ct Y29sb3JzKSkpKSkpKSkKKyAgICAgICAgIChlbHQgcm93LWNvbG9ycyAobW9kIGxpbmUtbnVtYmVy IChsZW5ndGggcm93LWNvbG9ycykpKSkpKQorICAgICh3aGVuICh2dGFibGUtcm93LXByb3BlcnRp ZXMgdGFibGUpCisgICAgICAoc2F2ZS1leGN1cnNpb24KKyAgICAgICAgKGZvcndhcmQtbGluZSAt MSkKKyAgICAgICAgKGFkZC10ZXh0LXByb3BlcnRpZXMgKHBvcy1ib2wpIChwb3MtZW9sKSAodnRh YmxlLXJvdy1wcm9wZXJ0aWVzIHRhYmxlKSkpKSkpCiAKIChkZWZ1biB2dGFibGUtLWNhY2hlLWtl eSAoKQogICAoY29ucyAoZnJhbWUtdGVybWluYWwpICh3aW5kb3ctd2lkdGgpKSkKQEAgLTEwNzUs NiArMTA4MywxNiBAQCB2dGFibGUtaGVhZGVyLWxpbmUtc29ydAogCQkJICAoY2FyIG9iaikpKQog ICAgICAgKHZ0YWJsZS1zb3J0LWJ5LWN1cnJlbnQtY29sdW1uKSkpKQogCisoZGVmdW4gdnRhYmxl LXVuc29ydCAoKQorICAiRGlzYWJsZSB0aGUgY3VycmVudCB2dGFibGUgc29ydC4KK1RoZSBkZWZh dWx0IG9yZGVyIG9mIHRoZSBvYmplY3RzIGlzIGRldGVybWluZWQgYnkgOm9iamVjdHMtZnVuY3Rp b24iCisgIChpbnRlcmFjdGl2ZSkKKyAgKGxldCAoKHRhYmxlICh2dGFibGUtY3VycmVudC10YWJs ZSkpKQorICAgICh1bmxlc3MgdGFibGUKKyAgICAgICh1c2VyLWVycm9yICJObyB0YWJsZSB1bmRl ciBwb2ludCIpKQorICAgIChzZXRmICh2dGFibGUtc29ydC1ieSB0YWJsZSkgbmlsKQorICAgICh2 dGFibGUtcmV2ZXJ0LWNvbW1hbmQpKSkKKwogKHByb3ZpZGUgJ3Z0YWJsZSkKIAogOzs7IHZ0YWJs ZS5lbCBlbmRzIGhlcmUKLS0gCjIuNDcuMQoK --000000000000e1b34c0632937187-- From debbugs-submit-bounces@debbugs.gnu.org Sat Apr 12 08:44:56 2025 Received: (at 77717) by debbugs.gnu.org; 12 Apr 2025 12:44:57 +0000 Received: from localhost ([127.0.0.1]:54368 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1u3aEB-0003DO-Dp for submit@debbugs.gnu.org; Sat, 12 Apr 2025 08:44:56 -0400 Received: from mail-vk1-xa2a.google.com ([2607:f8b0:4864:20::a2a]:61799) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from ) id 1u3aE7-0003BZ-IV for 77717@debbugs.gnu.org; Sat, 12 Apr 2025 08:44:53 -0400 Received: by mail-vk1-xa2a.google.com with SMTP id 71dfb90a1353d-525b44ec88aso1367177e0c.3 for <77717@debbugs.gnu.org>; Sat, 12 Apr 2025 05:44:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1744461885; x=1745066685; darn=debbugs.gnu.org; h=to:subject:message-id:date:from:in-reply-to:references:mime-version :from:to:cc:subject:date:message-id:reply-to; bh=WrdYQfVqu6/ER4W+9iyNvn3XLdM1HteI4ogIHPjAsxs=; b=Gmg3vNBe7fhxRE7p+xzukuRVHxJ/U7/1rY7D0tZ7z5+ytd9GutRJwzVbPCBoWWDYU2 ZAfDanOY41WcH0haBBAUidUPnhK73+xCntazMXYuveIOZSwMnehfVksholHR11B5xzDj Hf2neEXIeuf8UKiOweuLmv3+aO4FzfWJ87WcJumpe2pbYSsqB+qPLsAw+KtaGAf+UItO xOJwjfHcVJb2/mx8DWiNcKhxtzEKhGTzNloom/Rr1AreXWh4K+QXZrdROlYb9PQN8u2i aDsgOMv/bsjEhhaKy5QAP8VBrHXTTr98hX+NvismY3ggmyrap4CgYWaH7dweFzA1ffij h3xg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744461885; x=1745066685; h=to:subject:message-id:date:from:in-reply-to:references:mime-version :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=WrdYQfVqu6/ER4W+9iyNvn3XLdM1HteI4ogIHPjAsxs=; b=qPDn7kY/BPmtDHAFF8y01JswkoYnXT84pqcZA7Hq/JtHKYchP3chvBPcZoHlh+u3XO r3FF/GhrPhWaOPTa7kOlKnwa57Zd7NR/6ewW122m88mG6VY5n9eZE023cyT3D1Ki0kza tg9ZBWmdEA7rarn9Iv4kpVmFfRgI82tKacBvyvWzMWawgntyZs0JmavVx61/IzNcCJYj RU0sdGgIhR5sTB5XV/v0/OUNi1uPcWhUMKz8V7ffR5SVqL2xDghdQe7WA+TXdrrP535P iPPSw0WccqSci7I/M4U3z20J4tVtS92FLZFCAxgl2eVDRseK2rIy8ELd5B325tgHLYSS w8dg== X-Gm-Message-State: AOJu0Yx0XO3G8hVY2rGLHcBiS2nQxaBxojSv6TaWvDIMH7hOY6SwHIZN t9HknaV5fY4lD1wjDgnofXYfNkPdMWiMEtTfQ9vTzfvSPZuUyqOpLbsYpo/LpvtIUOJf+YxyuXI b/QXP359pmTJiynnMRBYmE8kjsckz0Q== X-Gm-Gg: ASbGncuMYzlq7lQw1tzBkXWALn3yvUijMT4IuM6lLeOaF1FVXRqKFBrZ4BMOFw1AifT kB4SypRRMil6RHNjdApA+TMtCFKHDFUmyx1RRLcA2iBCoNCs/7+eRyYsQb2l/4RW+SOXI4U6ZS3 QoiQiuVmCpRJjvrHDP1BcA4w== X-Google-Smtp-Source: AGHT+IFuDMDMKQdIzIczRJYvDVjM8KhNNo/wg3W41fKdi2t75GwkhFAjLEENrWr8fBnal47htRE3v4GxAESiaoSXfbg= X-Received: by 2002:a05:6102:32ce:b0:4c4:e415:6737 with SMTP id ada2fe7eead31-4c9e504bfcbmr4204381137.23.1744461885363; Sat, 12 Apr 2025 05:44:45 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Ship Mints Date: Sat, 12 Apr 2025 08:44:34 -0400 X-Gm-Features: ATxdqUFjwpnNal0szsctu9_g9nnI8ZxFTtbsGOe-61_DJQIzhqwIQqiszndAGWc Message-ID: Subject: Re: bug#77717: [PATCH] Add row-properties to 'vtable' To: 77717@debbugs.gnu.org Content-Type: multipart/mixed; boundary="0000000000000078000632942f15" X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 77717 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) --0000000000000078000632942f15 Content-Type: multipart/alternative; boundary="0000000000000077fe0632942f13" --0000000000000077fe0632942f13 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Sat, Apr 12, 2025 at 7:51=E2=80=AFAM Ship Mints wr= ote: > On Fri, Apr 11, 2025 at 4:02=E2=80=AFPM Ship Mints = wrote: > >> On Thu, Apr 10, 2025 at 6:11=E2=80=AFPM Ship Mints = wrote: >> >>> This is useful for adding 'cursor-face or 'mouse-face to each row. I'v= e >>> been advising 'vtable--insert-line' with an after advice. This is bett= er. >>> >>> Example: >>> >>> (make-vtable >>> :columns >>> '(( :name "Foo" >>> :primary ascending >>> )) >>> :allow-other-keys t ; backward compatibility for >>> :row-properties >>> :row-properties '( mouse-face highlight >>> cursor-face region) >>> >> >> Revised patch attached with the bug number and with 'keymap now applied >> to the whole row vs. just the row text. This ensures that keys (e.g., "= q" >> to quit) operate correctly if point is at the newline. >> > > While I have vtable cracked open, this revised patch now includes unsort. > vtable is nice. Now, a bit nicer. > Now with a complete sentence in 'vtable-unsort' docstring. --0000000000000077fe0632942f13 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
= On Sat, Apr 12, 2025 at 7:51=E2=80=AFAM Ship Mints <shipmints@gmail.com> wrote:
On = Fri, Apr 11, 2025 at 4:02=E2=80=AFPM Ship Mints <shipmints@gmail.com> wrote:=
On Thu, Ap= r 10, 2025 at 6:11=E2=80=AFPM Ship Mints <shipmints@gmail.com> wrote:
<= /div>
This is useful= for adding 'cursor-face or 'mouse-face to each row.=C2=A0 I've= been advising 'vtable--insert-line' with an after advice.=C2=A0 Th= is is better.

Example:

=C2=A0 =C2=A0 =C2=A0= =C2=A0 =C2=A0 (make-vtable
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0:co= lumns
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0'(( :name "Foo&q= uot;
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0:primary asc= ending
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0))
=C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0:allow-other-keys t ; backward compat= ibility for :row-properties
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0:ro= w-properties '( mouse-face highlight
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 c= ursor-face region)

Revised patch attached with the bug number and with = 9;keymap now applied to the whole row vs. just the row text.=C2=A0 This ens= ures that keys (e.g., "q" to quit) operate correctly=C2=A0if poin= t is at the newline.

While I have vtable cracked open, this revised = patch now includes unsort.=C2=A0 vtable is nice.=C2=A0 Now, a bit nicer.

Now with a complete sentence in 'vtabl= e-unsort' docstring.
--0000000000000077fe0632942f13-- --0000000000000078000632942f15 Content-Type: application/octet-stream; name="0001-vtable-row-keymap-row-properties-unsort-bug-77717.patch" Content-Disposition: attachment; filename="0001-vtable-row-keymap-row-properties-unsort-bug-77717.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m9e7k3p40 RnJvbSBiZDc1NGQwYWY1NzdiZTA0ZDBmMTY5Zjg2NjE0ZTFmYzcxODU5Mjg2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBzaGlwbWludHMgPHNoaXBtaW50c0BnbWFpbC5jb20+CkRhdGU6 IFRodSwgMTAgQXByIDIwMjUgMTg6MDA6NTUgLTA0MDAKU3ViamVjdDogW1BBVENIXSB2dGFibGU6 IHJvdyBrZXltYXAsIDpyb3ctcHJvcGVydGllcywgdW5zb3J0IChidWcjNzc3MTcpCgotICdrZXlt YXAgb24gdGhlIHdob2xlIHJvdyBlbnN1cmVzIGtleXMgd29yayBldmVuIG9uIHRoZQpuZXdsaW5l LgotIDpyb3ctcHJvcGVydGllcyBhcmUgdXNlZnVsIGZvciBhZGRpbmcgJ2N1cnNvci1mYWNlIG9y Cidtb3VzZS1mYWNlIHRvIGVhY2ggcm93LgotIHVuc29ydCB0byByZXZlcnQgdG8gb3JpZ2luYWwg b3JkZXIuCgoqIGRvYy9taXNjL3Z0YWJsZS50ZXhpIChNYWtpbmcgQSBUYWJsZSk6IERvY3VtZW50 Cic6cm93LXByb3BlcnRpZXMnLgoqIGxpc3AvZW1hY3MtbGlzcC92dGFibGUuZWwgKHZ0YWJsZSk6 IEFkZCBzbG90Cic6cm93LXByb3BlcnRpZXMnLgoodnRhYmxlLW1hcCk6IEJpbmQgIlUiIHRvICd2 dGFibGUtdW5zb3J0Jy4KKG1ha2UtdnRhYmxlKTogQWRkIGtleXdvcmQgJzpyb3ctcHJvcGVydGll cycuCih2dGFibGUtLWluc2VydC1saW5lKTogTW92ZSAna2V5bWFwIHRleHQgcHJvcGVydHkgdG8g aW5jbHVkZSB0aGUKbmV3bGluZS4gIEFkb3JuIGVhY2ggcm93IHdpdGggJzpyb3ctcHJvcGVydGll cycsIGlmIHByZXNlbnQuCih2dGFibGUtdW5zb3J0KTogTmV3IGNvbW1hbmQuCi0tLQogZG9jL21p c2MvdnRhYmxlLnRleGkgICAgICB8ICA2ICsrKysrKwogbGlzcC9lbWFjcy1saXNwL3Z0YWJsZS5l bCB8IDIzICsrKysrKysrKysrKysrKysrKysrKy0tCiAyIGZpbGVzIGNoYW5nZWQsIDI3IGluc2Vy dGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZG9jL21pc2MvdnRhYmxlLnRl eGkgYi9kb2MvbWlzYy92dGFibGUudGV4aQppbmRleCBkZDJmNzk1MTJjMS4uZDFjZDEzY2ZhMzMg MTAwNjQ0Ci0tLSBhL2RvYy9taXNjL3Z0YWJsZS50ZXhpCisrKyBiL2RvYy9taXNjL3Z0YWJsZS50 ZXhpCkBAIC00MjQsNiArNDI0LDEyIEBAIE1ha2luZyBBIFRhYmxlCiBAY29kZXs6Y29sdW1uLWNv bG9yc30gaXMgcHJlc2VudCwgdGhlIGNvbG9ycyB3aWxsIGJlIGBgYmxlbmRlZCcnIHRvCiBwcm9k dWNlIHRoZSBmaW5hbCBjb2xvcnMgaW4gdGhlIHRhYmxlLgogCitAaXRlbSA6cm93LXByb3BlcnRp ZXMKK0lmIHByZXNlbnQsIHRoaXMgc2hvdWxkIGJlIGEgbGlzdCBvZiB0ZXh0IHByb3BlcnRpZXMg KEBweHJlZntUZXh0CitQcm9wZXJ0aWVzLCwsIGVsaXNwLCBUaGUgRW1hY3MgTGlzcCBSZWZlcmVu Y2UgTWFudWFsfSkgdGhhdCB3aWxsIGJlCithZGRlZCB0byBlYWNoIHJvdy4gIFRoaXMgaXMgdXNl ZnVsIHRvIGFkZCBAY29kZXsnY3Vyc29yLWZhY2V9IG9yCitAY29kZXsnbW91c2UtZmFjZX0gdG8g dGFibGUgcm93cy4KKwogQGl0ZW0gOmFjdGlvbnMKIFRoaXMgdXNlcyB0aGUgc2FtZSBzeW50YXgg YXMgQGNvZGV7ZGVmaW5lLWtleW1hcH0sIGJ1dCBkb2Vzbid0IHJlZmVyCiB0byBjb21tYW5kcyBk aXJlY3RseS4gIEluc3RlYWQgZWFjaCBrZXkgaXMgYm91bmQgdG8gYSBjb21tYW5kIHRoYXQKZGlm ZiAtLWdpdCBhL2xpc3AvZW1hY3MtbGlzcC92dGFibGUuZWwgYi9saXNwL2VtYWNzLWxpc3AvdnRh YmxlLmVsCmluZGV4IDAwNzg1MTEzZWRiLi5hMjA2NWExNGYzYSAxMDA2NDQKLS0tIGEvbGlzcC9l bWFjcy1saXNwL3Z0YWJsZS5lbAorKysgYi9saXNwL2VtYWNzLWxpc3AvdnRhYmxlLmVsCkBAIC02 NSw2ICs2NSw3IEBAIHZ0YWJsZQogICAgKGRpdmlkZXIgOmluaXRhcmcgOmRpdmlkZXIgOmFjY2Vz c29yIHZ0YWJsZS1kaXZpZGVyIDppbml0Zm9ybSBuaWwpCiAgICAoc29ydC1ieSA6aW5pdGFyZyA6 c29ydC1ieSA6YWNjZXNzb3IgdnRhYmxlLXNvcnQtYnkpCiAgICAoZWxsaXBzaXMgOmluaXRhcmcg OmVsbGlwc2lzIDphY2Nlc3NvciB2dGFibGUtZWxsaXBzaXMpCisgICAocm93LXByb3BlcnRpZXMg OmluaXRhcmcgOnJvdy1wcm9wZXJ0aWVzIDphY2Nlc3NvciB2dGFibGUtcm93LXByb3BlcnRpZXMp CiAgICAoY29sdW1uLWNvbG9ycyA6aW5pdGFyZyA6Y29sdW1uLWNvbG9ycyA6YWNjZXNzb3IgdnRh YmxlLWNvbHVtbi1jb2xvcnMpCiAgICAocm93LWNvbG9ycyA6aW5pdGFyZyA6cm93LWNvbG9ycyA6 YWNjZXNzb3IgdnRhYmxlLXJvdy1jb2xvcnMpCiAgICAoLWNhY2hlZC1jb2xvcnMgOmluaXRmb3Jt IG5pbCkKQEAgLTc1LDYgKzc2LDcgQEAgdnRhYmxlCiAKIChkZWZ2YXIta2V5bWFwIHZ0YWJsZS1t YXAKICAgIlMiICMndnRhYmxlLXNvcnQtYnktY3VycmVudC1jb2x1bW4KKyAgIlUiICMndnRhYmxl LXVuc29ydAogICAieyIgIyd2dGFibGUtbmFycm93LWN1cnJlbnQtY29sdW1uCiAgICJ9IiAjJ3Z0 YWJsZS13aWRlbi1jdXJyZW50LWNvbHVtbgogICAiZyIgIyd2dGFibGUtcmV2ZXJ0LWNvbW1hbmQK QEAgLTk5LDYgKzEwMSw3IEBAIG1ha2UtdnRhYmxlCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc29ydC1ieQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbGxpcHNpcyB0KQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgIChpbnNlcnQgdCkKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICByb3ctcHJvcGVydGllcwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvdy1j b2xvcnMKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW4tY29sb3JzKQogICAiQ3Jl YXRlIGFuZCBpbnNlcnQgYSB2dGFibGUgYXQgcG9pbnQuCkBAIC0xMjQsNiArMTI3LDcgQEAgbWFr ZS12dGFibGUKICAgICAgICAgICA6a2V5bWFwIGtleW1hcAogICAgICAgICAgIDpzZXBhcmF0b3It d2lkdGggc2VwYXJhdG9yLXdpZHRoCiAgICAgICAgICAgOnNvcnQtYnkgc29ydC1ieQorICAgICAg ICAgIDpyb3ctcHJvcGVydGllcyByb3ctcHJvcGVydGllcwogICAgICAgICAgIDpyb3ctY29sb3Jz IHJvdy1jb2xvcnMKICAgICAgICAgICA6Y29sdW1uLWNvbG9ycyBjb2x1bW4tY29sb3JzCiAgICAg ICAgICAgOmVsbGlwc2lzIGVsbGlwc2lzKSkpCkBAIC02MzksNyArNjQzLDYgQEAgdnRhYmxlLS1p bnNlcnQtbGluZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGlzdCAnc3Bh Y2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOndpZHRoIChsaXN0 IHNwYWNlcikpKSkpKQogICAgICAgICAgICAocHV0LXRleHQtcHJvcGVydHkgc3RhcnQgKHBvaW50 KSAndnRhYmxlLWNvbHVtbiBpbmRleCkKLSAgICAgICAgICAgKHB1dC10ZXh0LXByb3BlcnR5IHN0 YXJ0IChwb2ludCkgJ2tleW1hcCBrZXltYXApCiAgICAgICAgICAgICh3aGVuIGNvbHVtbi1jb2xv cnMKICAgICAgICAgICAgICAoYWRkLWZhY2UtdGV4dC1wcm9wZXJ0eQogICAgICAgICAgICAgICBz dGFydCAocG9pbnQpCkBAIC02NDksMTIgKzY1MiwxNyBAQCB2dGFibGUtLWluc2VydC1saW5lCiAg ICAgICAgICAgICAgKHNldHEgc3RhcnQgKHBvaW50KSkpKSkpCiAgICAgIChjZHIgbGluZSkpCiAg ICAgKGluc2VydCAiXG4iKQorICAgIChwdXQtdGV4dC1wcm9wZXJ0eSBzdGFydCAocG9pbnQpICdr ZXltYXAga2V5bWFwKQogICAgIChwdXQtdGV4dC1wcm9wZXJ0eSBzdGFydCAocG9pbnQpICd2dGFi bGUtb2JqZWN0IChjYXIgbGluZSkpCiAgICAgKHVubGVzcyBjb2x1bW4tY29sb3JzCiAgICAgICAo d2hlbi1sZXQqICgocm93LWNvbG9ycyAoc2xvdC12YWx1ZSB0YWJsZSAnLWNhY2hlZC1jb2xvcnMp KSkKICAgICAgICAgKGFkZC1mYWNlLXRleHQtcHJvcGVydHkKICAgICAgICAgIHN0YXJ0IChwb2lu dCkKLSAgICAgICAgIChlbHQgcm93LWNvbG9ycyAobW9kIGxpbmUtbnVtYmVyIChsZW5ndGggcm93 LWNvbG9ycykpKSkpKSkpCisgICAgICAgICAoZWx0IHJvdy1jb2xvcnMgKG1vZCBsaW5lLW51bWJl ciAobGVuZ3RoIHJvdy1jb2xvcnMpKSkpKSkKKyAgICAod2hlbiAodnRhYmxlLXJvdy1wcm9wZXJ0 aWVzIHRhYmxlKQorICAgICAgKHNhdmUtZXhjdXJzaW9uCisgICAgICAgIChmb3J3YXJkLWxpbmUg LTEpCisgICAgICAgIChhZGQtdGV4dC1wcm9wZXJ0aWVzIChwb3MtYm9sKSAocG9zLWVvbCkgKHZ0 YWJsZS1yb3ctcHJvcGVydGllcyB0YWJsZSkpKSkpKQogCiAoZGVmdW4gdnRhYmxlLS1jYWNoZS1r ZXkgKCkKICAgKGNvbnMgKGZyYW1lLXRlcm1pbmFsKSAod2luZG93LXdpZHRoKSkpCkBAIC0xMDc1 LDYgKzEwODMsMTcgQEAgdnRhYmxlLWhlYWRlci1saW5lLXNvcnQKIAkJCSAgKGNhciBvYmopKSkK ICAgICAgICh2dGFibGUtc29ydC1ieS1jdXJyZW50LWNvbHVtbikpKSkKIAorKGRlZnVuIHZ0YWJs ZS11bnNvcnQgKCkKKyAgIkRpc2FibGUgdGhlIGN1cnJlbnQgdnRhYmxlIHNvcnQuCitUaGUgZGVm YXVsdCBvcmRlciBpcyBkZXRlcm1pbmVkIGJ5IHRoZSB0YWJsZSdzIG9iamVjdHMgb3IKKzpvYmpl Y3RzLWZ1bmN0aW9uLiIKKyAgKGludGVyYWN0aXZlKQorICAobGV0ICgodGFibGUgKHZ0YWJsZS1j dXJyZW50LXRhYmxlKSkpCisgICAgKHVubGVzcyB0YWJsZQorICAgICAgKHVzZXItZXJyb3IgIk5v IHRhYmxlIHVuZGVyIHBvaW50IikpCisgICAgKHNldGYgKHZ0YWJsZS1zb3J0LWJ5IHRhYmxlKSBu aWwpCisgICAgKHZ0YWJsZS1yZXZlcnQtY29tbWFuZCkpKQorCiAocHJvdmlkZSAndnRhYmxlKQog CiA7OzsgdnRhYmxlLmVsIGVuZHMgaGVyZQotLSAKMi40Ny4xCgo= --0000000000000078000632942f15-- From debbugs-submit-bounces@debbugs.gnu.org Mon Apr 21 16:20:05 2025 Received: (at 77717) by debbugs.gnu.org; 21 Apr 2025 20:20:06 +0000 Received: from localhost ([127.0.0.1]:39275 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1u6xcb-0003av-6L for submit@debbugs.gnu.org; Mon, 21 Apr 2025 16:20:05 -0400 Received: from mail-vk1-xa36.google.com ([2607:f8b0:4864:20::a36]:48266) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from ) id 1u6xcY-0003Zl-0X for 77717@debbugs.gnu.org; Mon, 21 Apr 2025 16:20:02 -0400 Received: by mail-vk1-xa36.google.com with SMTP id 71dfb90a1353d-5259327a937so1537666e0c.0 for <77717@debbugs.gnu.org>; Mon, 21 Apr 2025 13:20:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1745266796; x=1745871596; darn=debbugs.gnu.org; h=to:subject:message-id:date:from:in-reply-to:references:mime-version :from:to:cc:subject:date:message-id:reply-to; bh=rm4f8N5GycgyzyjP8pkizQ2EOQyeX+blVj/PIC8pBDQ=; b=mr69zbmc8gRiZ8/PuyQy9nTUYwa/e2ZOJ6FFnja4dVR29dBNNBCGfQbbi57zudnNf8 JaX3kuAUagZLzy01yx0L0EWWe/8kRjE/4zaI5PY0LcIhde3EnbBd54jKrticmlyGhHj8 0YcpKDWsAff70zlXVpVgJgdvICb9ui22Yrw8Sj439H9RROfhnzTPgEsukZM+MlPyc6Cu O9qXsPscX8mK9S//Whwvz/D3WtZo9Nk6DM7/WEl1HG69SoD8LGRmQ4UtRHOsTdzjxUd9 K21mY4PFA0HGsPJZHEa7Gur8NijbE1aX6jD8Rq40+b76tOilu6ORmfo6Fm9ONTFbEJbQ 4OrQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1745266796; x=1745871596; h=to:subject:message-id:date:from:in-reply-to:references:mime-version :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=rm4f8N5GycgyzyjP8pkizQ2EOQyeX+blVj/PIC8pBDQ=; b=uQXmweAT+wK0BG+tUCp+pv08B8DZ1CblCl8fREV6RPi0wW7E9DXmF7j+jfS54xSzns 9QpQHSqSdQLnOsS29YKmqzuYkyOIWCSrbgQXXrPsNX/wLGY66DdF9GJWjr6C9cx0nOUL uw2kSBhLSOsEJB4KWNo4EVhjaEIhxz2jDoNMVmRPOISKXuHYI1e9clNqSF5iXz5DFfCG lytZTf3ahXi6AwkwiUNw252dwHy2GCFAngqeCuZMyR8qXMIdvZZQCSVjB8dShVOF+XSx XXLxx39mJTBIVWKuIAiosMd5rR4Ck14I9wbYAvzh2Unw+W6mpHKFFTT/2ooN7edJg/Ar U2Eg== X-Gm-Message-State: AOJu0YxPOHUpoK3rApESakQI6Vff61zAglxiX0lAc3G4ie7NLRuNIu5P awRunsiGDy91mGXi6wQfI758zB30vdVoA0NynU90qYBI10RTvLHOkcD7MR332jI/sszHB+I6EKF SRXqsEA/Hhqq9b0g6R0e+AjionbHpvA== X-Gm-Gg: ASbGnctIyShb36STlhrlbntfDfPU0TOKOGBE7c9HgHmNu7YzcCi28gotmkTkwPg9YAV KhDzVL6jq37MRpRmvrxl+rhIXcJQYxlfuy69NWG1Lr42VGzuMgIeGFsIAnP1SCdAfkuTPBSNZue fs83BhH/q4t4IXVCFFBPbS+g== X-Google-Smtp-Source: AGHT+IFTjyzJlAJz252eTu2C2uyBM5kagRDsaFfcsJ1hkreDUp1zc29bUhNbj3k93MlaehJL+53IQpTMRBzoV0f7b1w= X-Received: by 2002:a05:6122:469c:b0:525:9440:243c with SMTP id 71dfb90a1353d-5292551a428mr9732645e0c.11.1745266795860; Mon, 21 Apr 2025 13:19:55 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Ship Mints Date: Mon, 21 Apr 2025 16:19:44 -0400 X-Gm-Features: ATxdqUGM5awzQAQe5Gs9dblz7M7GIXCCN5kIgccqwdJ43TItUrJg_7BscwRtxIw Message-ID: Subject: Re: bug#77717: [PATCH] Add row-properties to 'vtable' To: 77717@debbugs.gnu.org Content-Type: multipart/mixed; boundary="000000000000685efb06334f9720" X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 77717 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) --000000000000685efb06334f9720 Content-Type: multipart/alternative; boundary="000000000000685ef906334f971e" --000000000000685ef906334f971e Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Sat, Apr 12, 2025 at 8:44=E2=80=AFAM Ship Mints wr= ote: > On Sat, Apr 12, 2025 at 7:51=E2=80=AFAM Ship Mints = wrote: > >> On Fri, Apr 11, 2025 at 4:02=E2=80=AFPM Ship Mints = wrote: >> >>> On Thu, Apr 10, 2025 at 6:11=E2=80=AFPM Ship Mints wrote: >>> >>>> This is useful for adding 'cursor-face or 'mouse-face to each row. >>>> I've been advising 'vtable--insert-line' with an after advice. This i= s >>>> better. >>>> >>>> Example: >>>> >>>> (make-vtable >>>> :columns >>>> '(( :name "Foo" >>>> :primary ascending >>>> )) >>>> :allow-other-keys t ; backward compatibility for >>>> :row-properties >>>> :row-properties '( mouse-face highlight >>>> cursor-face region) >>>> >>> >>> Revised patch attached with the bug number and with 'keymap now applied >>> to the whole row vs. just the row text. This ensures that keys (e.g., = "q" >>> to quit) operate correctly if point is at the newline. >>> >> >> While I have vtable cracked open, this revised patch now includes >> unsort. vtable is nice. Now, a bit nicer. >> > > Now with a complete sentence in 'vtable-unsort' docstring. > I've expanded the scope of this bug to include additional enhancements, all intended to be backwardly compatible, yet provide some very nice customization features. The biggest issues I wanted to address were that display-line-numbers was not correctly supported when using the header-line, and that text-scale-mode did not work well. Along the way, I added custom faces for the header, column names, column-width computation optionally includes column name width, an unsort command, skipping the divider on the last column (this one was an outright bug), an option to make the divider intangible, an option to not produce dividers on the header, customizable sort indicators and faces. As test jigs, I've been using some code I wrote for tab-bar that presents all open tabs from across all frames and in a useful way for frame/tab switching (discussed in a few open bugs with Juri), and a project-list tool (discussed in an open bug with Dmitry). vtable is great for these use cases. I will share those for feedback after the vtable work. I have a couple more minor vtable things to do, and I figured if anyone is interested in vtable as the wonderful addition to Emacs it is (thanks Lars!), I wanted to share the work in process for feedback. I will update the documentation and I might go through flymake noise and add docstrings while I'm at it. Patch attached. -Stephane --000000000000685ef906334f971e Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
= On Sat, Apr 12, 2025 at 8:44=E2=80=AFAM Ship Mints <shipmints@gmail.com> wrote:
On = Sat, Apr 12, 2025 at 7:51=E2=80=AFAM Ship Mints <shipmints@gmail.com> wrote:=
On Fri, Ap= r 11, 2025 at 4:02=E2=80=AFPM Ship Mints <shipmints@gmail.com> wrote:
<= /div>
On Thu, Apr 10, 2= 025 at 6:11=E2=80=AFPM Ship Mints <shipmints@gmail.com> wrote:
=
This is useful for ad= ding 'cursor-face or 'mouse-face to each row.=C2=A0 I've been a= dvising 'vtable--insert-line' with an after advice.=C2=A0 This is b= etter.

Example:

=C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 (make-vtable
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0:column= s
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0'(( :name "Foo"=
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0:primary ascendi= ng
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0))
=C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0:allow-other-keys t ; backward compatibil= ity for :row-properties
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0:row-pr= operties '( mouse-face highlight
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 curso= r-face region)

Revised patch attached with the bug number and with 'ke= ymap now applied to the whole row vs. just the row text.=C2=A0 This ensures= that keys (e.g., "q" to quit) operate correctly=C2=A0if point is= at the newline.

While I have vtable cracked open, this revised patc= h now includes unsort.=C2=A0 vtable is nice.=C2=A0 Now, a bit nicer.

Now with a complete sentence in 'vtable-unsort' docstring.

I've expanded the scope of this bug to incl= ude additional enhancements, all intended to be backwardly compatible, yet = provide some very nice customization features.

The biggest issues I wanted to address we= re that display-line-numbers was not correctly supported when using the hea= der-line, and that text-scale-mode did not work well.

Along the way, I added custom face= s for the header, column names, column-width computation optionally include= s column name width, an unsort command, skipping the divider on the last co= lumn (this one was an outright bug), an option to make the divider intangib= le, an option to not produce dividers on the header, customizable sort indi= cators and faces.

As=C2=A0test jigs, I've been using some code I wrote for tab-bar t= hat presents all open tabs from across all frames and in a useful way for f= rame/tab switching (discussed in a few open bugs with Juri), and a project-= list tool (discussed in an open bug with Dmitry).=C2=A0 vtable is great for= these use cases.=C2=A0 I will share those for feedback after the vtable wo= rk.

<= /div>
I have a = couple more minor vtable things to do, and I figured if anyone is intereste= d in vtable as the wonderful addition to Emacs it is (thanks Lars!), I want= ed to share the work in process for feedback.=C2=A0 I will update the docum= entation and I might go through flymake noise and add docstrings while I= 9;m at it.

Pa= tch attached.

-Stephane
--000000000000685ef906334f971e-- --000000000000685efb06334f9720 Content-Type: application/octet-stream; name="0001-vtable-enhancements-bug-77747.patch" Content-Disposition: attachment; filename="0001-vtable-enhancements-bug-77747.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m9ripv460 RnJvbSBhMDI0YWIyZjk2YmRhNDdlNjc4MGU1OTJjZWRkYjk2Nzc2YzVkNmJhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBzaGlwbWludHMgPHNoaXBtaW50c0BnbWFpbC5jb20+CkRhdGU6 IFN1biwgMjAgQXByIDIwMjUgMTE6NDY6MjEgLTA0MDAKU3ViamVjdDogW1BBVENIXSB2dGFibGUg ZW5oYW5jZW1lbnRzIChidWcjNzc3NDcpCgpBbGwgZW5oYW5jZW1lbnRzIGFyZSBpbnRlbmRlZCB0 byBiZSBiYWNrd2FyZGx5IGNvbXBhdGlibGUuCgoqIGxpc3AvZW1hY3MtbGlzcC92dGFibGUuZWwg KHZ0YWJsZS1oZWFkZXIpCih2dGFibGUtc29ydC1pbmQtYXNjZW5kLCB2dGFibGUtc29ydC1pbmQt ZGVzY2VuZCk6IE5ldyBmYWNlLgoodnRhYmxlLXNvcnQtaW5kLWRlZmF1bHQpOiBOZXcgZGVmdmFy LgoodnRhYmxlLWNvbHVtbik6IE5ldyBzbG90IGluZmVyLXdpZHRoLgoodnRhYmxlKTogTmV3IHNs b3RzIHRleHQtc2NhbGUsIHRleHQtc2NhbGUtaGVhZGVyLCBoZWFkZXItZmFjZSwKZGl2aWRlci1v bi1oZWFkZXIsIHNvcnQtaW5kLCBzb3J0LWluZC1mYWNlLWFzY2VuZCwKc29ydC1pbmQtZmFjZS1k ZXNjZW5kLCByb3ctcHJvcGVydGllcy4KKHZ0YWJsZS1tYXApOiBBZGQgdW5zb3J0LgoobWFrZS12 dGFibGUpOiBOZXcga2V5cyBoZWFkZXItZmFjZSwgZGl2aWRlci1vbi1oZWFkZXIsCmRpdmlkZXIt aW50YW5naWJsZSwgc29ydC1pbmQsIHNvcnQtaW5kLWZhY2UtYXNjZW5kLApzb3J0LWluZC1mYWNl LWRlc2NlbmQsIHJvdy1wcm9wZXJ0aWVzLCB0ZXh0LXNjYWxlLAp0ZXh0LXNjYWxlLWhlYWRlci4K KHZ0YWJsZS1pbnNlcnQtb2JqZWN0KTogVXNlIHZ0YWJsZS0tc3RyaW5nLXBpeGVsLXdpZHRoLgoo dnRhYmxlLWluc2VydCk6IFVzZSB2dGFibGUtLXN0cmluZy1waXhlbC13aWR0aC4KKHZ0YWJsZS0t aW5zZXJ0LWxpbmUpOiBVc2UgdnRhYmxlLS1zdHJpbmctcGl4ZWwtd2lkdGggYW5kCnJvdy1wcm9w ZXJ0aWVzLgoodnRhYmxlLS1jYWNoZS1rZXkpOiBFeHBsaWNpdGx5IHVzZSB3aW5kb3ctYm9keS13 aWR0aCB3aXRoIHRoZQoncmVtYXAgb3B0aW9uLgoodnRhYmxlLS1pbmRpY2F0b3IpOiBVc2UgbmV3 IHNvcnQtaW5kIHNsb3QsIHJldHVybiBjb25zCmluZGljYXRvciAuIGRpcmVjdGlvbi4KKHZ0YWJs ZS0taW5zZXJ0LWhlYWRlci1saW5lKTogVXNlIHZ0YWJsZS0tc3RyaW5nLXBpeGVsLXdpZHRoLApo ZWFkZXIgZmFjZSwgc29ydCBpbmRpY2F0b3IgZmFjZXMsIHVzZSBkaXZpZGVyLW9uLWhlYWRlciBz bG90LApza2lwIGRpdmlkZXIgb24gdGhlIGxhc3QgY29sdW1uLgoodnRhYmxlLS10ZXh0LXNjYWxl LXJlbWFwLWhlYWRlci1saW5lKTogTmV3IGRlZnZhci4KKHZ0YWJsZS0tc2V0LWhlYWRlci1saW5l KTogU3VwcG9ydCB0ZXh0IHNjYWxlOiB0ZW1wIGJ1ZmZlcgpyZXNwZWN0cyBvcmlnaW5hdGluZyBi dWZmZXIncyBmYWNlIGFuZCBzY2FsZSBwcm9wZXJ0aWVzLApvcHRpb25hbGx5IHNldCB0ZXh0LXNj YWxlLXJlbWFwLWhlYWRlci1saW5lLgoodnRhYmxlLS1saW1pdC1zdHJpbmcpOiBVc2UgdnRhYmxl LS1zdHJpbmctcGl4ZWwtd2lkdGguCih2dGFibGUtLXRleHQtc2NhbGUtcGl4ZWxzKTogTmV3IGRl ZnVuLgoodnRhYmxlLS1zdHJpbmctcGl4ZWwtd2lkdGgpOiBOZXcgZGVmdW4uCih2dGFibGUtLWNo YXItd2lkdGgpOiBVc2UgdnRhYmxlLS1zdHJpbmctcGl4ZWwtd2lkdGguCih2dGFibGUtLWNvbXB1 dGUtd2lkdGgpOiBFeHBsaWNpdGx5IHVzZSB3aW5kb3ctYm9keS13aWR0aC4KKHZ0YWJsZS0tY29t cHV0ZS13aWR0aHMpOiBVc2UgaW5mZXItd2lkdGggc2xvdC4gIEV4cGxpY2l0bHkgdXNlCndpbmRv dy1ib2R5LXdpZHRoLgoodnRhYmxlLS1jb21wdXRlLWNhY2hlZC1saW5lKTogVXNlIHZ0YWJsZS0t c3RyaW5nLXBpeGVsLXdpZHRoLgoodnRhYmxlLS1kaXNwbGF5LWxpbmUtbnVtYmVycyk6IE5ldyBk ZWZ2YXIuCih2dGFibGUtLXBvc3QtY29tbWFuZCk6IE5ldyBkZWZ1biB0byBzdXBwb3J0CmRpc3Bs YXktbGluZS1udW1iZXJzLgoodnRhYmxlLWhlYWRlci1tb2RlKTogQWRkIHBvc3QtY29tbWFuZC1o b29rIHRvIHN1cHBvcnQKZGlzcGxheS1saW5lLW51bWJlcnMuCih2dGFibGUtdW5zb3J0KTogTmV3 IGRlZnVuLgotLS0KIGxpc3AvZW1hY3MtbGlzcC92dGFibGUuZWwgfCA0MDQgKysrKysrKysrKysr KysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAyNjcgaW5zZXJ0aW9u cygrKSwgMTM3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2xpc3AvZW1hY3MtbGlzcC92dGFi bGUuZWwgYi9saXNwL2VtYWNzLWxpc3AvdnRhYmxlLmVsCmluZGV4IDAwNzg1MTEzZWRiLi5hMmIw OThkMDRhOCAxMDA2NDQKLS0tIGEvbGlzcC9lbWFjcy1saXNwL3Z0YWJsZS5lbAorKysgYi9saXNw L2VtYWNzLWxpc3AvdnRhYmxlLmVsCkBAIC0zMCwxNCArMzAsNDAgQEAKIAogKGRlZmZhY2UgdnRh YmxlCiAgICcoKHQgOmluaGVyaXQgdmFyaWFibGUtcGl0Y2gpKQotICAiRmFjZSB1c2VkIChieSBk ZWZhdWx0KSBmb3IgdnRhYmxlcy4iCisgICJGYWNlIHVzZWQgKGJ5IGRlZmF1bHQpIGZvciB2dGFi bGUgYm9kaWVzLiIKICAgOnZlcnNpb24gIjI5LjEiCiAgIDpncm91cCAnZmFjZXMpCiAKKyhkZWZm YWNlIHZ0YWJsZS1oZWFkZXIKKyAgJygodCA6aW5oZXJpdCAoaGVhZGVyLWxpbmUgdnRhYmxlKSkp CisgICJGYWNlIHVzZWQgKGJ5IGRlZmF1bHQpIGZvciB2dGFibGUgaGVhZGVycy4iCisgIDp2ZXJz aW9uICIzMS4xIgorICA6Z3JvdXAgJ2ZhY2VzKQorCisoZGVmZmFjZSB2dGFibGUtc29ydC1pbmQt YXNjZW5kCisgICcoKHQgOmluaGVyaXQgdnRhYmxlLWhlYWRlcikpCisgICJGYWNlIHVzZWQgKGJ5 IGRlZmF1bHQpIGZvciB2dGFibGUgYXNjZW5kIHNvcnQgaW5kaWNhdG9yLiIKKyAgOnZlcnNpb24g IjMxLjEiCisgIDpncm91cCAnZmFjZXMpCisKKyhkZWZmYWNlIHZ0YWJsZS1zb3J0LWluZC1kZXNj ZW5kCisgICcoKHQgOmluaGVyaXQgdnRhYmxlLWhlYWRlcikpCisgICJGYWNlIHVzZWQgKGJ5IGRl ZmF1bHQpIGZvciB2dGFibGUgZGVzY2VuZCBzb3J0IGluZGljYXRvci4iCisgIDp2ZXJzaW9uICIz MS4xIgorICA6Z3JvdXAgJ2ZhY2VzKQorCisoZGVmdmFyIHZ0YWJsZS1zb3J0LWluZC1kZWZhdWx0 ICcoKD/ilrwgP3YpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKD/ilrIgP14p KQorICAiRGVmYXVsdCBkZXNjZW5kaW5nIGFuZCBhc2NlbmRpbmcgc29ydCBpbmRpY2F0b3JzLgor VGhlIGZvcm0gaXMgYSBsaXN0IG9mIHR3byBjb25zZXMgb2YgdHdvIGNoYXJhY3RlcnMuICBUaGUg Zmlyc3Qgc2V0IGluZGljYXRlcworc29ydGluZyBkZXNjZW5kaW5nLCB0aGUgc2Vjb25kIGFzY2Vu ZGluZy4gIFRoZSBmaXJzdCBjaGFyYWN0ZXIgaW4gZWFjaCBjb25zCitpcyBmb3IgZm9udHMgdGhh dCBjYW4gZGlzcGxheSBzeW1ib2xzLCBhbmQgdGhlIHNlY29uZCBpcyBwbGFpbiB0ZXh0LiIpCisK IChjbC1kZWZzdHJ1Y3QgdnRhYmxlLWNvbHVtbgogICAiQSB2dGFibGUgY29sdW1uLiIKICAgbmFt ZQogICB3aWR0aAorICBpbmZlci13aWR0aCA7IG5pbCBvciAnZGF0YSB1c2VzIGRhdGEsICdkYXRh K25hbWUgaW5jbHVkZXMgY29sdW1uIG5hbWUKICAgbWluLXdpZHRoCiAgIG1heC13aWR0aAogICBw cmltYXJ5CkBAIC01OCwxMyArODQsMjEgQEAgdnRhYmxlCiAgICAoZGlzcGxheWVyIDppbml0YXJn IDpkaXNwbGF5ZXIgOmFjY2Vzc29yIHZ0YWJsZS1kaXNwbGF5ZXIpCiAgICAodXNlLWhlYWRlci1s aW5lIDppbml0YXJnIDp1c2UtaGVhZGVyLWxpbmUKICAgICAgICAgICAgICAgICAgICAgOmFjY2Vz c29yIHZ0YWJsZS11c2UtaGVhZGVyLWxpbmUpCisgICAodGV4dC1zY2FsZSA6aW5pdGFyZyA6dGV4 dC1zY2FsZSA6YWNjZXNzb3IgdnRhYmxlLXRleHQtc2NhbGUpCisgICAodGV4dC1zY2FsZS1oZWFk ZXIgOmluaXRhcmcgOnRleHQtc2NhbGUtaGVhZGVyIDphY2Nlc3NvciB2dGFibGUtdGV4dC1zY2Fs ZS1oZWFkZXIpCiAgICAoZmFjZSA6aW5pdGFyZyA6ZmFjZSA6YWNjZXNzb3IgdnRhYmxlLWZhY2Up CisgICAoaGVhZGVyLWZhY2UgOmluaXRhcmcgOmhlYWRlci1mYWNlIDphY2Nlc3NvciB2dGFibGUt aGVhZGVyLWZhY2UpCiAgICAoYWN0aW9ucyA6aW5pdGFyZyA6YWN0aW9ucyA6YWNjZXNzb3IgdnRh YmxlLWFjdGlvbnMpCiAgICAoa2V5bWFwIDppbml0YXJnIDprZXltYXAgOmFjY2Vzc29yIHZ0YWJs ZS1rZXltYXApCiAgICAoc2VwYXJhdG9yLXdpZHRoIDppbml0YXJnIDpzZXBhcmF0b3Itd2lkdGgg OmFjY2Vzc29yIHZ0YWJsZS1zZXBhcmF0b3Itd2lkdGgpCiAgICAoZGl2aWRlciA6aW5pdGFyZyA6 ZGl2aWRlciA6YWNjZXNzb3IgdnRhYmxlLWRpdmlkZXIgOmluaXRmb3JtIG5pbCkKKyAgIChkaXZp ZGVyLW9uLWhlYWRlciA6aW5pdGFyZyA6ZGl2aWRlci1vbi1oZWFkZXIgOmFjY2Vzc29yIHZ0YWJs ZS1kaXZpZGVyLW9uLWhlYWRlciA6aW5pdGZvcm0gbmlsKQogICAgKHNvcnQtYnkgOmluaXRhcmcg OnNvcnQtYnkgOmFjY2Vzc29yIHZ0YWJsZS1zb3J0LWJ5KQorICAgKHNvcnQtaW5kIDppbml0YXJn IDpzb3J0LWluZCA6YWNjZXNzb3IgdnRhYmxlLXNvcnQtaW5kKQorICAgKHNvcnQtaW5kLWZhY2Ut YXNjZW5kIDppbml0YXJnIDpzb3J0LWluZC1mYWNlLWFzY2VuZCA6YWNjZXNzb3IgdnRhYmxlLXNv cnQtaW5kLWZhY2UtYXNjZW5kKQorICAgKHNvcnQtaW5kLWZhY2UtZGVzY2VuZCA6aW5pdGFyZyA6 c29ydC1pbmQtZmFjZS1kZXNjZW5kIDphY2Nlc3NvciB2dGFibGUtc29ydC1pbmQtZmFjZS1kZXNj ZW5kKQogICAgKGVsbGlwc2lzIDppbml0YXJnIDplbGxpcHNpcyA6YWNjZXNzb3IgdnRhYmxlLWVs bGlwc2lzKQorICAgKHJvdy1wcm9wZXJ0aWVzIDppbml0YXJnIDpyb3ctcHJvcGVydGllcyA6YWNj ZXNzb3IgdnRhYmxlLXJvdy1wcm9wZXJ0aWVzKQogICAgKGNvbHVtbi1jb2xvcnMgOmluaXRhcmcg OmNvbHVtbi1jb2xvcnMgOmFjY2Vzc29yIHZ0YWJsZS1jb2x1bW4tY29sb3JzKQogICAgKHJvdy1j b2xvcnMgOmluaXRhcmcgOnJvdy1jb2xvcnMgOmFjY2Vzc29yIHZ0YWJsZS1yb3ctY29sb3JzKQog ICAgKC1jYWNoZWQtY29sb3JzIDppbml0Zm9ybSBuaWwpCkBAIC03NSw2ICsxMDksNyBAQCB2dGFi bGUKIAogKGRlZnZhci1rZXltYXAgdnRhYmxlLW1hcAogICAiUyIgIyd2dGFibGUtc29ydC1ieS1j dXJyZW50LWNvbHVtbgorICAiVSIgIyd2dGFibGUtdW5zb3J0CiAgICJ7IiAjJ3Z0YWJsZS1uYXJy b3ctY3VycmVudC1jb2x1bW4KICAgIn0iICMndnRhYmxlLXdpZGVuLWN1cnJlbnQtY29sdW1uCiAg ICJnIiAjJ3Z0YWJsZS1yZXZlcnQtY29tbWFuZApAQCAtOTIsMjAgKzEyNywyOSBAQCBtYWtlLXZ0 YWJsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXllcgogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICh1c2UtaGVhZGVyLWxpbmUgdCkKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAoZmFjZSAndnRhYmxlKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIChoZWFk ZXItZmFjZSAndnRhYmxlLWhlYWRlcikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3Rp b25zIGtleW1hcAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzZXBhcmF0b3Itd2lkdGgg MSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXZpZGVyCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgZGl2aWRlci13aWR0aAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIChk aXZpZGVyLW9uLWhlYWRlciB0KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpdmlkZXIt aW50YW5naWJsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvcnQtYnkKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAoc29ydC1pbmQgdnRhYmxlLXNvcnQtaW5kLWRlZmF1bHQpCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKHNvcnQtaW5kLWZhY2UtYXNjZW5kICd2dGFibGUt c29ydC1pbmQtYXNjZW5kKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzb3J0LWluZC1m YWNlLWRlc2NlbmQgJ3Z0YWJsZS1zb3J0LWluZC1kZXNjZW5kKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgIChlbGxpcHNpcyB0KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnNl cnQgdCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3ctcHJvcGVydGllcwogICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHJvdy1jb2xvcnMKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICBjb2x1bW4tY29sb3JzKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtbi1j b2xvcnMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0LXNjYWxlCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgdGV4dC1zY2FsZS1oZWFkZXIpCiAgICJDcmVhdGUgYW5kIGluc2Vy dCBhIHZ0YWJsZSBhdCBwb2ludC4KLVRoZSB2dGFibGUgb2JqZWN0IGlzIHJldHVybmVkLiAgSWYg SU5TRVJUIGlzIG5pbCwgdGhlIHRhYmxlIHdvbid0Ci1iZSBpbnNlcnRlZC4KKyAgVGhlIHZ0YWJs ZSBvYmplY3QgaXMgcmV0dXJuZWQuICBJZiBJTlNFUlQgaXMgbmlsLCB0aGUgdGFibGUgd29uJ3QK KyAgYmUgaW5zZXJ0ZWQuCiAKLVNlZSBpbmZvIG5vZGUgYCh2dGFibGUpVG9wJyBmb3IgdnRhYmxl IGRvY3VtZW50YXRpb24uIgorICBTZWUgaW5mbyBub2RlIGAodnRhYmxlKVRvcCcgZm9yIHZ0YWJs ZSBkb2N1bWVudGF0aW9uLiIKICAgKHdoZW4gb2JqZWN0cy1mdW5jdGlvbgogICAgIChzZXRxIG9i amVjdHMgKGZ1bmNhbGwgb2JqZWN0cy1mdW5jdGlvbikpKQogICA7OyBXZSdsbCBiZSBhbHRlcmlu ZyB0aGUgbGlzdCwgc28gY3JlYXRlIGEgY29weS4KQEAgLTExOSwxMSArMTYzLDE5IEBAIG1ha2Ut dnRhYmxlCiAgICAgICAgICAgOmZvcm1hdHRlciBmb3JtYXR0ZXIKICAgICAgICAgICA6ZGlzcGxh eWVyIGRpc3BsYXllcgogICAgICAgICAgIDp1c2UtaGVhZGVyLWxpbmUgdXNlLWhlYWRlci1saW5l CisgICAgICAgICAgOnRleHQtc2NhbGUgdGV4dC1zY2FsZQorICAgICAgICAgIDp0ZXh0LXNjYWxl LWhlYWRlciB0ZXh0LXNjYWxlLWhlYWRlcgogICAgICAgICAgIDpmYWNlIGZhY2UKKyAgICAgICAg ICA6aGVhZGVyLWZhY2UgaGVhZGVyLWZhY2UKICAgICAgICAgICA6YWN0aW9ucyBhY3Rpb25zCiAg ICAgICAgICAgOmtleW1hcCBrZXltYXAKICAgICAgICAgICA6c2VwYXJhdG9yLXdpZHRoIHNlcGFy YXRvci13aWR0aAorICAgICAgICAgIDpkaXZpZGVyLW9uLWhlYWRlciBkaXZpZGVyLW9uLWhlYWRl cgogICAgICAgICAgIDpzb3J0LWJ5IHNvcnQtYnkKKyAgICAgICAgICA6c29ydC1pbmQgc29ydC1p bmQKKyAgICAgICAgICA6c29ydC1pbmQtZmFjZS1hc2NlbmQgc29ydC1pbmQtZmFjZS1hc2NlbmQK KyAgICAgICAgICA6c29ydC1pbmQtZmFjZS1kZXNjZW5kIHNvcnQtaW5kLWZhY2UtZGVzY2VuZAor ICAgICAgICAgIDpyb3ctcHJvcGVydGllcyByb3ctcHJvcGVydGllcwogICAgICAgICAgIDpyb3ct Y29sb3JzIHJvdy1jb2xvcnMKICAgICAgICAgICA6Y29sdW1uLWNvbG9ycyBjb2x1bW4tY29sb3Jz CiAgICAgICAgICAgOmVsbGlwc2lzIGVsbGlwc2lzKSkpCkBAIC0xNTUsMTggKzIwNywyNyBAQCBt YWtlLXZ0YWJsZQogICAgICAgICAgICAgKHZ0YWJsZS0tY29tcHV0ZS1jb2xvcnMgcm93LWNvbG9y cyBjb2x1bW4tY29sb3JzKSkpCiAgICAgOzsgQ29tcHV0ZSB0aGUgZGl2aWRlci4KICAgICAod2hl biAob3IgZGl2aWRlciBkaXZpZGVyLXdpZHRoKQotICAgICAgKHNldGYgKHZ0YWJsZS1kaXZpZGVy IHRhYmxlKQotICAgICAgICAgICAgKHByb3BlcnRpemUKLSAgICAgICAgICAgICAob3IgKGNvcHkt c2VxdWVuY2UgZGl2aWRlcikKLSAgICAgICAgICAgICAgICAgKHByb3BlcnRpemUKLSAgICAgICAg ICAgICAgICAgICIgIiAnZGlzcGxheQotICAgICAgICAgICAgICAgICAgKGxpc3QgJ3NwYWNlIDp3 aWR0aAotICAgICAgICAgICAgICAgICAgICAgICAgKGxpc3QgKHZ0YWJsZS0tY29tcHV0ZS13aWR0 aCB0YWJsZSBkaXZpZGVyLXdpZHRoKSkpKSkKLSAgICAgICAgICAgICAnbW91c2UtZmFjZSAnaGln aGxpZ2h0Ci0gICAgICAgICAgICAgJ2tleW1hcAotICAgICAgICAgICAgIChkZWZpbmUta2V5bWFw Ci0gICAgICAgICAgICAgICAiPGRyYWctbW91c2UtMT4iICMndnRhYmxlLS1kcmFnLXJlc2l6ZS1j b2x1bW4KLSAgICAgICAgICAgICAgICI8ZG93bi1tb3VzZS0xPiIgIydpZ25vcmUpKSkpCisgICAg ICAobGV0ICgoZGl2CisgICAgICAgICAgICAgKHByb3BlcnRpemUKKyAgICAgICAgICAgICAgKG9y IChjb3B5LXNlcXVlbmNlIGRpdmlkZXIpCisgICAgICAgICAgICAgICAgICAocHJvcGVydGl6ZQor ICAgICAgICAgICAgICAgICAgICIgIiAnZGlzcGxheQorICAgICAgICAgICAgICAgICAgIChsaXN0 ICdzcGFjZSA6d2lkdGgKKyAgICAgICAgICAgICAgICAgICAgICAgICAobGlzdCAodnRhYmxlLS1j b21wdXRlLXdpZHRoIHRhYmxlIGRpdmlkZXItd2lkdGgpKSkpKQorICAgICAgICAgICAgICAnbW91 c2UtZmFjZSAnaGlnaGxpZ2h0CisgICAgICAgICAgICAgICdrZXltYXAKKyAgICAgICAgICAgICAg KGRlZmluZS1rZXltYXAKKyAgICAgICAgICAgICAgICAiPGRyYWctbW91c2UtMT4iICMndnRhYmxl LS1kcmFnLXJlc2l6ZS1jb2x1bW4KKyAgICAgICAgICAgICAgICAiPGRvd24tbW91c2UtMT4iICMn aWdub3JlKSkpKQorICAgICAgICAod2hlbiBkaXZpZGVyLWludGFuZ2libGUKKyAgICAgICAgICAo YWRkLXRleHQtcHJvcGVydGllcworICAgICAgICAgICAwIChsZW5ndGggZGl2KQorICAgICAgICAg ICAobGlzdCAnZmllbGQgdCAncmVhci1ub25zdGlja3kgdCAnZnJvbnQtc3RpY2t5IHQKKyAgICAg ICAgICAgICAgICAgJ2ludGFuZ2libGUtdGV4dCB0ICdjdXJzb3ItaW50YW5naWJsZSB0KQorICAg ICAgICAgICBkaXYpKQorICAgICAgICAoc2V0ZiAodnRhYmxlLWRpdmlkZXIgdGFibGUpIGRpdikK KyAgICAgICAgKHdoZW4gZGl2aWRlci1pbnRhbmdpYmxlCisgICAgICAgICAgKGN1cnNvci1pbnRh bmdpYmxlLW1vZGUpKSkpCiAgICAgOzsgQ29tcHV0ZSB0aGUga2V5bWFwLgogICAgIChzZXRmIChz bG90LXZhbHVlIHRhYmxlICctY2FjaGVkLWtleW1hcCkgKHZ0YWJsZS0tbWFrZS1rZXltYXAgdGFi bGUpKQogICAgICh1bmxlc3Mgc29ydC1ieQpAQCAtMTc1LDYgKzIzNiwxMyBAQCBtYWtlLXZ0YWJs ZQogICAgICAgICAgICAgICAgICAgICAgICAgICAocHVzaCAoY29ucyBpbmRleCAodnRhYmxlLWNv bHVtbi1wcmltYXJ5IGNvbHVtbikpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2 dGFibGUtc29ydC1ieSB0YWJsZSkpKSkKICAgICAgICAgICAgICAgICAgICAgICAodnRhYmxlLWNv bHVtbnMgdGFibGUpKSkKKyAgICAod2hlbiB0ZXh0LXNjYWxlCisgICAgICAoYWRkLWhvb2sgJ3Rl eHQtc2NhbGUtbW9kZS1ob29rCisgICAgICAgICAgICAgICAgKGxhbWJkYSAoKQorICAgICAgICAg ICAgICAgICAgKHdoZW4tbGV0KiAoKHRhYmxlICh2dGFibGUtY3VycmVudC10YWJsZSkpKQorICAg ICAgICAgICAgICAgICAgICAod2hlbiAodnRhYmxlLXRleHQtc2NhbGUgdGFibGUpCisgICAgICAg ICAgICAgICAgICAgICAgKHZ0YWJsZS1yZXZlcnQtY29tbWFuZCkpKSkKKyAgICAgICAgICAgICAg ICBuaWwgJ2xvY2FsKSkKICAgICAod2hlbiBpbnNlcnQKICAgICAgICh2dGFibGUtaW5zZXJ0IHRh YmxlKSkKICAgICB0YWJsZSkpCkBAIC00MDcsNyArNDc1LDcgQEAgdnRhYmxlLWluc2VydC1vYmpl Y3QKICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwcm9wZXJ0aXplICh0cnVuY2F0ZS1zdHJp bmctZWxsaXBzaXMpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZmFj ZSAodnRhYmxlLWZhY2UgdGFibGUpKQogICAgICAgICAgICAgICAgICAgICAgICAgICIiKSkKLSAg ICAgICAgICAgICAoZWxsaXBzaXMtd2lkdGggKHN0cmluZy1waXhlbC13aWR0aCBlbGxpcHNpcykp CisgICAgICAgICAgICAgKGVsbGlwc2lzLXdpZHRoICh2dGFibGUtLXN0cmluZy1waXhlbC13aWR0 aCBlbGxpcHNpcykpCiAgICAgICAgICAgICAgKGVsZW0gKGlmIGxvY2F0aW9uICA7IFRoaXMgYmlu ZGluZyBtaXJyb3JzIHRoZSBiaW5kaW5nIG9mIGBwb3MnIGFib3ZlLgogICAgICAgICAgICAgICAg ICAgICAgICAoaWYgKGludGVnZXJwIGxvY2F0aW9uKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgKG50aCBsb2NhdGlvbiAoY2FyIGNhY2hlKSkKQEAgLTUyOSw3ICs1OTcsNyBAQCB2dGFibGUt aW5zZXJ0CiAgICAgICAgICAgICAgICAgICAgICAgIChwcm9wZXJ0aXplICh0cnVuY2F0ZS1zdHJp bmctZWxsaXBzaXMpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdmYWNlICh2 dGFibGUtZmFjZSB0YWJsZSkpCiAgICAgICAgICAgICAgICAgICAgICAiIikpCi0gICAgICAgICAo ZWxsaXBzaXMtd2lkdGggKHN0cmluZy1waXhlbC13aWR0aCBlbGxpcHNpcykpCisgICAgICAgICAo ZWxsaXBzaXMtd2lkdGggKHZ0YWJsZS0tc3RyaW5nLXBpeGVsLXdpZHRoIGVsbGlwc2lzKSkKICAg ICAgICAgIDs7IFdlIG1haW50YWluIGEgY2FjaGUgcGVyIHNjcmVlbi93aW5kb3cgd2lkdGgsIHNv IHRoYXQgd2UgcmVuZGVyCiAgICAgICAgICA7OyBjb3JyZWN0bHkgaWYgRW1hY3MgaXMgb3BlbiBv biB0d28gZGlmZmVyZW50IHNjcmVlbnMgKG9yIHRoZQogICAgICAgICAgOzsgdXNlciByZXNpemVz IHRoZSBmcmFtZSkuCkBAIC01NzYsNiArNjQ0LDcgQEAgdnRhYmxlLS1pbnNlcnQtbGluZQogICAg ICAobGFtYmRhIChlbGVtIGluZGV4KQogICAgICAgIChsZXQgKCh2YWx1ZSAobnRoIDAgZWxlbSkp CiAgICAgICAgICAgICAgKGNvbHVtbiAoZWx0IGNvbHVtbnMgaW5kZXgpKQorICAgICAgICAgICAg IChjb2x1bW4td2lkdGggKHZ0YWJsZS0tdGV4dC1zY2FsZS1waXhlbHMgKGVsdCB3aWR0aHMgaW5k ZXgpKSkKICAgICAgICAgICAgICAocHJlLWNvbXB1dGVkIChudGggMiBlbGVtKSkpCiAgICAgICAg ICA7OyBTZWUgaWYgd2UgaGF2ZSBhbnkgZm9ybWF0dGVycyBoZXJlLgogICAgICAgICAgKGNvbmQK QEAgLTU4NiwzNyArNjU1LDM5IEBAIHZ0YWJsZS0taW5zZXJ0LWxpbmUKICAgICAgICAgICAgKHNl dHEgdmFsdWUgKGZ1bmNhbGwgKHZ0YWJsZS1mb3JtYXR0ZXIgdGFibGUpCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHZhbHVlIGluZGV4IHRhYmxlKQogICAgICAgICAgICAgICAgICBw cmUtY29tcHV0ZWQgbmlsKSkpCi0gICAgICAgICAobGV0ICgoZGlzcGxheWVkCi0gICAgICAgICAg ICAgICAgOzsgQWxsb3cgYW55IGRpc3BsYXllcnMgdG8gaGF2ZSB0aGVpciBzYXkuCi0gICAgICAg ICAgICAgICAgKGNvbmQKLSAgICAgICAgICAgICAgICAgKCh2dGFibGUtY29sdW1uLWRpc3BsYXll ciBjb2x1bW4pCi0gICAgICAgICAgICAgICAgICAoZnVuY2FsbCAodnRhYmxlLWNvbHVtbi1kaXNw bGF5ZXIgY29sdW1uKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgKGVsdCB3aWR0 aHMgaW5kZXgpIHRhYmxlKSkKLSAgICAgICAgICAgICAgICAgKCh2dGFibGUtZGlzcGxheWVyIHRh YmxlKQotICAgICAgICAgICAgICAgICAgKGZ1bmNhbGwgKHZ0YWJsZS1kaXNwbGF5ZXIgdGFibGUp Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBpbmRleCAoZWx0IHdpZHRocyBpbmRl eCkgdGFibGUpKQotICAgICAgICAgICAgICAgICAocHJlLWNvbXB1dGVkCi0gICAgICAgICAgICAg ICAgICA7OyBJZiB3ZSBkb24ndCBoYXZlIGEgZGlzcGxheWVyLCB1c2UgdGhlIHByZS1tYWRlCi0g ICAgICAgICAgICAgICAgICA7OyAoY2FjaGVkKSBzdHJpbmcgdmFsdWUuCi0gICAgICAgICAgICAg ICAgICAoaWYgKD4gKG50aCAxIGVsZW0pIChlbHQgd2lkdGhzIGluZGV4KSkKLSAgICAgICAgICAg ICAgICAgICAgICAoY29uY2F0Ci0gICAgICAgICAgICAgICAgICAgICAgICh2dGFibGUtLWxpbWl0 LXN0cmluZwotICAgICAgICAgICAgICAgICAgICAgICAgcHJlLWNvbXB1dGVkICgtIChlbHQgd2lk dGhzIGluZGV4KQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvciBl bGxpcHNpcy13aWR0aCAwKSkpCi0gICAgICAgICAgICAgICAgICAgICAgIGVsbGlwc2lzKQotICAg ICAgICAgICAgICAgICAgICBwcmUtY29tcHV0ZWQpKQotICAgICAgICAgICAgICAgICA7OyBSZWNv bXB1dGUgd2lkdGhzLgotICAgICAgICAgICAgICAgICAodAotICAgICAgICAgICAgICAgICAgKGlm ICg+IChzdHJpbmctcGl4ZWwtd2lkdGggdmFsdWUpIChlbHQgd2lkdGhzIGluZGV4KSkKLSAgICAg ICAgICAgICAgICAgICAgICAoY29uY2F0Ci0gICAgICAgICAgICAgICAgICAgICAgICh2dGFibGUt LWxpbWl0LXN0cmluZwotICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgKC0gKGVsdCB3aWR0 aHMgaW5kZXgpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob3IgZWxsaXBzaXMt d2lkdGggMCkpKQotICAgICAgICAgICAgICAgICAgICAgICBlbGxpcHNpcykKLSAgICAgICAgICAg ICAgICAgICAgdmFsdWUpKSkpCi0gICAgICAgICAgICAgICAoc3RhcnQgKHBvaW50KSkKLSAgICAg ICAgICAgICAgIDs7IERvbid0IGluc2VydCB0aGUgc2VwYXJhdG9yIGFmdGVyIHRoZSBmaW5hbCBj b2x1bW4uCi0gICAgICAgICAgICAgICAobGFzdCAoPSBpbmRleCAoLSAobGVuZ3RoIGxpbmUpIDIp KSkpCisgICAgICAgICAobGV0KiAoKGRpc3BsYXllZAorICAgICAgICAgICAgICAgICA7OyBBbGxv dyBhbnkgZGlzcGxheWVycyB0byBoYXZlIHRoZWlyIHNheS4KKyAgICAgICAgICAgICAgICAgKGNv bmQKKyAgICAgICAgICAgICAgICAgICgodnRhYmxlLWNvbHVtbi1kaXNwbGF5ZXIgY29sdW1uKQor ICAgICAgICAgICAgICAgICAgIChmdW5jYWxsICh2dGFibGUtY29sdW1uLWRpc3BsYXllciBjb2x1 bW4pCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgY29sdW1uLXdpZHRoIHRhYmxl KSkKKyAgICAgICAgICAgICAgICAgICgodnRhYmxlLWRpc3BsYXllciB0YWJsZSkKKyAgICAgICAg ICAgICAgICAgICAoZnVuY2FsbCAodnRhYmxlLWRpc3BsYXllciB0YWJsZSkKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICB2YWx1ZSBpbmRleCBjb2x1bW4td2lkdGggdGFibGUpKQorICAgICAg ICAgICAgICAgICAgKHByZS1jb21wdXRlZAorICAgICAgICAgICAgICAgICAgIDs7IElmIHdlIGRv bid0IGhhdmUgYSBkaXNwbGF5ZXIsIHVzZSB0aGUgcHJlLW1hZGUKKyAgICAgICAgICAgICAgICAg ICA7OyAoY2FjaGVkKSBzdHJpbmcgdmFsdWUuCisgICAgICAgICAgICAgICAgICAgKGlmICg+IChu dGggMSBlbGVtKSBjb2x1bW4td2lkdGgpCisgICAgICAgICAgICAgICAgICAgICAgIChjb25jYXQK KyAgICAgICAgICAgICAgICAgICAgICAgICh2dGFibGUtLWxpbWl0LXN0cmluZworICAgICAgICAg ICAgICAgICAgICAgICAgIHByZS1jb21wdXRlZCAoLSBjb2x1bW4td2lkdGgKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9yIGVsbGlwc2lzLXdpZHRoIDApKSkKKyAg ICAgICAgICAgICAgICAgICAgICAgIGVsbGlwc2lzKQorICAgICAgICAgICAgICAgICAgICAgcHJl LWNvbXB1dGVkKSkKKyAgICAgICAgICAgICAgICAgIDs7IFJlY29tcHV0ZSB3aWR0aHMuCisgICAg ICAgICAgICAgICAgICAodAorICAgICAgICAgICAgICAgICAgIChpZiAoPiAodnRhYmxlLS1zdHJp bmctcGl4ZWwtd2lkdGggdmFsdWUpIGNvbHVtbi13aWR0aCkKKyAgICAgICAgICAgICAgICAgICAg ICAgKGNvbmNhdAorICAgICAgICAgICAgICAgICAgICAgICAgKHZ0YWJsZS0tbGltaXQtc3RyaW5n CisgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgKC0gY29sdW1uLXdpZHRoCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9yIGVsbGlwc2lzLXdpZHRoIDApKSkKKyAgICAg ICAgICAgICAgICAgICAgICAgIGVsbGlwc2lzKQorICAgICAgICAgICAgICAgICAgICAgdmFsdWUp KSkpCisgICAgICAgICAgICAgICAgKHN0YXJ0IChwb2ludCkpCisgICAgICAgICAgICAgICAgOzsg RG9uJ3QgaW5zZXJ0IHRoZSBzZXBhcmF0b3Igb3IgZGl2aWRlciBhZnRlciB0aGUgZmluYWwgY29s dW1uLgorICAgICAgICAgICAgICAgIChsYXN0ICg9IGluZGV4ICgtIChsZW5ndGggbGluZSkgMikp KQorICAgICAgICAgICAgICAgIDs7IE9uIHRoZSBsYXN0IGNvbHVtbiwgbGVhdmUgb25lIGNoYXIg d2lkdGggaW4gaGVhZGVyIGhhcm1vbnkuCisgICAgICAgICAgICAgICAgKHNwYWNlciAoaWYgbGFz dCAodnRhYmxlLS1jaGFyLXdpZHRoIHRhYmxlKSBzcGFjZXIpKSkKICAgICAgICAgICAgKGlmIChl cSAodnRhYmxlLWNvbHVtbi1hbGlnbiBjb2x1bW4pICdsZWZ0KQogICAgICAgICAgICAgICAgKHBy b2duCiAgICAgICAgICAgICAgICAgIChpbnNlcnQgZGlzcGxheWVkKQpAQCAtNjI0LDE0ICs2OTUs MTQgQEAgdnRhYmxlLS1pbnNlcnQtbGluZQogICAgICAgICAgICAgICAgICAgICAgICAgICAiICIg J2Rpc3BsYXkKICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpc3QgJ3NwYWNlCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDp3aWR0aCAobGlzdAotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICgrICgtIChlbHQgd2lkdGhzIGluZGV4KQotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzdHJpbmctcGl4ZWwtd2lkdGgg ZGlzcGxheWVkKSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo aWYgbGFzdCAwIHNwYWNlcikpKSkpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAoKyAoLSBjb2x1bW4td2lkdGgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAodnRhYmxlLS1zdHJpbmctcGl4ZWwtd2lkdGggZGlzcGxheWVkKSkK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcGFjZXIpKSkpKSkK ICAgICAgICAgICAgICA7OyBBbGlnbiB0byB0aGUgcmlnaHQuCiAgICAgICAgICAgICAgKGluc2Vy dCAocHJvcGVydGl6ZSAiICIgJ2Rpc3BsYXkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIChsaXN0ICdzcGFjZQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg OndpZHRoIChsaXN0ICgtIChlbHQgd2lkdGhzIGluZGV4KQotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzdHJpbmctcGl4ZWwtd2lkdGgKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDp3aWR0aCAobGlzdCAoLSBjb2x1 bW4td2lkdGgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAodnRhYmxlLS1zdHJpbmctcGl4ZWwtd2lkdGgKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheWVkKSkpKSkKICAgICAg ICAgICAgICAgICAgICAgIGRpc3BsYXllZCkKICAgICAgICAgICAgICAodW5sZXNzIGxhc3QKQEAg LTY0NCw3ICs3MTUsNyBAQCB2dGFibGUtLWluc2VydC1saW5lCiAgICAgICAgICAgICAgKGFkZC1m YWNlLXRleHQtcHJvcGVydHkKICAgICAgICAgICAgICAgc3RhcnQgKHBvaW50KQogICAgICAgICAg ICAgICAoZWx0IGNvbHVtbi1jb2xvcnMgKG1vZCBpbmRleCAobGVuZ3RoIGNvbHVtbi1jb2xvcnMp KSkpKQotICAgICAgICAgICAod2hlbiBkaXZpZGVyCisgICAgICAgICAgICh3aGVuIChhbmQgZGl2 aWRlciAobm90IGxhc3QpKQogICAgICAgICAgICAgIChpbnNlcnQgZGl2aWRlcikKICAgICAgICAg ICAgICAoc2V0cSBzdGFydCAocG9pbnQpKSkpKSkKICAgICAgKGNkciBsaW5lKSkKQEAgLTY1NCwx MCArNzI1LDE0IEBAIHZ0YWJsZS0taW5zZXJ0LWxpbmUKICAgICAgICh3aGVuLWxldCogKChyb3ct Y29sb3JzIChzbG90LXZhbHVlIHRhYmxlICctY2FjaGVkLWNvbG9ycykpKQogICAgICAgICAoYWRk LWZhY2UtdGV4dC1wcm9wZXJ0eQogICAgICAgICAgc3RhcnQgKHBvaW50KQotICAgICAgICAgKGVs dCByb3ctY29sb3JzIChtb2QgbGluZS1udW1iZXIgKGxlbmd0aCByb3ctY29sb3JzKSkpKSkpKSkK KyAgICAgICAgIChlbHQgcm93LWNvbG9ycyAobW9kIGxpbmUtbnVtYmVyIChsZW5ndGggcm93LWNv bG9ycykpKSkpKQorICAgICh3aGVuICh2dGFibGUtcm93LXByb3BlcnRpZXMgdGFibGUpCisgICAg ICAoc2F2ZS1leGN1cnNpb24KKyAgICAgICAgKGZvcndhcmQtbGluZSAtMSkKKyAgICAgICAgKGFk ZC10ZXh0LXByb3BlcnRpZXMgKHBvcy1ib2wpIChwb3MtZW9sKSAodnRhYmxlLXJvdy1wcm9wZXJ0 aWVzIHRhYmxlKSkpKSkpCiAKIChkZWZ1biB2dGFibGUtLWNhY2hlLWtleSAoKQotICAoY29ucyAo ZnJhbWUtdGVybWluYWwpICh3aW5kb3ctd2lkdGgpKSkKKyAgKGNvbnMgKGZyYW1lLXRlcm1pbmFs KSAod2luZG93LWJvZHktd2lkdGggbmlsICdyZW1hcCkpKQogCiAoZGVmdW4gdnRhYmxlLS1jYWNo ZSAodGFibGUpCiAgIChnZXRoYXNoICh2dGFibGUtLWNhY2hlLWtleSkgKHNsb3QtdmFsdWUgdGFi bGUgJy1jYWNoZSkpKQpAQCAtNjkzLDc4ICs3NjgsODAgQEAgdnRhYmxlLS1zb3J0CiAoZGVmdW4g dnRhYmxlLS1pbmRpY2F0b3IgKHRhYmxlIGluZGV4KQogICAobGV0ICgob3JkZXIgKGNhciAobGFz dCAodnRhYmxlLXNvcnQtYnkgdGFibGUpKSkpKQogICAgIChpZiAoZXEgaW5kZXggKGNhciBvcmRl cikpCi0gICAgICAgIDs7IFdlJ3JlIHNvcnRpbmcgYnkgdGhpcyBjb2x1bW4gbGFzdCwgc28gcmV0 dXJuIGFuIGluZGljYXRvci4KLSAgICAgICAgKGNhdGNoICdmb3VuZAotICAgICAgICAgIChkb2xp c3QgKGNhbmRpZGF0ZSAobnRoIChpZiAoZXEgKGNkciBvcmRlcikgJ2FzY2VuZCkKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgMCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnKCg/4pa8 ID92KQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKD/ilrIgP14pKSkpCi0g ICAgICAgICAgICAod2hlbiAoY2hhci1kaXNwbGF5YWJsZS1wIGNhbmRpZGF0ZSkKLSAgICAgICAg ICAgICAgKHRocm93ICdmb3VuZCAoc3RyaW5nIGNhbmRpZGF0ZSkpKSkpCi0gICAgICAiIikpKQor ICAgICAgICAobGV0KiAoKGRpciAoY2RyIG9yZGVyKSkKKyAgICAgICAgICAgICAgIChuIChpZiAo ZXEgZGlyICdhc2NlbmQpIDEgMCkpKQorICAgICAgICAgIDs7IFdlJ3JlIHNvcnRpbmcgYnkgdGhp cyBjb2x1bW4gbGFzdCwgc28gcmV0dXJuIGFuIGluZGljYXRvci4KKyAgICAgICAgICAoY2F0Y2gg J2ZvdW5kCisgICAgICAgICAgICAoZG9saXN0IChjYW5kaWRhdGUgKG50aCBuICh2dGFibGUtc29y dC1pbmQgdGFibGUpKSkKKyAgICAgICAgICAgICAgKHdoZW4gKGNoYXItZGlzcGxheWFibGUtcCBj YW5kaWRhdGUpCisgICAgICAgICAgICAgICAgKHRocm93ICdmb3VuZCAoY29ucyAoc3RyaW5nIGNh bmRpZGF0ZSkgZGlyKSkpKQorICAgICAgICAgICAgKGNvbnMgIiIgbmlsKSkpKSkpCiAKIChkZWZ1 biB2dGFibGUtLWluc2VydC1oZWFkZXItbGluZSAodGFibGUgd2lkdGhzIHNwYWNlcikKICAgOzsg SW5zZXJ0IHRoZSBoZWFkZXIgZGlyZWN0bHkgaW50byB0aGUgYnVmZmVyLgotICAobGV0ICgoc3Rh cnQgKHBvaW50KSkKLSAgICAgICAgKGRpdmlkZXIgKHZ0YWJsZS1kaXZpZGVyIHRhYmxlKSkKLSAg ICAgICAgKGNtYXAgKGRlZmluZS1rZXltYXAKLSAgICAgICAgICAgICAgICAiPGhlYWRlci1saW5l PiA8ZHJhZy1tb3VzZS0xPiIgIyd2dGFibGUtLWRyYWctcmVzaXplLWNvbHVtbgotICAgICAgICAg ICAgICAgICI8aGVhZGVyLWxpbmU+IDxkb3duLW1vdXNlLTE+IiAjJ2lnbm9yZSkpCi0gICAgICAg IChkbWFwIChkZWZpbmUta2V5bWFwCi0gICAgICAgICAgICAgICAgIjxoZWFkZXItbGluZT4gPGRy YWctbW91c2UtMT4iCi0gICAgICAgICAgICAgICAgKGxhbWJkYSAoZSkKLSAgICAgICAgICAgICAg ICAgIChpbnRlcmFjdGl2ZSAiZSIpCi0gICAgICAgICAgICAgICAgICAodnRhYmxlLS1kcmFnLXJl c2l6ZS1jb2x1bW4gZSB0KSkKLSAgICAgICAgICAgICAgICAiPGhlYWRlci1saW5lPiA8ZG93bi1t b3VzZS0xPiIgIydpZ25vcmUpKSkKKyAgKGxldCogKChzdGFydCAocG9pbnQpKQorICAgICAgICAg KGRpdmlkZXIgKHZ0YWJsZS1kaXZpZGVyIHRhYmxlKSkKKyAgICAgICAgIChkaXZpZGVyLXB4ICh2 dGFibGUtLXN0cmluZy1waXhlbC13aWR0aCBkaXZpZGVyKSkKKyAgICAgICAgIChkaXZpZGVyLW9u LWhlYWRlciAodnRhYmxlLWRpdmlkZXItb24taGVhZGVyIHRhYmxlKSkKKyAgICAgICAgIChjbWFw IChkZWZpbmUta2V5bWFwCisgICAgICAgICAgICAgICAgICI8aGVhZGVyLWxpbmU+IDxkcmFnLW1v dXNlLTE+IiAjJ3Z0YWJsZS0tZHJhZy1yZXNpemUtY29sdW1uCisgICAgICAgICAgICAgICAgICI8 aGVhZGVyLWxpbmU+IDxkb3duLW1vdXNlLTE+IiAjJ2lnbm9yZSkpCisgICAgICAgICAoZG1hcCAo ZGVmaW5lLWtleW1hcAorICAgICAgICAgICAgICAgICAiPGhlYWRlci1saW5lPiA8ZHJhZy1tb3Vz ZS0xPiIKKyAgICAgICAgICAgICAgICAgKGxhbWJkYSAoZSkKKyAgICAgICAgICAgICAgICAgICAo aW50ZXJhY3RpdmUgImUiKQorICAgICAgICAgICAgICAgICAgICh2dGFibGUtLWRyYWctcmVzaXpl LWNvbHVtbiBlIHQpKQorICAgICAgICAgICAgICAgICAiPGhlYWRlci1saW5lPiA8ZG93bi1tb3Vz ZS0xPiIgIydpZ25vcmUpKSkKICAgICAoc2VxLWRvLWluZGV4ZWQKICAgICAgKGxhbWJkYSAoY29s dW1uIGluZGV4KQotICAgICAgIChsZXQqICgobmFtZSAocHJvcGVydGl6ZQotICAgICAgICAgICAg ICAgICAgICAgKHZ0YWJsZS1jb2x1bW4tbmFtZSBjb2x1bW4pCi0gICAgICAgICAgICAgICAgICAg ICAnZmFjZSAobGlzdCAnaGVhZGVyLWxpbmUgKHZ0YWJsZS1mYWNlIHRhYmxlKSkKLSAgICAgICAg ICAgICAgICAgICAgICdtb3VzZS1mYWNlICdoZWFkZXItbGluZS1oaWdobGlnaHQKLSAgICAgICAg ICAgICAgICAgICAgICdrZXltYXAgY21hcCkpCisgICAgICAgKGxldCogKChuYW1lICh2dGFibGUt Y29sdW1uLW5hbWUgY29sdW1uKSkKKyAgICAgICAgICAgICAgKG5hbWUgKHByb3BlcnRpemUgbmFt ZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbW91c2UtZmFjZSAnaGVhZGVyLWxp bmUtaGlnaGxpZ2h0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdrZXltYXAgY21h cCkpCiAgICAgICAgICAgICAgIChzdGFydCAocG9pbnQpKQotICAgICAgICAgICAgICAoaW5kaWNh dG9yICh2dGFibGUtLWluZGljYXRvciB0YWJsZSBpbmRleCkpCi0gICAgICAgICAgICAgIChpbmRp Y2F0b3Itd2lkdGggKHN0cmluZy1waXhlbC13aWR0aCBpbmRpY2F0b3IpKQorICAgICAgICAgICAg ICAoY29sdW1uLXdpZHRoICh2dGFibGUtLXRleHQtc2NhbGUtcGl4ZWxzIChlbHQgd2lkdGhzIGlu ZGV4KSkpCisgICAgICAgICAgICAgIDs7IFBhZCB0aGUgaW5kaWNhdG9yIHRvIGF2b2lkIGFidXR0 aW5nIGl0cyBuZWlnaGJvcnMuCisgICAgICAgICAgICAgIChpbmRpY2F0b3IrZGlyICh2dGFibGUt LWluZGljYXRvciB0YWJsZSBpbmRleCkpCisgICAgICAgICAgICAgIChpbmRpY2F0b3IgKHByb3Bl cnRpemUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbmNhdCAiICIgKGNhciBpbmRpY2F0 b3IrZGlyKSAiICIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICdmYWNlIChpZiAoZXEgKGNk ciBpbmRpY2F0b3IrZGlyKSAnYXNjZW5kKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKHZ0YWJsZS1zb3J0LWluZC1mYWNlLWFzY2VuZCB0YWJsZSkKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAodnRhYmxlLXNvcnQtaW5kLWZhY2UtZGVzY2VuZCB0YWJsZSkp CisgICAgICAgICAgICAgICAgICAgICAgICAgICdkaXNwbGF5ICcoc3BhY2Utd2lkdGggMC41KSkp CisgICAgICAgICAgICAgIChpbmRpY2F0b3Itd2lkdGggKHZ0YWJsZS0tc3RyaW5nLXBpeGVsLXdp ZHRoIGluZGljYXRvcikpCisgICAgICAgICAgICAgIDs7IERvbid0IGluc2VydCB0aGUgc2VwYXJh dG9yIG9yIGRpdmlkZXIgYWZ0ZXIgdGhlIGZpbmFsIGNvbHVtbi4KICAgICAgICAgICAgICAgKGxh c3QgKD0gaW5kZXggKDEtIChsZW5ndGggKHZ0YWJsZS1jb2x1bW5zIHRhYmxlKSkpKSkKLSAgICAg ICAgICAgICAgZGlzcGxheWVkKQotICAgICAgICAgKHNldHEgZGlzcGxheWVkCi0gICAgICAgICAg ICAgICAoaWYgKD4gKHN0cmluZy1waXhlbC13aWR0aCBuYW1lKQotICAgICAgICAgICAgICAgICAg ICAgICgtIChlbHQgd2lkdGhzIGluZGV4KSBpbmRpY2F0b3Itd2lkdGgpKQotICAgICAgICAgICAg ICAgICAgICh2dGFibGUtLWxpbWl0LXN0cmluZwotICAgICAgICAgICAgICAgICAgICBuYW1lICgt IChlbHQgd2lkdGhzIGluZGV4KSBpbmRpY2F0b3Itd2lkdGgpKQotICAgICAgICAgICAgICAgICBu YW1lKSkKLSAgICAgICAgIChsZXQqICgoaW5kaWNhdG9yLWxlYWQtd2lkdGgKLSAgICAgICAgICAg ICAgICAgOzsgV2Ugd2FudCB0aGUgaW5kaWNhdG9yIHRvIG5vdCBiZSBxdWl0ZSBmbHVzaCByaWdo dC4KLSAgICAgICAgICAgICAgICAgKC8gKHZ0YWJsZS0tY2hhci13aWR0aCB0YWJsZSkgMi4wKSkK LSAgICAgICAgICAgICAgICAoaW5kaWNhdG9yLXBhZC13aWR0aCAoLSAodnRhYmxlLS1jaGFyLXdp ZHRoIHRhYmxlKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZGlj YXRvci1sZWFkLXdpZHRoKSkKKyAgICAgICAgICAgICAgOzsgT24gdGhlIGxhc3QgY29sdW1uLCBs ZWF2ZSBvbmUgY2hhciB0byBzdGF2ZSBvZmYgbmFtZSB0cnVuY2F0aW9uLgorICAgICAgICAgICAg ICA7OyBXZSB1c2UgdGhlIGJvZHkgZmFjZSBoZXJlIGJ1dCB3ZSBjb3VsZCB1c2UgdGhlIGhlYWRl ciBmYWNlLgorICAgICAgICAgICAgICAoc3BhY2VyIChpZiBsYXN0ICh2dGFibGUtLWNoYXItd2lk dGggdGFibGUpIHNwYWNlcikpKQorICAgICAgICAgKGxldCogKChkaXNwbGF5ZWQKKyAgICAgICAg ICAgICAgICAgKGlmICg+ICh2dGFibGUtLXN0cmluZy1waXhlbC13aWR0aCBuYW1lKQorICAgICAg ICAgICAgICAgICAgICAgICAgKC0gKCsgY29sdW1uLXdpZHRoIHNwYWNlcikgaW5kaWNhdG9yLXdp ZHRoKSkKKyAgICAgICAgICAgICAgICAgICAgICh2dGFibGUtLWxpbWl0LXN0cmluZworICAgICAg ICAgICAgICAgICAgICAgIG5hbWUgKC0gKCsgY29sdW1uLXdpZHRoIHNwYWNlcikgaW5kaWNhdG9y LXdpZHRoKSkKKyAgICAgICAgICAgICAgICAgICBuYW1lKSkKICAgICAgICAgICAgICAgICAoZmls bC13aWR0aAotICAgICAgICAgICAgICAgICAoKyAoLSAoZWx0IHdpZHRocyBpbmRleCkKLSAgICAg ICAgICAgICAgICAgICAgICAgKHN0cmluZy1waXhlbC13aWR0aCBkaXNwbGF5ZWQpCi0gICAgICAg ICAgICAgICAgICAgICAgIGluZGljYXRvci13aWR0aAotICAgICAgICAgICAgICAgICAgICAgICBp bmRpY2F0b3ItbGVhZC13aWR0aCkKLSAgICAgICAgICAgICAgICAgICAgKGlmIGxhc3QgMCBzcGFj ZXIpKSkpCisgICAgICAgICAgICAgICAgICgrICgtIGNvbHVtbi13aWR0aAorICAgICAgICAgICAg ICAgICAgICAgICAodnRhYmxlLS1zdHJpbmctcGl4ZWwtd2lkdGggZGlzcGxheWVkKQorICAgICAg ICAgICAgICAgICAgICAgICBpbmRpY2F0b3Itd2lkdGgpCisgICAgICAgICAgICAgICAgICAgIHNw YWNlcikpKQogICAgICAgICAgICAoaWYgKG9yIChub3QgbGFzdCkKICAgICAgICAgICAgICAgICAg ICAoemVyb3AgaW5kaWNhdG9yLXdpZHRoKQotICAgICAgICAgICAgICAgICAgICg8IChzZXEtcmVk dWNlICMnKyB3aWR0aHMgMCkgKHdpbmRvdy13aWR0aCBuaWwgdCkpKQorICAgICAgICAgICAgICAg ICAgICg8IChzZXEtcmVkdWNlICMnKyB3aWR0aHMgMCkgKHdpbmRvdy1ib2R5LXdpZHRoIG5pbCB0 KSkpCiAgICAgICAgICAgICAgICA7OyBOb3JtYWwgY2FzZS4KICAgICAgICAgICAgICAgIChpbnNl cnQKICAgICAgICAgICAgICAgICBkaXNwbGF5ZWQKICAgICAgICAgICAgICAgICAocHJvcGVydGl6 ZSAiICIgJ2Rpc3BsYXkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGlzdCAnc3BhY2Ug OndpZHRoIChsaXN0IGZpbGwtd2lkdGgpKSkKLSAgICAgICAgICAgICAgICBpbmRpY2F0b3IKLSAg ICAgICAgICAgICAgICAocHJvcGVydGl6ZSAiICIgJ2Rpc3BsYXkKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAobGlzdCAnc3BhY2UgOndpZHRoIChsaXN0IGluZGljYXRvci1wYWQtd2lkdGgp KSkpCisgICAgICAgICAgICAgICAgaW5kaWNhdG9yKQogICAgICAgICAgICAgIDs7IFRoaXMgaXMg dGhlIGZpbmFsIGNvbHVtbiwgYW5kIHdlIGhhdmUgYSBzb3J0aW5nCiAgICAgICAgICAgICAgOzsg aW5kaWNhdG9yLCBhbmQgdGhlIHRhYmxlIGlzIHRvbyB3aWRlIGZvciB0aGUgd2luZG93LgotICAg ICAgICAgICAgIChsZXQqICgocHJlLWluZGljYXRvciAoc3RyaW5nLXBpeGVsLXdpZHRoCisgICAg ICAgICAgICAgKGxldCogKChwcmUtaW5kaWNhdG9yICh2dGFibGUtLXN0cmluZy1waXhlbC13aWR0 aAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGJ1ZmZlci1zdWJzdHJpbmcg KHBvaW50LW1pbikgKHBvaW50KSkpKQogICAgICAgICAgICAgICAgICAgICAocHJlLWZpbGwKLSAg ICAgICAgICAgICAgICAgICAgICgtICh3aW5kb3ctd2lkdGggbmlsIHQpCisgICAgICAgICAgICAg ICAgICAgICAoLSAod2luZG93LWJvZHktd2lkdGggbmlsIHQpCiAgICAgICAgICAgICAgICAgICAg ICAgICBwcmUtaW5kaWNhdG9yCi0gICAgICAgICAgICAgICAgICAgICAgICAoc3RyaW5nLXBpeGVs LXdpZHRoIGRpc3BsYXllZCkpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICh2dGFibGUtLXN0 cmluZy1waXhlbC13aWR0aCBkaXNwbGF5ZWQpKSkpCiAgICAgICAgICAgICAgICAoaW5zZXJ0CiAg ICAgICAgICAgICAgICAgZGlzcGxheWVkCiAgICAgICAgICAgICAgICAgKHByb3BlcnRpemUgIiAi ICdkaXNwbGF5CkBAIC03NzQsMTEgKzg1MSwxNCBAQCB2dGFibGUtLWluc2VydC1oZWFkZXItbGlu ZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaXN0ICdzcGFjZSA6d2lkdGgKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGlzdCAoLSBmaWxsLXdpZHRoIHByZS1maWxs KSkpKSkpKSkKICAgICAgICAgICh3aGVuIChhbmQgZGl2aWRlciAobm90IGxhc3QpKQotICAgICAg ICAgICAoaW5zZXJ0IChwcm9wZXJ0aXplIGRpdmlkZXIgJ2tleW1hcCBkbWFwKSkpCisgICAgICAg ICAgIChpZiBkaXZpZGVyLW9uLWhlYWRlcgorICAgICAgICAgICAgICAgKGluc2VydCAocHJvcGVy dGl6ZSBkaXZpZGVyICdrZXltYXAgZG1hcCkpCisgICAgICAgICAgICAgKGluc2VydCAocHJvcGVy dGl6ZSAiICIgJ2Rpc3BsYXkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaXN0 ICdzcGFjZSA6d2lkdGggKGxpc3QgZGl2aWRlci1weCkpKSkpKQogICAgICAgICAgKHB1dC10ZXh0 LXByb3BlcnR5IHN0YXJ0IChwb2ludCkgJ3Z0YWJsZS1jb2x1bW4gaW5kZXgpKSkKICAgICAgKHZ0 YWJsZS1jb2x1bW5zIHRhYmxlKSkKICAgICAoaW5zZXJ0ICJcbiIpCi0gICAgKGFkZC1mYWNlLXRl eHQtcHJvcGVydHkgc3RhcnQgKHBvaW50KSAnaGVhZGVyLWxpbmUpKSkKKyAgICAoYWRkLWZhY2Ut dGV4dC1wcm9wZXJ0eSBzdGFydCAocG9pbnQpICh2dGFibGUtaGVhZGVyLWZhY2UgdGFibGUpIHQp KSkKIAogKGRlZnVuIHZ0YWJsZS0tZHJhZy1yZXNpemUtY29sdW1uIChlICZvcHRpb25hbCBuZXh0 KQogICAiUmVzaXplIHRoZSBjb2x1bW4gYnkgZHJhZ2dpbmcuCkBAIC04MjUsMjggKzkwNSw0OSBA QCB2dGFibGUtLXJlY29tcHV0ZS1udW1lcmljYWwKICAgICAod2hlbiByZWNvbXB1dGUKICAgICAg ICh2dGFibGUtLWNvbXB1dGUtY29sdW1ucyB0YWJsZSB0KSkpKQogCisoZGVmdmFyIHRleHQtc2Nh bGUtcmVtYXAtaGVhZGVyLWxpbmUpCisKIChkZWZ1biB2dGFibGUtLXNldC1oZWFkZXItbGluZSAo dGFibGUgd2lkdGhzIHNwYWNlcikKLSAgKHNldHEgaGVhZGVyLWxpbmUtZm9ybWF0Ci0gICAgICAg IChzdHJpbmctcmVwbGFjZQotICAgICAgICAgIiUiICIlJSIKLSAgICAgICAgICh3aXRoLXRlbXAt YnVmZmVyCi0gICAgICAgICAgIChpbnNlcnQgIiAiKQotICAgICAgICAgICAodnRhYmxlLS1pbnNl cnQtaGVhZGVyLWxpbmUgdGFibGUgd2lkdGhzIHNwYWNlcikKLSAgICAgICAgICAgOzsgQWxpZ24g dGhlIGhlYWRlciB3aXRoIHRoZSAocG9zc2libHkpIGZyaW5nZWQgYnVmZmVyIHRleHQuCi0gICAg ICAgICAgIChwdXQtdGV4dC1wcm9wZXJ0eQotICAgICAgICAgICAgKHBvaW50LW1pbikgKDErIChw b2ludC1taW4pKQotICAgICAgICAgICAgJ2Rpc3BsYXkgJyhzcGFjZSA6YWxpZ24tdG8gMCkpCi0g ICAgICAgICAgIChidWZmZXItc3Vic3RyaW5nIChwb2ludC1taW4pICgxLSAocG9pbnQtbWF4KSkp KSkpCi0gICh2dGFibGUtaGVhZGVyLW1vZGUgMSkpCisgIChsZXQgKChyZWZlcmVuY2UtYnVmZmVy IChjdXJyZW50LWJ1ZmZlcikpKQorICAgIChzZXRxIGhlYWRlci1saW5lLWZvcm1hdAorICAgICAg ICAgIChjb25jYXQKKyAgICAgICAgICAgKHByb3BlcnRpemUgIiAiICdkaXNwbGF5CisgICAgICAg ICAgICAgICAgICAgICAgIChsaXN0ICdzcGFjZSA6YWxpZ24tdG8KKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKGxpc3QgKGxpbmUtbnVtYmVyLWRpc3BsYXktd2lkdGggdCkpKSkKKyAgICAg ICAgICAgKHN0cmluZy1yZXBsYWNlCisgICAgICAgICAgICAiJSIgIiUlIgorICAgICAgICAgICAg KHdpdGgtdGVtcC1idWZmZXIKKyAgICAgICAgICAgICAgOzsgQ3JpYmJlZCBmcm9tIHN0cmluZy1w aXhlbC13aWR0aCB0byBub3JtYWxpemUgdGhlIHRlbXAKKyAgICAgICAgICAgICAgOzsgYnVmZmVy IHRvIHRoZSBvcmlnaW5hdGluZyBidWZmZXIgYW5kIHdpbmRvdy4KKyAgICAgICAgICAgICAgKGRv bGlzdCAodiAnKGZhY2UtcmVtYXBwaW5nLWFsaXN0CisgICAgICAgICAgICAgICAgICAgICAgICAg ICBjaGFyLXByb3BlcnR5LWFsaWFzLWFsaXN0CisgICAgICAgICAgICAgICAgICAgICAgICAgICBk ZWZhdWx0LXRleHQtcHJvcGVydGllcykpCisgICAgICAgICAgICAgICAgKGlmIChsb2NhbC12YXJp YWJsZS1wIHYgcmVmZXJlbmNlLWJ1ZmZlcikKKyAgICAgICAgICAgICAgICAgICAgKHNldCAobWFr ZS1sb2NhbC12YXJpYWJsZSB2KQorICAgICAgICAgICAgICAgICAgICAgICAgIChidWZmZXItbG9j YWwtdmFsdWUgdiByZWZlcmVuY2UtYnVmZmVyKSkpKQorICAgICAgICAgICAgICAodnRhYmxlLS1p bnNlcnQtaGVhZGVyLWxpbmUgdGFibGUgd2lkdGhzIHNwYWNlcikKKyAgICAgICAgICAgICAgKGJ1 ZmZlci1zdWJzdHJpbmcgKHBvaW50LW1pbikgKDEtIChwb2ludC1tYXgpKSkpKSkpKQorICAod2hl biAodnRhYmxlLXRleHQtc2NhbGUtaGVhZGVyIHRhYmxlKQorICAgIChzZXRxIHRleHQtc2NhbGUt cmVtYXAtaGVhZGVyLWxpbmUgdCkpCisgICh2dGFibGUtaGVhZGVyLW1vZGUpKQogCiAoZGVmdW4g dnRhYmxlLS1saW1pdC1zdHJpbmcgKHN0cmluZyBwaXhlbHMpCiAgICh3aGlsZSAoYW5kIChsZW5n dGg+IHN0cmluZyAwKQotICAgICAgICAgICAgICAoPiAoc3RyaW5nLXBpeGVsLXdpZHRoIHN0cmlu ZykgcGl4ZWxzKSkKKyAgICAgICAgICAgICAgKD4gKHZ0YWJsZS0tc3RyaW5nLXBpeGVsLXdpZHRo IHN0cmluZykgcGl4ZWxzKSkKICAgICAoc2V0cSBzdHJpbmcgKHN1YnN0cmluZyBzdHJpbmcgMCAo MS0gKGxlbmd0aCBzdHJpbmcpKSkpKQogICBzdHJpbmcpCiAKKyhkZWZ1biB2dGFibGUtLXRleHQt c2NhbGUtcGl4ZWxzIChweCkKKyAgOzsgQWRqdXN0IHBpeGVscyBmb3IgdGV4dC1zY2FsZWQgYnVm ZmVycworICAoY2VpbGluZyAoKiBweCAoLyAoZmxvYXQgKGRlZmF1bHQtZm9udC13aWR0aCkpIChm cmFtZS1jaGFyLXdpZHRoKSkpKSkKKworKGRlZnVuIHZ0YWJsZS0tc3RyaW5nLXBpeGVsLXdpZHRo IChzdHIpCisgIDs7IEFkanVzdCBwaXhlbC13aWR0aCBmb3IgdGV4dC1zY2FsZWQgYnVmZmVycwor ICAodnRhYmxlLS10ZXh0LXNjYWxlLXBpeGVscyAoc3RyaW5nLXBpeGVsLXdpZHRoIHN0cikpKQor CiAoZGVmdW4gdnRhYmxlLS1jaGFyLXdpZHRoICh0YWJsZSkKLSAgKHN0cmluZy1waXhlbC13aWR0 aCAocHJvcGVydGl6ZSAieCIgJ2ZhY2UgKHZ0YWJsZS1mYWNlIHRhYmxlKSkpKQorICAodnRhYmxl LS1zdHJpbmctcGl4ZWwtd2lkdGgKKyAgIChwcm9wZXJ0aXplICJ4IiAnZmFjZSAodnRhYmxlLWZh Y2UgdGFibGUpKSkpCiAKIChkZWZ1biB2dGFibGUtLWNvbXB1dGUtd2lkdGggKHRhYmxlIHNwZWMp CiAgIChjb25kCkBAIC04NTcsNyArOTU4LDcgQEAgdnRhYmxlLS1jb21wdXRlLXdpZHRoCiAgICAo KHN0cmluZy1tYXRjaCAiXFwoWzAtOS5dK1xcKXB4IiBzcGVjKQogICAgIChzdHJpbmctdG8tbnVt YmVyIChtYXRjaC1zdHJpbmcgMSBzcGVjKSkpCiAgICAoKHN0cmluZy1tYXRjaCAiXFwoWzAtOS5d K1xcKSUiIHNwZWMpCi0gICAgKC8gKCogKHN0cmluZy10by1udW1iZXIgKG1hdGNoLXN0cmluZyAx IHNwZWMpKSAod2luZG93LXdpZHRoIG5pbCB0KSkKKyAgICAoLyAoKiAoc3RyaW5nLXRvLW51bWJl ciAobWF0Y2gtc3RyaW5nIDEgc3BlYykpICh3aW5kb3ctYm9keS13aWR0aCBuaWwgdCkpCiAgICAg ICAgMTAwKSkKICAgICh0CiAgICAgKGVycm9yICJJbnZhbGlkIHNwZWM6ICVzIiBzcGVjKSkpKQpA QCAtODgwLDE3ICs5ODEsMjUgQEAgdnRhYmxlLS1jb21wdXRlLXdpZHRocwogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7OyBPdGhl cndpc2UsIGNvbXB1dGUgYmFzZWQgb24gdGhlIGRpc3BsYXllZCB3aWR0aHMgb2YgdGhlCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgOzsgZGF0YS4KLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAoc2VxLW1heCAoc2VxLW1hcCAobGFtYmRhIChlbGVtKQotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG50aCAxIChlbHQgKGNkciBlbGVtKSBpbmRl eCkpKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhY2hl KSkpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF4CisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIChzZXEtbWF4IChzZXEtbWFwIChsYW1iZGEgKGVsZW0pCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG50aCAxIChlbHQgKGNkciBl bGVtKSBpbmRleCkpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBjYWNoZSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpZiAoZXEgKHZ0YWJs ZS1jb2x1bW4taW5mZXItd2lkdGggY29sdW1uKSAnZGF0YStuYW1lKQorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKGxldCAoKG5hbWUgKHZ0YWJsZS1jb2x1bW4tbmFtZSBjb2x1bW4p KSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGFkZC1mYWNlLXRleHQtcHJv cGVydHkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAgKGxlbmd0aCBuYW1l KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZ0YWJsZS1oZWFkZXItZmFj ZSB0YWJsZSkgdCBuYW1lKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodnRh YmxlLS1zdHJpbmctcGl4ZWwtd2lkdGggbmFtZSkpCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgMCkpKSkpCiAgICAgICAgICAgICAgICAgICAgICAgOzsgTGV0IG1pbi13aWR0aC9tYXgt d2lkdGggc3BlY3MgaGF2ZSB0aGVpciBzYXkuCiAgICAgICAgICAgICAgICAgICAgICAgKHdoZW4t bGV0KiAoKG1pbi13aWR0aCAoYW5kICh2dGFibGUtY29sdW1uLW1pbi13aWR0aCBjb2x1bW4pCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZ0YWJsZS0t Y29tcHV0ZS13aWR0aAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB0YWJsZSAodnRhYmxlLWNvbHVtbi1taW4td2lkdGggY29sdW1uKSkpKSkKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZ0YWJsZS0tY29t cHV0ZS13aWR0aAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgdGFibGUgKHZ0YWJsZS1jb2x1bW4tbWluLXdpZHRoIGNvbHVtbikpKSkpCiAgICAgICAg ICAgICAgICAgICAgICAgICAoc2V0cSB3aWR0aCAobWF4IHdpZHRoIG1pbi13aWR0aCkpKQogICAg ICAgICAgICAgICAgICAgICAgICh3aGVuLWxldCogKChtYXgtd2lkdGggKGFuZCAodnRhYmxlLWNv bHVtbi1tYXgtd2lkdGggY29sdW1uKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICh2dGFibGUtLWNvbXB1dGUtd2lkdGgKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFibGUgKHZ0YWJsZS1jb2x1bW4tbWF4 LXdpZHRoIGNvbHVtbikpKSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICh2dGFibGUtLWNvbXB1dGUtd2lkdGgKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhYmxlICh2dGFibGUtY29sdW1uLW1heC13 aWR0aCBjb2x1bW4pKSkpKQogICAgICAgICAgICAgICAgICAgICAgICAgKHNldHEgd2lkdGggKG1p biB3aWR0aCBtYXgtd2lkdGgpKSkKICAgICAgICAgICAgICAgICAgICAgICB3aWR0aCkpCiAgICAg ICAgICAgICAgICAgICAodnRhYmxlLWNvbHVtbnMgdGFibGUpKSkpCkBAIC04OTgsNyArMTAwNyw3 IEBAIHZ0YWJsZS0tY29tcHV0ZS13aWR0aHMKICAgICA7OyB3aWR0aCBldmVubHkgb3ZlciB0aGVt LgogICAgICh3aGVuICg+IG4tMGNvbHMgMCkKICAgICAgIChsZXQqICgoY29tYmluZWQtd2lkdGgg KGFwcGx5ICMnKyB3aWR0aHMpKQotICAgICAgICAgICAgIChkZWZhdWx0LXdpZHRoICgvICgtICh3 aW5kb3ctd2lkdGggbmlsIHQpIGNvbWJpbmVkLXdpZHRoKSBuLTBjb2xzKSkpCisgICAgICAgICAg ICAgKGRlZmF1bHQtd2lkdGggKC8gKC0gKHdpbmRvdy1ib2R5LXdpZHRoIG5pbCB0KSBjb21iaW5l ZC13aWR0aCkgbi0wY29scykpKQogICAgICAgICAoc2V0cSB3aWR0aHMgKG1hcGNhciAobGFtYmRh ICh3aWR0aCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaWYgKHplcm9wIHdpZHRo KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0LXdpZHRoCkBAIC05 MjUsNyArMTAzNCw3IEBAIHZ0YWJsZS0tY29tcHV0ZS1jYWNoZWQtbGluZQogICAgICAgIDs7IFdl IHN0YXNoIHRoZSBjb21wdXRlZCB3aWR0aCBhbmQgc3RyaW5nIGhlcmUgLS0gaWYgdGhlcmUgYXJl CiAgICAgICAgOzsgbm8gZm9ybWF0dGVycy9kaXNwbGF5ZXJzLCB3ZSdsbCBiZSB1c2luZyB0aGUg c3RyaW5nLCBhbmQKICAgICAgICA7OyB0aGVuIHdvbid0IGhhdmUgdG8gcmVjcmVhdGUgaXQuCi0g ICAgICAgKGxpc3QgdmFsdWUgKHN0cmluZy1waXhlbC13aWR0aCBzdHJpbmcpIHN0cmluZykpKQor ICAgICAgIChsaXN0IHZhbHVlICh2dGFibGUtLXN0cmluZy1waXhlbC13aWR0aCBzdHJpbmcpIHN0 cmluZykpKQogICAgKHZ0YWJsZS1jb2x1bW5zIHRhYmxlKSkpCiAKIChkZWZ1biB2dGFibGUtLW1h a2Uta2V5bWFwICh0YWJsZSkKQEAgLTk4MCw5ICsxMDg5LDE5IEBAIHZ0YWJsZS1oZWFkZXItbW9k ZS1tYXAKICAgIjxoZWFkZXItbGluZT4gPG1vdXNlLTE+IiAndnRhYmxlLWhlYWRlci1saW5lLXNv cnQKICAgIjxoZWFkZXItbGluZT4gPG1vdXNlLTI+IiAndnRhYmxlLWhlYWRlci1saW5lLXNvcnQp CiAKKyhkZWZ2YXItbG9jYWwgdnRhYmxlLS1kaXNwbGF5LWxpbmUtbnVtYmVycyBuaWwpCisKKyhk ZWZ1biB2dGFibGUtLXBvc3QtY29tbWFuZCAoKQorICAodW5sZXNzIChlcSB2dGFibGUtLWRpc3Bs YXktbGluZS1udW1iZXJzIGRpc3BsYXktbGluZS1udW1iZXJzKQorICAgIChzZXRxIHZ0YWJsZS0t ZGlzcGxheS1saW5lLW51bWJlcnMgZGlzcGxheS1saW5lLW51bWJlcnMpCisgICAgKHZ0YWJsZS1y ZXZlcnQtY29tbWFuZCkpKQorCiAoZGVmaW5lLW1pbm9yLW1vZGUgdnRhYmxlLWhlYWRlci1tb2Rl CiAgICJNaW5vciBtb2RlIGZvciBidWZmZXJzIHdpdGggdnRhYmxlcyB3aXRoIGhlYWRlcnMuIgot ICA6a2V5bWFwIHZ0YWJsZS1oZWFkZXItbW9kZS1tYXApCisgIDprZXltYXAgdnRhYmxlLWhlYWRl ci1tb2RlLW1hcAorICAoaWYgdnRhYmxlLWhlYWRlci1tb2RlCisgICAgICAoYWRkLWhvb2sgJ3Bv c3QtY29tbWFuZC1ob29rICMndnRhYmxlLS1wb3N0LWNvbW1hbmQgbmlsICdsb2NhbCkKKyAgICAo cmVtb3ZlLWhvb2sgJ3Bvc3QtY29tbWFuZC1ob29rICMndnRhYmxlLS1wb3N0LWNvbW1hbmQgJ2xv Y2FsKSkpCiAKIChkZWZ1biB2dGFibGUtbmFycm93LWN1cnJlbnQtY29sdW1uICgmb3B0aW9uYWwg bikKICAgIk5hcnJvdyB0aGUgY3VycmVudCBjb2x1bW4gYnkgTiBjaGFyYWN0ZXJzLgpAQCAtMTA3 NSw2ICsxMTk0LDE3IEBAIHZ0YWJsZS1oZWFkZXItbGluZS1zb3J0CiAJCQkgIChjYXIgb2JqKSkp CiAgICAgICAodnRhYmxlLXNvcnQtYnktY3VycmVudC1jb2x1bW4pKSkpCiAKKyhkZWZ1biB2dGFi bGUtdW5zb3J0ICgpCisgICJEaXNhYmxlIHRoZSBjdXJyZW50IHZ0YWJsZSBzb3J0LgorVGhlIGRl ZmF1bHQgb3JkZXIgaXMgZGV0ZXJtaW5lZCBieSB0aGUgdGFibGUncyBvYmplY3RzIG9yCis6b2Jq ZWN0cy1mdW5jdGlvbi4iCisgIChpbnRlcmFjdGl2ZSkKKyAgKGxldCAoKHRhYmxlICh2dGFibGUt Y3VycmVudC10YWJsZSkpKQorICAgICh1bmxlc3MgdGFibGUKKyAgICAgICh1c2VyLWVycm9yICJO byB0YWJsZSB1bmRlciBwb2ludCIpKQorICAgIChzZXRmICh2dGFibGUtc29ydC1ieSB0YWJsZSkg bmlsKQorICAgICh2dGFibGUtcmV2ZXJ0LWNvbW1hbmQpKSkKKwogKHByb3ZpZGUgJ3Z0YWJsZSkK IAogOzs7IHZ0YWJsZS5lbCBlbmRzIGhlcmUKLS0gCjIuNDcuMQoK --000000000000685efb06334f9720-- From debbugs-submit-bounces@debbugs.gnu.org Thu Jun 19 16:19:38 2025 Received: (at 77717) by debbugs.gnu.org; 19 Jun 2025 20:19:38 +0000 Received: from localhost ([127.0.0.1]:38526 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1uSLjV-00045g-TC for submit@debbugs.gnu.org; Thu, 19 Jun 2025 16:19:38 -0400 Received: from mail-ua1-x933.google.com ([2607:f8b0:4864:20::933]:58755) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from ) id 1uSLjT-00044k-FA; Thu, 19 Jun 2025 16:19:36 -0400 Received: by mail-ua1-x933.google.com with SMTP id a1e0cc1a2514c-880f92a63c7so284807241.1; Thu, 19 Jun 2025 13:19:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1750364369; x=1750969169; darn=debbugs.gnu.org; h=to:subject:message-id:date:from:in-reply-to:references:mime-version :from:to:cc:subject:date:message-id:reply-to; bh=Kz6Yl0x1uVKifpZ4aijbmWhsrsFB9vIdfmwEj0UzKkQ=; b=UoEj/g/V9xOkpoTDz1J5W/K1rtVcJnq7Uyke4lhEwy/omyUjIHXv68yisKLX5rHedg gr/FmAtrhG7MNIqoVb3CtiH9KQKSqp1R97XeaRwi9/3IbYHPfNBV8ksGyZ3eUG3VSx/K pAAD0bOJf64b2OjbtHrlkvFLlQi2XilKlWJjUQM4QlysPRvAKlAgxEN3m10pY2uFVNyG gMi56P+F170INCYV02VXDriuH7DAy6dZYWzb7Vth/ySV+w6GbSiTHXr85tqTD4hU9zYf MHsurr5R/fWk3eUolGJskQeNmZR1CUZLXXE2MSvNJebynb0PDZ+sy6Io4X5DVr1vUDn0 /c2Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1750364369; x=1750969169; h=to:subject:message-id:date:from:in-reply-to:references:mime-version :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=Kz6Yl0x1uVKifpZ4aijbmWhsrsFB9vIdfmwEj0UzKkQ=; b=sweXsV32fNttkDqF7/GVdKsSXIAT9r/yE0qhl3NsBixlLLLHoEyH/nmGBbnxiUY4ze ANQKeXEiB6UyKuPKmvUH/YBwQdCf7/zOh4if4o6yiaN0x3GZwGmTQVwpu2hKUJ57CBe5 HhaKXMvrI7CpEbOmlJjjNdYL8fl8Eh6Or1ZAhHaYrgA4U1u9KkULA+vpdhchy+QsgEIZ E2xnVElxABSJACtxlWCho7nkUpB1+VC/Fhi3FMVy2g33wJv92vRQYUS23wzKhIDI4u2v GR32bE5Wt2LU1Vo4gPPR4v/WOgzjEEal76g07qFOnEwg5xwr0+RGbXDy8A9XhN9StJv8 LhLg== X-Forwarded-Encrypted: i=1; AJvYcCV6TMLyOC7V3f6zXeCT+XMTi3H4kpJkE4gRJrGqgxjsLjD68LtwVBbjMbWfFfWCgQpCdi6CG1fsc1w1@debbugs.gnu.org X-Gm-Message-State: AOJu0YwJjmEYFx/p75AlqQ3YQ/cwOBnuV7neF397a250mNj/49Wwb/oI tdeP6C1TJVEcjdBIkJOzgXPaw430RjjKx996a0tiilSCTtWTpwdhRDOjRz5TtQkJNzfb4ZCsPRe tInXdhxVdPayCDjt8H/MJ9Zx4TRtndfq67kjC X-Gm-Gg: ASbGnctCkcI9teo9qi7U6XgPEdzJvpepRC2OZvatJZJWkyhZeZ+oizyRVyI50sbIuh3 /cBi99tR/hWXoGqWeTc7jGkxuNraHeBqXoHDKcBk6xAz4curTUzbY3Kg8ayiyjJEa8XLNO90OH0 pFQFmqsLycuhYYs5AYMUbL6UL61RVNeTRU3lYY4eXbCNYWU7bysA+/YrCG X-Google-Smtp-Source: AGHT+IEh+j1ECZ3Y5Mq0HGgJopFuC5O/gzOsL3bJgaXKfZ7QUT7iNdt3IxzMyyaC9cna3efbKJqUWgqDTHIzhaw7rno= X-Received: by 2002:a05:6102:26d0:b0:4c5:1c2e:79f5 with SMTP id ada2fe7eead31-4e9c2944034mr240212137.16.1750364369194; Thu, 19 Jun 2025 13:19:29 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: =?UTF-8?Q?St=C3=A9phane_Marks?= Date: Thu, 19 Jun 2025 16:19:18 -0400 X-Gm-Features: Ac12FXz48B1-pP0jeeKNhotsUgvxIsKNjvqgj1Xiw4PwWq-oV4EeVrreyJEhRGY Message-ID: Subject: Re: bug#77717: [PATCH] Add row-properties to 'vtable' To: 77717@debbugs.gnu.org, 77717-done@debbugs.gnu.org Content-Type: multipart/alternative; boundary="00000000000074121e0637f27659" X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 77717 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) --00000000000074121e0637f27659 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Closing. Superseded by a forthcoming bug. On Mon, Apr 21, 2025 at 4:19=E2=80=AFPM Ship Mints wr= ote: > On Sat, Apr 12, 2025 at 8:44=E2=80=AFAM Ship Mints = wrote: > >> On Sat, Apr 12, 2025 at 7:51=E2=80=AFAM Ship Mints = wrote: >> >>> On Fri, Apr 11, 2025 at 4:02=E2=80=AFPM Ship Mints wrote: >>> >>>> On Thu, Apr 10, 2025 at 6:11=E2=80=AFPM Ship Mints wrote: >>>> >>>>> This is useful for adding 'cursor-face or 'mouse-face to each row. >>>>> I've been advising 'vtable--insert-line' with an after advice. This = is >>>>> better. >>>>> >>>>> Example: >>>>> >>>>> (make-vtable >>>>> :columns >>>>> '(( :name "Foo" >>>>> :primary ascending >>>>> )) >>>>> :allow-other-keys t ; backward compatibility for >>>>> :row-properties >>>>> :row-properties '( mouse-face highlight >>>>> cursor-face region) >>>>> >>>> >>>> Revised patch attached with the bug number and with 'keymap now applie= d >>>> to the whole row vs. just the row text. This ensures that keys (e.g.,= "q" >>>> to quit) operate correctly if point is at the newline. >>>> >>> >>> While I have vtable cracked open, this revised patch now includes >>> unsort. vtable is nice. Now, a bit nicer. >>> >> >> Now with a complete sentence in 'vtable-unsort' docstring. >> > > I've expanded the scope of this bug to include additional enhancements, > all intended to be backwardly compatible, yet provide some very nice > customization features. > > The biggest issues I wanted to address were that display-line-numbers was > not correctly supported when using the header-line, and that > text-scale-mode did not work well. > > Along the way, I added custom faces for the header, column names, > column-width computation optionally includes column name width, an unsort > command, skipping the divider on the last column (this one was an outrigh= t > bug), an option to make the divider intangible, an option to not produce > dividers on the header, customizable sort indicators and faces. > > As test jigs, I've been using some code I wrote for tab-bar that presents > all open tabs from across all frames and in a useful way for frame/tab > switching (discussed in a few open bugs with Juri), and a project-list to= ol > (discussed in an open bug with Dmitry). vtable is great for these use > cases. I will share those for feedback after the vtable work. > > I have a couple more minor vtable things to do, and I figured if anyone i= s > interested in vtable as the wonderful addition to Emacs it is (thanks > Lars!), I wanted to share the work in process for feedback. I will updat= e > the documentation and I might go through flymake noise and add docstrings > while I'm at it. > > Patch attached. > > -Stephane > --00000000000074121e0637f27659 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Closing. Superseded=C2=A0by a forthcoming bug.

On Mon, Apr 21, 2025 at 4:19=E2=80=AFPM Ship Mints <shipmints@gmail.com> wrote:
<= div class=3D"gmail_default" style=3D"font-family:monospace">On Sat, Apr 12, 2025 at 8:44=E2=80= =AFAM Ship Mints <shipmints@gmail.com> wrote:
=
On Sat, Apr 12, 2025 at 7:51=E2=80=AFAM S= hip Mints <ship= mints@gmail.com> wrote:
On Fri, Apr 11, 2025 at 4:02=E2=80=AFPM Ship Min= ts <shipmints@g= mail.com> wrote:
On Thu, Apr 10, 2025 at 6:11=E2=80=AFPM Ship Mints <= shipmints@gmail.co= m> wrote:
This is useful for adding 'cursor-face or 'mouse-fa= ce to each row.=C2=A0 I've been advising 'vtable--insert-line' = with an after advice.=C2=A0 This is better.

Example:

=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 (make-vtable
=C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0:columns
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0'(( :name "Foo"
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0:primary ascending
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0))
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0:all= ow-other-keys t ; backward compatibility for :row-properties
=C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0:row-properties '( mouse-face highlight<= br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 cursor-face region)

Revised patch attac= hed with the bug number and with 'keymap now applied to the whole row v= s. just the row text.=C2=A0 This ensures that keys (e.g., "q" to = quit) operate correctly=C2=A0if point is at the newline.
<= /blockquote>

While I hav= e vtable cracked open, this revised patch now includes unsort.=C2=A0 vtable= is nice.=C2=A0 Now, a bit nicer.
Now with a complete sentence i= n 'vtable-unsort' docstring.
I'v= e expanded the scope of this bug to include additional enhancements, all in= tended to be backwardly compatible, yet provide some very nice customizatio= n features.

T= he biggest issues I wanted to address were that display-line-numbers was no= t correctly supported when using the header-line, and that text-scale-mode = did not work well.

Along the way, I added custom faces for the header, column names, col= umn-width computation optionally includes column name width, an unsort comm= and, skipping the divider on the last column (this one was an outright bug)= , an option to make the divider intangible, an option to not produce divide= rs on the header, customizable sort indicators and faces.

As=C2=A0test jigs, I've = been using some code I wrote for tab-bar that presents all open tabs from a= cross all frames and in a useful way for frame/tab switching (discussed in = a few open bugs with Juri), and a project-list tool (discussed in an open b= ug with Dmitry).=C2=A0 vtable is great for these use cases.=C2=A0 I will sh= are those for feedback after the vtable work.

I have a couple more minor vtable things t= o do, and I figured if anyone is interested in vtable as the wonderful addi= tion to Emacs it is (thanks Lars!), I wanted to share the work in process f= or feedback.=C2=A0 I will update the documentation and I might go through f= lymake noise and add docstrings while I'm at it.

Patch attached.

-Stephane
--00000000000074121e0637f27659--