GNU bug report logs - #74178
Handle tab stops on display so they work in variable-pitch-mode

Please note: This is a static page, with minimal formatting, updated once a day.
Click here to see this page with the latest information and nicer formatting.

Package: emacs; Severity: wishlist; Reported by: dannym@HIDDEN; dated Sat, 2 Nov 2024 18:08:01 UTC; Maintainer for emacs is bug-gnu-emacs@HIDDEN.
Severity set to 'wishlist' from 'normal' Request was from Stefan Kangas <stefankangas@HIDDEN> to control <at> debbugs.gnu.org. Full text available.

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


Received: (at 74178) by debbugs.gnu.org; 2 Nov 2024 18:45:14 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Nov 02 14:45:14 2024
Received: from localhost ([127.0.0.1]:54978 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1t7J7Z-0004e0-Tm
	for submit <at> debbugs.gnu.org; Sat, 02 Nov 2024 14:45:14 -0400
Received: from eggs.gnu.org ([209.51.188.92]:34380)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <eliz@HIDDEN>) id 1t7J7W-0004ZP-QQ
 for 74178 <at> debbugs.gnu.org; Sat, 02 Nov 2024 14:45:11 -0400
Received: from fencepost.gnu.org ([2001:470:142:3::e])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <eliz@HIDDEN>)
 id 1t7J7R-0003fh-9l; Sat, 02 Nov 2024 14:45:05 -0400
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org;
 s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date:
 mime-version; bh=68vjy1iWRUVzUZ+xCS41T713yF1IkxsWtRbeCFcgiSA=; b=d98WwEhM+x6r
 +S59sDE56nCzsRCRmQb+1Lox5CHTTQwV8MtQPf2TV5jY1VAFVi7pc2DfwWsdllDQf5HfrwURBzNzj
 QoLKL3GpaOQvlbK+vM/AZnOmCZ8S5eezVQTZaO/N6AWkb1PpkxHJjU00qEx41GKe1VQuUjrZVWWOo
 56k2rJWhwhXmdA4c3nNeVqkey4BiG3WoZEXX6uBhx+qeWprejr6dpMh2vvPnZfuYnr2GSV3wYmIrS
 Ix9E0nJ0yEtNoRmaPKjHScC4JkGTOAo6RhGtpl/k4+E86JELr83Ujdvmbi8uLNKFJSkQMPhlXr3yg
 xiIvtl10qMw4E8FtUNCiYg==;
Date: Sat, 02 Nov 2024 20:45:02 +0200
Message-Id: <865xp5xyoh.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
To: dannym@HIDDEN
In-Reply-To: <0977f406630ca447c857de6c38a9df7e@HIDDEN>
 (dannym@HIDDEN)
Subject: Re: bug#74178: Handle tab stops on display so they work in
 variable-pitch-mode
References: <0977f406630ca447c857de6c38a9df7e@HIDDEN>
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 74178
Cc: 74178 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

> Date: Sat, 02 Nov 2024 19:06:54 +0100
> From: dannym@HIDDEN
> 
> Right now, when using variable-pitch-mode, there's no way for the user
> to make tables.  This patch adds a feature to do that.
> 
> This patch handles tab-stop-list in the display part of emacs so that
> they work as expected when using variable-pitch-mode.
> 
> The unit of the values in tab-stop-list is space characters.
> 
> The reasons why those values are in space characters are:
> 
> - Works with HiDPI and LoDPI screens the same way with the same values
> inside tab-stop-list.
> - Works in console emacs.
> - Works in graphical emacs.
> - Is backward compatible.
> 
> My assumption is that existing user files either don't have any '\t'
> in their buffers or they are using the (previous) high-level version
> of emacs tab-stop-list (which will replace all '\t' by some spaces),
> not both.  This way, emacs without the patch is forward-compatible
> to emacs with the patch.
> 
> This is a version that will use tabs in the order they appear in the
> tab-stop-list, (on purpose) regardless of whether the text on the
> line already exceeded the respective tab stop position (because it's
> still better not to use the wrong column in the table).
> 
> Each respective tab stop, in order, will be used for a respective
> '\t', per line. If these fixed tab stops are used up, it will fall
> back to the automatic tab stops every tab_width that emacs also
> already had done before.
> 
> The list of tab stops is buffer-local--as before.

Thanks, but please tell how this feature is intended to be used.  In
particular, what would be the value of the new buffer-local variable,
and how will the tab stops of this value be determined by users or
Lisp programs who want to take advantage of this feature?

There are also some technical problems with the idea of your
implementation: for example, it sounds like the display iterator will
need to always start from the beginning of a physical line, otherwise
it will be unable to correctly account for the tab stops before the
position where it is initialized.  But let's ignore these aspects for
now and talk about the general idea, because it's possible that the
feature could be implemented in some other way that is free of these
problems.

P.S. There's also the issue of assigning to the FSF the copyright for
your work, without which we will be unable to accept a contribution of
this size.  Should I send you the form to fill and the instructions,
to start the legal paperwork rolling?




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#74178; Package emacs. Full text available.

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


Received: (at submit) by debbugs.gnu.org; 2 Nov 2024 18:07:03 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Nov 02 14:07:02 2024
Received: from localhost ([127.0.0.1]:54799 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1t7IWb-0003Oe-Tn
	for submit <at> debbugs.gnu.org; Sat, 02 Nov 2024 14:07:02 -0400
Received: from lists.gnu.org ([209.51.188.17]:51850)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <dannym@HIDDEN>) id 1t7IWa-0003OX-7v
 for submit <at> debbugs.gnu.org; Sat, 02 Nov 2024 14:07:01 -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 <dannym@HIDDEN>)
 id 1t7IWZ-0001nN-LZ
 for bug-gnu-emacs@HIDDEN; Sat, 02 Nov 2024 14:06:59 -0400
Received: from cichlid.cherry.relay.mailchannels.net ([23.83.223.36])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <dannym@HIDDEN>)
 id 1t7IWX-00038m-8R
 for bug-gnu-emacs@HIDDEN; Sat, 02 Nov 2024 14:06:59 -0400
X-Sender-Id: dreamhost|x-authsender|dannym@HIDDEN
Received: from relay.mailchannels.net (localhost [127.0.0.1])
 by relay.mailchannels.net (Postfix) with ESMTP id CC882841CC1
 for <bug-gnu-emacs@HIDDEN>; Sat,  2 Nov 2024 18:06:54 +0000 (UTC)
Received: from pdx1-sub0-mail-a254.dreamhost.com
 (trex-5.trex.outbound.svc.cluster.local [100.103.26.202])
 (Authenticated sender: dreamhost)
 by relay.mailchannels.net (Postfix) with ESMTPA id 858F984270B
 for <bug-gnu-emacs@HIDDEN>; Sat,  2 Nov 2024 18:06:54 +0000 (UTC)
ARC-Seal: i=1; s=arc-2022; d=mailchannels.net; t=1730570814; a=rsa-sha256;
 cv=none;
 b=z7YXHtWDGOAPtuqT3/sYPSC4E+QmT5hMTQ4BFWwf5wXAahdotwllrgbCWyBEY6Wg1McSnM
 uH/Id7Lm1/pWml12c6OTF3Y5W6yNxA2hp1ycqkxwzT8BT1Bf7wXCMIMkiSx27GSASDLpU8
 nBjrkvrQn2PXR9Q4DT9AoUi8S0ZwCn2EmtF6T3B7mm0IvB0AWsWJrAVuR5IbDILjL+fSww
 77LUJp4anbTRyMH+X0WqKRosvut7jOzRQ/8DzrrtKl/7qn/nen1q8KmdbMPAJJRmBbRKqX
 pgIeSSqhrxu9dHAVPYovBd6WJstEf5xYGMsn/gZ+1g2fk/7HWRpodDiZ/LedOA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed;
 d=mailchannels.net; s=arc-2022; t=1730570814;
 h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
 to:to:cc:mime-version:mime-version:content-type:content-type:
 dkim-signature; bh=6l50YC4ZvVlG+klRHcFrxTY8LQHGAGEGLZ2/6IxDV9s=;
 b=8wXlBMrX1rv0S60TtN4x0riJf9wfgzyqtHoy5Vrw4fdTiSMFQWewI5dimZlKMwHT9z7cRV
 8gs+uHULjGSYRorgV3OCrnV1kn6ZiVUMcy5QZIAg+cVTGtUR1eOrlY4/ngrIGVOcXZ9VuL
 RWRoRygs8RUVotVfKmC4MXCFKQYODFTRTRsDGIXzQd3Ro6PEUN2JsiGlAXfcvHBo0deTri
 kkugV9XEbL7gNG9fyVbi3lyrtdRnneDIBwZ6U91rOMnB2iBmHIg9G+L1i9fwVINlJ67YF3
 oboJgRlo6iq4+fp368xSsM0QET9J4CRhgpU5Y08ltLSvuNyh4PKdzszLSmkFtQ==
ARC-Authentication-Results: i=1; rspamd-5cc7c5c758-4s9vb;
 auth=pass smtp.auth=dreamhost smtp.mailfrom=dannym@HIDDEN
X-Sender-Id: dreamhost|x-authsender|dannym@HIDDEN
X-MC-Relay: Bad
X-MailChannels-SenderId: dreamhost|x-authsender|dannym@HIDDEN
X-MailChannels-Auth-Id: dreamhost
X-Snatch-Macabre: 490c2a05438697d4_1730570814764_801823744
X-MC-Loop-Signature: 1730570814764:53028803
X-MC-Ingress-Time: 1730570814763
Received: from pdx1-sub0-mail-a254.dreamhost.com (pop.dreamhost.com
 [64.90.62.162]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384)
 by 100.103.26.202 (trex/7.0.2); Sat, 02 Nov 2024 18:06:54 +0000
Received: from webmail.friendly-machines.com (ip-66-33-200-4.dreamhost.com
 [66.33.200.4]) (Authenticated sender: dannym@HIDDEN)
 by pdx1-sub0-mail-a254.dreamhost.com (Postfix) with ESMTPA id 4Xglzy33C6z1L
 for <bug-gnu-emacs@HIDDEN>; Sat,  2 Nov 2024 11:06:54 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=friendly-machines.com; s=dreamhost; t=1730570814;
 bh=6l50YC4ZvVlG+klRHcFrxTY8LQHGAGEGLZ2/6IxDV9s=;
 h=Date:From:To:Subject:Content-Type;
 b=SGbkPO3Fz4/UipjQk26wC+z0cYasR9iAq80RCB+JzAQ0PNrgnWdPghGk4U10Y5ugx
 spvbWq9TmmTmZqVWGEkmL0Hq3XukKqmSNSrefjlddPvu5sLwxoxLI8t7jj+QC7h+el
 zyBWRZg9eXz23no+fo2Ee3mP6XX6FXYuceeDGk6kItr+yJIZPPLnzJaIdS2QJm/be0
 D46pMI16Y4iNegSz99Xa/H4De6fh9nmhmlXXhz5OgJIVw/KRmvzSuSdMNSBcFIKwjy
 3oxMJnMLzkLs5doOyX1X5UtGCwOrQuuue8NIunpjAi8P+Sl2tnCZMzKClfGJbOJB49
 6ZlO+X2n4yGDg==
MIME-Version: 1.0
Date: Sat, 02 Nov 2024 19:06:54 +0100
From: dannym@HIDDEN
To: bug-gnu-emacs@HIDDEN
Subject: Handle tab stops on display so they work in variable-pitch-mode
User-Agent: Roundcube Webmail/1.5.0
Message-ID: <0977f406630ca447c857de6c38a9df7e@HIDDEN>
X-Sender: dannym@HIDDEN
Content-Type: multipart/mixed;
 boundary="=_9104b8db68e8b3b9e0d90f4c10fd313d"
Received-SPF: pass client-ip=23.83.223.36;
 envelope-from=dannym@HIDDEN;
 helo=cichlid.cherry.relay.mailchannels.net
X-Spam_score_int: -20
X-Spam_score: -2.1
X-Spam_bar: --
X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1,
 DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1,
 RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001,
 RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001,
 SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no
X-Spam_action: no action
X-Spam-Score: -1.4 (-)
X-Debbugs-Envelope-To: submit
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -2.4 (--)

--=_9104b8db68e8b3b9e0d90f4c10fd313d
Content-Transfer-Encoding: 7bit
Content-Type: text/plain; charset=US-ASCII;
 format=flowed

Hello,

Right now, when using variable-pitch-mode, there's no way for the user
to make tables.  This patch adds a feature to do that.

This patch handles tab-stop-list in the display part of emacs so that
they work as expected when using variable-pitch-mode.

The unit of the values in tab-stop-list is space characters.

The reasons why those values are in space characters are:

- Works with HiDPI and LoDPI screens the same way with the same values
inside tab-stop-list.
- Works in console emacs.
- Works in graphical emacs.
- Is backward compatible.

My assumption is that existing user files either don't have any '\t'
in their buffers or they are using the (previous) high-level version
of emacs tab-stop-list (which will replace all '\t' by some spaces),
not both.  This way, emacs without the patch is forward-compatible
to emacs with the patch.

This is a version that will use tabs in the order they appear in the
tab-stop-list, (on purpose) regardless of whether the text on the
line already exceeded the respective tab stop position (because it's
still better not to use the wrong column in the table).

Each respective tab stop, in order, will be used for a respective
'\t', per line. If these fixed tab stops are used up, it will fall
back to the automatic tab stops every tab_width that emacs also
already had done before.

The list of tab stops is buffer-local--as before.

I successfully tested both console and graphical emacs.

In GNU Emacs 29.4 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.24.41,
cairo version 1.18.0)
System Description: Guix System

Configured using:
  'configure
  
CONFIG_SHELL=/gnu/store/3jhfhxdf6v5ms10x5zmnl166dh3yhbr1-bash-minimal-5.1.16/bin/bash
  
SHELL=/gnu/store/3jhfhxdf6v5ms10x5zmnl166dh3yhbr1-bash-minimal-5.1.16/bin/bash
  --prefix=/gnu/store/9q1cfyj0bk0lqvx75pg9gn4isnlz2llv-emacs-pgtk-29.4
  --enable-fast-install --with-pgtk --with-cairo --with-modules
  --with-native-compilation=aot --disable-build-details'

--=_9104b8db68e8b3b9e0d90f4c10fd313d
Content-Transfer-Encoding: base64
Content-Type: text/x-diff;
 name=emacs-tab-stops-v2.patch
Content-Disposition: attachment;
 filename=emacs-tab-stops-v2.patch;
 size=8703

ZGlmZiAtcnUgJy1GXltfYS16QS1aMC05JF1cKyAqKCcgb3JpZy9lbWFjcy0yOS40L0NoYW5nZUxv
ZyBlbWFjcy0yOS40L0NoYW5nZUxvZwotLS0gb3JpZy9lbWFjcy0yOS40L0NoYW5nZUxvZwkxOTcw
LTAxLTAxIDAxOjAwOjAxLjAwMDAwMDAwMCArMDEwMAorKysgZW1hY3MtMjkuNC9DaGFuZ2VMb2cJ
MjAyNC0xMS0wMiAxNzo1NDowNS41NTc4NzM3NjMgKzAxMDAKQEAgLTEsMyArMSwxOSBAQAorMjAy
NC0xMS0wMiAgRGFubnkgTWlsb3NhdmxqZXZpYyAgPGRhbm55bUBmcmllbmRseS1tYWNoaW5lcy5j
b20+CisKKwlIYW5kbGUgdGFiIHN0b3BzIGluIGRpc3BsYXkgKGluc3RlYWQgb2YgZmFraW5nIGl0
KS4KKworCVRoaXMgbWFrZXMgaXQgcG9zc2libGUgZm9yIHRoZSB1c2VyIHRvIG1ha2UgdGFibGVz
IGluCisJdmFyaWFibGUtcGl0Y2gtbW9kZSBhcyB3ZWxsLgorCisJKiBzcmMvYnVmZmVyLmggKHRh
Yl9zdG9wX2xpc3QpOiBOZXcgcHVibGljIHZhcmlhYmxlLgorCSogc3JjL2J1ZmZlci5jICh0YWJf
c3RvcF9saXN0KTogSW5pdGlhbGl6ZSBpdC4KKwkqIHNyYy9kaXNwZXh0ZXJuLmggKHRhYl9zdG9w
X2xpc3QpOiBOZXcgdmFyaWFibGUuCisJKiBzcmMvdGVybS5jIChmaW5kX25leHRfdGFiX3N0b3Ap
OiBOZXcgcHJvY2VkdXJlLgorCShwcm9kdWNlX2dseXBocyk6IFVzZSBpdC4KKwkqIHNyYy94ZGlz
cC5jIChpbml0X2l0ZXJhdG9yKTogSW5pdGlhbGl6ZSB0YWJfc3RvcF9saXN0LgorCSh0YWtlX25l
eHRfdGFiX3N0b3ApOiBOZXcgcHJvY2VkdXJlLgorCShndWlfcHJvZHVjZV9nbHlwaHMpOiBVc2Ug
aXQuCisKIDIwMjQtMDYtMjIgIFN0ZWZhbiBLYW5nYXMgIDxzdGVmYW5rYW5nYXNAZ21haWwuY29t
PgogCiAJKiBWZXJzaW9uIDI5LjQgcmVsZWFzZWQuCmRpZmYgLXJ1ICctRl5bX2EtekEtWjAtOSRd
XCsgKignIG9yaWcvZW1hY3MtMjkuNC9zcmMvYnVmZmVyLmMgZW1hY3MtMjkuNC9zcmMvYnVmZmVy
LmMKLS0tIG9yaWcvZW1hY3MtMjkuNC9zcmMvYnVmZmVyLmMJMTk3MC0wMS0wMSAwMTowMDowMS4w
MDAwMDAwMDAgKzAxMDAKKysrIGVtYWNzLTI5LjQvc3JjL2J1ZmZlci5jCTIwMjQtMTEtMDIgMTI6
NTY6MTYuODkwMzMxOTYxICswMTAwCkBAIC00Njc2LDYgKzQ2NzYsNyBAQCBpbml0X2J1ZmZlcl9v
bmNlICh2b2lkKQogICBYU0VURkFTVElOVCAoQlZBUiAoJmJ1ZmZlcl9sb2NhbF9mbGFncywgc2Vs
ZWN0aXZlX2Rpc3BsYXkpLCBpZHgpOyArK2lkeDsKICAgWFNFVEZBU1RJTlQgKEJWQVIgKCZidWZm
ZXJfbG9jYWxfZmxhZ3MsIHNlbGVjdGl2ZV9kaXNwbGF5X2VsbGlwc2VzKSwgaWR4KTsgKytpZHg7
CiAgIFhTRVRGQVNUSU5UIChCVkFSICgmYnVmZmVyX2xvY2FsX2ZsYWdzLCB0YWJfd2lkdGgpLCBp
ZHgpOyArK2lkeDsKKyAgWFNFVEZBU1RJTlQgKEJWQVIgKCZidWZmZXJfbG9jYWxfZmxhZ3MsIHRh
Yl9zdG9wX2xpc3QpLCBpZHgpOyArK2lkeDsKICAgWFNFVEZBU1RJTlQgKEJWQVIgKCZidWZmZXJf
bG9jYWxfZmxhZ3MsIHRydW5jYXRlX2xpbmVzKSwgaWR4KTsKICAgLyogTWFrZSB0aGlzIG9uZSBh
IHBlcm1hbmVudCBsb2NhbC4gICovCiAgIGJ1ZmZlcl9wZXJtYW5lbnRfbG9jYWxfZmxhZ3NbaWR4
KytdID0gMTsKQEAgLTQ3NzYsNiArNDc3Nyw3IEBAIGluaXRfYnVmZmVyX29uY2UgKHZvaWQpCiAg
IGJ1ZmZlcl9kZWZhdWx0cy5vdmVybGF5cyA9IE5VTEw7CiAKICAgWFNFVEZBU1RJTlQgKEJWQVIg
KCZidWZmZXJfZGVmYXVsdHMsIHRhYl93aWR0aCksIDgpOworICBic2V0X3RhYl9zdG9wX2xpc3Qg
KCZidWZmZXJfZGVmYXVsdHMsIFFuaWwpOwogICBic2V0X3RydW5jYXRlX2xpbmVzICgmYnVmZmVy
X2RlZmF1bHRzLCBRbmlsKTsKICAgYnNldF93b3JkX3dyYXAgKCZidWZmZXJfZGVmYXVsdHMsIFFu
aWwpOwogICBic2V0X2N0bF9hcnJvdyAoJmJ1ZmZlcl9kZWZhdWx0cywgUXQpOwpAQCAtNTIxNiw2
ICs1MjE4LDEyIEBAIHN5bXNfb2ZfYnVmZmVyICh2b2lkKQogaW5zZXJ0cyBvbmUgb3IgbW9yZSBU
QUIgY2hhcmFjdGVycywgdGhpcyB2YXJpYWJsZSB3aWxsIGFmZmVjdCB0aGUKIGluZGVudGF0aW9u
IHN0ZXAgYXMgd2VsbCwgZXZlbiBpZiBgaW5kZW50LXRhYnMtbW9kZScgaXMgbm9uLW5pbC4gICov
KTsKIAorICBERUZWQVJfUEVSX0JVRkZFUiAoInRhYi1zdG9wLWxpc3QiLCAmQlZBUiAoY3VycmVu
dF9idWZmZXIsIHRhYl9zdG9wX2xpc3QpLAorCQkgICAgIFFuaWwsCisJCSAgICAgZG9jOiAvKiBX
aGVyZSBmaXhlZCB0YWIgc3RvcHMgYXJlIChmb3IgZGlzcGxheSBvZiB0YWIgY2hhcmFjdGVycyks
IGluIGNvbHVtbnMuCitUaGlzIGNvbnRyb2xzIHRoZSBwb3NpdGlvbnMgb2YgZml4ZWQgdGFiIHN0
b3BzIG9uIGRpc3BsYXkuCitUaGUgdmFsdWUgc2hvdWxkIGJlIGEgbGlzdCBvZiBwb3NpdGl2ZSBp
bnRlZ2VycyAoZWFjaCBmcm9tIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGxpbmUpLiAgKi8pOworCiAg
IERFRlZBUl9QRVJfQlVGRkVSICgiY3RsLWFycm93IiwgJkJWQVIgKGN1cnJlbnRfYnVmZmVyLCBj
dGxfYXJyb3cpLCBRbmlsLAogCQkgICAgIGRvYzogLyogTm9uLW5pbCBtZWFucyBkaXNwbGF5IGNv
bnRyb2wgY2hhcnMgd2l0aCB1cGFycm93IGBeJy4KIEEgdmFsdWUgb2YgbmlsIG1lYW5zIHVzZSBi
YWNrc2xhc2ggYFxcJyBhbmQgb2N0YWwgZGlnaXRzLgpkaWZmIC1ydSAnLUZeW19hLXpBLVowLTkk
XVwrICooJyBvcmlnL2VtYWNzLTI5LjQvc3JjL2J1ZmZlci5oIGVtYWNzLTI5LjQvc3JjL2J1ZmZl
ci5oCi0tLSBvcmlnL2VtYWNzLTI5LjQvc3JjL2J1ZmZlci5oCTE5NzAtMDEtMDEgMDE6MDA6MDEu
MDAwMDAwMDAwICswMTAwCisrKyBlbWFjcy0yOS40L3NyYy9idWZmZXIuaAkyMDI0LTExLTAyIDEy
OjIyOjAzLjQ1ODM4NDYxNiArMDEwMApAQCAtMzgxLDYgKzM4MSw3IEBAIEJVRl9URU1QX1NFVF9Q
VCAoc3RydWN0IGJ1ZmZlciAqYnVmZmVyLAogICAgICBpbiBidWZmZXJzIHRoYXQgYXJlIG5vdCBj
dXJyZW50LiAgKi8KICAgTGlzcF9PYmplY3QgY2FzZV9mb2xkX3NlYXJjaF87CiAgIExpc3BfT2Jq
ZWN0IHRhYl93aWR0aF87CisgIExpc3BfT2JqZWN0IHRhYl9zdG9wX2xpc3RfOwogICBMaXNwX09i
amVjdCBmaWxsX2NvbHVtbl87CiAgIExpc3BfT2JqZWN0IGxlZnRfbWFyZ2luXzsKIApAQCAtODMy
LDYgKzgzMywxMSBAQCBic2V0X3VuZG9fbGlzdCAoc3RydWN0IGJ1ZmZlciAqYiwgTGlzcF9PCiAg
IGItPnVuZG9fbGlzdF8gPSB2YWw7CiB9CiBJTkxJTkUgdm9pZAorYnNldF90YWJfc3RvcF9saXN0
IChzdHJ1Y3QgYnVmZmVyICpiLCBMaXNwX09iamVjdCB2YWwpCit7CisgIGItPnRhYl9zdG9wX2xp
c3RfID0gdmFsOworfQorSU5MSU5FIHZvaWQKIGJzZXRfdXBjYXNlX3RhYmxlIChzdHJ1Y3QgYnVm
ZmVyICpiLCBMaXNwX09iamVjdCB2YWwpCiB7CiAgIGItPnVwY2FzZV90YWJsZV8gPSB2YWw7CmRp
ZmYgLXJ1ICctRl5bX2EtekEtWjAtOSRdXCsgKignIG9yaWcvZW1hY3MtMjkuNC9zcmMvZGlzcGV4
dGVybi5oIGVtYWNzLTI5LjQvc3JjL2Rpc3BleHRlcm4uaAotLS0gb3JpZy9lbWFjcy0yOS40L3Ny
Yy9kaXNwZXh0ZXJuLmgJMTk3MC0wMS0wMSAwMTowMDowMS4wMDAwMDAwMDAgKzAxMDAKKysrIGVt
YWNzLTI5LjQvc3JjL2Rpc3BleHRlcm4uaAkyMDI0LTExLTAyIDEyOjUxOjQ4LjM5NDMzODg0NiAr
MDEwMApAQCAtMjYzNiw2ICsyNjM2LDkgQEAgR0xZUEhfQ09ERV9QIChMaXNwX09iamVjdCBnYykK
ICAgLyogTnVtYmVyIG9mIGNvbHVtbnMgcGVyIFx0LiAgKi8KICAgc2hvcnQgdGFiX3dpZHRoOwog
CisgIC8qIFBvc2l0aW9uIG9mIHRoZSB0YWIgc3RvcHMgKGluIGNvbHVtbnMpICovCisgIExpc3Bf
T2JqZWN0IHRhYl9zdG9wX2xpc3Q7CisKICAgLyogVmFsdWUgb2YgdGhlIGBoZWlnaHQnIHByb3Bl
cnR5LCBpZiBhbnk7IG5pbCBpZiBub25lLiAgKi8KICAgTGlzcF9PYmplY3QgZm9udF9oZWlnaHQ7
CiAKZGlmZiAtcnUgJy1GXltfYS16QS1aMC05JF1cKyAqKCcgb3JpZy9lbWFjcy0yOS40L3NyYy90
ZXJtLmMgZW1hY3MtMjkuNC9zcmMvdGVybS5jCi0tLSBvcmlnL2VtYWNzLTI5LjQvc3JjL3Rlcm0u
YwkxOTcwLTAxLTAxIDAxOjAwOjAxLjAwMDAwMDAwMCArMDEwMAorKysgZW1hY3MtMjkuNC9zcmMv
dGVybS5jCTIwMjQtMTEtMDIgMTg6MDE6MzIuODc3ODYyMjkzICswMTAwCkBAIC0xNTI3LDYgKzE1
MjcsMjUgQEAgdHR5X2FwcGVuZF9nbHlwaCAoc3RydWN0IGl0ICppdCkKIH0KIAogCitzdGF0aWMg
aW5saW5lIGludAordGFrZV9uZXh0X3RhYl9zdG9wIChzdHJ1Y3QgaXQgKml0LCBpbnQgeCkKK3sK
KyAgTGlzcF9PYmplY3QgdGFpbCA9IGl0LT50YWJfc3RvcF9saXN0OworICBpZiAoQ09OU1AgKHRh
aWwpKSB7CisgICAgICBpZiAoRklYTlVNUCAoWENBUiAodGFpbCkpKSB7CisgICAgICAgICAgICBp
bnQgcmVzdWx0ID0gWEZJWE5VTSAoWENBUiAodGFpbCkpOworICAgICAgICAgICAgaXQtPnRhYl9z
dG9wX2xpc3QgPSBYQ0RSICh0YWlsKTsKKyAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAg
ICB9IGVsc2UKKyAgICAgICAgICAgIHJldHVybiB4OworICB9CisKKyAgLyogRmFsbCBiYWNrIHRv
IGZpeGVkIHRhYiBzdG9wcyAqLworICBpbnQgbmV4dF90YWJfeCA9ICgoKDEgKyB4ICsgaXQtPnRh
Yl93aWR0aCAtIDEpIC8gaXQtPnRhYl93aWR0aCkgKiBpdC0+dGFiX3dpZHRoKTsKKyAgcmV0dXJu
IG5leHRfdGFiX3g7Cit9CisKKwogLyogUHJvZHVjZSBnbHlwaHMgZm9yIHRoZSBkaXNwbGF5IGVs
ZW1lbnQgZGVzY3JpYmVkIGJ5IElULiAgKklUCiAgICBzcGVjaWZpZXMgd2hhdCB3ZSB3YW50IHRv
IHByb2R1Y2UgYSBnbHlwaCBmb3IgKGNoYXJhY3RlciwgaW1hZ2UsIC4uLiksCiAgICBhbmQgd2hl
cmUgaW4gdGhlIGdseXBoIG1hdHJpeCB3ZSBjdXJyZW50bHkgYXJlIChnbHlwaCByb3cgYW5kIGhw
b3MpLgpAQCAtMTU4Miw3ICsxNjAxLDExIEBAIHByb2R1Y2VfZ2x5cGhzIChzdHJ1Y3QgaXQgKml0
KQogCWFwcGVuZF9nbHlwaCAoaXQpOwogICAgIH0KICAgZWxzZSBpZiAoaXQtPmNoYXJfdG9fZGlz
cGxheSA9PSAnXG4nKQotICAgIGl0LT5waXhlbF93aWR0aCA9IGl0LT5uZ2x5cGhzID0gMDsKKyAg
ICB7CisgICAgICBpdC0+cGl4ZWxfd2lkdGggPSBpdC0+bmdseXBocyA9IDA7CisgICAgICAvKiBS
ZXNldCB0YWIgc3RvcHMgdG8gdGhlIHVzZXIgdmFsdWUgYWZ0ZXIgZWFjaCBwYXJhZ3JhcGggKi8K
KyAgICAgIGl0LT50YWJfc3RvcF9saXN0ID0gQlZBUiAoY3VycmVudF9idWZmZXIsIHRhYl9zdG9w
X2xpc3QpOworICAgIH0KICAgZWxzZSBpZiAoaXQtPmNoYXJfdG9fZGlzcGxheSA9PSAnXHQnKQog
ICAgIHsKICAgICAgIGludCBhYnNvbHV0ZV94ID0gKGl0LT5jdXJyZW50X3gKQEAgLTE1OTEsMTAg
KzE2MTQsNyBAQCBwcm9kdWNlX2dseXBocyAoc3RydWN0IGl0ICppdCkKICAgICAgIC8qIEFkanVz
dCBmb3IgbGluZSBudW1iZXJzLiAgKi8KICAgICAgIGlmICghTklMUCAoVmRpc3BsYXlfbGluZV9u
dW1iZXJzKSAmJiBpdC0+bGluZV9udW1iZXJfcHJvZHVjZWRfcCkKIAlhYnNvbHV0ZV94IC09IGl0
LT5sbnVtX3BpeGVsX3dpZHRoOwotICAgICAgaW50IG5leHRfdGFiX3gKLQk9ICgoKDEgKyBhYnNv
bHV0ZV94ICsgaXQtPnRhYl93aWR0aCAtIDEpCi0JICAgIC8gaXQtPnRhYl93aWR0aCkKLQkgICAq
IGl0LT50YWJfd2lkdGgpOworICAgICAgaW50IG5leHRfdGFiX3ggPSB0YWtlX25leHRfdGFiX3N0
b3AgKGl0LCBhYnNvbHV0ZV94KTsKICAgICAgIGlmICghTklMUCAoVmRpc3BsYXlfbGluZV9udW1i
ZXJzKSAmJiBpdC0+bGluZV9udW1iZXJfcHJvZHVjZWRfcCkKIAluZXh0X3RhYl94ICs9IGl0LT5s
bnVtX3BpeGVsX3dpZHRoOwogICAgICAgaW50IG5zcGFjZXM7CmRpZmYgLXJ1ICctRl5bX2EtekEt
WjAtOSRdXCsgKignIG9yaWcvZW1hY3MtMjkuNC9zcmMveGRpc3AuYyBlbWFjcy0yOS40L3NyYy94
ZGlzcC5jCi0tLSBvcmlnL2VtYWNzLTI5LjQvc3JjL3hkaXNwLmMJMTk3MC0wMS0wMSAwMTowMDow
MS4wMDAwMDAwMDAgKzAxMDAKKysrIGVtYWNzLTI5LjQvc3JjL3hkaXNwLmMJMjAyNC0xMS0wMiAx
ODowMTo0NS4yNzM4NjE5NzUgKzAxMDAKQEAgLTMzMTYsNiArMzMxNiw3IEBAIGluaXRfaXRlcmF0
b3IgKHN0cnVjdCBpdCAqaXQsIHN0cnVjdCB3aW4KICAgaXQtPm11bHRpYnl0ZV9wID0gIU5JTFAg
KEJWQVIgKGN1cnJlbnRfYnVmZmVyLCBlbmFibGVfbXVsdGlieXRlX2NoYXJhY3RlcnMpKTsKIAog
ICBpdC0+dGFiX3dpZHRoID0gU0FORV9UQUJfV0lEVEggKGN1cnJlbnRfYnVmZmVyKTsKKyAgaXQt
PnRhYl9zdG9wX2xpc3QgPSBCVkFSIChjdXJyZW50X2J1ZmZlciwgdGFiX3N0b3BfbGlzdCk7CiAK
ICAgLyogQXJlIGxpbmVzIGluIHRoZSBkaXNwbGF5IHRydW5jYXRlZD8gICovCiAgIGlmIChUUlVO
Q0FURSAhPSAwKQpAQCAtMzE2OTEsNiArMzE2OTIsMzEgQEAgY2FsY19saW5lX2hlaWdodF9wcm9w
ZXJ0eSAoc3RydWN0IGl0ICppdAogfQogCiAKK3N0YXRpYyBpbmxpbmUgaW50Cit0YWtlX25leHRf
dGFiX3N0b3AgKHN0cnVjdCBpdCAqaXQsIGludCBmb250X3NwYWNlX3dpZHRoLCBpbnQgeCkKK3sK
KyAgTGlzcF9PYmplY3QgdGFpbCA9IGl0LT50YWJfc3RvcF9saXN0OworICBpZiAoQ09OU1AgKHRh
aWwpKSB7CisgICAgICBpZiAoRklYTlVNUCAoWENBUiAodGFpbCkpKSB7CisgICAgICAgICAgICBp
bnQgcmVzdWx0ID0gWEZJWE5VTSAoWENBUiAodGFpbCkpICogZm9udF9zcGFjZV93aWR0aDsKKyAg
ICAgIAkJaXQtPnRhYl9zdG9wX2xpc3QgPSBYQ0RSICh0YWlsKTsKKyAgICAgIAkJcmV0dXJuIHJl
c3VsdDsKKyAgICAgIH0gZWxzZQorICAgICAgICAgICAgcmV0dXJuIHg7CisgIH0KKworICBpbnQg
dGFiX3dpZHRoID0gaXQtPnRhYl93aWR0aCAqIGZvbnRfc3BhY2Vfd2lkdGg7CisgIC8qIEZhbGwg
YmFjayB0byBmaXhlZCB0YWIgc3RvcHMgKi8KKyAgaW50IG5leHRfdGFiX3ggPSAoKDEgKyB4ICsg
dGFiX3dpZHRoIC0gMSkgLyB0YWJfd2lkdGgpICogdGFiX3dpZHRoOworICAvKiBJZiB0aGUgZGlz
dGFuY2UgZnJvbSB0aGUgY3VycmVudCBwb3NpdGlvbiB0byB0aGUgbmV4dCB0YWIKKwkgc3RvcCBp
cyBsZXNzIHRoYW4gYSBzcGFjZSBjaGFyYWN0ZXIgd2lkdGgsIHVzZSB0aGUKKwkgdGFiIHN0b3Ag
YWZ0ZXIgdGhhdC4gICovCisgIGlmIChuZXh0X3RhYl94IC0geCA8IGZvbnRfc3BhY2Vfd2lkdGgp
CisJCW5leHRfdGFiX3ggKz0gdGFiX3dpZHRoOworICByZXR1cm4gbmV4dF90YWJfeDsKK30KKwor
CiAvKiBBcHBlbmQgYSBnbHlwaCBmb3IgYSBnbHlwaGxlc3MgY2hhcmFjdGVyIHRvIElULT5nbHlw
aF9yb3cuICBGQUNFX0lECiAgICBpcyBhIGZhY2UgSUQgdG8gYmUgdXNlZCBmb3IgdGhlIGdseXBo
LiAgRk9SX05PX0ZPTlQgaXMgdHJ1ZSBpZgogICAgYW5kIG9ubHkgaWYgdGhpcyBpcyBmb3IgYSBj
aGFyYWN0ZXIgZm9yIHdoaWNoIG5vIGZvbnQgd2FzIGZvdW5kLgpAQCAtMzIxMTIsNiArMzIxMzgs
OCBAQCBndWlfcHJvZHVjZV9nbHlwaHMgKHN0cnVjdCBpdCAqaXQpCiAJICBpdC0+b3ZlcnJpZGVf
YXNjZW50ID0gLTE7CiAJICBpdC0+cGl4ZWxfd2lkdGggPSAwOwogCSAgaXQtPm5nbHlwaHMgPSAw
OworCSAgLyogUmVzZXQgdGFiIHN0b3BzIHRvIHRoZSB1c2VyIHZhbHVlIGFmdGVyIGVhY2ggcGFy
YWdyYXBoICovCisJICBpdC0+dGFiX3N0b3BfbGlzdCA9IEJWQVIgKGN1cnJlbnRfYnVmZmVyLCB0
YWJfc3RvcF9saXN0KTsKIAogCSAgaGVpZ2h0ID0gZ2V0X2l0X3Byb3BlcnR5IChpdCwgUWxpbmVf
aGVpZ2h0KTsKIAkgIC8qIFNwbGl0IChsaW5lLWhlaWdodCB0b3RhbC1oZWlnaHQpIGxpc3QuICAq
LwpAQCAtMzIyMDIsNyArMzIyMzAsNiBAQCBndWlfcHJvZHVjZV9nbHlwaHMgKHN0cnVjdCBpdCAq
aXQpCiAJewogCSAgaWYgKGZvbnQtPnNwYWNlX3dpZHRoID4gMCkKIAkgICAgewotCSAgICAgIGlu
dCB0YWJfd2lkdGggPSBpdC0+dGFiX3dpZHRoICogZm9udC0+c3BhY2Vfd2lkdGg7CiAJICAgICAg
aW50IHggPSBpdC0+Y3VycmVudF94ICsgaXQtPmNvbnRpbnVhdGlvbl9saW5lc193aWR0aDsKIAkg
ICAgICBpbnQgeDAgPSB4OwogCSAgICAgIC8qIEFkanVzdCBmb3IgbGluZSBudW1iZXJzLCBpZiBu
ZWVkZWQuICAgKi8KQEAgLTMyMjE0LDEzICszMjI0MSw4IEBAIGd1aV9wcm9kdWNlX2dseXBocyAo
c3RydWN0IGl0ICppdCkKIAkJICAgIHggKz0gaXQtPnN0cmV0Y2hfYWRqdXN0OwogCQl9CiAKLQkg
ICAgICBpbnQgbmV4dF90YWJfeCA9ICgoMSArIHggKyB0YWJfd2lkdGggLSAxKSAvIHRhYl93aWR0
aCkgKiB0YWJfd2lkdGg7CisJICAgICAgaW50IG5leHRfdGFiX3ggPSB0YWtlX25leHRfdGFiX3N0
b3AgKGl0LCBmb250LT5zcGFjZV93aWR0aCwgeCk7CiAKLQkgICAgICAvKiBJZiB0aGUgZGlzdGFu
Y2UgZnJvbSB0aGUgY3VycmVudCBwb3NpdGlvbiB0byB0aGUgbmV4dCB0YWIKLQkJIHN0b3AgaXMg
bGVzcyB0aGFuIGEgc3BhY2UgY2hhcmFjdGVyIHdpZHRoLCB1c2UgdGhlCi0JCSB0YWIgc3RvcCBh
ZnRlciB0aGF0LiAgKi8KLQkgICAgICBpZiAobmV4dF90YWJfeCAtIHggPCBmb250LT5zcGFjZV93
aWR0aCkKLQkJbmV4dF90YWJfeCArPSB0YWJfd2lkdGg7CiAJICAgICAgaWYgKCFOSUxQIChWZGlz
cGxheV9saW5lX251bWJlcnMpICYmIGl0LT5saW5lX251bWJlcl9wcm9kdWNlZF9wKQogCQl7CiAJ
CSAgbmV4dF90YWJfeCArPSBpdC0+bG51bV9waXhlbF93aWR0aDsK
--=_9104b8db68e8b3b9e0d90f4c10fd313d--




Acknowledgement sent to dannym@HIDDEN:
New bug report received and forwarded. Copy sent to bug-gnu-emacs@HIDDEN. Full text available.
Report forwarded to bug-gnu-emacs@HIDDEN:
bug#74178; Package emacs. Full text available.
Please note: This is a static page, with minimal formatting, updated once a day.
Click here to see this page with the latest information and nicer formatting.
Last modified: Sun, 12 Jan 2025 05:45:02 UTC

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