GNU logs - #53749, boring messages


Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#53749: 29.0.50; [PATCH] Xref backend for TeX buffers
Resent-From: David Fussner <dfussner@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Thu, 03 Feb 2022 15:10:02 +0000
Resent-Message-ID: <handler.53749.B.164390099218000 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: report 53749
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: patch
To: 53749 <at> debbugs.gnu.org
X-Debbugs-Original-To: bug-gnu-emacs@HIDDEN
Received: via spool by submit <at> debbugs.gnu.org id=B.164390099218000
          (code B ref -1); Thu, 03 Feb 2022 15:10:02 +0000
Received: (at submit) by debbugs.gnu.org; 3 Feb 2022 15:09:52 +0000
Received: from localhost ([127.0.0.1]:57397 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1nFdk7-0004gF-99
	for submit <at> debbugs.gnu.org; Thu, 03 Feb 2022 10:09:52 -0500
Received: from lists.gnu.org ([209.51.188.17]:35482)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <dfussner@HIDDEN>) id 1nFdk5-0004g6-4w
 for submit <at> debbugs.gnu.org; Thu, 03 Feb 2022 10:09:50 -0500
Received: from eggs.gnu.org ([209.51.188.92]:45818)
 by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <dfussner@HIDDEN>)
 id 1nFdk2-0000BS-QL
 for bug-gnu-emacs@HIDDEN; Thu, 03 Feb 2022 10:09:47 -0500
Received: from [2607:f8b0:4864:20::830] (port=43865
 helo=mail-qt1-x830.google.com)
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
 (Exim 4.90_1) (envelope-from <dfussner@HIDDEN>)
 id 1nFdjz-0004YM-Po
 for bug-gnu-emacs@HIDDEN; Thu, 03 Feb 2022 10:09:46 -0500
Received: by mail-qt1-x830.google.com with SMTP id x5so2489138qtw.10
 for <bug-gnu-emacs@HIDDEN>; Thu, 03 Feb 2022 07:09:38 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=googlemail.com; s=20210112;
 h=mime-version:from:date:message-id:subject:to;
 bh=FG58FpWqX5dqOaMqBqtIR1QCq9fb4hO9MKBH3GP0bR4=;
 b=NRzGguuk/ZyJH4rJ2/nfMQzmQ6YLYgukEOKO3yB1KxG90hF10tz19FsHIopKvDNzJY
 HnQriD4xkKk0HcEi76vX5Ao47bs/tywfMHAXP6poZgTpOeJ/39GlI1GRLG5U0TNClSuq
 ozw0RG03wLXtS227ruuSE3rBVigU2ffh2946+v+299WJQjGRaMoCmVFlK8mJbZcqO1bP
 HsLbAXw65hcKxcJXvjrIXyMQ/IxjIVXx6y1uaQJ9GI7uw+S10FViEt+BbwImvTURGZSg
 XaR1V4UgPJ0bP0BIIlhCQTOXvoL3g68aip5XAX3sC3suXOfCusDcCEmEg9m3gdX+/8Tv
 GhBQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20210112;
 h=x-gm-message-state:mime-version:from:date:message-id:subject:to;
 bh=FG58FpWqX5dqOaMqBqtIR1QCq9fb4hO9MKBH3GP0bR4=;
 b=8AD2lFppATIHuBTEdX0fojg0mxRRG1yr4Il+yQTx9D9BookCy+U7+Ak9yGbCrcYK06
 G4iZdOB5skfVe8BV8USPv8E9urLv6HFpwgWcaHEcuEjk0GeEKH+nNS5CdGVEbZw3KMmz
 0Mbs71vEi0E6nRE27mLfSWLfZYhjtW15+z71l4SlUlgv8fwQazm0VlNRZWtxV8RYHITT
 Ejp6F41eYeE0EQMco0KkdaT1xKh+Ufe6sVeUbtTHjKI8wUjQaqibg9LXZ01JfaKWs5G4
 HGqBzNUWTJAldAqd/zXEtG2iBeoxppbKIU8KrR5oA4avyRuEVJzoxe3jIRtRZrNmg17m
 GqdQ==
X-Gm-Message-State: AOAM532VugSzcTg6SA4IrTvrrq697Da1jvoim1aU9BISnwO8nkEQHzIq
 C640Q17/1nNkxoWxaUxRbKd2itCNlhgkbiLDcZU5RoUhVm+Z0g==
X-Google-Smtp-Source: ABdhPJx2bRjGnxK/hgJ5j4BExtY9yptBRG/9Aku6LaZ3SPWtg204KzR39l48STM5GpgQTFQ9pUOJs8WLin35Qxsuo2E=
X-Received: by 2002:a05:620a:2a07:: with SMTP id
 o7mr23177669qkp.274.1643900977699; 
 Thu, 03 Feb 2022 07:09:37 -0800 (PST)
MIME-Version: 1.0
From: David Fussner <dfussner@HIDDEN>
Date: Thu, 3 Feb 2022 15:09:22 +0000
Message-ID: <CADF+RtgWCLKQGwgdTNWmgesbcwq8iBxChoN8FqMOg95Ai3CYTA@HIDDEN>
Content-Type: multipart/mixed; boundary="000000000000d28fd905d71e8534"
X-Host-Lookup-Failed: Reverse DNS lookup failed for 2607:f8b0:4864:20::830
 (failed)
Received-SPF: pass client-ip=2607:f8b0:4864:20::830;
 envelope-from=dfussner@HIDDEN; helo=mail-qt1-x830.google.com
X-Spam_score_int: -12
X-Spam_score: -1.3
X-Spam_bar: -
X-Spam_report: (-1.3 / 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, PDS_HP_HELO_NORDNS=0.001, RCVD_IN_DNSWL_NONE=-0.0001,
 RDNS_NONE=0.793, SPF_HELO_NONE=0.001, SPF_PASS=-0.001,
 T_SCC_BODY_TEXT_LINE=-0.01 autolearn=no autolearn_force=no
X-Spam_action: no action
X-Spam-Score: 0.2 (/)
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.3 (--)

--000000000000d28fd905d71e8534
Content-Type: multipart/alternative; boundary="000000000000d28fd805d71e8532"

--000000000000d28fd805d71e8532
Content-Type: text/plain; charset="UTF-8"

I've recently been trying to use xref commands with a tags table in a
TeX repository, and many of the results are sub-optimal.  This is a
known issue -- within living memory there have been at least two
discussions related to it on help-gnu-emacs:

https://lists.gnu.org/archive/html/help-gnu-emacs/2018-06/msg00126.html
https://lists.gnu.org/archive/html/help-gnu-emacs/2021-07/msg00436.html

Neither discussion resulted in any code, at least not that I can find,
and the issues mentioned there remain.  For example,
xref-find-definitions on, say, '\mycommand' returns

No definitions found for: mycommand.

(The absence of the escape char in the search string makes the search
fail, as the tag name in the table will be '\mycommand'.)

Similarly, any xref command on 'my:citekey' will only search by default
for the half of the symbol under point, stopping at the colon.

There are many other behaviors that are suboptimal, as well, so in the
end I wrote a new xref backend for TeX buffers (cloning large portions
of the default etags backend), and wondered whether it might be welcome
in GNU Emacs.

A few remarks:

1. The code should work as it stands both in the AUCTeX and the in-tree
modes.  The AUCTeX hooks I've included in the patch are provisional, as
I would want to discuss with them how they would want to handle it,
should the patch be accepted in some form.

2. Along the way I found some issues with how etags parses TeX files,
issues which affect the usefulness of the xref commands, so I've made
changes in etags.c as well.  When running the test suite for etags the
only diffs occurred in the TeX-related sections of the resulting tags
file, and location information in those sections was good.

3. The patch as it stands enables all the changes by default to give
what I judge to be the best out-of-the-box experience, but wiser heads
may well have other ideas.

4. If it looks like the patch will make it into Emacs in some form, I'm
going to need to assign copyright, so I'd appreciate help with getting
that started.

Thanks,

David.

--000000000000d28fd805d71e8532
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">I&#39;ve recently been trying to use xref commands with a =
tags table in a<br>TeX repository, and many of the results are sub-optimal.=
=C2=A0 This is a<br>known issue -- within living memory there have been at =
least two<br>discussions related to it on help-gnu-emacs:<br><br><a href=3D=
"https://lists.gnu.org/archive/html/help-gnu-emacs/2018-06/msg00126.html">h=
ttps://lists.gnu.org/archive/html/help-gnu-emacs/2018-06/msg00126.html</a><=
br><a href=3D"https://lists.gnu.org/archive/html/help-gnu-emacs/2021-07/msg=
00436.html">https://lists.gnu.org/archive/html/help-gnu-emacs/2021-07/msg00=
436.html</a><br><br>Neither discussion resulted in any code, at least not t=
hat I can find,<br>and the issues mentioned there remain.=C2=A0 For example=
,<br>xref-find-definitions on, say, &#39;\mycommand&#39; returns<br><br>No =
definitions found for: mycommand.<br><br>(The absence of the escape char in=
 the search string makes the search<br>fail, as the tag name in the table w=
ill be &#39;\mycommand&#39;.)<br><br>Similarly, any xref command on &#39;my=
:citekey&#39; will only search by default<br>for the half of the symbol und=
er point, stopping at the colon.<br><br>There are many other behaviors that=
 are suboptimal, as well, so in the<br>end I wrote a new xref backend for T=
eX buffers (cloning large portions<br>of the default etags backend), and wo=
ndered whether it might be welcome<br>in GNU Emacs.<br><br>A few remarks:<b=
r><br>1. The code should work as it stands both in the AUCTeX and the in-tr=
ee<br>modes.=C2=A0 The AUCTeX hooks I&#39;ve included in the patch are prov=
isional, as<br>I would want to discuss with them how they would want to han=
dle it,<br>should the patch be accepted in some form.<br><br>2. Along the w=
ay I found some issues with how etags parses TeX files,<br>issues which aff=
ect the usefulness of the xref commands, so I&#39;ve made<br>changes in eta=
gs.c as well.=C2=A0 When running the test suite for etags the<br>only diffs=
 occurred in the TeX-related sections of the resulting tags<br>file, and lo=
cation information in those sections was good.<br><br>3. The patch as it st=
ands enables all the changes by default to give<br>what I judge to be the b=
est out-of-the-box experience, but wiser heads<br>may well have other ideas=
.<br><br>4. If it looks like the patch will make it into Emacs in some form=
, I&#39;m<br>going to need to assign copyright, so I&#39;d appreciate help =
with getting<br>that started.<br><br>Thanks,<br><br>David.</div>

--000000000000d28fd805d71e8532--

--000000000000d28fd905d71e8534
Content-Type: text/x-patch; charset="US-ASCII"; 
	name="0001-Provide-an-xref-backend-for-TeX-buffers.patch"
Content-Disposition: attachment; 
	filename="0001-Provide-an-xref-backend-for-TeX-buffers.patch"
Content-Transfer-Encoding: base64
Content-ID: <f_kz7439kw0>
X-Attachment-Id: f_kz7439kw0

RnJvbSA5ZjViMjU0N2ZlZjU1OTdmOWM0MWUxYzQ2Zjk5NzQ2MDk1YTA4MzRjIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBEYXZpZCBGdXNzbmVyIDxkZnVzc25lckBnb29nbGVtYWlsLmNv
bT4KRGF0ZTogV2VkLCAyIEZlYiAyMDIyIDEzOjMxOjUxICswMDAwClN1YmplY3Q6IFtQQVRDSF0g
UHJvdmlkZSBhbiB4cmVmIGJhY2tlbmQgZm9yIFRlWCBidWZmZXJzCgoqIGxpYi1zcmMvZXRhZ3Mu
YyAoVGVYX2NvbW1hbmRzKTogSW1wcm92ZSBwYXJzaW5nIG9mIGNvbW1hbmRzIGluIFRlWApidWZm
ZXJzLgooVEVYX2RlZmVudik6IEV4cGFuZCBsaXN0IG9mIGNvbW1hbmRzIHRvIHRhZyBieSBkZWZh
dWx0IGluIFRlWApidWZmZXJzLgooVGVYX2hlbHApOgoqIGRvYy9lbWFjcy9tYWludGFpbmluZy50
ZXhpIChUYWcgU3ludGF4KTogRG9jdW1lbnQgbmV3IHRhZ2dlZApjb21tYW5kcy4KCiogbGlzcC90
ZXh0bW9kZXMvdGV4LW1vZGUuZWwgKHRleC0teHJlZi1iYWNrZW5kKTogTmV3IGZ1bmN0aW9uIHRv
IG5hbWUKeHJlZiBiYWNrZW5kLgoodGV4LWNvbW1vbi1pbml0aWFsaXphdGlvbik6IFNldCB1cCB4
cmVmIGJhY2tlbmQgZm9yIGluLXRyZWUgVGVYCm1vZGVzLgoodGV4LXNldC1hdWN0ZXgteHJlZi1i
YWNrZW5kKTogTmV3IGZ1bmN0aW9uIHRvIGRvIHRoZSBzYW1lIGZvciBBVUNUZVgKbW9kZXMuCih4
cmVmLWJhY2tlbmQtaWRlbnRpZmllci1hdC1wb2ludCkKKHhyZWYtYmFja2VuZC1pZGVudGlmaWVy
LWNvbXBsZXRpb24tdGFibGUpCih4cmVmLWJhY2tlbmQtaWRlbnRpZmllci1jb21wbGV0aW9uLWln
bm9yZS1jYXNlKQooeHJlZi1iYWNrZW5kLWRlZmluaXRpb25zLCB4cmVmLWJhY2tlbmQtYXByb3Bv
cykKKHhyZWYtYmFja2VuZC1yZWZlcmVuY2VzKTogTmV3IFRlWCBpbXBsZW1lbnRhdGlvbnMgb2Yg
dGhlIGdlbmVyaWMgeHJlZgpiYWNrZW5kIGZ1bmN0aW9ucy4KKHRleC14cmVmLWFwcm9wb3MtcmVn
ZXhwLCB0ZXgteHJlZi1yZWZlcmVuY2VzLWluLWRpcmVjdG9yeSk6IE5ldwpoZWxwZXIgZnVuY3Rp
b25zIGZvciBiYWNrZW5kLgoodGV4LXRoaW5nYXRwdC1tb2Rlcy1saXN0KTogTmV3IHZhci4KKHRl
eC10aGluZ2F0cHQtaXMtdGV4c3ltYm9sKTogTmV3IGRlZmN1c3RvbS4KKHRleC1zZXQtdGhpbmdh
dHB0LXN5bWJvbCk6IE5ldyBjb21tYW5kIHRvIGFwcGx5IHZhbHVlIG9mIHByZXZpb3VzCmJ1ZmZl
ci1sb2NhbGx5LgoodGV4LS1zeW1ib2wtb3ItdGV4c3ltYm9sKTogTmV3IGhlbHBlciBmdW5jdGlv
biBmb3IgcHJldmlvdXMuCih0ZXgtdGhpbmdhdHB0LS1iZWdpbm5pbmctb2YtdGV4c3ltYm9sKQoo
dGV4LXRoaW5nYXRwdC0tZW5kLW9mLXRleHN5bWJvbCk6IE5ldyBmdW5jdGlvbnMgdG8gZGVmaW5l
IHRleHN5bWJvbAoidGhpbmciIGZvciAndGhpbmctYXQtcG9pbnQnLgoodGV4LXRoaW5nYXRwdC1z
eW50YXgtdGFibGUsIHRleC1lc2NhcGUtY2hhcik6IE5ldyB2YXJzIHRvIGRvIHRoZQpzYW1lLgoo
dGV4LS10aGluZy1hdC1wb2ludCk6IE5ldyBmdW5jdGlvbiB0byByZXR1cm4gdGV4c3ltYm9sCid0
aGluZy1hdC1wb2ludCcuCih0ZXgtdGhpbmdhdHB0LWluY2x1ZGUtZXNjYXBlLCB0ZXgteHJlZi10
cnktYWx0ZXJuYXRlLWZvcm1zKTogTmV3CmRlZmN1c3RvbXMgdG8gcmVmaW5lIGJlaGF2aW9yIG9m
IHRoZSB4cmVmIGJhY2tlbmQuCih0ZXgtLWluY2x1ZGUtZXNjYXBlLXApOiBOZXcgZnVuY3Rpb24g
dG8gZG8gdGhlIHNhbWUuCi0tLQogZG9jL2VtYWNzL21haW50YWluaW5nLnRleGkgfCAgIDkgKy0K
IGxpYi1zcmMvZXRhZ3MuYyAgICAgICAgICAgIHwgIDgzICsrKysrKysrLS0KIGxpc3AvdGV4dG1v
ZGVzL3RleC1tb2RlLmVsIHwgMzMxICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysKIDMgZmlsZXMgY2hhbmdlZCwgNDExIGluc2VydGlvbnMoKyksIDEyIGRlbGV0aW9ucygtKQoK
ZGlmZiAtLWdpdCBhL2RvYy9lbWFjcy9tYWludGFpbmluZy50ZXhpIGIvZG9jL2VtYWNzL21haW50
YWluaW5nLnRleGkKaW5kZXggZWRjYzYwNzVmNy4uMWRlNDM1MjQ2ZSAxMDA2NDQKLS0tIGEvZG9j
L2VtYWNzL21haW50YWluaW5nLnRleGkKKysrIGIvZG9jL2VtYWNzL21haW50YWluaW5nLnRleGkK
QEAgLTI1NjUsOCArMjU2NSwxMyBAQCBUYWcgU3ludGF4CiBAY29kZXtcc2VjdGlvbn0sIEBjb2Rl
e1xzdWJzZWN0aW9ufSwgQGNvZGV7XHN1YnN1YnNlY3Rpb259LAogQGNvZGV7XGVxbm99LCBAY29k
ZXtcbGFiZWx9LCBAY29kZXtccmVmfSwgQGNvZGV7XGNpdGV9LAogQGNvZGV7XGJpYml0ZW19LCBA
Y29kZXtccGFydH0sIEBjb2Rle1xhcHBlbmRpeH0sIEBjb2Rle1xlbnRyeX0sCi1AY29kZXtcaW5k
ZXh9LCBAY29kZXtcZGVmfSwgQGNvZGV7XG5ld2NvbW1hbmR9LCBAY29kZXtccmVuZXdjb21tYW5k
fSwKLUBjb2Rle1xuZXdlbnZpcm9ubWVudH0gYW5kIEBjb2Rle1xyZW5ld2Vudmlyb25tZW50fSBh
cmUgdGFncy4KK0Bjb2Rle1xpbmRleH0sIEBjb2Rle1xkZWZ9LCBAY29kZXtcZWRlZn0sIEBjb2Rl
e1xnZGVmfSwgQGNvZGV7XHhkZWZ9LAorQGNvZGV7XG5ld2NvbW1hbmR9LCBAY29kZXtccmVuZXdj
b21tYW5kfSwgQGNvZGV7XG5ld2Vudmlyb25tZW50fSwKK0Bjb2Rle1xyZW5ld2Vudmlyb25tZW50
fSwgQGNvZGV7XERlY2xhcmVSb2J1c3RDb21tYW5kfSwKK0Bjb2Rle1xuZXdyb2J1c3RjbWR9LCBA
Y29kZXtccmVuZXdyb2J1c3RjbWR9LCBAY29kZXtcbGV0fSwKK0Bjb2Rle1xjc2RlZn0sIEBjb2Rl
e1xjc2VkZWZ9LCBAY29kZXtcY3NnZGVmfSwgQGNvZGV7XGNzeGRlZn0sCitAY29kZXtcY3NsZXRj
c30sIGFuZCBAY29kZXtcY3NsZXR9IGFyZSB0YWdzLiAgU28gdG9vIGFyZSB0aGUgYXJndW1lbnRz
CitvZiBhbnkgc3RhcnJlZCB2YXJpYW50cyBvZiB0aGVzZSBjb21tYW5kcywgd2hlbiBzdWNoIHZh
cmlhbnRzIGV4aXN0LgogCiBPdGhlciBjb21tYW5kcyBjYW4gbWFrZSB0YWdzIGFzIHdlbGwsIGlm
IHlvdSBzcGVjaWZ5IHRoZW0gaW4gdGhlCiBlbnZpcm9ubWVudCB2YXJpYWJsZSBAZW52e1RFWFRB
R1N9IGJlZm9yZSBpbnZva2luZyBAY29tbWFuZHtldGFnc30uICBUaGUKZGlmZiAtLWdpdCBhL2xp
Yi1zcmMvZXRhZ3MuYyBiL2xpYi1zcmMvZXRhZ3MuYwppbmRleCBhYTViYzg4MzlkLi5lNTI2OWFh
NDU2IDEwMDY0NAotLS0gYS9saWItc3JjL2V0YWdzLmMKKysrIGIvbGliLXNyYy9ldGFncy5jCkBA
IC03OTMsOCArNzkzLDEyIEBAICNkZWZpbmUgU1RESU4gMHgxMDAxCQkvKiByZXR1cm5lZCBieSBn
ZXRvcHRfbG9uZyBvbiAtLXBhcnNlLXN0ZGluICovCiAiSW4gTGFUZVggdGV4dCwgdGhlIGFyZ3Vt
ZW50IG9mIGFueSBvZiB0aGUgY29tbWFuZHMgJ1xcY2hhcHRlcicsXG5cCiAnXFxzZWN0aW9uJywg
J1xcc3Vic2VjdGlvbicsICdcXHN1YnN1YnNlY3Rpb24nLCAnXFxlcW5vJywgJ1xcbGFiZWwnLFxu
XAogJ1xccmVmJywgJ1xcY2l0ZScsICdcXGJpYml0ZW0nLCAnXFxwYXJ0JywgJ1xcYXBwZW5kaXgn
LCAnXFxlbnRyeScsXG5cCi0nXFxpbmRleCcsICdcXGRlZicsICdcXG5ld2NvbW1hbmQnLCAnXFxy
ZW5ld2NvbW1hbmQnLFxuXAotJ1xcbmV3ZW52aXJvbm1lbnQnIG9yICdcXHJlbmV3ZW52aXJvbm1l
bnQnIGlzIGEgdGFnLlxuXAorJ1xcaW5kZXgnLCAnXFxkZWYnLCAnXFxlZGVmJywgJ1xcZ2RlZics
ICdcXHhkZWYnLCAnXFxuZXdjb21tYW5kJyxcblwKKydcXHJlbmV3Y29tbWFuZCcsICdcXG5ld2Vu
dmlyb25tZW50JywgJ1xccmVuZXdlbnZpcm9ubWVudCcsXG5cCisnXFxEZWNsYXJlUm9idXN0Q29t
bWFuZCwgJ1xcbmV3cm9idXN0Y21kJywgJ1xccmVuZXdyb2J1c3RjbWQnLFxuXAorJ1xcbGV0Jywg
J1xcY3NkZWYnLCAnXFxjc2VkZWYnLCAnXFxjc2dkZWYnLCAnXFxjc3hkZWYnLCAnXFxjc2xldGNz
JyxcblwKK29yICdcXGNzbGV0JyBpcyBhIHRhZy4gIFNvIGlzIHRoZSBhcmd1bWVudCBvZiBhbnkg
b2YgdGhlIHN0YXJyZWRcblwKK3ZhcmlhbnRzIG9mIHRoZXNlIGNvbW1hbmRzLCB3aGVuIGEgc3Rh
cnJlZCB2YXJpYW50IGV4aXN0cy5cblwKIFxuXAogT3RoZXIgY29tbWFuZHMgY2FuIGJlIHNwZWNp
ZmllZCBieSBzZXR0aW5nIHRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZVxuXAogJ1RFWFRBR1MnIHRv
IGEgY29sb24tc2VwYXJhdGVkIGxpc3QgbGlrZSwgZm9yIGV4YW1wbGUsXG5cCkBAIC01NjczLDEx
ICs1Njc3LDE5IEBAIFNjaGVtZV9mdW5jdGlvbnMgKEZJTEUgKmluZikKIHN0YXRpYyBsaW5lYnVm
ZmVyICpURVhfdG9rdGFiID0gTlVMTDsgLyogVGFibGUgd2l0aCB0YWcgdG9rZW5zICovCiAKIC8q
IERlZmF1bHQgc2V0IG9mIGNvbnRyb2wgc2VxdWVuY2VzIHRvIHB1dCBpbnRvIFRFWF90b2t0YWIu
Ci0gICBUaGUgdmFsdWUgb2YgZW52aXJvbm1lbnQgdmFyIFRFWFRBR1MgaXMgcHJlcGVuZGVkIHRv
IHRoaXMuICAqLworICAgVGhlIHZhbHVlIG9mIGVudmlyb25tZW50IHZhciBURVhUQUdTIGlzIHBy
ZXBlbmRlZCB0byB0aGlzLgorICAgKDIwMjEpIEFkZCB2YXJpYW50cyBvZiAnXGRlZicsIHNvbWUg
YWRkaXRpb25hbCBMYVRlWCBjb21tYW5kcywKKyAgIGFuZCBjb21tb24gdmFyaWFudHMgZnJvbSB0
aGUgJ2V0b29sYm94JyBwYWNrYWdlLiAgQWxzbywgYWRkCisgICBzdGFycmVkIHZhcmlhbnRzIG9m
IHRoZSBjb21tYW5kcyBpZiB0aGV5IGV4aXN0LiAgU3RhcnJlZAorICAgdmFyaWFudHMgbmVlZCB0
byBhcHBlYXIgYmVmb3JlIHRoZWlyIHVuc3RhcnJlZCB2ZXJzaW9ucy4gKi8KIHN0YXRpYyBjb25z
dCBjaGFyICpURVhfZGVmZW52ID0gIlwKLTpjaGFwdGVyOnNlY3Rpb246c3Vic2VjdGlvbjpzdWJz
dWJzZWN0aW9uOmVxbm86bGFiZWw6cmVmOmNpdGU6YmliaXRlbVwKLTpwYXJ0OmFwcGVuZGl4OmVu
dHJ5OmluZGV4OmRlZlwKLTpuZXdjb21tYW5kOnJlbmV3Y29tbWFuZDpuZXdlbnZpcm9ubWVudDpy
ZW5ld2Vudmlyb25tZW50IjsKKzpjaGFwdGVyKjpzZWN0aW9uKjpzdWJzZWN0aW9uKjpzdWJzdWJz
ZWN0aW9uKjpwYXJ0KjpsYWJlbDpyZWZcCis6Y2hhcHRlcjpzZWN0aW9uOnN1YnNlY3Rpb246c3Vi
c3Vic2VjdGlvbjplcW5vOmNpdGU6YmliaXRlbVwKKzpwYXJ0OmFwcGVuZGl4OmVudHJ5OmluZGV4
OmRlZjplZGVmOmdkZWY6eGRlZjpuZXdjb21tYW5kKjpuZXdjb21tYW5kXAorOnJlbmV3Y29tbWFu
ZCo6cmVuZXdjb21tYW5kOm5ld2Vudmlyb25tZW50KjpuZXdlbnZpcm9ubWVudFwKKzpyZW5ld2Vu
dmlyb25tZW50KjpyZW5ld2Vudmlyb25tZW50OkRlY2xhcmVSb2J1c3RDb21tYW5kKlwKKzpEZWNs
YXJlUm9idXN0Q29tbWFuZDpyZW5ld3JvYnVzdGNtZCo6cmVuZXdyb2J1c3RjbWQ6bmV3cm9idXN0
Y21kKlwKKzpuZXdyb2J1c3RjbWQ6bGV0OmNzZGVmOmNzZWRlZjpjc2dkZWY6Y3N4ZGVmOmNzbGV0
Y3M6Y3NsZXQiOwogCiBzdGF0aWMgdm9pZCBURVhfZGVjb2RlX2VudiAoY29uc3QgY2hhciAqLCBj
b25zdCBjaGFyICopOwogCkBAIC01NzM2LDE5ICs1NzQ4LDcwIEBAIFRlWF9jb21tYW5kcyAoRklM
RSAqaW5mKQogCSAgICAgIHsKIAkJY2hhciAqcDsKIAkJcHRyZGlmZl90IG5hbWVsZW4sIGxpbmVs
ZW47Ci0JCWJvb2wgb3BncnAgPSBmYWxzZTsKKwkJYm9vbCBvcGdycCA9IGZhbHNlLCBvbmVfZXNj
ID0gZmFsc2U7CiAKIAkJY3AgPSBza2lwX3NwYWNlcyAoY3AgKyBrZXktPmxlbik7CisJCS8qIFNr
aXAgdGhlIG9wdGlvbmFsIGFyZ3VtZW50cyB0byBjb21tYW5kcyBpbiB0aGUgdGFncyBsaXN0IHNv
CisJCSAgIHRoYXQgdGhlc2UgYXJndW1lbnRzIGRvbid0IGVuZCB1cCBhcyB0aGUgbmFtZSBvZiB0
aGUgdGFnLgorCQkgICBUaGUgbmFtZSB3aWxsIGluc3RlYWQgY29tZSBmcm9tIHRoZSBhcmd1bWVu
dCBpbiBjdXJseSBicmFjZXMKKwkJICAgdGhhdCBmb2xsb3dzIHRoZSBvcHRpb25hbCBvbmVzLiAg
Ki8KKwkJaWYgKCpjcCA9PSAnWycgfHwgKmNwID09ICcoJykKKwkJICB7CisJCSAgICB3aGlsZSAo
KmNwICE9IFRFWF9vcGdycCAmJiAqY3AgIT0gJ1wwJykKKwkJICAgICAgY3ArKzsKKwkJICB9CiAJ
CWlmICgqY3AgPT0gVEVYX29wZ3JwKQogCQkgIHsKIAkJICAgIG9wZ3JwID0gdHJ1ZTsKIAkJICAg
IGNwKys7CiAJCSAgfQorCQkvKiBKdW1waW5nIHRvIGEgVGVYIGNvbW1hbmQgZGVmaW5pdGlvbiBk
b2Vzbid0IHdvcmsgaW4gYXQKKwkJICAgbGVhc3Qgc29tZSBvZiB0aGUgZWRpdG9ycyB0aGF0IHVz
ZSBjdGFncy4gIENoYW5nZXMgaW4KKwkJICAgdGV4LW1vZGUuZWwgaW4gR05VIEVtYWNzIGFkZHJl
c3MgdGhlc2UgaXNzdWVzIGZvciBldGFnczsKKwkJICAgdW5jb21tZW50IHRoZSBmb2xsb3dpbmcg
Zml2ZSBsaW5lcyB0byBnZXQgYSBxdWljayAmIGRpcnR5CisJCSAgIGltcHJvdmVtZW50IGluIHBy
b2dyYW1zIHVzaW5nIGN0YWdzIGFzIHdlbGwsIHRob3VnaCBzb21lCisJCSAgIHBhcnRzIG9mIHRo
ZSBiZWhhdmlvciB3aWxsIHJlbWFpbiBzdWJvcHRpbWFsLiAgVGhlCisJCSAgIHVuZG9jdW1lbnRl
ZCBjdGFncyBvcHRpb24gJy0tbm8tZHVwbGljYXRlcycgbWF5IGhlbHAuICAqLworCisJCS8qIGlm
IChDVEFHUyAmJiAqY3AgPT0gVEVYX2VzYykgKi8KKwkJLyogICB7ICovCisJCS8qICAgICBjcCsr
OyAqLworCQkvKiAgICAgb25lX2VzYyA9IHRydWU7ICovCisJCS8qICAgfSAqLworCisJCS8qIEFk
ZCBvcHRpb25hbCBhcmd1bWVudCBicmFja2V0cyAnKCcgYW5kICdbJyBzbyB0aGF0IHRoZXNlCisJ
CSAgIGFyZ3VtZW50cyBkb24ndCBhcHBlYXIgaW4gdGFnIG5hbWVzLiAgQWxzbyBhZGQgJz0nIGFz
IGl0J3MKKwkJICAgcmVsYXRpb25hbCBpbiB0aGUgdmFzdCBtYWpvcml0eSBvZiBjYXNlcy4gICov
CiAJCWZvciAocCA9IGNwOwotCQkgICAgICghY19pc3NwYWNlICgqcCkgJiYgKnAgIT0gJyMnICYm
Ci0JCSAgICAgICpwICE9IFRFWF9vcGdycCAmJiAqcCAhPSBURVhfY2xncnApOworCQkgICAgICgh
Y19pc3NwYWNlICgqcCkgJiYgKnAgIT0gJyMnICYmICpwICE9ICc9JyAmJgorCQkgICAgICAqcCAh
PSAnWycgJiYgKnAgIT0gJygnICYmICpwICE9IFRFWF9vcGdycCAmJgorCQkgICAgICAqcCAhPSBU
RVhfY2xncnApOwogCQkgICAgIHArKykKLQkJICBjb250aW51ZTsKKwkJICAvKiBBbGxvdyBvbmx5
IG9uZSBlc2NhcGUgY2hhciBpbiBhIHRhZyBuYW1lLCB3aGljaAorCQkgICAgIChwcmltYXJpbHkp
IGVuYWJsZXMgdGFnZ2luZyBhIFRlWCBjb21tYW5kJ3MgZGlmZmVyZW50LAorCQkgICAgIHBvc3Np
Ymx5IHRlbXBvcmFyeSwgJ1xsZXQnIGJpbmRpbmdzLiAgKi8KKwkJICBpZiAoKnAgPT0gVEVYX2Vz
YykKKwkJICAgIHsKKwkJICAgICAgaWYgKCFvbmVfZXNjKQorCQkJeworCQkJICBvbmVfZXNjID0g
dHJ1ZTsKKwkJCSAgY29udGludWU7CisJCQl9CisJCSAgICAgIGVsc2UKKwkJCWJyZWFrOworCQkg
ICAgfQorCQkgIGVsc2UKKwkJICAgIGNvbnRpbnVlOworCQkvKiBSZS1zY2FuIHRvIGNhdGNoICho
aWdobHkgdW51c3VhbCkgY2FzZXMgd2hlcmUgYQorCQkgICBjb21tYW5kIG5hbWUgaXMgb2YgdGhl
IGZvcm0gJ1woJy4gICovCisJCWlmICgoKnAgPT0gJygnIHx8ICpwID09ICdbJykgJiYgKHAgLSBj
cCkgPCAyKQorCQkgIHsKKwkJICAgIGZvciAocCA9IGNwOworCQkJICghY19pc3NwYWNlICgqcCkg
JiYgKnAgIT0gJyMnICYmCisJCQkgICpwICE9IFRFWF9vcGdycCAmJiAqcCAhPSBURVhfY2xncnAp
OworCQkJIHArKykKKwkJICAgICAgY29udGludWU7CisJCSAgfQogCQluYW1lbGVuID0gcCAtIGNw
OwogCQlsaW5lbGVuID0gbGIubGVuOwogCQlpZiAoIW9wZ3JwIHx8ICpwID09IFRFWF9jbGdycCkK
ZGlmZiAtLWdpdCBhL2xpc3AvdGV4dG1vZGVzL3RleC1tb2RlLmVsIGIvbGlzcC90ZXh0bW9kZXMv
dGV4LW1vZGUuZWwKaW5kZXggYWI5NDAzNmQwMS4uM2E3MTc4YzA1NSAxMDA2NDQKLS0tIGEvbGlz
cC90ZXh0bW9kZXMvdGV4LW1vZGUuZWwKKysrIGIvbGlzcC90ZXh0bW9kZXMvdGV4LW1vZGUuZWwK
QEAgLTEyOTEsNiArMTI5MSw5IEBAIHRleC1jb21tb24taW5pdGlhbGl6YXRpb24KIAkgICAgICAo
c3ludGF4LXByb3BlcnRpemUtcnVsZXMgbGF0ZXgtc3ludGF4LXByb3BlcnRpemUtcnVsZXMpKQog
ICA7OyBUQUJzIGluIHZlcmJhdGltIGVudmlyb25tZW50cyBkb24ndCBkbyB3aGF0IHlvdSB0aGlu
ay4KICAgKHNldHEtbG9jYWwgaW5kZW50LXRhYnMtbW9kZSBuaWwpCisgIDs7IFNldCB1cCB4cmVm
IGJhY2tlbmQgaW4gVGVYIGJ1ZmZlcnMuCisgIChhZGQtaG9vayAneHJlZi1iYWNrZW5kLWZ1bmN0
aW9ucyAjJ3RleC0teHJlZi1iYWNrZW5kIG5pbCB0KQorICAodGV4LXNldC10aGluZ2F0cHQtc3lt
Ym9sKQogICA7OyBPdGhlciB2YXJzIHRoYXQgc2hvdWxkIGJlIGJ1ZmZlci1sb2NhbC4KICAgKG1h
a2UtbG9jYWwtdmFyaWFibGUgJ3RleC1jb21tYW5kKQogICAobWFrZS1sb2NhbC12YXJpYWJsZSAn
dGV4LXN0YXJ0LW9mLWhlYWRlcikKQEAgLTM2NTksNiArMzY2MiwzMzQgQEAgdGV4LWNoa3RleAog
ICAgICAgKHByb2Nlc3Mtc2VuZC1yZWdpb24gdGV4LWNoa3RleC0tcHJvY2VzcyAocG9pbnQtbWlu
KSAocG9pbnQtbWF4KSkKICAgICAgIChwcm9jZXNzLXNlbmQtZW9mIHRleC1jaGt0ZXgtLXByb2Nl
c3MpKSkpCiAKKwwKKzs7OyBYcmVmIGJhY2tlbmQKKworOzsgSGVyZSB3ZSBkZWZpbmUgYW4geHJl
ZiBiYWNrZW5kIGZvciBUZVgsIGFkYXB0aW5nIHRoZSBkZWZhdWx0IGV0YWdzCis7OyBiYWNrZW5k
IHNvIHRoYXQgdGhlIG1haW4geHJlZiB1c2VyIGNvbW1hbmRzIChpbmNsdWRpbmcKKzs7IGB4cmVm
LWZpbmQtZGVmaW5pdGlvbnMnLCBgeHJlZi1maW5kLWFwcm9wb3MnLCBhbmQKKzs7IGB4cmVmLWZp
bmQtcmVmZXJlbmNlcycgW29uIE0tLiwgQy1NLS4sIGFuZCBNLT8sIHJlc3BlY3RpdmVseV0pIHdv
cmsKKzs7IGluIFRlWCBidWZmZXJzLiAgVGhpcyBtb3N0bHkgaW52b2x2ZXMgZGVmaW5pbmcgYSBu
ZXcgVEhJTkcgZm9yCis7OyBgdGhpbmctYXQtcG9pbnQnICh0ZXhzeW1ib2wpLCB0aGVuIHN1YnN0
aXR1dGluZyB0aGF0IFRISU5HIGZvcgorOzsgYHN5bWJvbCcgaW4gVGVYIGJ1ZmZlcnMsIGF0IGxl
YXN0IGJ5IChjb25maWd1cmFibGUpIGRlZmF1bHQuICBUaGUKKzs7IFRlWCBlc2NhcGUgY2hhcmFj
dGVyIHdpbGwgYnkgZGVmYXVsdCBhcHBlYXIgaW4gdGhlIHJlc3VsdGluZyBzdHJpbmcKKzs7IG9u
bHkgd2hlbiB0aGUgeHJlZiBjb21tYW5kIHVzZXMgc3RyaW5nIHNlYXJjaCBhbmQgbm90IHJlZ2V4
cAorOzsgc2VhcmNoLCB0aG91Z2ggdGhpcyB0b28gaXMgY29uZmlndXJhYmxlLiAgVGhlIG5ldyBU
SElORyB0eXBlIGFsc28KKzs7IGltcHJvdmVzIHRoZSBhY2N1cmFjeSBvZiBvdGhlciBjb21tYW5k
cyB0aGF0IHVzZSBgdGhpbmctYXQtcG9pbnQnCis7OyBpbiBUZVggYnVmZmVycywgbGlrZSBgcHJv
amVjdC1maW5kLXJlZ2V4cCcuICBUT0RPOiBJbmNsdWRlIGNvbW1hbmRzCis7OyB0aGF0IGNhbGwg
YGJvdW5kcy1vZi10aGluZy1hdC1wb2ludCcgKGZvciBleGFtcGxlCis7OyBgaXNlYXJjaC1mb3J3
YXJkLXRoaW5nLWF0LXBvaW50JykgaW4gdGhlIG1lY2hhbmlzbS4KKworKGRlZnZhciB0ZXgtdGhp
bmdhdHB0LW1vZGVzLWxpc3QKKyAgJyh0ZXgtbW9kZSBkb2N0ZXgtbW9kZSBsYXRleC1tb2RlIHBs
YWluLXRleC1tb2RlIHNsaXRleC1tb2RlKQorICAiTWFqb3IgbW9kZXMgd2hlcmUgYHRoaW5nLWF0
LXBvaW50JyBtYXkgdXNlIHRoZSBgdGV4c3ltYm9sJyB0eXBlLgorCitXaGVuIGEgYnVmZmVyJ3Mg
YG1ham9yLW1vZGUnIGlzIGluIHRoaXMgbGlzdCwgYW5kIHdoZW4KK2B0ZXgtdGhpbmdhdHB0LWlz
LXRleHN5bWJvbCcgaXMgdCAodGhlIGRlZmF1bHQpLCBhbnkgY29tbWFuZCBpbgordGhhdCBidWZm
ZXIgdGhhdCBjYWxscyBgdGhpbmctYXQtcG9pbnQnIHdpdGggYSBgc3ltYm9sJyBhcmd1bWVudAor
YWN0dWFsbHkgdXNlcyB0aGUgYHRleHN5bWJvbCcgYXJndW1lbnQsIGluc3RlYWQuIikKKworKGRl
ZmN1c3RvbSB0ZXgtdGhpbmdhdHB0LWlzLXRleHN5bWJvbCB0CisgICJXaGVuIG5vbi1uaWwgcmVw
bGFjZSBgc3ltYm9sJyBieSBgdGV4c3ltYm9sJyBmb3IgYHRoaW5nLWF0LXBvaW50Jy4KKworVGhp
cyBhcHBsaWVzIG9ubHkgdG8gVGVYIGJ1ZmZlcnMuICBUaGUgYHRleHN5bWJvbCcgXCJ0aGluZ1wi
Cittb2RpZmllcyB0aGUgc3RhbmRhcmQgYHN5bWJvbCcgZm9yIHVzZSBpbiBzdWNoIGJ1ZmZlcnMu
CisKK1doZW4gbmlsLCByZXN0b3JlIHRoZSBkZWZhdWx0IGJlaGF2aW9yIG9mIGB0aGluZy1hdC1w
b2ludCcgaW4gVGVYCitidWZmZXJzLgorCitDdXN0b20gd2lsbCBhdXRvbWF0aWNhbGx5IGFwcGx5
IGNoYW5nZXMgaW4gYWxsIFRlWCBidWZmZXJzLCBidXQKK2lmIHlvdSBzZXQgdGhlIHZhcmlhYmxl
IG91dHNpZGUgb2YgQ3VzdG9tIGl0IHdvbid0IHRha2UgZWZmZWN0Cit1bnRpbCB5b3UgYXBwbHkg
aXQgd2l0aCBcXFt0ZXgtc2V0LXRoaW5nYXRwdC1zeW1ib2xdLiAgV2l0aG91dCBhCitwcmVmaXgg
YXJndW1lbnQgKFxcW3VuaXZlcnNhbC1hcmd1bWVudF0pIHRoaXMgYXBwbGllcyBvbmx5IHRvIHRo
ZQorY3VycmVudCBidWZmZXIsIGJ1dCB3aXRoIG9uZSBpdCBhcHBsaWVzIHRvIGFsbCBUZVggYnVm
ZmVycyBpbgorYGJ1ZmZlci1saXN0Jy4gIChUZVggYnVmZmVycyBhcmUgdGhvc2Ugd2hvc2UgYG1h
am9yLW1vZGUnIGlzIGEKK21lbWJlciBvZiBgdGV4LXRoaW5nYXRwdC1tb2Rlcy1saXN0Jy4pIgor
ICA6dHlwZSAnYm9vbGVhbgorICA6Z3JvdXAgJ3RleC1maWxlCisgIDppbml0aWFsaXplICMnY3Vz
dG9tLWluaXRpYWxpemUtZGVmYXVsdAorICA6c2V0IChsYW1iZGEgKHZhciB2YWwpCisgICAgICAg
ICAoc2V0LWRlZmF1bHQgdmFyIHZhbCkKKyAgICAgICAgICh0ZXgtc2V0LXRoaW5nYXRwdC1zeW1i
b2wgdCkpCisgIDp2ZXJzaW9uICIyOS4xIikKKworKGRlZmN1c3RvbSB0ZXgtdGhpbmdhdHB0LWlu
Y2x1ZGUtZXNjYXBlICcoeHJlZi1maW5kLWRlZmluaXRpb25zCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB4cmVmLWZpbmQtZGVmaW5pdGlvbnMtb3RoZXItd2luZG93
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4cmVmLWZpbmQtZGVm
aW5pdGlvbnMtb3RoZXItZnJhbWUpCisgICJJZiBub24tbmlsLCBpbmNsdWRlIGB0ZXgtZXNjYXBl
LWNoYXInIGluIGB0aGluZy1hdC1wb2ludCcuCisKK1RoaXMgdmFyaWFibGUgb25seSB0YWtlcyBl
ZmZlY3Qgd2hlbiBgdGV4LXRoaW5nYXRwdC1pcy10ZXhzeW1ib2wnCitpcyB0ICh0aGUgZGVmYXVs
dCksIGNoYW5naW5nIHRoZSBhcmd1bWVudCBwYXNzZWQgdG8KK2B0aGluZy1hdC1wb2ludCcgZnJv
bSBgc3ltYm9sJyB0byBgdGV4c3ltYm9sJy4gIFdoZW4gdGhhdCBpcyB0aGUKK2Nhc2UsIHRoZSB2
YWx1ZXMgb2YgdGhpcyB2YXJpYWJsZSBhY3QgYXMgZm9sbG93czoKKworV2hlbiB0LCBgdGhpbmct
YXQtcG9pbnQnIHdpbGwgYWx3YXlzIGluY2x1ZGUgYQorYHRleC1lc2NhcGUtY2hhcicgKHVzdWFs
bHkgYFxcJyksIHNob3VsZCBvbmUgYmUgcHJlc2VudCwgaW4gdGhlCitzdHJpbmcgaXQgcmV0dXJu
cyBpbiBUZVggYnVmZmVycy4KKworV2hlbiBuaWwsIGB0aGluZy1hdC1wb2ludCcgd2lsbCBuZXZl
ciBpbmNsdWRlIHRoZQorYHRleC1lc2NhcGUtY2hhcicgaW4gdGhlIHN0cmluZyBpdCByZXR1cm5z
IGluIFRlWCBidWZmZXJzLgorCitPdGhlcndpc2UsIGl0J3MgYSBsaXN0IG9mIGNvbW1hbmRzIGZv
ciB3aGljaCBgdGhpbmctYXQtcG9pbnQnCit3aWxsIGFsd2F5cyBpbmNsdWRlIHRoZSBgdGV4LWVz
Y2FwZS1jaGFyJyBpbiB0aGUgc3RyaW5nIGl0CityZXR1cm5zLiAgVGhlIHRocmVlIHhyZWYgY29t
bWFuZHMgbGlzdGVkIGJ5IGRlZmF1bHQgbWF5IGNlYXNlIHRvCitmdW5jdGlvbiBwcm9wZXJseSBp
biBUZVggYnVmZmVycyBpZiBzZXQgdG8gbmlsLCBidXQgc2V0dGluZworYHRleC14cmVmLXRyeS1h
bHRlcm5hdGUtZm9ybXMnIHRvIHQgd2lsbCByZWN0aWZ5IHRoYXQuIgorICA6dHlwZSAnKGNob2lj
ZSAoY29uc3QgOnRhZyAiQWx3YXlzIGluY2x1ZGUgdGV4LWVzY2FwZS1jaGFyIiB0KQorICAgICAg
ICAgICAgICAgICAoY29uc3QgOnRhZyAiTmV2ZXIgaW5jbHVkZSB0ZXgtZXNjYXBlLWNoYXIiIG5p
bCkKKyAgICAgICAgICAgICAgICAgKHNldCA6dGFnICJJbmNsdWRlIHRleC1lc2NhcGUtY2hhciBm
b3IgdGhlc2UgY29tbWFuZHMiCisJCSAgICAgIChyZXBlYXQgOmlubGluZSB0IChzeW1ib2wgOnRh
ZyAiY29tbWFuZCIpKSkpCisgIDpncm91cCAndGV4LWZpbGUKKyAgOnZlcnNpb24gIjI5LjEiKQor
CisoZGVmY3VzdG9tIHRleC14cmVmLXRyeS1hbHRlcm5hdGUtZm9ybXMgbmlsCisgICJOb24tbmls
IG1lYW5zIGZpbmQgZGVmaW5pdGlvbnMgb2YgYWx0ZXJuYXRlIGZvcm1zIG9mIGNvbW1hbmRzLgor
CitJZiBgeHJlZi1maW5kLWRlZmluaXRpb25zJyByZXR1cm5zIG5pbCBmb3IgdGhlIGN1cnJlbnQg
Zm9ybSBvZgordGhlIFRlWCBjb21tYW5kIG5hbWUsIHRyeSB0aGUgYWx0ZXJuYXRpdmUgZm9ybSwg
d2hpY2ggd2lsbCBoYXZlCit0aGUgYHRleC1lc2NhcGUtY2hhcicgKHVzdWFsbHkgYFxcJykgZWl0
aGVyIHN0cmlwcGVkIGZyb20gb3IKK3ByZXBlbmRlZCB0byB0aGUgY3VycmVudCBmb3JtLCBkZXBl
bmRpbmcgb24gd2hldGhlciBvciBub3QgdGhlCitjdXJyZW50IGZvcm0gc3RhcnRzIHdpdGggdGhh
dCBjaGFyYWN0ZXIuCisKK1RoaXMgbWF5IGJlIHBhcnRpY3VsYXJseSB1c2VmdWwgaW4gZG9jdW1l
bnRzIHRoYXQgbWl4IGBcXGRlZicgYW5kCitgXFxjc2RlZicgd2hlbiBkZWZpbmluZyBjb21tYW5k
cy4iCisgIDp0eXBlICdib29sZWFuCisgIDpncm91cCAndGV4LWZpbGUKKyAgOnZlcnNpb24gIjI5
LjEiKQorCisoZGVmdmFyIHRleC1lc2NhcGUtY2hhciA/XFwKKyAgIlRoZSBjdXJyZW50IFRlWCBl
c2NhcGUgY2hhcmFjdGVyLgorCitUaGUgYGV0YWdzJyBwcm9ncmFtIG9ubHkgcmVjb2duaXplcyBg
XFwnICg5MikgYW5kIGAhJyAoMzMpIGFzCitlc2NhcGUgY2hhcmFjdGVycyBpbiBUZVggZG9jdW1l
bnRzLCBhbmQgaWYgaXQgZGV0ZWN0cyB0aGUgbGF0dGVyCitpdCBhbHNvIHVzZXMgYDw+JyBhcyB0
aGUgVGVYIGdyb3VwaW5nIGNvbnN0cnVjdCByYXRoZXIgdGhhbiBge30nLgorU2V0dGluZyB0aGlz
IHZhcmlhYmxlIHRvIGFueXRoaW5nIG90aGVyIHRoYW4gYFxcJyBvciBgIScgd2lsbCBub3QKK2Jl
IHVzZWZ1bCB3aXRob3V0IGNoYW5nZXMgdG8gYGV0YWdzJywgYXQgbGVhc3QgZm9yIGNvbW1hbmRz
IHRoYXQKK3NlYXJjaCB0YWdzIHRhYmxlcywgc3VjaCBhcyBcXFt4cmVmLWZpbmQtZGVmaW5pdGlv
bnNdIGFuZCBcCitcXFt4cmVmLWZpbmQtYXByb3Bvc10uIikKKworKGRlZnZhciB0ZXgtdGhpbmdh
dHB0LXN5bnRheC10YWJsZQorICAobGV0KiAoKG9zdCAoaWYgKGJvdW5kcCAnVGVYLW1vZGUtc3lu
dGF4LXRhYmxlKQorICAgICAgICAgICAgICAgICAgVGVYLW1vZGUtc3ludGF4LXRhYmxlCisgICAg
ICAgICAgICAgICAgdGV4LW1vZGUtc3ludGF4LXRhYmxlKSkKKyAgICAgICAgIChzdCAobWFrZS1z
eW50YXgtdGFibGUgb3N0KSkpCisgICAgKG1vZGlmeS1zeW50YXgtZW50cnkgPyMgIiciIHN0KQor
ICAgIChtb2RpZnktc3ludGF4LWVudHJ5ID89ICInIiBzdCkKKyAgICAobW9kaWZ5LXN5bnRheC1l
bnRyeSA/YCAiJyIgc3QpCisgICAgKG1vZGlmeS1zeW50YXgtZW50cnkgP1wiICInIiBzdCkKKyAg
ICAobW9kaWZ5LXN5bnRheC1lbnRyeSA/JyAiJyIgc3QpCisgICAgc3QpCisgICJTeW50YXggdGFi
bGUgZm9yIGRlbGltaXRpbmcgYHRoaW5nLWF0LXBvaW50JyBpbiBUZVggYnVmZmVycy4KKworV2hl
biBgdGV4LXRoaW5nYXRwdC1pcy10ZXhzeW1ib2wnIGlzIHQsIHRoaXMgc3ludGF4IHRhYmxlIGhl
bHBzCit0byBkZWZpbmUgd2hhdCBhIGB0ZXhzeW1ib2wnIGlzLiIpCisKKyhkZWZ1biB0ZXgtLXhy
ZWYtYmFja2VuZCAoKSAndGV4KQorCis7OyBTZXR1cCBBVUNUZVggbW9kZXMuICAoU2hvdWxkIHRo
aXMgYmUgaW4gQVVDVGVYIGl0c2VsZj8pCisKKyhhZGQtaG9vayAnVGVYLW1vZGUtaG9vayAjJ3Rl
eC1zZXQtYXVjdGV4LXhyZWYtYmFja2VuZCkKKyhhZGQtaG9vayAnVGVYLW1vZGUtaG9vayAjJ3Rl
eC1zZXQtdGhpbmdhdHB0LXN5bWJvbCkKKworKGRlZnVuIHRleC1zZXQtYXVjdGV4LXhyZWYtYmFj
a2VuZCAoKQorICAoYWRkLWhvb2sgJ3hyZWYtYmFja2VuZC1mdW5jdGlvbnMgIyd0ZXgtLXhyZWYt
YmFja2VuZCBuaWwgdCkpCisKKyhkZWNsYXJlLWZ1bmN0aW9uIHhyZWYtaXRlbS1sb2NhdGlvbiAi
eHJlZiIpCisoZGVjbGFyZS1mdW5jdGlvbiB4cmVmLS1wcm9qZWN0LXJvb3QgInhyZWYiIChwcm9q
ZWN0KSkKKyhkZWNsYXJlLWZ1bmN0aW9uIHhyZWYtLWNvbnZlcnQtaGl0cyAieHJlZiIgKGhpdHMg
cmVnZXhwKSkKKyhkZWNsYXJlLWZ1bmN0aW9uIGFwcm9wb3MtcGFyc2UtcGF0dGVybiAiYXByb3Bv
cyIgKHBhdHRlcm4pKQorKGRlY2xhcmUtZnVuY3Rpb24gc2VtYW50aWMtc3ltcmVmLXBlcmZvcm0t
c2VhcmNoICJzZW1hbnRpYy9zeW1yZWYiKQorKGRlY2xhcmUtZnVuY3Rpb24gc2VtYW50aWMtc3lt
cmVmLWluc3RhbnRpYXRlICJzZW1hbnRpYy9zeW1yZWYiKQorKGRlY2xhcmUtZnVuY3Rpb24gcHJv
amVjdC1leHRlcm5hbC1yb290cyAicHJvamVjdCIpCisoZGVjbGFyZS1mdW5jdGlvbiBmaW5kLXRh
Zy0tY29tcGxldGlvbi1pZ25vcmUtY2FzZSAiZXRhZ3MiKQorKGRlY2xhcmUtZnVuY3Rpb24gZXRh
Z3MtLXhyZWYtZmluZC1kZWZpbml0aW9ucyAiZXRhZ3MiKQorKGRlY2xhcmUtZnVuY3Rpb24gZXRh
Z3MtLXhyZWYtYXByb3Bvcy1hZGRpdGlvbmFsICJldGFncyIgKHJlZ2V4cCkpCisoZGVjbGFyZS1m
dW5jdGlvbiBjbC1kZWxldGUtaWYgImNsLXNlcSIpCisoZGVmdmFyIGV0YWdzLXhyZWYtcHJlZmVy
LWN1cnJlbnQtZmlsZSkKKworKGNsLWRlZm1ldGhvZCB4cmVmLWJhY2tlbmQtaWRlbnRpZmllci1h
dC1wb2ludCAoKF9iYWNrZW5kIChlcWwgJ3RleCkpKQorICAocmVxdWlyZSAnZXRhZ3MpCisgICh0
aGluZy1hdC1wb2ludCAnc3ltYm9sIHQpKQorCisoY2wtZGVmbWV0aG9kIHhyZWYtYmFja2VuZC1p
ZGVudGlmaWVyLWNvbXBsZXRpb24tdGFibGUgKChfYmFja2VuZAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVxbCAndGV4KSkpCisgICh0
YWdzLWxhenktY29tcGxldGlvbi10YWJsZSkpCisKKyhjbC1kZWZtZXRob2QgeHJlZi1iYWNrZW5k
LWlkZW50aWZpZXItY29tcGxldGlvbi1pZ25vcmUtY2FzZSAoKF9iYWNrZW5kCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZXFs
ICd0ZXgpKSkKKyAgKGZpbmQtdGFnLS1jb21wbGV0aW9uLWlnbm9yZS1jYXNlKSkKKworKGNsLWRl
Zm1ldGhvZCB4cmVmLWJhY2tlbmQtZGVmaW5pdGlvbnMgKChfYmFja2VuZCAoZXFsICd0ZXgpKSBz
eW1ib2wpCisgIChsZXQqICgoZmlsZSAoYW5kIGJ1ZmZlci1maWxlLW5hbWUgKGV4cGFuZC1maWxl
LW5hbWUgYnVmZmVyLWZpbGUtbmFtZSkpKQorICAgICAgICAgKGFsdC1zeW0gKGlmIChjaGFyLWVx
dWFsIHRleC1lc2NhcGUtY2hhciAoYXJlZiBzeW1ib2wgMCkpCisgICAgICAgICAgICAgICAgICAg
ICAgKHN1YnN0cmluZyBzeW1ib2wgMSkKKyAgICAgICAgICAgICAgICAgICAgKGNvbmNhdCAoc3Ry
aW5nIHRleC1lc2NhcGUtY2hhcikgc3ltYm9sKSkpCisgICAgICAgICAocHJlbGltLWRlZmluaXRp
b25zIChldGFncy0teHJlZi1maW5kLWRlZmluaXRpb25zIHN5bWJvbCkpCisgICAgICAgICAoZGVm
aW5pdGlvbnMgKGlmIChvciBwcmVsaW0tZGVmaW5pdGlvbnMKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIChub3QgdGV4LXhyZWYtdHJ5LWFsdGVybmF0ZS1mb3JtcykpCisgICAgICAgICAg
ICAgICAgICAgICAgICAgIHByZWxpbS1kZWZpbml0aW9ucworICAgICAgICAgICAgICAgICAgICAg
ICAgKGV0YWdzLS14cmVmLWZpbmQtZGVmaW5pdGlvbnMgYWx0LXN5bSkpKQorICAgICAgICAgc2Ft
ZS1maWxlLWRlZmluaXRpb25zKQorICAgICh3aGVuIChhbmQgZXRhZ3MteHJlZi1wcmVmZXItY3Vy
cmVudC1maWxlIGZpbGUpCisgICAgICAoc2V0cSBkZWZpbml0aW9ucworICAgICAgICAgICAgKGNs
LWRlbGV0ZS1pZgorICAgICAgICAgICAgIChsYW1iZGEgKGRlZmluaXRpb24pCisgICAgICAgICAg
ICAgICAod2hlbiAoZXF1YWwgZmlsZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICh4cmVm
LWxvY2F0aW9uLWdyb3VwCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh4cmVmLWl0ZW0t
bG9jYXRpb24gZGVmaW5pdGlvbikpKQorICAgICAgICAgICAgICAgICAocHVzaCBkZWZpbml0aW9u
IHNhbWUtZmlsZS1kZWZpbml0aW9ucykKKyAgICAgICAgICAgICAgICAgdCkpCisgICAgICAgICAg
ICAgZGVmaW5pdGlvbnMpKQorICAgICAgKHNldHEgZGVmaW5pdGlvbnMgKG5jb25jIChucmV2ZXJz
ZSBzYW1lLWZpbGUtZGVmaW5pdGlvbnMpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ZGVmaW5pdGlvbnMpKSkKKyAgICBkZWZpbml0aW9ucykpCisKKyhjbC1kZWZtZXRob2QgeHJlZi1i
YWNrZW5kLWFwcm9wb3MgKChfYmFja2VuZCAoZXFsICd0ZXgpKSBwYXR0ZXJuKQorICAobGV0ICgo
cmVnZXhwICh0ZXgteHJlZi1hcHJvcG9zLXJlZ2V4cCBwYXR0ZXJuKSkpCisgICAgKG5jb25jCisg
ICAgIChvcgorICAgICAgKGV0YWdzLS14cmVmLWZpbmQtZGVmaW5pdGlvbnMgcmVnZXhwIHQpCisg
ICAgICAoZXRhZ3MtLXhyZWYtZmluZC1kZWZpbml0aW9ucyBwYXR0ZXJuIHQpKQorICAgICAoZXRh
Z3MtLXhyZWYtYXByb3Bvcy1hZGRpdGlvbmFsIHJlZ2V4cCkpKSkKKworKGNsLWRlZm1ldGhvZCB4
cmVmLWJhY2tlbmQtcmVmZXJlbmNlcyAoKF9iYWNrZW5kIChlcWwgJ3RleCkpIGlkZW50aWZpZXIp
CisgIChtYXBjYW4KKyAgIChsYW1iZGEgKGRpcikKKyAgICAgKG1lc3NhZ2UgIlNlYXJjaGluZyAl
cy4uLiIgZGlyKQorICAgICAocmVkaXNwbGF5KQorICAgICAocHJvZzEKKyAgICAgICAgICh0ZXgt
eHJlZi1yZWZlcmVuY2VzLWluLWRpcmVjdG9yeSBpZGVudGlmaWVyIGRpcikKKyAgICAgICAobWVz
c2FnZSAiU2VhcmNoaW5nICVzLi4uIGRvbmUiIGRpcikpKQorICAgKGxldCAoKHByIChwcm9qZWN0
LWN1cnJlbnQgdCkpKQorICAgICAoY29ucworICAgICAgKHhyZWYtLXByb2plY3Qtcm9vdCBwcikK
KyAgICAgIChwcm9qZWN0LWV4dGVybmFsLXJvb3RzIHByKSkpKSkKKworKGRlZnVuIHRleC14cmVm
LWFwcm9wb3MtcmVnZXhwIChwYXR0ZXJuKQorICAiUmV0dXJuIGEgcmVnZXhwIGZyb20gUEFUVEVS
TiBzaW1pbGFyIHRvIGBhcHJvcG9zJy4KKworVW5saWtlIHRoZSBzdGFuZGFyZCB4cmVmIGZ1bmN0
aW9uLCBpZiBgcmVnZXhwLXF1b3RlJyByZXR1cm5zIGEKK3N0cmluZyBkaWZmZXJlbnQgZnJvbSB0
aGUgb3JpZ2luYWwgUEFUVEVSTiwgdGhlIFRlWCBmdW5jdGlvbgorcGFzc2VzIHRoYXQgbW9kaWZp
ZWQgc3RyaW5nLCByYXRoZXIgdGhhbiBQQVRURVJOIGl0c2VsZiwgdG8KK2BhcHJvcG9zLXBhcnNl
LXBhdHRlcm4nLiIKKyAgKGxldCAoKHJlIChyZWdleHAtcXVvdGUgcGF0dGVybikpKQorICAgIChh
cHJvcG9zLXBhcnNlLXBhdHRlcm4KKyAgICAgKGlmIChzdHJpbmctZXF1YWwgcmUgcGF0dGVybikK
KyAgICAgICAgIDs7IFNwbGl0IGludG8gd29yZHMKKyAgICAgICAgIChvciAoc3BsaXQtc3RyaW5n
IHBhdHRlcm4gIlsgXHRdKyIgdCkKKyAgICAgICAgICAgICAodXNlci1lcnJvciAiTm8gd29yZCBs
aXN0IGdpdmVuIikpCisgICAgICAgcmUpKSkpCisKKyhkZWZ1biB0ZXgteHJlZi1yZWZlcmVuY2Vz
LWluLWRpcmVjdG9yeSAoc3ltYm9sIGRpcikKKyAgIkZpbmQgYWxsIHJlZmVyZW5jZXMgdG8gU1lN
Qk9MIGluIGRpcmVjdG9yeSBESVIuCitSZXR1cm4gYSBsaXN0IG9mIHhyZWYgdmFsdWVzLgorCitU
aGlzIGZ1bmN0aW9uIHVzZXMgdGhlIFNlbWFudGljIFN5bWJvbCBSZWZlcmVuY2UgQVBJLiAgSW4g
VGVYCitidWZmZXJzIHRoZSB2YWx1ZSByZXR1cm5lZCB3aGVuIHBhc3NpbmcgU1lNQk9MIHRvIGBy
ZWdleHAtcXVvdGUnCitiZWNvbWVzIHRoZSBkZWZhdWx0IHNlYXJjaCB0ZXJtLiAgSWYgdGhpcyBz
eW1yZWYgaW5zdGFudGlhdGlvbgorZmluZHMgbm8gbWF0Y2hlcywgYSBzZWNvbmQgdHJpZXMgYWdh
aW4gd2l0aCB0aGUgb3JpZ2luYWwgU1lNQk9MCithcyBzZWFyY2ggdGVybSwgaW5zdGVhZC4gIEJv
dGggc2VhcmNoZXMgc2V0IGtleXdvcmQgYHNlYXJjaHR5cGU6JwordG8gXFw9J3JlZ2V4cCBpbnN0
ZWFkIG9mIHhyZWYncyBcXD0nc3ltYm9sLgorCitTZWUgYHNlbWFudGljLXN5bXJlZi10b29sLWFs
aXN0JyBmb3IgZGV0YWlscyBvbiB3aGljaCB0b29scyBhcmUKK3VzZWQsIGFuZCB3aGVuLiAgU2Vl
IGFsc28gYHhyZWYtcmVmZXJlbmNlcy1pbi1kaXJlY3RvcnknIGFuZAorY29tbWVudHMgaW4gaXRz
IGNvZGUsIHRoZSBsYXR0ZXIgY29waWVkIGludG8gdGhlIFRlWAoraW1wbGVtZW50YXRpb24gZm9y
IGNvbnZlbmllbmNlLiIKKyAgKGNsLWFzc2VydCAoZGlyZWN0b3J5LW5hbWUtcCBkaXIpKQorICAo
cmVxdWlyZSAnc2VtYW50aWMvc3ltcmVmKQorICAoZGVmdmFyIHNlbWFudGljLXN5bXJlZi10b29s
KQorICAoZGVmdmFyIGVkZS1taW5vci1tb2RlKQorCisgIDs7IFNvbWUgc3ltcmVmIGJhY2tlbmRz
IHVzZSBgZWRlLXByb2plY3Qtcm9vdC1kaXJlY3RvcnknIGFzIHRoZSByb290CisgIDs7IGRpcmVj
dG9yeSBmb3IgdGhlIHNlYXJjaCwgcmF0aGVyIHRoYW4gYGRlZmF1bHQtZGlyZWN0b3J5Jy4gU2lu
Y2UKKyAgOzsgdGhlIGNhbGxlciBoYXMgc3BlY2lmaWVkIGBkaXInLCB3ZSBiaW5kIGBlZGUtbWlu
b3ItbW9kZScgdG8gbmlsCisgIDs7IHRvIGZvcmNlIHRoZSBiYWNrZW5kIHRvIHVzZSBgZGVmYXVs
dC1kaXJlY3RvcnknLgorICAobGV0KiAoKGVkZS1taW5vci1tb2RlIG5pbCkKKyAgICAgICAgIChk
ZWZhdWx0LWRpcmVjdG9yeSBkaXIpCisgICAgICAgICA7OyBGSVhNRTogUmVtb3ZlIENTY29wZSBh
bmQgR2xvYmFsIGZyb20gdGhlIHJlY29nbml6ZWQgdG9vbHM/CisgICAgICAgICA7OyBUaGUgY3Vy
cmVudCBpbXBsZW1lbnRhdGlvbnMgaW50ZXJwcmV0IHRoZSBzeW1ib2wgc2VhcmNoIGFzCisgICAg
ICAgICA7OyAiZmluZCBhbGwgY2FsbHMgdG8gdGhlIGdpdmVuIGZ1bmN0aW9uIiwgYnV0IG5vdCBm
dW5jdGlvbgorICAgICAgICAgOzsgZGVmaW5pdGlvbi4gQW5kIHRoZXkgcmV0dXJuIG5vdGhpbmcg
d2hlbiBwYXNzZWQgYSB2YXJpYWJsZQorICAgICAgICAgOzsgbmFtZSwgZXZlbiBhIGdsb2JhbCBv
bmUuCisgICAgICAgICAoc2VtYW50aWMtc3ltcmVmLXRvb2wgJ2RldGVjdCkKKyAgICAgICAgIChj
YXNlLWZvbGQtc2VhcmNoIG5pbCkKKyAgICAgICAgICh0ZXhzeW1ib2wgKHJlZ2V4cC1xdW90ZSBz
eW1ib2wpKQorICAgICAgICAgKGluc3QgKHNlbWFudGljLXN5bXJlZi1pbnN0YW50aWF0ZSA6c2Vh
cmNoZm9yIHRleHN5bWJvbAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA6c2VhcmNodHlwZSAncmVnZXhwCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDpzZWFyY2hzY29wZSAnc3ViZGlycworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA6cmVzdWx0dHlwZSAnbGluZS1hbmQtdGV4dCkpCisgICAg
ICAgICAoYWx0LWluc3QgKHNlbWFudGljLXN5bXJlZi1pbnN0YW50aWF0ZSA6c2VhcmNoZm9yIHN5
bWJvbAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOnNl
YXJjaHR5cGUgJ3JlZ2V4cAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgOnNlYXJjaHNjb3BlICdzdWJkaXJzCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA6cmVzdWx0dHlwZSAnbGluZS1hbmQtdGV4dCkpKQorICAg
IChvcgorICAgICAoeHJlZi0tY29udmVydC1oaXRzIChzZW1hbnRpYy1zeW1yZWYtcGVyZm9ybS1z
ZWFyY2ggaW5zdCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAoZm9ybWF0ICIlcyIgdGV4c3lt
Ym9sKSkKKyAgICAgKHhyZWYtLWNvbnZlcnQtaGl0cyAoc2VtYW50aWMtc3ltcmVmLXBlcmZvcm0t
c2VhcmNoIGFsdC1pbnN0KQorICAgICAgICAgICAgICAgICAgICAgICAgIChmb3JtYXQgIiVzIiBz
eW1ib2wpKSkpKQorCisocHV0ICd0ZXhzeW1ib2wgJ2JlZ2lubmluZy1vcCAndGV4LXRoaW5nYXRw
dC0tYmVnaW5uaW5nLW9mLXRleHN5bWJvbCkKKworKHB1dCAndGV4c3ltYm9sICdlbmQtb3AgJ3Rl
eC10aGluZ2F0cHQtLWVuZC1vZi10ZXhzeW1ib2wpCisKKyhkZWZ1biB0ZXgtc2V0LXRoaW5nYXRw
dC1zeW1ib2wgKCZvcHRpb25hbCBhbGwpCisgICJTZXQgbWVhbmluZyBvZiBgdGhpbmctYXQtcG9p
bnQnIGBzeW1ib2wnIGluIChBTEw/KSBUZVggYnVmZmVycy4KKworV2hlbiBgdGV4LXRoaW5nYXRw
dC1pcy10ZXhzeW1ib2wnIGlzIHQsIHNldCBgdGhpbmctYXQtcG9pbnQnIHRvCit1c2UgdGhlIGB0
ZXhzeW1ib2wnIFwidGhpbmdcIiBpbnN0ZWFkIG9mIGBzeW1ib2wnLCBvdGhlcndpc2UKK21haW50
YWluIG9yIHJlc3RvcmUgdGhlIGRlZmF1bHQuICBXaXRob3V0IGFuIG9wdGlvbmFsIEFMTCBtYWtl
CitjaGFuZ2VzIG9ubHkgaW4gY3VycmVudCBidWZmZXIsIHdpdGggQUxMIG1ha2UgY2hhbmdlcyBp
biBhbGwgVGVYCitidWZmZXJzIGluIGBidWZmZXItbGlzdCcuIgorICAoaW50ZXJhY3RpdmUgIlAi
KQorICAocmVxdWlyZSAndGhpbmdhdHB0KQorICAoaWYgYWxsCisgICAgICAoZG9saXN0IChidWYg
KGJ1ZmZlci1saXN0KSkKKyAgICAgICAgKHdpdGgtY3VycmVudC1idWZmZXIgYnVmCisgICAgICAg
ICAgKHRleC0tc3ltYm9sLW9yLXRleHN5bWJvbCkpKQorICAgICh0ZXgtLXN5bWJvbC1vci10ZXhz
eW1ib2wpKSkKKworKGRlZnVuIHRleC0tc3ltYm9sLW9yLXRleHN5bWJvbCAoKQorICAod2hlbiAo
bWVtcSBtYWpvci1tb2RlIHRleC10aGluZ2F0cHQtbW9kZXMtbGlzdCkKKyAgICAoaWYgdGV4LXRo
aW5nYXRwdC1pcy10ZXhzeW1ib2wKKyAgICAgICAgKHNldHEtbG9jYWwgdGhpbmctYXQtcG9pbnQt
cHJvdmlkZXItYWxpc3QKKyAgICAgICAgICAgICAgICAgICAgKGFkZC10by1saXN0ICd0aGluZy1h
dC1wb2ludC1wcm92aWRlci1hbGlzdAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICcoc3lt
Ym9sIC4gdGV4LS10aGluZy1hdC1wb2ludCkpKQorICAgICAgKHNldHEtbG9jYWwgdGhpbmctYXQt
cG9pbnQtcHJvdmlkZXItYWxpc3QKKyAgICAgICAgICAgICAgICAgIChkZWxldGUgJyhzeW1ib2wg
LiB0ZXgtLXRoaW5nLWF0LXBvaW50KQorICAgICAgICAgICAgICAgICAgICAgICAgICB0aGluZy1h
dC1wb2ludC1wcm92aWRlci1hbGlzdCkpKSkpCisKKyhkZWZ1biB0ZXgtLXRoaW5nLWF0LXBvaW50
ICgpCisgICJQYXNzIGB0aGluZycgdHlwZSBgdGV4c3ltYm9sJyB0byBgYm91bmRzLW9mLXRoaW5n
LWF0LXBvaW50Jy4KKworV2hlbiBgdGV4LXRoaW5nYXRwdC1pcy10ZXhzeW1ib2wnIGlzIHQsIGNh
bGxzIGluIFRlWCBidWZmZXJzIHRvCitgdGhpbmctYXQtcG9pbnQnIHdpdGggYXJndW1lbnQgYHN5
bWJvbCcgd2lsbCB1c2UgdGhpcyBmdW5jdGlvbi4iCisgIChsZXQqICgoc3l0YWIgKG1ha2Utc3lu
dGF4LXRhYmxlIHRleC10aGluZ2F0cHQtc3ludGF4LXRhYmxlKSkKKyAgICAgICAgIChib3VuZHMg
KHdpdGgtc3ludGF4LXRhYmxlIHN5dGFiCisgICAgICAgICAgICAgICAgICAgKHVubGVzcyAoY2hh
ci1lcXVhbCB0ZXgtZXNjYXBlLWNoYXIgP1xcKQorICAgICAgICAgICAgICAgICAgICAgKG1vZGlm
eS1zeW50YXgtZW50cnkgP1xcICJfIikKKyAgICAgICAgICAgICAgICAgICAgIChtb2RpZnktc3lu
dGF4LWVudHJ5IHRleC1lc2NhcGUtY2hhciAiXFwiKQorICAgICAgICAgICAgICAgICAgICAgKG1v
ZGlmeS1zeW50YXgtZW50cnkgPzwgIig+IikKKyAgICAgICAgICAgICAgICAgICAgIChtb2RpZnkt
c3ludGF4LWVudHJ5ID8+ICIpPCIpKQorICAgICAgICAgICAgICAgICAgIChib3VuZHMtb2YtdGhp
bmctYXQtcG9pbnQgJ3RleHN5bWJvbCkpKSkKKyAgICAod2hlbiBib3VuZHMKKyAgICAgIChidWZm
ZXItc3Vic3RyaW5nLW5vLXByb3BlcnRpZXMgKGNhciBib3VuZHMpIChjZHIgYm91bmRzKSkpKSkK
KworKGRlZnVuIHRleC0taW5jbHVkZS1lc2NhcGUtcCAoY29tbWFuZCkKKyAgKG9yIChlcSB0ZXgt
dGhpbmdhdHB0LWluY2x1ZGUtZXNjYXBlIHQpCisgICAgICAobWVtcSBjb21tYW5kIHRleC10aGlu
Z2F0cHQtaW5jbHVkZS1lc2NhcGUpKSkKKworKGRlZnVuIHRleC10aGluZ2F0cHQtLWJlZ2lubmlu
Zy1vZi10ZXhzeW1ib2wgKCkKKyAgIk1vdmUgcG9pbnQgdG8gdGhlIGJlZ2lubmluZyBvZiB0aGUg
Y3VycmVudCBUZVggc3ltYm9sLiIKKyAgKGFuZCAocmUtc2VhcmNoLWJhY2t3YXJkICJcXChbXVso
KV1cXHxcXChcXHN3XFx8XFxzX1xcfFxccy5cXCkrXFwpIikKKyAgICAgICAoc2tpcC1zeW50YXgt
YmFja3dhcmQgIndfLiIpCisgICAgICAgKHdoZW4gKHRleC0taW5jbHVkZS1lc2NhcGUtcCB0aGlz
LWNvbW1hbmQpCisgICAgICAgICAoc2tpcC1zeW50YXgtYmFja3dhcmQgIlxcLyIpKSkpCisKKyhk
ZWZ1biB0ZXgtdGhpbmdhdHB0LS1lbmQtb2YtdGV4c3ltYm9sICgpCisgICJNb3ZlIHBvaW50IHRv
IHRoZSBlbmQgb2YgdGhlIGN1cnJlbnQgVGVYIHN5bWJvbC4iCisgIChhbmQgKHJlLXNlYXJjaC1m
b3J3YXJkICJcXChbXVsoKV1cXHxcXChcXHN3XFx8XFxzX1xcfFxccy5cXCkrXFwpIikKKyAgICAg
ICAoc2tpcC1zeW50YXgtZm9yd2FyZCAid18uIikpKQorCiAobWFrZS1vYnNvbGV0ZS12YXJpYWJs
ZSAndGV4LW1vZGUtbG9hZC1ob29rCiAgICAgICAgICAgICAgICAgICAgICAgICAidXNlIGB3aXRo
LWV2YWwtYWZ0ZXItbG9hZCcgaW5zdGVhZC4iICIyOC4xIikKIChydW4taG9va3MgJ3RleC1tb2Rl
LWxvYWQtaG9vaykKLS0gCjIuMTcuNgoK
--000000000000d28fd905d71e8534--




Message sent:


Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-Mailer: MIME-tools 5.505 (Entity 5.505)
Content-Type: text/plain; charset=utf-8
X-Loop: help-debbugs@HIDDEN
From: help-debbugs@HIDDEN (GNU bug Tracking System)
To: David Fussner <dfussner@HIDDEN>
Subject: bug#53749: Acknowledgement (29.0.50; [PATCH] Xref backend for TeX
 buffers)
Message-ID: <handler.53749.B.164390099218000.ack <at> debbugs.gnu.org>
References: <CADF+RtgWCLKQGwgdTNWmgesbcwq8iBxChoN8FqMOg95Ai3CYTA@HIDDEN>
X-Gnu-PR-Message: ack 53749
X-Gnu-PR-Package: emacs
X-Gnu-PR-Keywords: patch
Reply-To: 53749 <at> debbugs.gnu.org
Date: Thu, 03 Feb 2022 15:10:02 +0000

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

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

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

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

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

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

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


Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#53749: 29.0.50; [PATCH] Xref backend for TeX buffers
Resent-From: Dmitry Gutov <dgutov@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Mon, 21 Feb 2022 02:12:01 +0000
Resent-Message-ID: <handler.53749.B53749.16454095037610 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 53749
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: patch
To: David Fussner <dfussner@HIDDEN>, 53749 <at> debbugs.gnu.org
Received: via spool by 53749-submit <at> debbugs.gnu.org id=B53749.16454095037610
          (code B ref 53749); Mon, 21 Feb 2022 02:12:01 +0000
Received: (at 53749) by debbugs.gnu.org; 21 Feb 2022 02:11:43 +0000
Received: from localhost ([127.0.0.1]:34310 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1nLyAw-0001yg-P5
	for submit <at> debbugs.gnu.org; Sun, 20 Feb 2022 21:11:42 -0500
Received: from mail-wm1-f48.google.com ([209.85.128.48]:43888)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <raaahh@HIDDEN>) id 1nLyAv-0001yU-CS
 for 53749 <at> debbugs.gnu.org; Sun, 20 Feb 2022 21:11:41 -0500
Received: by mail-wm1-f48.google.com with SMTP id
 x3-20020a05600c21c300b0037c01ad715bso10261130wmj.2
 for <53749 <at> debbugs.gnu.org>; Sun, 20 Feb 2022 18:11:41 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112;
 h=sender:message-id:date:mime-version:user-agent:subject
 :content-language:to:references:from:in-reply-to
 :content-transfer-encoding;
 bh=DgZf9jHyWjNoewxfGO8CZz72EJPzszfr9FsbqI51VII=;
 b=p0lljqaf8qHHTc8ZZ/cdlZnFAfcQyO30O4whgzKjVUxZddYuxIpd6kOgXPLVLYAH0m
 MojvrQ6eY8vTp+NgCqbZNTRGaY5w1t+Wvox9/XC8YINCdx3QNfDxYx4BNwPpArMohNXr
 guAQ+QWOE6pp4fVasRWB9TRaBw2E+SVZbUL7WVZOgaCI0WgJXeqRlgFGHEWEKtNGeaNj
 oJ2T3Anj7BFz/eE4RmuPjbai6aGl2ld6stF9gGkiXCcoNeXkF7dBZYkkXutnzrdxw6M2
 K/90uH/0fVAFogRN1fzTfJyhzQj8/fO4+AIM66XGHFzWwgJJl5NW6chZEQ910dEBT9dy
 5nDA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20210112;
 h=x-gm-message-state:sender:message-id:date:mime-version:user-agent
 :subject:content-language:to:references:from:in-reply-to
 :content-transfer-encoding;
 bh=DgZf9jHyWjNoewxfGO8CZz72EJPzszfr9FsbqI51VII=;
 b=CgWWTnveP6tzzTkHSNK9gsRbuccn/NY37Fh3zKvy6XnxVCHYBVIdysMOVA7SWIqF8l
 9fN4QRPYmYoRpVqfN/vHuC6FKDEwFDoRu56gbcn2uLcctr2LCMKjHUIEF/ZriK8mgbXV
 jh/eP4pxtifxzQkE5ZuDdE6iJv9785juPDlHwnWyihzymVU3UANN3cVNqo2rlVRy9lEk
 wCG88KzzgJoFpVqo0VQrAimByS/kngXju4KVUBJQG40vBdQQjrX3uj5XnzxAfhZONhLA
 CWC/Xaa3Tash2KhxScCFg0FwI4agjevgPgYhMoBJGftJjZhnl78VdiLQ1XqRxDcgZkOP
 cvTA==
X-Gm-Message-State: AOAM533U+zaX4OBGgcARIZFysbmLD9lV+PGYXprsyoWnlbEc/D0HU523
 zvLZ1LWB2Gce7LJL0hSECIA=
X-Google-Smtp-Source: ABdhPJySwqqMKFcr7Ef26Hsvk2kt6+/ilR/5UYkTs+o2U/d6HKl9mIqDY8j/r+oWHolYIMVJnzK3sQ==
X-Received: by 2002:a05:600c:1d28:b0:37c:a9d:d39f with SMTP id
 l40-20020a05600c1d2800b0037c0a9dd39fmr15930073wms.172.1645409495378; 
 Sun, 20 Feb 2022 18:11:35 -0800 (PST)
Received: from [192.168.0.6] ([46.251.119.176])
 by smtp.googlemail.com with ESMTPSA id e4sm28225666wrp.25.2022.02.20.18.11.34
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Sun, 20 Feb 2022 18:11:35 -0800 (PST)
Message-ID: <1de34060-e93b-0a42-fff5-20e283abe0dc@HIDDEN>
Date: Mon, 21 Feb 2022 04:11:33 +0200
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101
 Thunderbird/91.5.0
Content-Language: en-US
References: <CADF+RtgWCLKQGwgdTNWmgesbcwq8iBxChoN8FqMOg95Ai3CYTA@HIDDEN>
From: Dmitry Gutov <dgutov@HIDDEN>
In-Reply-To: <CADF+RtgWCLKQGwgdTNWmgesbcwq8iBxChoN8FqMOg95Ai3CYTA@HIDDEN>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-Spam-Score: 0.5 (/)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -0.5 (/)

Hi!

Let us first discuss whether we could make do without an additional Xref 
backend. Just to make sure.

On 03.02.2022 17:09, David Fussner via Bug reports for GNU Emacs, the 
Swiss army knife of text editors wrote:
> Similarly, any xref command on 'my:citekey' will only search by default
> for the half of the symbol under point, stopping at the colon.

etags's implementation of 'xref-backend-identifier-at-point' calls 
'find-tag--default', which consults 'find-tag-default-function' and
(get major-mode 'find-tag-default-function).

So if your main goal was to alter which string gets searched for (based 
on text around point), you can define a function which returns the 
necessary string (as you did in the patch) and then either set 
'find-tag-default-function' to that function, or put it on the 
'find-tag-default-function' property for the respective major mode 
functions.

> There are many other behaviors that are suboptimal, as well, so in the
> end I wrote a new xref backend for TeX buffers (cloning large portions
> of the default etags backend), and wondered whether it might be welcome
> in GNU Emacs.

Could you point out the other changes which were required?




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#53749: 29.0.50; [PATCH] Xref backend for TeX buffers
Resent-From: David Fussner <dfussner@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Mon, 21 Feb 2022 09:49:02 +0000
Resent-Message-ID: <handler.53749.B53749.164543693016501 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 53749
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: patch
To: Dmitry Gutov <dgutov@HIDDEN>
Cc: 53749 <at> debbugs.gnu.org
Received: via spool by 53749-submit <at> debbugs.gnu.org id=B53749.164543693016501
          (code B ref 53749); Mon, 21 Feb 2022 09:49:02 +0000
Received: (at 53749) by debbugs.gnu.org; 21 Feb 2022 09:48:50 +0000
Received: from localhost ([127.0.0.1]:35082 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1nM5JK-0004I5-5o
	for submit <at> debbugs.gnu.org; Mon, 21 Feb 2022 04:48:50 -0500
Received: from mail-qv1-f53.google.com ([209.85.219.53]:46035)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <dfussner@HIDDEN>) id 1nM5JI-0004Hl-Be
 for 53749 <at> debbugs.gnu.org; Mon, 21 Feb 2022 04:48:48 -0500
Received: by mail-qv1-f53.google.com with SMTP id c14so30666733qvl.12
 for <53749 <at> debbugs.gnu.org>; Mon, 21 Feb 2022 01:48:48 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=googlemail.com; s=20210112;
 h=mime-version:references:in-reply-to:from:date:message-id:subject:to
 :cc; bh=I2hDIlzhuQa9wnxxeda3KakJlY/Clx5R1MusA5yU4R4=;
 b=MWBIoAm3edGHHgO/IgOxHeU1eQyGX4M7BGzcjwD4YYhxb/LjNt5LWSFmDUk69Y8sQJ
 EeFTZ+auiSzU7X1SHF70OVSpah9f+TKwfjUKd/ASgse3sVxMJDWTW6FIHZpZhFyGYxCD
 0nijgeL8gkLWiCRd36mMUKEEWN4LeGUElInEn/4At0/ulugXl8hU46Yxjt+nhtrhW5A+
 xufMDazRVgboYbtyRYzgnfbCLgpyk60C2IhRE2ed+x5Vr+oxwMo6/RP5nkgeLpPQtg79
 9cXKMzLubcG9Wyu66lVPKOH36Me9QEdQnPt4PMOxPkWDbc2Ak52KCy+1Qu+8YMizHt+6
 CSXw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20210112;
 h=x-gm-message-state:mime-version:references:in-reply-to:from:date
 :message-id:subject:to:cc;
 bh=I2hDIlzhuQa9wnxxeda3KakJlY/Clx5R1MusA5yU4R4=;
 b=WJXaVtdE8syCv6zjdu2TmFxo43fbcJlVlBsGPBWLIBndhHlhRxd7GKihSDsgDJd/N/
 WNpsdnqR9WDAtnE6AXcfG82q/APkx4O5QFtpFdsTdtKChaui6sjgqhFZ/valFCrj5TB1
 IGn4FWjRkTic40tI9vFaUYmepa4+lROAnAsCE2XRwVZYzLtYrg4bC5e6xgOCT+XJ7Bzl
 KZZqw7OOZ5VchG1gMSBUQq0k6pJ8Bji9Mg8vxEGFw1VCr9FjjzCwSaaS4oHPrWMRklmV
 TnJMIXggUA6qe6c2zmL+phXYwya87KZdTHSYUseY6Mkv+/CPnyd2cNvQLy0DJizqa2co
 hgvw==
X-Gm-Message-State: AOAM532PSM/HSM1NIfmLGmUWNnKAZKWA1n3r6mn0jrl7buJWmM3qWlEh
 vn2csasdGxJfqUPRIEvuv81gtiZiHyx6XDOPOx0YtyRRL5m+Zg==
X-Google-Smtp-Source: ABdhPJy05b+mq+hgv21tkaFsmTC7wxpcWy3TGrDZtbJ3TXr2hgPaWgCIg6dV/via3YEQ3VM0aW4mqLMJ7iHW6SE5RuE=
X-Received: by 2002:a05:622a:1a16:b0:2de:37ad:25ef with SMTP id
 f22-20020a05622a1a1600b002de37ad25efmr1047861qtb.131.1645436922612; Mon, 21
 Feb 2022 01:48:42 -0800 (PST)
MIME-Version: 1.0
References: <CADF+RtgWCLKQGwgdTNWmgesbcwq8iBxChoN8FqMOg95Ai3CYTA@HIDDEN>
 <1de34060-e93b-0a42-fff5-20e283abe0dc@HIDDEN>
In-Reply-To: <1de34060-e93b-0a42-fff5-20e283abe0dc@HIDDEN>
From: David Fussner <dfussner@HIDDEN>
Date: Mon, 21 Feb 2022 09:48:30 +0000
Message-ID: <CADF+RthLfZVgu72wnPXf2=w-gnKZT+4eWR_kmDVMnFvBY8f1XQ@HIDDEN>
Content-Type: text/plain; charset="UTF-8"
X-Spam-Score: -0.0 (/)
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: -1.0 (-)

(Resending to include the mailing list -- sorry!)

Hi Dmitry,

Many thanks for looking into this.

>
> So if your main goal was to alter which string gets searched for (based
> on text around point), you can define a function which returns the
> necessary string (as you did in the patch) and then either set
> 'find-tag-default-function' to that function, or put it on the
> 'find-tag-default-function' property for the respective major mode
> functions.
>
> > There are many other behaviors that are suboptimal, as well, so in the
> > end I wrote a new xref backend for TeX buffers (cloning large portions
> > of the default etags backend), and wondered whether it might be welcome
> > in GNU Emacs.
>
> Could you point out the other changes which were required?

As you've noticed, I tried at first to get by without a new backend,
but I ran into a few issues that I couldn't solve that way, hence the
current patch.  A couple of examples:

1. TeX is very generous with the characters it includes in its
symbols, so what looks like a standard symbol to it can look like a
regexp either to grep or to emacs, so I needed to changes things in
xref-find-apropos and in xref-find-references to take this into
account.  (See tex-xref-apropos-regexp and
tex-xref-references-in-directory.)  Sometimes using a search string
that had been put through regexp-quote was wrong, as when a user
provided their own regexp in the minibuffer, so in both those cases I
provided fallbacks to a different search in case the default search
came up empty.  I couldn't see how to do this without a new backend.

2.  A package like biblatex creates what amounts to a separate
namespace using the \newbibmacro mechanism, so pretty much every
biblatex style has both a \cite command and a cite bibmacro, and I
wanted to allow emacs to differentiate between them when using
xref-find-definitions.  Because users of the etoolbox package (like
biblatex) may well mix commands with and without the escape char "\",
I also provided a variable to allow users to find when a \command is
called using \csuse{command} instead.  Again, this required a fallback
search (see xref-backend-definitions) which I couldn't see how to
provide without a new backend.

Does this make any sense?  I can give more specific examples if you
like -- try running xref-find-references on a TeX command with "@" in
it.  (If memory serves, that behaved badly here on an unpatched emacs,
but maybe I'm misremembering.)

David.

On Mon, 21 Feb 2022 at 02:11, Dmitry Gutov <dgutov@HIDDEN> wrote:
>
> Hi!
>
> Let us first discuss whether we could make do without an additional Xref
> backend. Just to make sure.
>
> On 03.02.2022 17:09, David Fussner via Bug reports for GNU Emacs, the
> Swiss army knife of text editors wrote:
> > Similarly, any xref command on 'my:citekey' will only search by default
> > for the half of the symbol under point, stopping at the colon.
>
> etags's implementation of 'xref-backend-identifier-at-point' calls
> 'find-tag--default', which consults 'find-tag-default-function' and
> (get major-mode 'find-tag-default-function).
>
> So if your main goal was to alter which string gets searched for (based
> on text around point), you can define a function which returns the
> necessary string (as you did in the patch) and then either set
> 'find-tag-default-function' to that function, or put it on the
> 'find-tag-default-function' property for the respective major mode
> functions.
>
> > There are many other behaviors that are suboptimal, as well, so in the
> > end I wrote a new xref backend for TeX buffers (cloning large portions
> > of the default etags backend), and wondered whether it might be welcome
> > in GNU Emacs.
>
> Could you point out the other changes which were required?




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#53749: 29.0.50; [PATCH] Xref backend for TeX buffers
Resent-From: Arash Esbati <arash@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Mon, 21 Feb 2022 12:38:02 +0000
Resent-Message-ID: <handler.53749.B.164544703426684 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 53749
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: patch
To: 53749 <at> debbugs.gnu.org
Cc: dfussner@HIDDEN
X-Debbugs-Original-To: David Fussner via "Bug reports for GNU Emacs, the Swiss army knife of text editors" <bug-gnu-emacs@HIDDEN>
X-Debbugs-Original-Cc: 53749 <at> debbugs.gnu.org, David Fussner <dfussner@HIDDEN>
Received: via spool by submit <at> debbugs.gnu.org id=B.164544703426684
          (code B ref -1); Mon, 21 Feb 2022 12:38:02 +0000
Received: (at submit) by debbugs.gnu.org; 21 Feb 2022 12:37:14 +0000
Received: from localhost ([127.0.0.1]:35298 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1nM7wI-0006wK-Hp
	for submit <at> debbugs.gnu.org; Mon, 21 Feb 2022 07:37:14 -0500
Received: from lists.gnu.org ([209.51.188.17]:44054)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <arash@HIDDEN>) id 1nM7w9-0006w6-Lx
 for submit <at> debbugs.gnu.org; Mon, 21 Feb 2022 07:37:05 -0500
Received: from eggs.gnu.org ([209.51.188.92]:58042)
 by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <arash@HIDDEN>) id 1nM7w2-0002fv-4K
 for bug-gnu-emacs@HIDDEN; Mon, 21 Feb 2022 07:37:03 -0500
Received: from [2001:470:142:3::e] (port=50428 helo=fencepost.gnu.org)
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <arash@HIDDEN>)
 id 1nM7vn-0007PT-1W; Mon, 21 Feb 2022 07:36:56 -0500
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org;
 s=fencepost-gnu-org; h=MIME-Version:In-Reply-To:Date:References:Subject:To:
 From; bh=mhuH+1DmCdoPLs2LlDHYFblYBIPzmkoyWqL8A2mLlYo=; b=OnbUAqKybC4ZIqAes/xG
 fdwQpXCC9T7doK5tukrgO6JOB0YWWafaIfVu2Wqn28DZhmfZhfKV3BTkd5HA8a3AuhnnYV8Yqw4w3
 PVAZUoDSvggUAQFt0xZ7+0berunKQdmrH3zv0CGySKABsAUiFczwPew4LxQHNnxhxhxKG8kfQEw/Y
 er/7BLV+th65kAQ0utjuEfRZQgmrw/mvKxtJO8UEyKTe+M82wwowmtDcJKfw4Eor6f7/ZVCCjIBtv
 RkMbc9Dn3AgYvbmVfHydqiN9rBQanLwa5YmzqKclbYKsRTjUzCoN7zNGEesZQGqzQNkH2wZrUtkFH
 jXgeJemn/3bYEA==;
Received: from p5b326363.dip0.t-ipconnect.de ([91.50.99.99]:59830 helo=MUTANT)
 by fencepost.gnu.org with esmtpsa
 (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1)
 (envelope-from <arash@HIDDEN>)
 id 1nM7vl-0004Zi-32; Mon, 21 Feb 2022 07:36:42 -0500
From: Arash Esbati <arash@HIDDEN>
References: <CADF+RtgWCLKQGwgdTNWmgesbcwq8iBxChoN8FqMOg95Ai3CYTA@HIDDEN>
Date: Mon, 21 Feb 2022 13:35:52 +0100
In-Reply-To: <CADF+RtgWCLKQGwgdTNWmgesbcwq8iBxChoN8FqMOg95Ai3CYTA@HIDDEN>
 (David Fussner via's message of "Thu, 3 Feb 2022 15:09:22 +0000")
Message-ID: <86ilt84ct3.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/29.0.50
MIME-Version: 1.0
Content-Type: text/plain
X-Spam-Score: -2.3 (--)
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 (---)

David Fussner via "Bug reports for GNU Emacs, the Swiss army knife of
text editors" <bug-gnu-emacs@HIDDEN> writes:

> diff --git a/lib-src/etags.c b/lib-src/etags.c
> index aa5bc8839d..e5269aa456 100644
> --- a/lib-src/etags.c
> +++ b/lib-src/etags.c
> [...]
>  /* Default set of control sequences to put into TEX_toktab.
> -   The value of environment var TEXTAGS is prepended to this.  */
> +   The value of environment var TEXTAGS is prepended to this.
> +   (2021) Add variants of '\def', some additional LaTeX commands,
> +   and common variants from the 'etoolbox' package.  Also, add
> +   starred variants of the commands if they exist.  Starred
> +   variants need to appear before their unstarred versions. */
>  static const char *TEX_defenv = "\
> -:chapter:section:subsection:subsubsection:eqno:label:ref:cite:bibitem\
> -:part:appendix:entry:index:def\
> -:newcommand:renewcommand:newenvironment:renewenvironment";
> +:chapter*:section*:subsection*:subsubsection*:part*:label:ref\
> +:chapter:section:subsection:subsubsection:eqno:cite:bibitem\
> +:part:appendix:entry:index:def:edef:gdef:xdef:newcommand*:newcommand\
> +:renewcommand*:renewcommand:newenvironment*:newenvironment\
> +:renewenvironment*:renewenvironment:DeclareRobustCommand*\
> +:DeclareRobustCommand:renewrobustcmd*:renewrobustcmd:newrobustcmd*\
> +:newrobustcmd:let:csdef:csedef:csgdef:csxdef:csletcs:cslet";

Hi David,

thanks for looking into this.  While you're at it, can you also please
add support for the former xparse \newcommand variants which are now
(now is October 2020) part of LaTeX kernel, namely:

\NewDocumentCommand
\RenewDocumentCommand
\ProvideDocumentCommand
\DeclareDocumentCommand
\NewDocumentEnvironment
\RenewDocumentEnvironment
\ProvideDocumentEnvironment
\DeclareDocumentEnvironment
\NewExpandableDocumentCommand
\RenewExpandableDocumentCommand
\ProvideExpandableDocumentCommand
\DeclareExpandableDocumentCommand

TIA.  Best, Arash




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#53749: 29.0.50; [PATCH] Xref backend for TeX buffers
Resent-From: Arash Esbati <arash@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Mon, 21 Feb 2022 12:38:02 +0000
Resent-Message-ID: <handler.53749.B53749.164544702426662 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 53749
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: patch
To: 53749 <at> debbugs.gnu.org
Cc: dfussner@HIDDEN
X-Debbugs-Original-To: David Fussner via "Bug reports for GNU Emacs, the Swiss army knife of text editors" <bug-gnu-emacs@HIDDEN>
X-Debbugs-Original-Cc: 53749 <at> debbugs.gnu.org, David Fussner <dfussner@HIDDEN>
Received: via spool by 53749-submit <at> debbugs.gnu.org id=B53749.164544702426662
          (code B ref 53749); Mon, 21 Feb 2022 12:38:02 +0000
Received: (at 53749) by debbugs.gnu.org; 21 Feb 2022 12:37:04 +0000
Received: from localhost ([127.0.0.1]:35294 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1nM7w8-0006vy-8c
	for submit <at> debbugs.gnu.org; Mon, 21 Feb 2022 07:37:04 -0500
Received: from eggs.gnu.org ([209.51.188.92]:51370)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <arash@HIDDEN>) id 1nM7w7-0006vU-2S
 for 53749 <at> debbugs.gnu.org; Mon, 21 Feb 2022 07:37:03 -0500
Received: from [2001:470:142:3::e] (port=50428 helo=fencepost.gnu.org)
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <arash@HIDDEN>)
 id 1nM7vn-0007PT-1W; Mon, 21 Feb 2022 07:36:56 -0500
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org;
 s=fencepost-gnu-org; h=MIME-Version:In-Reply-To:Date:References:Subject:To:
 From; bh=mhuH+1DmCdoPLs2LlDHYFblYBIPzmkoyWqL8A2mLlYo=; b=OnbUAqKybC4ZIqAes/xG
 fdwQpXCC9T7doK5tukrgO6JOB0YWWafaIfVu2Wqn28DZhmfZhfKV3BTkd5HA8a3AuhnnYV8Yqw4w3
 PVAZUoDSvggUAQFt0xZ7+0berunKQdmrH3zv0CGySKABsAUiFczwPew4LxQHNnxhxhxKG8kfQEw/Y
 er/7BLV+th65kAQ0utjuEfRZQgmrw/mvKxtJO8UEyKTe+M82wwowmtDcJKfw4Eor6f7/ZVCCjIBtv
 RkMbc9Dn3AgYvbmVfHydqiN9rBQanLwa5YmzqKclbYKsRTjUzCoN7zNGEesZQGqzQNkH2wZrUtkFH
 jXgeJemn/3bYEA==;
Received: from p5b326363.dip0.t-ipconnect.de ([91.50.99.99]:59830 helo=MUTANT)
 by fencepost.gnu.org with esmtpsa
 (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1)
 (envelope-from <arash@HIDDEN>)
 id 1nM7vl-0004Zi-32; Mon, 21 Feb 2022 07:36:42 -0500
From: Arash Esbati <arash@HIDDEN>
References: <CADF+RtgWCLKQGwgdTNWmgesbcwq8iBxChoN8FqMOg95Ai3CYTA@HIDDEN>
Date: Mon, 21 Feb 2022 13:35:52 +0100
In-Reply-To: <CADF+RtgWCLKQGwgdTNWmgesbcwq8iBxChoN8FqMOg95Ai3CYTA@HIDDEN>
 (David Fussner via's message of "Thu, 3 Feb 2022 15:09:22 +0000")
Message-ID: <86ilt84ct3.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/29.0.50
MIME-Version: 1.0
Content-Type: text/plain
X-Spam-Score: -2.3 (--)
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 (---)

David Fussner via "Bug reports for GNU Emacs, the Swiss army knife of
text editors" <bug-gnu-emacs@HIDDEN> writes:

> diff --git a/lib-src/etags.c b/lib-src/etags.c
> index aa5bc8839d..e5269aa456 100644
> --- a/lib-src/etags.c
> +++ b/lib-src/etags.c
> [...]
>  /* Default set of control sequences to put into TEX_toktab.
> -   The value of environment var TEXTAGS is prepended to this.  */
> +   The value of environment var TEXTAGS is prepended to this.
> +   (2021) Add variants of '\def', some additional LaTeX commands,
> +   and common variants from the 'etoolbox' package.  Also, add
> +   starred variants of the commands if they exist.  Starred
> +   variants need to appear before their unstarred versions. */
>  static const char *TEX_defenv = "\
> -:chapter:section:subsection:subsubsection:eqno:label:ref:cite:bibitem\
> -:part:appendix:entry:index:def\
> -:newcommand:renewcommand:newenvironment:renewenvironment";
> +:chapter*:section*:subsection*:subsubsection*:part*:label:ref\
> +:chapter:section:subsection:subsubsection:eqno:cite:bibitem\
> +:part:appendix:entry:index:def:edef:gdef:xdef:newcommand*:newcommand\
> +:renewcommand*:renewcommand:newenvironment*:newenvironment\
> +:renewenvironment*:renewenvironment:DeclareRobustCommand*\
> +:DeclareRobustCommand:renewrobustcmd*:renewrobustcmd:newrobustcmd*\
> +:newrobustcmd:let:csdef:csedef:csgdef:csxdef:csletcs:cslet";

Hi David,

thanks for looking into this.  While you're at it, can you also please
add support for the former xparse \newcommand variants which are now
(now is October 2020) part of LaTeX kernel, namely:

\NewDocumentCommand
\RenewDocumentCommand
\ProvideDocumentCommand
\DeclareDocumentCommand
\NewDocumentEnvironment
\RenewDocumentEnvironment
\ProvideDocumentEnvironment
\DeclareDocumentEnvironment
\NewExpandableDocumentCommand
\RenewExpandableDocumentCommand
\ProvideExpandableDocumentCommand
\DeclareExpandableDocumentCommand

TIA.  Best, Arash




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#53749: 29.0.50; [PATCH] Xref backend for TeX buffers
Resent-From: David Fussner <dfussner@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Mon, 21 Feb 2022 14:05:02 +0000
Resent-Message-ID: <handler.53749.B.164545225911741 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 53749
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: patch
To: Arash Esbati <arash@HIDDEN>
Cc: 53749 <at> debbugs.gnu.org
X-Debbugs-Original-Cc: 53749 <at> debbugs.gnu.org, "David Fussner via Bug reports for GNU Emacs, the Swiss army knife of text editors" <bug-gnu-emacs@HIDDEN>
Received: via spool by submit <at> debbugs.gnu.org id=B.164545225911741
          (code B ref -1); Mon, 21 Feb 2022 14:05:02 +0000
Received: (at submit) by debbugs.gnu.org; 21 Feb 2022 14:04:19 +0000
Received: from localhost ([127.0.0.1]:35499 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1nM9IZ-00033I-Ft
	for submit <at> debbugs.gnu.org; Mon, 21 Feb 2022 09:04:19 -0500
Received: from lists.gnu.org ([209.51.188.17]:44104)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <dfussner@HIDDEN>) id 1nM9IX-000333-B9
 for submit <at> debbugs.gnu.org; Mon, 21 Feb 2022 09:04:17 -0500
Received: from eggs.gnu.org ([209.51.188.92]:49238)
 by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <dfussner@HIDDEN>)
 id 1nM9IX-00064B-06
 for bug-gnu-emacs@HIDDEN; Mon, 21 Feb 2022 09:04:17 -0500
Received: from [2607:f8b0:4864:20::f31] (port=46746
 helo=mail-qv1-xf31.google.com)
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
 (Exim 4.90_1) (envelope-from <dfussner@HIDDEN>)
 id 1nM9IU-00069q-U7; Mon, 21 Feb 2022 09:04:16 -0500
Received: by mail-qv1-xf31.google.com with SMTP id n6so32215638qvk.13;
 Mon, 21 Feb 2022 06:04:12 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=googlemail.com; s=20210112;
 h=mime-version:references:in-reply-to:from:date:message-id:subject:to
 :cc; bh=tbA+9gMpO2xrFfW5c0c6cehf9bQbx7IHqA53ka/w0MQ=;
 b=p7Blm+hLznAjpaQuxIgRD/WNwzk5CLgLebBhVB7FjPXxqKxRIqJw1rmKjk8QFPU8FZ
 LjgKIgduXEOVHDcPcf/qh3NY6VGqNI07/TZDfJaVI4PpsgJktZXc5XiTAyCoGc9rHzHh
 zYJ2Pc7apUhYCeDGCLbslQo94xgTRkM5LJ8TlYSiomwV4H6lVCPhW7+cijvIMyncJjzr
 btYzK00jehPTuNkwN3Mo0QkfqMNSPoJTeDDQut9OwLwIXUoVCdPszwcxubK4EHZz7P5g
 ttyursOkQR2SVddtEWI+S9Gi0R0cSRbjyXEfrQDnrc+UNs/VwGLs0Wg0RXddjMFGPJVp
 lhTg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20210112;
 h=x-gm-message-state:mime-version:references:in-reply-to:from:date
 :message-id:subject:to:cc;
 bh=tbA+9gMpO2xrFfW5c0c6cehf9bQbx7IHqA53ka/w0MQ=;
 b=cUzU+h/SCdTX7j6918X/bR90H4pF4N8Ss7bFo2AWlvVZy7vxd3Kj40aSKB17SCQb81
 q3gX6DrPFwCWrKpBHP0xYcv0YWX+uXLICHcFGaVPF/3J3+fUdNOxlJAoeKemPgXCmUZ2
 74gRnWV2wMmXJjGzsE0EjVRLOKiJo7YRgWMq08BsRgmh9iDlACl99uZfVDpM6TYYCudF
 +edDblR5POnlVV8YD0An/6NZ49l4sEFJlzHJEWtGbLW+5mSLnxsJXuSJp3pQ7jFNxrjt
 ga/2Y+MtG/yVep+CffLmV5GOB6CQuB3iw4eXwa7p3HhrXQ7caaNs9gb/p4U/sIZq+9V4
 jP+g==
X-Gm-Message-State: AOAM533YqJz/vGxTwrEeAOGiGXwwwVdBk3q4vfesq0XjO64tqsOhpGzv
 KxQsojAiS137UmoNdvN2PFtGata5zNzE2iTv49WU0hIAbaLv8w==
X-Google-Smtp-Source: ABdhPJwvEznhZTsE6flTKk4Qk/5+X7NU+Srv3exT6qGoXZsdE3Ge1fDd4rm5Y2Vh3ccncvZ8Z40uAq03JOpSg+KjBvc=
X-Received: by 2002:a05:622a:64b:b0:2cf:1716:2344 with SMTP id
 a11-20020a05622a064b00b002cf17162344mr18167334qtb.635.1645452251686; Mon, 21
 Feb 2022 06:04:11 -0800 (PST)
MIME-Version: 1.0
References: <CADF+RtgWCLKQGwgdTNWmgesbcwq8iBxChoN8FqMOg95Ai3CYTA@HIDDEN>
 <86ilt84ct3.fsf@HIDDEN>
In-Reply-To: <86ilt84ct3.fsf@HIDDEN>
From: David Fussner <dfussner@HIDDEN>
Date: Mon, 21 Feb 2022 14:03:59 +0000
Message-ID: <CADF+Rtisx9fMC8eGLdXZ+YVfycXgNOkyX59cROjmxNj7hTeQTw@HIDDEN>
Content-Type: text/plain; charset="UTF-8"
X-Host-Lookup-Failed: Reverse DNS lookup failed for 2607:f8b0:4864:20::f31
 (failed)
Received-SPF: pass client-ip=2607:f8b0:4864:20::f31;
 envelope-from=dfussner@HIDDEN; helo=mail-qv1-xf31.google.com
X-Spam_score_int: -6
X-Spam_score: -0.7
X-Spam_bar: /
X-Spam_report: (-0.7 / 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,
 PDS_HP_HELO_NORDNS=0.659, RCVD_IN_DNSWL_NONE=-0.0001, RDNS_NONE=0.793,
 SPF_HELO_NONE=0.001, SPF_PASS=-0.001,
 T_SCC_BODY_TEXT_LINE=-0.01 autolearn=no autolearn_force=no
X-Spam_action: no action
X-Spam-Score: -1.3 (-)
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.3 (--)

Hi Arash,

Thank you for the list!  I had fully intended to add the new LaTeX 3
commands but managed somehow to forget.  If you see anything else I've
omitted please let me know.

David.

On Mon, 21 Feb 2022 at 12:36, Arash Esbati <arash@HIDDEN> wrote:
>
> David Fussner via "Bug reports for GNU Emacs, the Swiss army knife of
> text editors" <bug-gnu-emacs@HIDDEN> writes:
>
> > diff --git a/lib-src/etags.c b/lib-src/etags.c
> > index aa5bc8839d..e5269aa456 100644
> > --- a/lib-src/etags.c
> > +++ b/lib-src/etags.c
> > [...]
> >  /* Default set of control sequences to put into TEX_toktab.
> > -   The value of environment var TEXTAGS is prepended to this.  */
> > +   The value of environment var TEXTAGS is prepended to this.
> > +   (2021) Add variants of '\def', some additional LaTeX commands,
> > +   and common variants from the 'etoolbox' package.  Also, add
> > +   starred variants of the commands if they exist.  Starred
> > +   variants need to appear before their unstarred versions. */
> >  static const char *TEX_defenv = "\
> > -:chapter:section:subsection:subsubsection:eqno:label:ref:cite:bibitem\
> > -:part:appendix:entry:index:def\
> > -:newcommand:renewcommand:newenvironment:renewenvironment";
> > +:chapter*:section*:subsection*:subsubsection*:part*:label:ref\
> > +:chapter:section:subsection:subsubsection:eqno:cite:bibitem\
> > +:part:appendix:entry:index:def:edef:gdef:xdef:newcommand*:newcommand\
> > +:renewcommand*:renewcommand:newenvironment*:newenvironment\
> > +:renewenvironment*:renewenvironment:DeclareRobustCommand*\
> > +:DeclareRobustCommand:renewrobustcmd*:renewrobustcmd:newrobustcmd*\
> > +:newrobustcmd:let:csdef:csedef:csgdef:csxdef:csletcs:cslet";
>
> Hi David,
>
> thanks for looking into this.  While you're at it, can you also please
> add support for the former xparse \newcommand variants which are now
> (now is October 2020) part of LaTeX kernel, namely:
>
> \NewDocumentCommand
> \RenewDocumentCommand
> \ProvideDocumentCommand
> \DeclareDocumentCommand
> \NewDocumentEnvironment
> \RenewDocumentEnvironment
> \ProvideDocumentEnvironment
> \DeclareDocumentEnvironment
> \NewExpandableDocumentCommand
> \RenewExpandableDocumentCommand
> \ProvideExpandableDocumentCommand
> \DeclareExpandableDocumentCommand
>
> TIA.  Best, Arash




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#53749: 29.0.50; [PATCH] Xref backend for TeX buffers
Resent-From: David Fussner <dfussner@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Mon, 21 Feb 2022 14:05:02 +0000
Resent-Message-ID: <handler.53749.B53749.164545226011747 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 53749
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: patch
To: Arash Esbati <arash@HIDDEN>
Cc: 53749 <at> debbugs.gnu.org
X-Debbugs-Original-Cc: 53749 <at> debbugs.gnu.org, "David Fussner via Bug reports for GNU Emacs, the Swiss army knife of text editors" <bug-gnu-emacs@HIDDEN>
Received: via spool by 53749-submit <at> debbugs.gnu.org id=B53749.164545226011747
          (code B ref 53749); Mon, 21 Feb 2022 14:05:02 +0000
Received: (at 53749) by debbugs.gnu.org; 21 Feb 2022 14:04:20 +0000
Received: from localhost ([127.0.0.1]:35501 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1nM9IZ-00033K-QD
	for submit <at> debbugs.gnu.org; Mon, 21 Feb 2022 09:04:20 -0500
Received: from mail-qv1-f43.google.com ([209.85.219.43]:45785)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <dfussner@HIDDEN>) id 1nM9IX-00032w-9X
 for 53749 <at> debbugs.gnu.org; Mon, 21 Feb 2022 09:04:18 -0500
Received: by mail-qv1-f43.google.com with SMTP id c14so32255917qvl.12
 for <53749 <at> debbugs.gnu.org>; Mon, 21 Feb 2022 06:04:17 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=googlemail.com; s=20210112;
 h=mime-version:references:in-reply-to:from:date:message-id:subject:to
 :cc; bh=tbA+9gMpO2xrFfW5c0c6cehf9bQbx7IHqA53ka/w0MQ=;
 b=p7Blm+hLznAjpaQuxIgRD/WNwzk5CLgLebBhVB7FjPXxqKxRIqJw1rmKjk8QFPU8FZ
 LjgKIgduXEOVHDcPcf/qh3NY6VGqNI07/TZDfJaVI4PpsgJktZXc5XiTAyCoGc9rHzHh
 zYJ2Pc7apUhYCeDGCLbslQo94xgTRkM5LJ8TlYSiomwV4H6lVCPhW7+cijvIMyncJjzr
 btYzK00jehPTuNkwN3Mo0QkfqMNSPoJTeDDQut9OwLwIXUoVCdPszwcxubK4EHZz7P5g
 ttyursOkQR2SVddtEWI+S9Gi0R0cSRbjyXEfrQDnrc+UNs/VwGLs0Wg0RXddjMFGPJVp
 lhTg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20210112;
 h=x-gm-message-state:mime-version:references:in-reply-to:from:date
 :message-id:subject:to:cc;
 bh=tbA+9gMpO2xrFfW5c0c6cehf9bQbx7IHqA53ka/w0MQ=;
 b=C71xhIm4y5c58lldw449/Wahoo9TWHIECT7kO3ZtoavlEkR9s+xcAGrcZAiZnyDZac
 SPMB+YwJcxGKFr7gJBlhPyvHKHdZ+X6AqN5j8xoJF1hZ9QNg6Xf82gJKHBus/eBbuzah
 D7mQKGEa/+fYkTT/fPCsQDBMRmzUJc/NsG4JUr1mETUrNP7orsNdcXgKZn8WBFTJyMpu
 JQDry1d/W82QQsvZnkV0WmFpSEg1FbW1MG5fqbUl0AeSk2//D+dYpHTWjJQGmq8dF0i9
 fRsQwAwRboOPUwpuNvMfNbAVA3pbSbF6ibIiLzRn7OkCuZSMv8mCyjwpxoeQYLYF5Fsu
 aBrg==
X-Gm-Message-State: AOAM533HVT9Kst0vuW9qyPeGKig+qjWjUMkGZml4/VB7RQahQqBlFlX7
 uOMKkvyRXp2QrCUmgtmsxi155AK4xaD/RkHL3JyydkDypVKVxw==
X-Google-Smtp-Source: ABdhPJwvEznhZTsE6flTKk4Qk/5+X7NU+Srv3exT6qGoXZsdE3Ge1fDd4rm5Y2Vh3ccncvZ8Z40uAq03JOpSg+KjBvc=
X-Received: by 2002:a05:622a:64b:b0:2cf:1716:2344 with SMTP id
 a11-20020a05622a064b00b002cf17162344mr18167334qtb.635.1645452251686; Mon, 21
 Feb 2022 06:04:11 -0800 (PST)
MIME-Version: 1.0
References: <CADF+RtgWCLKQGwgdTNWmgesbcwq8iBxChoN8FqMOg95Ai3CYTA@HIDDEN>
 <86ilt84ct3.fsf@HIDDEN>
In-Reply-To: <86ilt84ct3.fsf@HIDDEN>
From: David Fussner <dfussner@HIDDEN>
Date: Mon, 21 Feb 2022 14:03:59 +0000
Message-ID: <CADF+Rtisx9fMC8eGLdXZ+YVfycXgNOkyX59cROjmxNj7hTeQTw@HIDDEN>
Content-Type: text/plain; charset="UTF-8"
X-Spam-Score: -0.0 (/)
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: -1.0 (-)

Hi Arash,

Thank you for the list!  I had fully intended to add the new LaTeX 3
commands but managed somehow to forget.  If you see anything else I've
omitted please let me know.

David.

On Mon, 21 Feb 2022 at 12:36, Arash Esbati <arash@HIDDEN> wrote:
>
> David Fussner via "Bug reports for GNU Emacs, the Swiss army knife of
> text editors" <bug-gnu-emacs@HIDDEN> writes:
>
> > diff --git a/lib-src/etags.c b/lib-src/etags.c
> > index aa5bc8839d..e5269aa456 100644
> > --- a/lib-src/etags.c
> > +++ b/lib-src/etags.c
> > [...]
> >  /* Default set of control sequences to put into TEX_toktab.
> > -   The value of environment var TEXTAGS is prepended to this.  */
> > +   The value of environment var TEXTAGS is prepended to this.
> > +   (2021) Add variants of '\def', some additional LaTeX commands,
> > +   and common variants from the 'etoolbox' package.  Also, add
> > +   starred variants of the commands if they exist.  Starred
> > +   variants need to appear before their unstarred versions. */
> >  static const char *TEX_defenv = "\
> > -:chapter:section:subsection:subsubsection:eqno:label:ref:cite:bibitem\
> > -:part:appendix:entry:index:def\
> > -:newcommand:renewcommand:newenvironment:renewenvironment";
> > +:chapter*:section*:subsection*:subsubsection*:part*:label:ref\
> > +:chapter:section:subsection:subsubsection:eqno:cite:bibitem\
> > +:part:appendix:entry:index:def:edef:gdef:xdef:newcommand*:newcommand\
> > +:renewcommand*:renewcommand:newenvironment*:newenvironment\
> > +:renewenvironment*:renewenvironment:DeclareRobustCommand*\
> > +:DeclareRobustCommand:renewrobustcmd*:renewrobustcmd:newrobustcmd*\
> > +:newrobustcmd:let:csdef:csedef:csgdef:csxdef:csletcs:cslet";
>
> Hi David,
>
> thanks for looking into this.  While you're at it, can you also please
> add support for the former xparse \newcommand variants which are now
> (now is October 2020) part of LaTeX kernel, namely:
>
> \NewDocumentCommand
> \RenewDocumentCommand
> \ProvideDocumentCommand
> \DeclareDocumentCommand
> \NewDocumentEnvironment
> \RenewDocumentEnvironment
> \ProvideDocumentEnvironment
> \DeclareDocumentEnvironment
> \NewExpandableDocumentCommand
> \RenewExpandableDocumentCommand
> \ProvideExpandableDocumentCommand
> \DeclareExpandableDocumentCommand
>
> TIA.  Best, Arash




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#53749: 29.0.50; [PATCH] Xref backend for TeX buffers
Resent-From: David Fussner <dfussner@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Mon, 21 Feb 2022 17:29:02 +0000
Resent-Message-ID: <handler.53749.B53749.164546453315686 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 53749
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: patch
To: Dmitry Gutov <dgutov@HIDDEN>
Cc: 53749 <at> debbugs.gnu.org
Received: via spool by 53749-submit <at> debbugs.gnu.org id=B53749.164546453315686
          (code B ref 53749); Mon, 21 Feb 2022 17:29:02 +0000
Received: (at 53749) by debbugs.gnu.org; 21 Feb 2022 17:28:53 +0000
Received: from localhost ([127.0.0.1]:38889 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1nMCUW-00044u-MC
	for submit <at> debbugs.gnu.org; Mon, 21 Feb 2022 12:28:53 -0500
Received: from mail-qk1-f182.google.com ([209.85.222.182]:36834)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <dfussner@HIDDEN>) id 1nMCUV-00044j-8h
 for 53749 <at> debbugs.gnu.org; Mon, 21 Feb 2022 12:28:51 -0500
Received: by mail-qk1-f182.google.com with SMTP id g24so17621680qkl.3
 for <53749 <at> debbugs.gnu.org>; Mon, 21 Feb 2022 09:28:51 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=googlemail.com; s=20210112;
 h=mime-version:references:in-reply-to:from:date:message-id:subject:to
 :cc; bh=BCBkOuF/XYtWwt5r1aCpOf2Q0hFDUAio+xUcfMIxueM=;
 b=pqZ8Ks7PTPJXJcnVCbGzUaTf8T+NYXYca530XnLhMQPo3wtic9XfeXjvF7MMzmCBEZ
 QaZTcZnQlJfr6g4UF3FFfhmVjkBBS0XeP3To0LmEcoyCZHfQoANw6EVOs6FGiKLFg4oV
 /hBH9JQVu5N7a4qTQtWIGEjqsMA/aMv2cP9h0Ya5YDhs+0NwnH1Q6qdhInpfvZkEu35C
 FQnheptHqjMtTFzIR3PoVFvTjYlxLtZ5ucSjnd/JjtOOZo4HfhUW6LV8pLdRLOzhzQ04
 7VApmmWXQr66c/OqPZLUpiLffpyAEdcZPV3HhMlkGDKnxEiz7NIUJfApeCkLlLtxh7RV
 MaAA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20210112;
 h=x-gm-message-state:mime-version:references:in-reply-to:from:date
 :message-id:subject:to:cc;
 bh=BCBkOuF/XYtWwt5r1aCpOf2Q0hFDUAio+xUcfMIxueM=;
 b=KLxGn2g2KZHuT+uix7aRh4DpFRefAze0AXBsu8vMF2rSjd2frxOTjWpN5OrK0XxGMt
 0B4iu1hjgac/iHTmZHNt/OdQe+66Tn8DyET/IIE9tMjLtoee+TrUW8KhFKGkgJZtwZ+4
 qp+h887njnFwC3OmljgU9pdTFCp4daVK0quNYqj7ZGfkaBAcU7M9YUfcH24zs29YvTvd
 8mRpEusG/mPiCGgkfJDKeTrD/lFQBBzJl0WSwycxH3owvq2X21ldy2tCNc8SezuIy69W
 Xm76mwr7PBLa9+wj81c0KIaho98qqXRwuJdcgjiPT5uOsb4UhZdwgHgDxewBWMU9o6gA
 qNxw==
X-Gm-Message-State: AOAM532hYy3TgkCp7am54D3Arl0HHFGU8aOEN6ct46SIGKyE1/XyVpLt
 paBB9X5fIPFj5UmdTCRonpIULsu08ueiV4xjtVA=
X-Google-Smtp-Source: ABdhPJwVP7clZeBYCb50fHFvHEzIjmyckuv0OYccVW97cztK1zc/P22+/bG1p77yhGjTV2xSfrL7eiBsDtUgIN5O+Uk=
X-Received: by 2002:a37:4147:0:b0:47c:4595:b8c with SMTP id
 o68-20020a374147000000b0047c45950b8cmr12878581qka.267.1645464525701; Mon, 21
 Feb 2022 09:28:45 -0800 (PST)
MIME-Version: 1.0
References: <CADF+RtgWCLKQGwgdTNWmgesbcwq8iBxChoN8FqMOg95Ai3CYTA@HIDDEN>
 <1de34060-e93b-0a42-fff5-20e283abe0dc@HIDDEN>
 <CADF+RthLfZVgu72wnPXf2=w-gnKZT+4eWR_kmDVMnFvBY8f1XQ@HIDDEN>
In-Reply-To: <CADF+RthLfZVgu72wnPXf2=w-gnKZT+4eWR_kmDVMnFvBY8f1XQ@HIDDEN>
From: David Fussner <dfussner@HIDDEN>
Date: Mon, 21 Feb 2022 17:28:32 +0000
Message-ID: <CADF+Rtho+2qOpGB6hn-Cpyx4qrUJd9c3+wAxsGtySi75pxzbsQ@HIDDEN>
Content-Type: text/plain; charset="UTF-8"
X-Spam-Score: -0.0 (/)
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: -1.0 (-)

Hi Dmitry,

I found a bit of time to test, and the problem with "@" in command
names appears when a search string for xref-find-references ends with
"@". The results returned will miss out valid hits, depending on what
follows the "@" in the actual command name in the TeX file.

Hope this might help,

David.

On Mon, 21 Feb 2022 at 09:48, David Fussner <dfussner@HIDDEN> wrote:
>
> (Resending to include the mailing list -- sorry!)
>
> Hi Dmitry,
>
> Many thanks for looking into this.
>
> >
> > So if your main goal was to alter which string gets searched for (based
> > on text around point), you can define a function which returns the
> > necessary string (as you did in the patch) and then either set
> > 'find-tag-default-function' to that function, or put it on the
> > 'find-tag-default-function' property for the respective major mode
> > functions.
> >
> > > There are many other behaviors that are suboptimal, as well, so in the
> > > end I wrote a new xref backend for TeX buffers (cloning large portions
> > > of the default etags backend), and wondered whether it might be welcome
> > > in GNU Emacs.
> >
> > Could you point out the other changes which were required?
>
> As you've noticed, I tried at first to get by without a new backend,
> but I ran into a few issues that I couldn't solve that way, hence the
> current patch.  A couple of examples:
>
> 1. TeX is very generous with the characters it includes in its
> symbols, so what looks like a standard symbol to it can look like a
> regexp either to grep or to emacs, so I needed to changes things in
> xref-find-apropos and in xref-find-references to take this into
> account.  (See tex-xref-apropos-regexp and
> tex-xref-references-in-directory.)  Sometimes using a search string
> that had been put through regexp-quote was wrong, as when a user
> provided their own regexp in the minibuffer, so in both those cases I
> provided fallbacks to a different search in case the default search
> came up empty.  I couldn't see how to do this without a new backend.
>
> 2.  A package like biblatex creates what amounts to a separate
> namespace using the \newbibmacro mechanism, so pretty much every
> biblatex style has both a \cite command and a cite bibmacro, and I
> wanted to allow emacs to differentiate between them when using
> xref-find-definitions.  Because users of the etoolbox package (like
> biblatex) may well mix commands with and without the escape char "\",
> I also provided a variable to allow users to find when a \command is
> called using \csuse{command} instead.  Again, this required a fallback
> search (see xref-backend-definitions) which I couldn't see how to
> provide without a new backend.
>
> Does this make any sense?  I can give more specific examples if you
> like -- try running xref-find-references on a TeX command with "@" in
> it.  (If memory serves, that behaved badly here on an unpatched emacs,
> but maybe I'm misremembering.)
>
> David.
>
> On Mon, 21 Feb 2022 at 02:11, Dmitry Gutov <dgutov@HIDDEN> wrote:
> >
> > Hi!
> >
> > Let us first discuss whether we could make do without an additional Xref
> > backend. Just to make sure.
> >
> > On 03.02.2022 17:09, David Fussner via Bug reports for GNU Emacs, the
> > Swiss army knife of text editors wrote:
> > > Similarly, any xref command on 'my:citekey' will only search by default
> > > for the half of the symbol under point, stopping at the colon.
> >
> > etags's implementation of 'xref-backend-identifier-at-point' calls
> > 'find-tag--default', which consults 'find-tag-default-function' and
> > (get major-mode 'find-tag-default-function).
> >
> > So if your main goal was to alter which string gets searched for (based
> > on text around point), you can define a function which returns the
> > necessary string (as you did in the patch) and then either set
> > 'find-tag-default-function' to that function, or put it on the
> > 'find-tag-default-function' property for the respective major mode
> > functions.
> >
> > > There are many other behaviors that are suboptimal, as well, so in the
> > > end I wrote a new xref backend for TeX buffers (cloning large portions
> > > of the default etags backend), and wondered whether it might be welcome
> > > in GNU Emacs.
> >
> > Could you point out the other changes which were required?




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#53749: 29.0.50; [PATCH] Xref backend for TeX buffers
Resent-From: Dmitry Gutov <dgutov@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Mon, 21 Feb 2022 23:56:02 +0000
Resent-Message-ID: <handler.53749.B53749.164548772724675 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 53749
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: patch
To: David Fussner <dfussner@HIDDEN>
Cc: 53749 <at> debbugs.gnu.org
Received: via spool by 53749-submit <at> debbugs.gnu.org id=B53749.164548772724675
          (code B ref 53749); Mon, 21 Feb 2022 23:56:02 +0000
Received: (at 53749) by debbugs.gnu.org; 21 Feb 2022 23:55:27 +0000
Received: from localhost ([127.0.0.1]:39446 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1nMIWd-0006Pv-0c
	for submit <at> debbugs.gnu.org; Mon, 21 Feb 2022 18:55:27 -0500
Received: from mail-wr1-f41.google.com ([209.85.221.41]:35429)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <raaahh@HIDDEN>) id 1nMIWb-0006Pi-Nh
 for 53749 <at> debbugs.gnu.org; Mon, 21 Feb 2022 18:55:26 -0500
Received: by mail-wr1-f41.google.com with SMTP id v12so29726944wrv.2
 for <53749 <at> debbugs.gnu.org>; Mon, 21 Feb 2022 15:55:25 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112;
 h=sender:message-id:date:mime-version:user-agent:subject
 :content-language:to:cc:references:from:in-reply-to
 :content-transfer-encoding;
 bh=B7te4GuvmMyfYys9xDt9q3fBa9U0/nQRVKJFMFpgaJA=;
 b=ThdX5Vs1+f96p+jUhnaLMHURcGC6BDnHapbsk7OrvZCuwjD1LnzX1G0JJ/xxtgTDaT
 4obiYYgKBFuX3+UvASPy/vrqiWQIbkzq71cE8EXI27lp+Bx+3CywJgg/HYzTIAwsWpFF
 xFtARrjaF5xkoYXgRIJWA6Uj4kFjUwcmYTzFYG/VUdloYb1X+ufBokstMZdoP6OI3RQO
 kxD+72gxculgR2NCrJBcP3gCHnLn6TZcwKuWQk+KNESRPwrfoTYMvy8X9LVOuBCG5qf+
 ySjHGcxhTO68EFoa6PAaQK9qkAgHvz6Jh6dktjRhRC0Cjad9St1gOHNU8rBEDR+k2Iye
 K3sA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20210112;
 h=x-gm-message-state:sender:message-id:date:mime-version:user-agent
 :subject:content-language:to:cc:references:from:in-reply-to
 :content-transfer-encoding;
 bh=B7te4GuvmMyfYys9xDt9q3fBa9U0/nQRVKJFMFpgaJA=;
 b=Q0X2S1D5ipC+DRTD8eX8p0lyVhNcgugQUJ/f76YWROVdsvdTtbw4/WnJLwAygEcI/E
 h9L2gbamV3VlAJ6x3Kj1yC4OWzlJu2XM22Tjq8nfXCCUFtzR03YsewC3X7C/Dotu6xcj
 XtjrIiskQI4Sf4PSgWhK0j0V49rzhJ9wA9p+FOSfLvamIb45fm4WqTdz3QZSpE/Nmni9
 o2/oWQluZ293YE8jRI7FYNddX/KEMZgFbtYlkAY6HrvofDNVnlGU+5ciubCYx4L9tpz5
 fkE5K4kEJOa7HhfLiGo25hwfR2iSVpxzpTgOmvPnoZZoizzI6Z79RXa1mtN4RptRA0Yk
 F/vw==
X-Gm-Message-State: AOAM533FxLWMPKJ177iyF36D7WrcSQl1rym6W5aIKDdLw661Y8d0WqpU
 nUtH6q9QacdCZ3eNwF+DZ0U=
X-Google-Smtp-Source: ABdhPJyK7DNMvOKKQoHFFmTdMfiWUCrT8w6+8oZaIYVjqvdl42rpcPPQb7DVd95Pg373zlUXo+o0xA==
X-Received: by 2002:adf:ea4f:0:b0:1e7:447d:2111 with SMTP id
 j15-20020adfea4f000000b001e7447d2111mr17588933wrn.66.1645487719607; 
 Mon, 21 Feb 2022 15:55:19 -0800 (PST)
Received: from [192.168.0.6] ([46.251.119.176])
 by smtp.googlemail.com with ESMTPSA id w18sm34127613wrl.62.2022.02.21.15.55.18
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 21 Feb 2022 15:55:18 -0800 (PST)
Message-ID: <a4262804-f70a-a845-4b1a-fadcbba7444c@HIDDEN>
Date: Tue, 22 Feb 2022 01:55:17 +0200
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101
 Thunderbird/91.5.0
Content-Language: en-US
References: <CADF+RtgWCLKQGwgdTNWmgesbcwq8iBxChoN8FqMOg95Ai3CYTA@HIDDEN>
 <1de34060-e93b-0a42-fff5-20e283abe0dc@HIDDEN>
 <CADF+RthLfZVgu72wnPXf2=w-gnKZT+4eWR_kmDVMnFvBY8f1XQ@HIDDEN>
From: Dmitry Gutov <dgutov@HIDDEN>
In-Reply-To: <CADF+RthLfZVgu72wnPXf2=w-gnKZT+4eWR_kmDVMnFvBY8f1XQ@HIDDEN>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-Spam-Score: 0.5 (/)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -0.5 (/)

On 21.02.2022 11:48, David Fussner wrote:
> Sometimes using a search string
> that had been put through regexp-quote was wrong, as when a user
> provided their own regexp in the minibuffer, so in both those cases I
> provided fallbacks to a different search in case the default search
> came up empty.  I couldn't see how to do this without a new backend.

One way to deal with that is to treat all user inputs as regexps there. 
Perhaps some will have to be more verbose that ideal, but as long as the 
user is familiar with the regexp syntax, the behavior will be both 
powerful and predictable.

> 2.  A package like biblatex creates what amounts to a separate
> namespace using the \newbibmacro mechanism, so pretty much every
> biblatex style has both a \cite command and a cite bibmacro, and I
> wanted to allow emacs to differentiate between them when using
> xref-find-definitions.  Because users of the etoolbox package (like
> biblatex) may well mix commands with and without the escape char "\",
> I also provided a variable to allow users to find when a \command is
> called using \csuse{command} instead.  Again, this required a fallback
> search (see xref-backend-definitions) which I couldn't see how to
> provide without a new backend.

Could those be be disambiguated when the tags are scanned, instead? Then 
the user will tailor their input to find the one or the other.

Or if we want more fuzzier matching, perhaps creating mode-specific 
values of etags-xref-find-definitions-tag-order could help.




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#53749: 29.0.50; [PATCH] Xref backend for TeX buffers
Resent-From: Dmitry Gutov <dgutov@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Mon, 21 Feb 2022 23:57:02 +0000
Resent-Message-ID: <handler.53749.B53749.164548777624776 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 53749
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: patch
To: David Fussner <dfussner@HIDDEN>
Cc: 53749 <at> debbugs.gnu.org
Received: via spool by 53749-submit <at> debbugs.gnu.org id=B53749.164548777624776
          (code B ref 53749); Mon, 21 Feb 2022 23:57:02 +0000
Received: (at 53749) by debbugs.gnu.org; 21 Feb 2022 23:56:16 +0000
Received: from localhost ([127.0.0.1]:39451 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1nMIXQ-0006RY-Ak
	for submit <at> debbugs.gnu.org; Mon, 21 Feb 2022 18:56:16 -0500
Received: from mail-wr1-f50.google.com ([209.85.221.50]:37488)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <raaahh@HIDDEN>) id 1nMIXO-0006RH-Q6
 for 53749 <at> debbugs.gnu.org; Mon, 21 Feb 2022 18:56:15 -0500
Received: by mail-wr1-f50.google.com with SMTP id d28so1922916wra.4
 for <53749 <at> debbugs.gnu.org>; Mon, 21 Feb 2022 15:56:14 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112;
 h=sender:message-id:date:mime-version:user-agent:subject
 :content-language:to:cc:references:from:in-reply-to
 :content-transfer-encoding;
 bh=voa8vLbt/1s1nbhtugRyLqihym+kFeb4bt3qDFoXWKg=;
 b=HSAfbWP8DISp96/EhXq77Fk3svQtxBGkxW0vaWOdpPKxYQMyc2Rx0Rs5ILtLn9TeWQ
 EPTs5VDfkRPQxYurNtFxnOzmOh5r2g2PcFczmL2/yrqJ7thUipD9BldKZdMaXyAD5mtd
 4AtHV+ub4gXUJTcmycUhiRXE616KDe4V2g8x2ZaAB+byD/YFcOK4P2AQAULuJxtYAM4s
 guLnaS0hTrBQrE8Sdc/buY2Y5XelOghg+ybJ6GQegwTdAuqiIm0C7c9IZGZbPKxPfIqq
 qGyELnqSUSrSe7hyAYyTUKBKyoEFWhj9+3+Ui2FPKDaYzUDbACI0NZfAR8OKtpXC9BGl
 nonw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20210112;
 h=x-gm-message-state:sender:message-id:date:mime-version:user-agent
 :subject:content-language:to:cc:references:from:in-reply-to
 :content-transfer-encoding;
 bh=voa8vLbt/1s1nbhtugRyLqihym+kFeb4bt3qDFoXWKg=;
 b=iUTGJk8spuV0BS6RAJujD6xeIUWRm2SnOGMLERzzo+i2gvfpHSnpd0rk4QMnKdq7lW
 Jv/fuU0RzaBi3eWbGhbbtiGEqKydc7Jp+OknJhTKk22iuFPHmBEFx7R0U45lRGPtlXwL
 vgmLQGbaTpvRaVHiN/r+oERgORFRvJ6FGCdEsxfTfTgZOSgJMe1+WxrxNdXEsf/7n7Q+
 LazJFgQC/INvfagsBgoaGaqsDqo3h+AY/JSXxF820s25MsC1KOmIQWvEo3jzNF6IlZKN
 ODkXhZN/xN0Gpyt+92ZMFOjEwuWX3O4OnnIZ8rTcfes0r9NQf03aaBDzYybwpxT1c59m
 aPhw==
X-Gm-Message-State: AOAM530MTcVeSLqHUu+5DAwmT9MODrglWk/u7umBV3Dmncy4rcgvg0Hf
 rg1spvEB8m9VDgUxZ2WhOkU=
X-Google-Smtp-Source: ABdhPJzXnFuZYKVsk7ubjkb3rCjvQvTbQ2+/v+1egOCqnZsAPkjZWjYE00McuMqYmm3BxzHJLRthCA==
X-Received: by 2002:a5d:5986:0:b0:1ea:75c6:3d0a with SMTP id
 n6-20020a5d5986000000b001ea75c63d0amr2771442wri.166.1645487769184; 
 Mon, 21 Feb 2022 15:56:09 -0800 (PST)
Received: from [192.168.0.6] ([46.251.119.176])
 by smtp.googlemail.com with ESMTPSA id q76sm795098wme.1.2022.02.21.15.56.07
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 21 Feb 2022 15:56:08 -0800 (PST)
Message-ID: <2f41ba40-9c3f-ac65-ef0d-300bd11c4867@HIDDEN>
Date: Tue, 22 Feb 2022 01:56:07 +0200
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101
 Thunderbird/91.5.0
Content-Language: en-US
References: <CADF+RtgWCLKQGwgdTNWmgesbcwq8iBxChoN8FqMOg95Ai3CYTA@HIDDEN>
 <1de34060-e93b-0a42-fff5-20e283abe0dc@HIDDEN>
 <CADF+RthLfZVgu72wnPXf2=w-gnKZT+4eWR_kmDVMnFvBY8f1XQ@HIDDEN>
 <CADF+Rtho+2qOpGB6hn-Cpyx4qrUJd9c3+wAxsGtySi75pxzbsQ@HIDDEN>
From: Dmitry Gutov <dgutov@HIDDEN>
In-Reply-To: <CADF+Rtho+2qOpGB6hn-Cpyx4qrUJd9c3+wAxsGtySi75pxzbsQ@HIDDEN>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-Spam-Score: 0.5 (/)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -0.5 (/)

On 21.02.2022 19:28, David Fussner wrote:
> Hi Dmitry,
> 
> I found a bit of time to test, and the problem with "@" in command
> names appears when a search string for xref-find-references ends with
> "@". The results returned will miss out valid hits, depending on what
> follows the "@" in the actual command name in the TeX file.

Sorry, I have very little familiarity with TeX.

Do you have a step-by-step scenario? Perhaps using one of the .texi 
manuals already existing in the repo?




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#53749: 29.0.50; [PATCH] Xref backend for TeX buffers
Resent-From: David Fussner <dfussner@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Tue, 22 Feb 2022 15:20:01 +0000
Resent-Message-ID: <handler.53749.B53749.16455431891236 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 53749
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: patch
To: Dmitry Gutov <dgutov@HIDDEN>
Cc: 53749 <at> debbugs.gnu.org
Received: via spool by 53749-submit <at> debbugs.gnu.org id=B53749.16455431891236
          (code B ref 53749); Tue, 22 Feb 2022 15:20:01 +0000
Received: (at 53749) by debbugs.gnu.org; 22 Feb 2022 15:19:49 +0000
Received: from localhost ([127.0.0.1]:42372 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1nMWxA-0000Js-Of
	for submit <at> debbugs.gnu.org; Tue, 22 Feb 2022 10:19:49 -0500
Received: from mail-qv1-f53.google.com ([209.85.219.53]:39476)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <dfussner@HIDDEN>) id 1nMWx9-0000Jg-HJ
 for 53749 <at> debbugs.gnu.org; Tue, 22 Feb 2022 10:19:48 -0500
Received: by mail-qv1-f53.google.com with SMTP id a1so1812144qvl.6
 for <53749 <at> debbugs.gnu.org>; Tue, 22 Feb 2022 07:19:47 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=googlemail.com; s=20210112;
 h=mime-version:references:in-reply-to:from:date:message-id:subject:to
 :cc; bh=SfYAfmYsi50+ee/1Moo5O7y7aqGh9KvJHZHat2yssAA=;
 b=cZpOI8QbKBkrlVQJ+j6OcRRUnfIWSTDZfTRlxRO9AffWeKUsoJpZy/HFM097HB55Ut
 PaHwc1J6Yjrki6/FtuRng9R6DTTHqo9azWQo3Q3B72E1vEVZ/SnbuG3OyBMobxdmnZQO
 CuepEmwWeDBFXTch9yfdAAx37tMgBxRBLCToIi6Czah+Ad7sGJ0bxeh5FuUwIfCfB7Q4
 pvQbx/hxUveiBDmyCE77TUTQoT2jE4gZPhsqzvsuSNgm+1KTgu2Mgv6caU6OC1XN8bSu
 FmQ7isFmB7CLI/QwJfGOjte2iOZvarOkmm8pMg/PrEoNtTatgFl3lFdKkYrZXt2ScqjR
 NiRw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20210112;
 h=x-gm-message-state:mime-version:references:in-reply-to:from:date
 :message-id:subject:to:cc;
 bh=SfYAfmYsi50+ee/1Moo5O7y7aqGh9KvJHZHat2yssAA=;
 b=M/tajhNWGSfqv4aJuGqz5XIjiRjYYHLkFMBjwf736j22qJM5JEiI+ATn6xMh8qyj9e
 55t7uAw2LRwEgn4KAeEFNlOWfW/k6Du/vNAtqT95A7sRBlLiWSHa9pwHM1Jc/eJeHWRX
 Y48+DWo8S/pGuaIan6LvSWUBJaX3giv+NXKZlpE2vrH9pk3/paR0N4BLK1/1h0UkdTF1
 /D+zwMk2f3wN/il/sEU4qFGX9n6MUrmvaMM1oOWA69EC83RiU/+7E22qOU+x9m6lQp5F
 H8Qko0iTEgLtU3l7zNPSx2JuFiHRa5vMymijEuhyvv9PgesGXlAxMqQmLVCc7bjGJuOg
 gSPw==
X-Gm-Message-State: AOAM531NLcUW8VxSU0LywXekcLQaW+BkPRgRKT7UUD+3rExSQ9V6F7uz
 g3AiNH4WNgiLBXvTCqO3CFYNmeYZopjP6gcWWrNyPt1rREtXug==
X-Google-Smtp-Source: ABdhPJwZI/PUxBY23lzDesrkBP+eeXe4XMqdNQvarZSp18mx0JCI4D28f6SuiHdwnDz6zdgYJff+Ss/8DiRKs0XhWRw=
X-Received: by 2002:ac8:5c4f:0:b0:2dc:8e84:b0ac with SMTP id
 j15-20020ac85c4f000000b002dc8e84b0acmr22774982qtj.536.1645543181717; Tue, 22
 Feb 2022 07:19:41 -0800 (PST)
MIME-Version: 1.0
References: <CADF+RtgWCLKQGwgdTNWmgesbcwq8iBxChoN8FqMOg95Ai3CYTA@HIDDEN>
 <1de34060-e93b-0a42-fff5-20e283abe0dc@HIDDEN>
 <CADF+RthLfZVgu72wnPXf2=w-gnKZT+4eWR_kmDVMnFvBY8f1XQ@HIDDEN>
 <CADF+Rtho+2qOpGB6hn-Cpyx4qrUJd9c3+wAxsGtySi75pxzbsQ@HIDDEN>
 <2f41ba40-9c3f-ac65-ef0d-300bd11c4867@HIDDEN>
In-Reply-To: <2f41ba40-9c3f-ac65-ef0d-300bd11c4867@HIDDEN>
From: David Fussner <dfussner@HIDDEN>
Date: Tue, 22 Feb 2022 15:19:29 +0000
Message-ID: <CADF+Rth7ZYNk5vKo8FCkDvP1maFSJkje6h6Fyi+GA_7uVQxsEQ@HIDDEN>
Content-Type: multipart/alternative; boundary="000000000000cf132205d89ce09f"
X-Spam-Score: -0.0 (/)
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: -1.0 (-)

--000000000000cf132205d89ce09f
Content-Type: text/plain; charset="UTF-8"

Hi Dmitry,

> Do you have a step-by-step scenario? Perhaps using one of the .texi
> manuals already existing in the repo?

I can't find a good example in the emacs repo, but I'll try to talk through
what happens with a code snippet from biblatex.sty, which I hope will
explain some of the issues we're discussing, even if it is a little
artificial.

\DeclareBiblatexOption{global,type}[string]{uniquename}[true]{%
  \ifcsdef{blx@opt@uniquename@#1}
    {\letcs\blx@uniquename{blx@opt@uniquename@#1}}
    {\blx@err@invopt{uniquename=#1}{}}}
\def\blx@opt@uniquename@false{false}
\def\blx@opt@uniquename@init{init}
\def\blx@opt@uniquename@true{full}
\def\blx@opt@uniquename@full{full}
\def\blx@opt@uniquename@allinit{allinit}
\def\blx@opt@uniquename@allfull{allfull}
\def\blx@opt@uniquename@mininit{mininit}
\def\blx@opt@uniquename@minfull{minfull}

If you do M-? on \ifcsdef{blx@opt@uniquename@#1} using the default backend,
the default search string is blx@opt@uniquename@, and you'll get two hits,
that line and the following one.  Stepping through
xref-references-in-directory shows that the semantic-symref search (using
grep) only finds those two using the :searchtype 'symbol, and they're
returned.  If you change 'symbol to 'regexp, grep finds all the matches in
that code snippet, but then xref--convert-hits uses (format "\\_<%s\\_>"),
which again loses all but the first two hits when it scans the list
provided by grep.  Either grep or emacs here will miss out on valid hits
unless you change both the semantic-symref instantiation and the format
specification.

> One way to deal with that is to treat all user inputs as regexps there.
Perhaps some will have to be more verbose that ideal, but as      > long as
the user is familiar with the regexp syntax, the behavior will be both
powerful and predictable

If I understand you right, I think that's what I'm trying to do, but
allowing for users who perhaps aren't too familiar with emacs regexps and
who might typically just accept the default search string offered by xref.

>  Could those be disambiguated when the tags are scanned, instead? Then
the user will tailor their input to find the one or the other.

If I understand you correctly, that's also what I try to do -- each tagged
command in the tags file is searched by the name of the tag, which in these
cases will either start with the escape char or not.  Looking at the
biblatex snippet, if you come across \csuse{blx@opt@uniquename@false}
somewhere in a file, and you want to see what the definition is, you can't
know apriori how it was defined, with \def or with \csdef.  This snippet
above mixes both styles, and I hoped that a user would be allowed to choose
whether to search for both styles without necessarily having to try both
forms of the string in separate searches.  In fact, as the code stands, it
only does the second search if the first one fails, so it still more or
less keeps the two command-naming styles separate.

The simplest fix is to remove the escape char from all tag names, which I
suggest to users of ctags in some commented-out code in etags.c. This does
lose the ability to differentiate \def'ed commands and \csdef'd ones,
especially as in some circumstances they can have the same name.  I'm not
sure how great a loss that is, on the other hand.  Is that what you had in
mind?

> Or if we want more fuzzier matching, perhaps creating mode-specific
values of etags-xref-find-definitions-tag-order could help.

Yeah, you're right, I'm pretty sure I could use a buffer-local value of
that variable to get xref-find-definitions to do the fuzzy matching I'm
after.  Does the discussion above at all help to convince you that there
are other issues that might still require a new backend?

David.

--000000000000cf132205d89ce09f
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div>Hi Dmitry,</div><div><br></div><div>&gt; Do you have =
a step-by-step scenario? Perhaps using one of the .texi<br>&gt; manuals alr=
eady existing in the repo?<br></div><div><br></div><div>I can&#39;t find a =
good example in the emacs repo, but I&#39;ll try to talk through what happe=
ns with a code snippet from biblatex.sty, which I hope will explain some of=
 the issues we&#39;re discussing, even if it is a little artificial.<br></d=
iv><div><br>\DeclareBiblatexOption{global,type}[string]{uniquename}[true]{%=
<br>=C2=A0 \ifcsdef{blx@opt@uniquename@#1}<br>=C2=A0 =C2=A0 {\letcs\blx@uni=
quename{blx@opt@uniquename@#1}}<br>=C2=A0 =C2=A0 {\blx@err@invopt{uniquenam=
e=3D#1}{}}}<br>\def\blx@opt@uniquename@false{false}<br>\def\blx@opt@uniquen=
ame@init{init}<br>\def\blx@opt@uniquename@true{full}<br>\def\blx@opt@unique=
name@full{full}<br>\def\blx@opt@uniquename@allinit{allinit}<br>\def\blx@opt=
@uniquename@allfull{allfull}<br>\def\blx@opt@uniquename@mininit{mininit}<br=
>\def\blx@opt@uniquename@minfull{minfull}</div><div><br></div><div>If you d=
o M-? on \ifcsdef{blx@opt@uniquename@#1} using the default backend, the def=
ault search string is blx@opt@uniquename@, and you&#39;ll get two hits, tha=
t line and the following one.=C2=A0 Stepping through xref-references-in-dir=
ectory shows that the semantic-symref search (using grep) only finds those =
two using the :searchtype &#39;symbol, and they&#39;re returned.=C2=A0 If y=
ou change &#39;symbol to &#39;regexp, grep finds all the matches in that co=
de snippet, but then xref--convert-hits uses (format &quot;\\_&lt;%s\\_&gt;=
&quot;), which again loses all but the first two hits when it scans the lis=
t provided by grep.=C2=A0 Either grep or emacs here will miss out on valid =
hits unless you change both the semantic-symref instantiation and the forma=
t specification.<br></div><div><br></div><div>&gt; One way to deal with tha=
t is to treat all user inputs as regexps there. Perhaps some will have to b=
e more verbose that ideal, but as=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 &gt; long a=
s the user is familiar with the regexp syntax, the behavior will be both po=
werful and predictable</div><div><br></div><div>If I understand you right, =
I think that&#39;s what I&#39;m trying to do, but allowing for users who pe=
rhaps aren&#39;t too familiar with emacs regexps and who might typically ju=
st accept the default search string offered by xref.=C2=A0 <br></div><div><=
br></div><div>&gt;=C2=A0 Could those be disambiguated when the tags are sca=
nned, instead? Then the user will tailor their input to find the one or the=
 other.<br></div><div><br></div><div>If I understand you correctly, that&#3=
9;s also what I try to do -- each tagged command in the tags file is search=
ed by the name of the tag, which in these cases will either start with the =
escape char or not.=C2=A0 Looking at the biblatex snippet, if you come acro=
ss \csuse{blx@opt@uniquename@false} somewhere in a file, and you want to se=
e what the definition is, you can&#39;t know apriori how it was defined, wi=
th \def or with \csdef.=C2=A0 This snippet above mixes both styles, and I h=
oped that a user would be allowed to choose whether to search for both styl=
es without necessarily having to try both forms of the string in separate s=
earches.=C2=A0 In fact, as the code stands, it only does the second search =
if the first one fails, so it still more or less keeps the two command-nami=
ng styles separate.</div><div><br></div><div>The simplest fix is to remove =
the escape char from all tag names, which I suggest to users of ctags in so=
me commented-out code in etags.c. This does lose the ability to differentia=
te \def&#39;ed commands and \csdef&#39;d ones, especially as in some circum=
stances they can have the same name.=C2=A0 I&#39;m not sure how great a los=
s that is, on the other hand.=C2=A0 Is that what you had in mind?<br></div>=
<div><br></div>&gt; Or if we want more fuzzier matching, perhaps creating m=
ode-specific values of etags-xref-find-definitions-tag-order could help.<br=
><div><div><br></div><div>Yeah, you&#39;re right, I&#39;m pretty sure I cou=
ld use a buffer-local value of that variable to get xref-find-definitions t=
o do the fuzzy matching I&#39;m after.=C2=A0 Does the discussion above at a=
ll help to convince you that there are other issues that might still requir=
e a new backend?</div><div><br></div><div>David.<br></div></div></div>

--000000000000cf132205d89ce09f--




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#53749: 29.0.50; [PATCH] Xref backend for TeX buffers
Resent-From: Dmitry Gutov <dgutov@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Wed, 23 Feb 2022 02:22:01 +0000
Resent-Message-ID: <handler.53749.B53749.164558289132308 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 53749
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: patch
To: David Fussner <dfussner@HIDDEN>
Cc: 53749 <at> debbugs.gnu.org
Received: via spool by 53749-submit <at> debbugs.gnu.org id=B53749.164558289132308
          (code B ref 53749); Wed, 23 Feb 2022 02:22:01 +0000
Received: (at 53749) by debbugs.gnu.org; 23 Feb 2022 02:21:31 +0000
Received: from localhost ([127.0.0.1]:43255 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1nMhHU-0008Os-6S
	for submit <at> debbugs.gnu.org; Tue, 22 Feb 2022 21:21:31 -0500
Received: from mail-wm1-f53.google.com ([209.85.128.53]:39635)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <raaahh@HIDDEN>) id 1nMhHR-0008Ob-U5
 for 53749 <at> debbugs.gnu.org; Tue, 22 Feb 2022 21:21:27 -0500
Received: by mail-wm1-f53.google.com with SMTP id
 n13-20020a05600c3b8d00b0037bff8a24ebso564532wms.4
 for <53749 <at> debbugs.gnu.org>; Tue, 22 Feb 2022 18:21:25 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112;
 h=sender:message-id:date:mime-version:user-agent:subject
 :content-language:to:cc:references:from:in-reply-to
 :content-transfer-encoding;
 bh=8Aos8TktPPGHjtq06SeU5VGEv5Exji4jZkl/FJ4xc/s=;
 b=cQeMAiyWM5fCcuITjBEZh9HPx+Kt+cUl1XDxbQRMUsuHmcKvvqG31e/vl7C8hku3TZ
 BcwvFpvcvs8BFgGX6auiScNwjhemL9z3MDu1ksX9VPpL58dOxwFYwXUuv1jnedk0HzzJ
 W8WE9++cVb9cGHJbV99jBBhE4q8IcNC7elqooCAdbfZeZDCezU0NZlI92Uu/Y7zquCoM
 QOJV8G64AhNZLOw/JjyxVOehihg7aVQYmztl7rD3g1Kn/0wu/AWF7CevPbMFf5Y5cZyY
 M01V6fuAxiIJh+BRZzRJ/fT2Wyna6Lew66/tsAD0AAQodnpMmf9c6u1jDoRrnoeyFA7G
 owWw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20210112;
 h=x-gm-message-state:sender:message-id:date:mime-version:user-agent
 :subject:content-language:to:cc:references:from:in-reply-to
 :content-transfer-encoding;
 bh=8Aos8TktPPGHjtq06SeU5VGEv5Exji4jZkl/FJ4xc/s=;
 b=phmFIX57ZFmmeo7vEC2DUn2l7CJMPDQooq5qK2VLmJ+RHaooEYosI1WmLdJHoxjTsD
 fykvhBv12xBUWCPGk0DZZl8BwMoo3fjlzgcg58F9ra9L2AdCLVcfJhX0dSVCUaBTSzNW
 5TTDGjvJlYiuRvJ+pY8TAuQi+1nHG0jgpo+Yd6U+TD8B4RKFU8j4jGE5Q73r5C89Cmns
 gmH5Gy9MET+O8YYaEl1Qb1hcqERrgwCZFi7AmKelkS+TAWueIpueLfokyPLZWzKl+Y/z
 pcpWYXmPIRp73hztcN9a2Qh7L22MJOCfXET9qwDHA4s5St4mE+ByW5+HLyv4YV28tYkT
 2cnA==
X-Gm-Message-State: AOAM532QFBaQXbMGxInoLdEM44bYbjwIoPPiMHHYc4LlwltkFTPpKW3Y
 5Pb8XDQvbpdNmEI674Zx+I8=
X-Google-Smtp-Source: ABdhPJzW6plc8+eL5irsW6SGpPpntFmvo/8cOfWtVgcMF5TXkH80UdbrKciELezyU2L4S8f/pGeAHQ==
X-Received: by 2002:a1c:4c0a:0:b0:37b:b34d:624e with SMTP id
 z10-20020a1c4c0a000000b0037bb34d624emr5381476wmf.139.1645582879904; 
 Tue, 22 Feb 2022 18:21:19 -0800 (PST)
Received: from [192.168.0.6] ([46.251.119.176])
 by smtp.googlemail.com with ESMTPSA id w13sm3233333wrv.21.2022.02.22.18.21.18
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 22 Feb 2022 18:21:19 -0800 (PST)
Message-ID: <300e30e1-aeea-ffa5-fa13-d541ccbffe30@HIDDEN>
Date: Wed, 23 Feb 2022 04:21:17 +0200
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101
 Thunderbird/91.5.0
Content-Language: en-US
References: <CADF+RtgWCLKQGwgdTNWmgesbcwq8iBxChoN8FqMOg95Ai3CYTA@HIDDEN>
 <1de34060-e93b-0a42-fff5-20e283abe0dc@HIDDEN>
 <CADF+RthLfZVgu72wnPXf2=w-gnKZT+4eWR_kmDVMnFvBY8f1XQ@HIDDEN>
 <CADF+Rtho+2qOpGB6hn-Cpyx4qrUJd9c3+wAxsGtySi75pxzbsQ@HIDDEN>
 <2f41ba40-9c3f-ac65-ef0d-300bd11c4867@HIDDEN>
 <CADF+Rth7ZYNk5vKo8FCkDvP1maFSJkje6h6Fyi+GA_7uVQxsEQ@HIDDEN>
From: Dmitry Gutov <dgutov@HIDDEN>
In-Reply-To: <CADF+Rth7ZYNk5vKo8FCkDvP1maFSJkje6h6Fyi+GA_7uVQxsEQ@HIDDEN>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-Spam-Score: 0.5 (/)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -0.5 (/)

Hi David,

On 22.02.2022 17:19, David Fussner wrote:

>  > Do you have a step-by-step scenario? Perhaps using one of the .texi
>  > manuals already existing in the repo?
> 
> I can't find a good example in the emacs repo, but I'll try to talk 
> through what happens with a code snippet from biblatex.sty, which I hope 
> will explain some of the issues we're discussing, even if it is a little 
> artificial.

Thank you.

> \DeclareBiblatexOption{global,type}[string]{uniquename}[true]{%
>    \ifcsdef{blx@opt@uniquename@#1}
>      {\letcs\blx@uniquename{blx@opt@uniquename@#1}}
>      {\blx@err@invopt{uniquename=#1}{}}}
> \def\blx@opt@uniquename@false{false}
> \def\blx@opt@uniquename@init{init}
> \def\blx@opt@uniquename@true{full}
> \def\blx@opt@uniquename@full{full}
> \def\blx@opt@uniquename@allinit{allinit}
> \def\blx@opt@uniquename@allfull{allfull}
> \def\blx@opt@uniquename@mininit{mininit}
> \def\blx@opt@uniquename@minfull{minfull}
> 
> If you do M-? on \ifcsdef{blx@opt@uniquename@#1} using the default 
> backend, the default search string is blx@opt@uniquename@, and you'll 
> get two hits, that line and the following one.  Stepping through 
> xref-references-in-directory shows that the semantic-symref search 
> (using grep) only finds those two using the :searchtype 'symbol, and 
> they're returned.  If you change 'symbol to 'regexp, grep finds all the 
> matches in that code snippet, but then xref--convert-hits uses (format 
> "\\_<%s\\_>"), which again loses all but the first two hits when it 
> scans the list provided by grep.  Either grep or emacs here will miss 
> out on valid hits unless you change both the semantic-symref 
> instantiation and the format specification.

That might call for a different implementation of 'references' indeed.

But could you make 'blx@opt@uniquename' the default search string in 
that example? Does that make sense?

And if not, all in all, I wouldn't worry too much about 
xref-find-references, since TeX is more of a text format (IMHO) than a 
program with well-defined identifiers. Perhaps using project-find-regexp 
most of the time will save you a lot of the trouble?

>  > One way to deal with that is to treat all user inputs as regexps 
> there. Perhaps some will have to be more verbose that ideal, but as      
>  > long as the user is familiar with the regexp syntax, the behavior 
> will be both powerful and predictable
> 
> If I understand you right, I think that's what I'm trying to do, but 
> allowing for users who perhaps aren't too familiar with emacs regexps 
> and who might typically just accept the default search string offered by 
> xref.

I'm not sure how I feel about the extra "fuzziness" in the behavior 
which comes with this approach.

>  >  Could those be disambiguated when the tags are scanned, instead? 
> Then the user will tailor their input to find the one or the other.
> 
> If I understand you correctly, that's also what I try to do -- each 
> tagged command in the tags file is searched by the name of the tag, 
> which in these cases will either start with the escape char or not.  
> Looking at the biblatex snippet, if you come across 
> \csuse{blx@opt@uniquename@false} somewhere in a file, and you want to 
> see what the definition is, you can't know apriori how it was defined, 
> with \def or with \csdef.  This snippet above mixes both styles, and I 
> hoped that a user would be allowed to choose whether to search for both 
> styles without necessarily having to try both forms of the string in 
> separate searches.  In fact, as the code stands, it only does the second 
> search if the first one fails, so it still more or less keeps the two 
> command-naming styles separate.

The parser could create both qualified (with \def or \csdef) and 
unqualified entries for the same definition. Maybe make it optional 
(with -Q argument to etags). Then the user could search using any of 
these formats.

>  > Or if we want more fuzzier matching, perhaps creating mode-specific 
> values of etags-xref-find-definitions-tag-order could help.
> 
> Yeah, you're right, I'm pretty sure I could use a buffer-local value of 
> that variable to get xref-find-definitions to do the fuzzy matching I'm 
> after. Does the discussion above at all help to convince you that there 
> are other issues that might still require a new backend?

The suggestion about a buffer-local value of that var was made in the 
context of trying to make it work with the current etags backend. At 
least, in the first patch. If only because I don't really like to see 
duplicated code.

If we find another place where we really want to diverge, we could also 
try adding some behavior-altering variable first.

After that, we might as well add a new backend (I'm not really against 
it, just prefer to exhaust other options first), but hopefully someone 
else (more familiar with tex-mode) could take over this discussion at 
that point, and the subsequent responsibility for the added code. That 
person could be yourself too, under right conditions.




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#53749: 29.0.50; [PATCH] Xref backend for TeX buffers
Resent-From: David Fussner <dfussner@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Wed, 23 Feb 2022 10:46:02 +0000
Resent-Message-ID: <handler.53749.B53749.164561314929350 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 53749
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: patch
To: Dmitry Gutov <dgutov@HIDDEN>
Cc: 53749 <at> debbugs.gnu.org
Received: via spool by 53749-submit <at> debbugs.gnu.org id=B53749.164561314929350
          (code B ref 53749); Wed, 23 Feb 2022 10:46:02 +0000
Received: (at 53749) by debbugs.gnu.org; 23 Feb 2022 10:45:49 +0000
Received: from localhost ([127.0.0.1]:43945 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1nMp9Y-0007dJ-Tp
	for submit <at> debbugs.gnu.org; Wed, 23 Feb 2022 05:45:49 -0500
Received: from mail-qv1-f43.google.com ([209.85.219.43]:35328)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <dfussner@HIDDEN>) id 1nMp9X-0007d6-DI
 for 53749 <at> debbugs.gnu.org; Wed, 23 Feb 2022 05:45:47 -0500
Received: by mail-qv1-f43.google.com with SMTP id 8so7579558qvf.2
 for <53749 <at> debbugs.gnu.org>; Wed, 23 Feb 2022 02:45:47 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=googlemail.com; s=20210112;
 h=mime-version:references:in-reply-to:from:date:message-id:subject:to
 :cc; bh=YpiSIPdTB36nqHxD9dnDiycA9pXb+3/En4b+6fBWfVA=;
 b=NTcknPRGxBX/O/DzKdmWYFPzXOEuTGH1JlbYNmRoaKVHIwom85O0tDbAULUfw8aiL3
 8auWoA95FZT5mV8pGZ7W0QzK7vIdGBS2o3moaGlNBt2i9PgSGfkohkLXAWVWk7cWvOA1
 5LQKar4xAjyhnBoIEpkeWpg/nYJipgNwCfgEcfDxjvi341JKYwWdMI1cRKh7FswtxHg7
 btiVE7blprxkyHWVcTb0Pb8T/2z5KDIPULaUDy7cuu+4Vu5p8tdgzCz6Og2qv7i3ztKX
 KEHKRWxaBXLGtB6aYcURoF7qG2qA65VvkNNU/sbgKlZSAnkeYrCvcVlXc7NEg24keasE
 s/Xw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20210112;
 h=x-gm-message-state:mime-version:references:in-reply-to:from:date
 :message-id:subject:to:cc;
 bh=YpiSIPdTB36nqHxD9dnDiycA9pXb+3/En4b+6fBWfVA=;
 b=Ei7uercNnAmmfVgmF2F9bTmBPw+kMNm+XtNJVHkYsnPHBZiemBqbRxc4xYnW9tKAEZ
 n+gP6C84doyQ8fm0PMAnMl+wENILZQjm4u7u0BGbmjsl0qPBnCOEudOZkuBQpK2l1cX/
 TubwMgrk/coJUFFkzw3pu4WtmvgJgP6cFKmw5nD4wZxzA5BIulo/SfN28zMB5VkkqZpa
 KFTDR12vz4KftxfFrcaUFNLvubiHf+L3cHcP2PW1aIXOfYan8loLAXkqWhPTddS6f8PD
 KVywx8fb7KT+sYmfKO7A8TGPXZKmGATHAZI9nw6ScDutDPOTOYxiT4McKVlJBwARseWg
 9oAw==
X-Gm-Message-State: AOAM5319nnIi2etYgeRd0W6quZymNqMix2J9mu6/OiGHgR/gpNG1QkXp
 n0o5v4ZV5RjDldE2UyDNk1sWzuLQeLYvEn1scdHVtCcAWXqGvw==
X-Google-Smtp-Source: ABdhPJzidqwhxUO1SHsGSr3s0l4tWNOmz+05CTMCpHq4ceH2L7A0m3WtgJaxisxu24mqbGP7RF72n/NR44HiQZFRG34=
X-Received: by 2002:a05:6214:21cf:b0:42d:cc:4121 with SMTP id
 d15-20020a05621421cf00b0042d00cc4121mr22736020qvh.70.1645613141427; Wed, 23
 Feb 2022 02:45:41 -0800 (PST)
MIME-Version: 1.0
References: <CADF+RtgWCLKQGwgdTNWmgesbcwq8iBxChoN8FqMOg95Ai3CYTA@HIDDEN>
 <1de34060-e93b-0a42-fff5-20e283abe0dc@HIDDEN>
 <CADF+RthLfZVgu72wnPXf2=w-gnKZT+4eWR_kmDVMnFvBY8f1XQ@HIDDEN>
 <CADF+Rtho+2qOpGB6hn-Cpyx4qrUJd9c3+wAxsGtySi75pxzbsQ@HIDDEN>
 <2f41ba40-9c3f-ac65-ef0d-300bd11c4867@HIDDEN>
 <CADF+Rth7ZYNk5vKo8FCkDvP1maFSJkje6h6Fyi+GA_7uVQxsEQ@HIDDEN>
 <300e30e1-aeea-ffa5-fa13-d541ccbffe30@HIDDEN>
In-Reply-To: <300e30e1-aeea-ffa5-fa13-d541ccbffe30@HIDDEN>
From: David Fussner <dfussner@HIDDEN>
Date: Wed, 23 Feb 2022 10:45:28 +0000
Message-ID: <CADF+Rtib+y+9yzCG1NZFjZCa7np=sc2rFkrQ-tsLCFjSpw=+0Q@HIDDEN>
Content-Type: text/plain; charset="UTF-8"
X-Spam-Score: -0.0 (/)
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: -1.0 (-)

Hi Dmitry,

Thanks again for looking at all this, and for your patience.

On Wed, 23 Feb 2022 at 02:21, Dmitry Gutov <dgutov@HIDDEN> wrote:

>
> That might call for a different implementation of 'references' indeed.
>
> But could you make 'blx@opt@uniquename' the default search string in
> that example? Does that make sense?
>

I guess it might be possible to come up with a regexp to suppress the
@ in some positions in the string, but the bad news is that if you M-?
with that search string you get no results at all with the default
backend. Grep finds the same two as before, but the default format
specification eliminates even those.  So you're left looking at a
string in your buffer and xref is telling you it isn't there.

> And if not, all in all, I wouldn't worry too much about
> xref-find-references, since TeX is more of a text format (IMHO) than a
> program with well-defined identifiers. Perhaps using project-find-regexp
> most of the time will save you a lot of the trouble?
>

You're quite right that C-x p g works well in this instance, and I
tried to improve how thing-at-point finds search strings in TeX
buffers for this command.  I guess TeX is a little bit of a bad fit
both for text modes and for prog modes, but I confess I'm still uneasy
at the thought of M-? returning such misleading results.  What would
you think about putting project-find-regexp on M-? in TeX buffers?
That is, assuming I don't find reasonably common TeX constructs that
defeat it?

> > If I understand you right, I think that's what I'm trying to do, but
> > allowing for users who perhaps aren't too familiar with emacs regexps
> > and who might typically just accept the default search string offered by
> > xref.
>
> I'm not sure how I feel about the extra "fuzziness" in the behavior
> which comes with this approach.

I see your point here.

>
> The parser could create both qualified (with \def or \csdef) and
> unqualified entries for the same definition. Maybe make it optional
> (with -Q argument to etags). Then the user could search using any of
> these formats.
>

I guess we could make etags do some of the work, perhaps adding also a
distinction between tagged commands that require this duplication
(\def & \csdef) and those that don't (\chapter).  Aside from making
tags files a lot bigger, and possibly adding another option to a
program already overloaded with them -- neither of which is a
showstopper -- I suspect it could work pretty well for
xref-find-definitions.

>
> The suggestion about a buffer-local value of that var was made in the
> context of trying to make it work with the current etags backend. At
> least, in the first patch. If only because I don't really like to see
> duplicated code.
>
> If we find another place where we really want to diverge, we could also
> try adding some behavior-altering variable first.
>
> After that, we might as well add a new backend (I'm not really against
> it, just prefer to exhaust other options first), but hopefully someone
> else (more familiar with tex-mode) could take over this discussion at
> that point, and the subsequent responsibility for the added code. That
> person could be yourself too, under right conditions.

I certainly concur about duplicated code, and I really did try hard to
get by without a new backend, but I won't pretend that I exhausted all
or even nearly all of the possibilities. If I'm understanding you
correctly, you'd prefer a few, small changes to the backend code in
etags.el (and xref.el), should that be necessary, to a whole new
backend which limits changes to tex-mode.el.  If this understanding is
reasonably accurate, I can have another look at earlier iterations of
the code to see what I missed, and perhaps come up with something that
works right without so much duplication. It may well take me some
time, so apologies in advance for being slow.

David.




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#53749: 29.0.50; [PATCH] Xref backend for TeX buffers
Resent-From: Dmitry Gutov <dgutov@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Thu, 24 Feb 2022 02:24:02 +0000
Resent-Message-ID: <handler.53749.B53749.164566943830838 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 53749
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: patch
To: David Fussner <dfussner@HIDDEN>
Cc: 53749 <at> debbugs.gnu.org
Received: via spool by 53749-submit <at> debbugs.gnu.org id=B53749.164566943830838
          (code B ref 53749); Thu, 24 Feb 2022 02:24:02 +0000
Received: (at 53749) by debbugs.gnu.org; 24 Feb 2022 02:23:58 +0000
Received: from localhost ([127.0.0.1]:46942 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1nN3nS-00081K-9k
	for submit <at> debbugs.gnu.org; Wed, 23 Feb 2022 21:23:58 -0500
Received: from mail-wr1-f46.google.com ([209.85.221.46]:42529)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <raaahh@HIDDEN>) id 1nN3nQ-000815-Id
 for 53749 <at> debbugs.gnu.org; Wed, 23 Feb 2022 21:23:57 -0500
Received: by mail-wr1-f46.google.com with SMTP id d17so738180wrc.9
 for <53749 <at> debbugs.gnu.org>; Wed, 23 Feb 2022 18:23:56 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112;
 h=sender:message-id:date:mime-version:user-agent:subject
 :content-language:to:cc:references:from:in-reply-to
 :content-transfer-encoding;
 bh=nm2/jvARW/kXJfePE75YpDEu86GSmMahZJxlHqZ+nOo=;
 b=TnjEHtBdEAwK+rH+QhPcroEGubcqPo0q88lo9uvR5ijEDtiyfURmcKbVoTTDLYLcft
 TOcApCPC+hHHE7tnlSyNsp4wwInyXQLP6y3J11emiWrtl/+zwoT3tvjMDqA3ffViiYt8
 Q6pLrF2kKz3K1ZBpEeV+wAMWbKMfH/BVsYeMA6n2O61jSO6oh2pQPE/wpwfglgnjVQpM
 iGja949Tin0H4NMngIBauTZNqr8kSs/xUUSN5uMj1px79dAMJtM3gxEZoZTOiKE1L745
 MlKqN74cK+Toj++BICEPa46l/5QZwz/CJB00CLlxB9KgcswKNGW+4GHfPhHoE78hjXvx
 UGjg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20210112;
 h=x-gm-message-state:sender:message-id:date:mime-version:user-agent
 :subject:content-language:to:cc:references:from:in-reply-to
 :content-transfer-encoding;
 bh=nm2/jvARW/kXJfePE75YpDEu86GSmMahZJxlHqZ+nOo=;
 b=g74RqZ0x+uIGryG/TgmqgfXymDFFkWbJ5gVMDU8no11fkM/qgWrvMGMFuDmRLVd5uD
 C4m2joZMiZPzzJFhBrQffyl8UbBimBTfcXdB1wudN1fec2+obKqIWB1KKtm4XKiDHkA/
 MQlKPUl7JHrOoR6KEcNiT2m7kDBAE98X0DPx/vsChf1hBzvMispvR/bVhv8emZM9+DtO
 iAJaCJDkBdeDPjF4CXliCYpcB3XZ7xEhC7D8e5nFrMyBFcETTGttwBhS33mI8ErNUmvn
 VYf7FS0wmi7JvwvpSpJ4+jv5sADqR+dCnTIkwSQS0egK6/V2PB1gk3UjMGWQqN7ZSOcL
 pPbQ==
X-Gm-Message-State: AOAM5313oJIOnxiMivgCB7O0NDs8aK6qyX0vEiUvxDQDfcExNd1V+BhY
 0wD0Q+frLqySX69O9TGEGOs=
X-Google-Smtp-Source: ABdhPJzy0lWj1jz9B5hsbUlW51/H0QmRUmTq9hQ+HA4IeajP1TN0zwbmkeXoGH23N30AGCtu7+iaUA==
X-Received: by 2002:a05:6000:1b8a:b0:1e4:b3a3:4c1f with SMTP id
 r10-20020a0560001b8a00b001e4b3a34c1fmr393552wru.202.1645669430605; 
 Wed, 23 Feb 2022 18:23:50 -0800 (PST)
Received: from [192.168.0.6] ([46.251.119.176])
 by smtp.googlemail.com with ESMTPSA id j27sm1164816wrd.32.2022.02.23.18.23.49
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 23 Feb 2022 18:23:50 -0800 (PST)
Message-ID: <b88c334e-02a5-c259-fd78-4e6c14d47a77@HIDDEN>
Date: Thu, 24 Feb 2022 04:23:48 +0200
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101
 Thunderbird/91.5.0
Content-Language: en-US
References: <CADF+RtgWCLKQGwgdTNWmgesbcwq8iBxChoN8FqMOg95Ai3CYTA@HIDDEN>
 <1de34060-e93b-0a42-fff5-20e283abe0dc@HIDDEN>
 <CADF+RthLfZVgu72wnPXf2=w-gnKZT+4eWR_kmDVMnFvBY8f1XQ@HIDDEN>
 <CADF+Rtho+2qOpGB6hn-Cpyx4qrUJd9c3+wAxsGtySi75pxzbsQ@HIDDEN>
 <2f41ba40-9c3f-ac65-ef0d-300bd11c4867@HIDDEN>
 <CADF+Rth7ZYNk5vKo8FCkDvP1maFSJkje6h6Fyi+GA_7uVQxsEQ@HIDDEN>
 <300e30e1-aeea-ffa5-fa13-d541ccbffe30@HIDDEN>
 <CADF+Rtib+y+9yzCG1NZFjZCa7np=sc2rFkrQ-tsLCFjSpw=+0Q@HIDDEN>
From: Dmitry Gutov <dgutov@HIDDEN>
In-Reply-To: <CADF+Rtib+y+9yzCG1NZFjZCa7np=sc2rFkrQ-tsLCFjSpw=+0Q@HIDDEN>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-Spam-Score: 0.5 (/)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -0.5 (/)

Hi David,

On 23.02.2022 12:45, David Fussner via Bug reports for GNU Emacs, the 
Swiss army knife of text editors wrote:

> I guess it might be possible to come up with a regexp to suppress the
> @ in some positions in the string, but the bad news is that if you M-?
> with that search string you get no results at all with the default
> backend. Grep finds the same two as before, but the default format
> specification eliminates even those.  So you're left looking at a
> string in your buffer and xref is telling you it isn't there.

That's odd. I've tried searching for 'blx@opt@uniquename' inside \...@, 
and 'grep -w' successfully finds it. Post-processing fails, apparently, 
but that depends on the contents of the syntax table. So one solution 
might be to update tex-mode's syntax table.

>> And if not, all in all, I wouldn't worry too much about
>> xref-find-references, since TeX is more of a text format (IMHO) than a
>> program with well-defined identifiers. Perhaps using project-find-regexp
>> most of the time will save you a lot of the trouble?
>>
> 
> You're quite right that C-x p g works well in this instance, and I
> tried to improve how thing-at-point finds search strings in TeX
> buffers for this command.  I guess TeX is a little bit of a bad fit
> both for text modes and for prog modes, but I confess I'm still uneasy
> at the thought of M-? returning such misleading results.  What would
> you think about putting project-find-regexp on M-? in TeX buffers?
> That is, assuming I don't find reasonably common TeX constructs that
> defeat it?

At the face of it, the suggestion seems odd (those command's features 
and user expectations are different), but it wouldn't be out of the 
question to circle back to it later.

>> The parser could create both qualified (with \def or \csdef) and
>> unqualified entries for the same definition. Maybe make it optional
>> (with -Q argument to etags). Then the user could search using any of
>> these formats.
>>
> 
> I guess we could make etags do some of the work, perhaps adding also a
> distinction between tagged commands that require this duplication
> (\def & \csdef) and those that don't (\chapter).  Aside from making
> tags files a lot bigger, and possibly adding another option to a
> program already overloaded with them -- neither of which is a
> showstopper -- I suspect it could work pretty well for
> xref-find-definitions.

IIUC tag files for LaTeX aren't going to be particularly big anyway 
(book projects are almost always smaller than even a mid-sized software 
project), so the size might never be a problem.

But then again, I could be very wrong about that.

>> The suggestion about a buffer-local value of that var was made in the
>> context of trying to make it work with the current etags backend. At
>> least, in the first patch. If only because I don't really like to see
>> duplicated code.
>>
>> If we find another place where we really want to diverge, we could also
>> try adding some behavior-altering variable first.
>>
>> After that, we might as well add a new backend (I'm not really against
>> it, just prefer to exhaust other options first), but hopefully someone
>> else (more familiar with tex-mode) could take over this discussion at
>> that point, and the subsequent responsibility for the added code. That
>> person could be yourself too, under right conditions.
> 
> I certainly concur about duplicated code, and I really did try hard to
> get by without a new backend, but I won't pretend that I exhausted all
> or even nearly all of the possibilities. If I'm understanding you
> correctly, you'd prefer a few, small changes to the backend code in
> etags.el (and xref.el), should that be necessary, to a whole new
> backend which limits changes to tex-mode.el.  If this understanding is
> reasonably accurate, I can have another look at earlier iterations of
> the code to see what I missed, and perhaps come up with something that
> works right without so much duplication. It may well take me some
> time, so apologies in advance for being slow.

Yes, please.




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#53749: 29.0.50; [PATCH] Xref backend for TeX buffers
Resent-From: David Fussner <dfussner@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Thu, 24 Feb 2022 13:17:01 +0000
Resent-Message-ID: <handler.53749.B53749.164570856212201 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 53749
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: patch
To: Dmitry Gutov <dgutov@HIDDEN>
Cc: 53749 <at> debbugs.gnu.org
Received: via spool by 53749-submit <at> debbugs.gnu.org id=B53749.164570856212201
          (code B ref 53749); Thu, 24 Feb 2022 13:17:01 +0000
Received: (at 53749) by debbugs.gnu.org; 24 Feb 2022 13:16:02 +0000
Received: from localhost ([127.0.0.1]:47827 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1nNDyU-0003Ac-5J
	for submit <at> debbugs.gnu.org; Thu, 24 Feb 2022 08:16:02 -0500
Received: from mail-qv1-f43.google.com ([209.85.219.43]:42596)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <dfussner@HIDDEN>) id 1nNDyR-0003A1-Er
 for 53749 <at> debbugs.gnu.org; Thu, 24 Feb 2022 08:16:00 -0500
Received: by mail-qv1-f43.google.com with SMTP id e22so3382427qvf.9
 for <53749 <at> debbugs.gnu.org>; Thu, 24 Feb 2022 05:15:59 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=googlemail.com; s=20210112;
 h=mime-version:references:in-reply-to:from:date:message-id:subject:to
 :cc; bh=34VJV798dzq+MIACZ6DeajURltjRqqv7o55eK8zhapo=;
 b=lGjj/JYFe9odxEsZmg9SdQrjU2BgFxxTeIUrwdIkZfbDSSB0aF13ngSACxyQDtHWgl
 jvo4pqhV9Xp+MdirWfrtwhj4Qkiny7obueLxJfbqQHh3S+4pu/+VIqcJgLNjt145tvyl
 8X0Zunebyz8fPE/ZlgOtDoIOgJL4+s0H/6PCT8DrkfTAsalyVQIMe2LyNmq/QEca1hZB
 kho9/Ocq40CAPck/7Rs4ojl2fqfnJS3wDqNY9kinV3L5qy91W5vn8Vq3G/bONTMQSFIO
 A+vAYEFEuGaZvIGsDnC+ytjvMT6GIi8cMI2pO/bL1rdOXqrKB3Ulinf6H3so7BBXK5Mj
 HAmA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20210112;
 h=x-gm-message-state:mime-version:references:in-reply-to:from:date
 :message-id:subject:to:cc;
 bh=34VJV798dzq+MIACZ6DeajURltjRqqv7o55eK8zhapo=;
 b=XZCq+zfEUZC1b+yLKKvqQ1fQpb2GX+vXX96N23cR6bzz5LRbzjlo4DqD5r3CbILu6j
 YqqSa02KIhcSUGa3axA0msBCPraJDXk/YuHjhcqNzyqhSpGtJfi3Tykf7qXd3/eFtIO6
 lK828ZaMnp7F1YQb5vRWhS1VH2q002DztXPGXGWnMO6t7Ct63IM7NZJMpjMDMhXSRNoJ
 JrMxiTpIUx4BC0CXkgngEOqNyNAq2ZevDVv/nWM9jG1IK67FtdS4O2JHpTeowwOIjWCu
 F0JSW5thIteJvmvlv2FfMv+NRvDXwWhCl3u0fjGlejB//BPPQ8nEgsRfZ6LBaE60Pirt
 TB4w==
X-Gm-Message-State: AOAM533b+agF82LmfviIC3l2KO2eKZxr/nZH65sDqeGTohrM9MW8r2ih
 qS8IyLjQBIa/aFPNeoj7Jjmwcw5Rtd2ze6KFcn8=
X-Google-Smtp-Source: ABdhPJyrGi8ESvsSKHRHm5NsUlKXeIxhVdq7DCRbcAn2mP/tunFQ21akTAJFVfFdiAmsiPsLyOmoja+kG34P13qbpv8=
X-Received: by 2002:ac8:5c4f:0:b0:2dc:8e84:b0ac with SMTP id
 j15-20020ac85c4f000000b002dc8e84b0acmr2229834qtj.536.1645708553503; Thu, 24
 Feb 2022 05:15:53 -0800 (PST)
MIME-Version: 1.0
References: <CADF+RtgWCLKQGwgdTNWmgesbcwq8iBxChoN8FqMOg95Ai3CYTA@HIDDEN>
 <1de34060-e93b-0a42-fff5-20e283abe0dc@HIDDEN>
 <CADF+RthLfZVgu72wnPXf2=w-gnKZT+4eWR_kmDVMnFvBY8f1XQ@HIDDEN>
 <CADF+Rtho+2qOpGB6hn-Cpyx4qrUJd9c3+wAxsGtySi75pxzbsQ@HIDDEN>
 <2f41ba40-9c3f-ac65-ef0d-300bd11c4867@HIDDEN>
 <CADF+Rth7ZYNk5vKo8FCkDvP1maFSJkje6h6Fyi+GA_7uVQxsEQ@HIDDEN>
 <300e30e1-aeea-ffa5-fa13-d541ccbffe30@HIDDEN>
 <CADF+Rtib+y+9yzCG1NZFjZCa7np=sc2rFkrQ-tsLCFjSpw=+0Q@HIDDEN>
 <b88c334e-02a5-c259-fd78-4e6c14d47a77@HIDDEN>
In-Reply-To: <b88c334e-02a5-c259-fd78-4e6c14d47a77@HIDDEN>
From: David Fussner <dfussner@HIDDEN>
Date: Thu, 24 Feb 2022 13:15:41 +0000
Message-ID: <CADF+RtiAZgzXDvRA_=C4+=A8eKjPGwmfj05RdqAj8xq=QDjFxA@HIDDEN>
Content-Type: text/plain; charset="UTF-8"
X-Spam-Score: -0.0 (/)
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: -1.0 (-)

Thanks Dmitry.  I'll post back here when I've got something.

David.

On Thu, 24 Feb 2022 at 02:23, Dmitry Gutov <dgutov@HIDDEN> wrote:
>
> Hi David,
>
> On 23.02.2022 12:45, David Fussner via Bug reports for GNU Emacs, the
> Swiss army knife of text editors wrote:
>
> > I guess it might be possible to come up with a regexp to suppress the
> > @ in some positions in the string, but the bad news is that if you M-?
> > with that search string you get no results at all with the default
> > backend. Grep finds the same two as before, but the default format
> > specification eliminates even those.  So you're left looking at a
> > string in your buffer and xref is telling you it isn't there.
>
> That's odd. I've tried searching for 'blx@opt@uniquename' inside \...@,
> and 'grep -w' successfully finds it. Post-processing fails, apparently,
> but that depends on the contents of the syntax table. So one solution
> might be to update tex-mode's syntax table.
>
> >> And if not, all in all, I wouldn't worry too much about
> >> xref-find-references, since TeX is more of a text format (IMHO) than a
> >> program with well-defined identifiers. Perhaps using project-find-regexp
> >> most of the time will save you a lot of the trouble?
> >>
> >
> > You're quite right that C-x p g works well in this instance, and I
> > tried to improve how thing-at-point finds search strings in TeX
> > buffers for this command.  I guess TeX is a little bit of a bad fit
> > both for text modes and for prog modes, but I confess I'm still uneasy
> > at the thought of M-? returning such misleading results.  What would
> > you think about putting project-find-regexp on M-? in TeX buffers?
> > That is, assuming I don't find reasonably common TeX constructs that
> > defeat it?
>
> At the face of it, the suggestion seems odd (those command's features
> and user expectations are different), but it wouldn't be out of the
> question to circle back to it later.
>
> >> The parser could create both qualified (with \def or \csdef) and
> >> unqualified entries for the same definition. Maybe make it optional
> >> (with -Q argument to etags). Then the user could search using any of
> >> these formats.
> >>
> >
> > I guess we could make etags do some of the work, perhaps adding also a
> > distinction between tagged commands that require this duplication
> > (\def & \csdef) and those that don't (\chapter).  Aside from making
> > tags files a lot bigger, and possibly adding another option to a
> > program already overloaded with them -- neither of which is a
> > showstopper -- I suspect it could work pretty well for
> > xref-find-definitions.
>
> IIUC tag files for LaTeX aren't going to be particularly big anyway
> (book projects are almost always smaller than even a mid-sized software
> project), so the size might never be a problem.
>
> But then again, I could be very wrong about that.
>
> >> The suggestion about a buffer-local value of that var was made in the
> >> context of trying to make it work with the current etags backend. At
> >> least, in the first patch. If only because I don't really like to see
> >> duplicated code.
> >>
> >> If we find another place where we really want to diverge, we could also
> >> try adding some behavior-altering variable first.
> >>
> >> After that, we might as well add a new backend (I'm not really against
> >> it, just prefer to exhaust other options first), but hopefully someone
> >> else (more familiar with tex-mode) could take over this discussion at
> >> that point, and the subsequent responsibility for the added code. That
> >> person could be yourself too, under right conditions.
> >
> > I certainly concur about duplicated code, and I really did try hard to
> > get by without a new backend, but I won't pretend that I exhausted all
> > or even nearly all of the possibilities. If I'm understanding you
> > correctly, you'd prefer a few, small changes to the backend code in
> > etags.el (and xref.el), should that be necessary, to a whole new
> > backend which limits changes to tex-mode.el.  If this understanding is
> > reasonably accurate, I can have another look at earlier iterations of
> > the code to see what I missed, and perhaps come up with something that
> > works right without so much duplication. It may well take me some
> > time, so apologies in advance for being slow.
>
> Yes, please.




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#53749: 29.0.50; [PATCH] Xref backend for TeX buffers
Resent-From: Augusto Stoffel <arstoffel@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Fri, 25 Feb 2022 20:17:01 +0000
Resent-Message-ID: <handler.53749.B.164582019632008 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 53749
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: patch
To: 53749 <at> debbugs.gnu.org
Cc: dfussner@HIDDEN
X-Debbugs-Original-To: David Fussner via "Bug reports for GNU Emacs, the Swiss army knife of text editors" <bug-gnu-emacs@HIDDEN>
X-Debbugs-Original-Cc: 53749 <at> debbugs.gnu.org, David Fussner <dfussner@HIDDEN>
Received: via spool by submit <at> debbugs.gnu.org id=B.164582019632008
          (code B ref -1); Fri, 25 Feb 2022 20:17:01 +0000
Received: (at submit) by debbugs.gnu.org; 25 Feb 2022 20:16:36 +0000
Received: from localhost ([127.0.0.1]:53813 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1nNh12-0008KA-Fa
	for submit <at> debbugs.gnu.org; Fri, 25 Feb 2022 15:16:36 -0500
Received: from lists.gnu.org ([209.51.188.17]:42116)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <arstoffel@HIDDEN>) id 1nNh0v-0008Jw-6D
 for submit <at> debbugs.gnu.org; Fri, 25 Feb 2022 15:16:29 -0500
Received: from eggs.gnu.org ([209.51.188.92]:50848)
 by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <arstoffel@HIDDEN>)
 id 1nNh0q-0006XV-Vu
 for bug-gnu-emacs@HIDDEN; Fri, 25 Feb 2022 15:16:29 -0500
Received: from [2a00:1450:4864:20::533] (port=38667
 helo=mail-ed1-x533.google.com)
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
 (Exim 4.90_1) (envelope-from <arstoffel@HIDDEN>)
 id 1nNh0m-00009h-3Z
 for bug-gnu-emacs@HIDDEN; Fri, 25 Feb 2022 15:16:23 -0500
Received: by mail-ed1-x533.google.com with SMTP id s24so8937732edr.5
 for <bug-gnu-emacs@HIDDEN>; Fri, 25 Feb 2022 12:16:19 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112;
 h=from:to:cc:subject:references:date:in-reply-to:message-id
 :user-agent:mime-version;
 bh=pOtJY65BSCDg5reHSC+XupwZ0t80w4yz2ZVZg70/NPM=;
 b=GYXELjg/pBo6hQT+aJ2L4VV4TUtbiGFSqxvajZZtkkqXAT6grRQomHjllLI2UwyIAS
 5hlPH0P0ZUOhMvLopGT7t5+Qbjoe8DwbU5evHdWNi2ZbZyP1/oFFyTgEuiDSKCEhF+CN
 qrsYdiaAVyqtuTUu4W+PoQNjOJF0g2arS2eKDRA7L0fGSp8nHh3BbrhrKJXtLmqyhsZH
 XC4uKyvHE18rj12RNpKUyy7uv23k88h7JBWdQJ+Gyiq2sidgnAswEQKK/meMPbRTefUp
 O3V8hQq/9p+mgeigZleCgHlNBK8rxIT6BQDPgVzM+AFjplARx+l0dJtoThhqY7vPLYvl
 08ZQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20210112;
 h=x-gm-message-state:from:to:cc:subject:references:date:in-reply-to
 :message-id:user-agent:mime-version;
 bh=pOtJY65BSCDg5reHSC+XupwZ0t80w4yz2ZVZg70/NPM=;
 b=vofO5TVpwwyV3RjKEAGKhhKGVXyJJP6RxAW5KHusraJE/bdZ9hJMLkZ+IAxJXySSgj
 1w6riQjMTWEot8C+2IVT1keBDJ0fexEcZ7fUgMempFAeOsGERqSoXY/M5WvMYBDUAHaN
 wlGrDeTvV2EpyFevmfyKSIF5fmt9Iv76gWEKiNz6XMGVAQKqZmwI6K8XUv4BWxPJN4+E
 ES8Holo9ggWxqU2tlqXnI8GATMznMrHmFOlpU6gnd+ZWXobJ2OvN7wjxE4IMTo5mjOsT
 uoW/tQGFnEYUZBcJlSsZ64fMSzVFGyRSb9ksf9AxF6AL402cFlB2CWrRqqSHwG2n2VRB
 EyrQ==
X-Gm-Message-State: AOAM533wO1h0MtQTXJy22rKzdGgSjRNCvlUW2ySGs9sJKRauXdo8gocX
 Er9+qkchuS2yjxCdzpgaXas=
X-Google-Smtp-Source: ABdhPJzkrNg5/WBOm2QpdYQfT2LHEAhiHWZc3ImETfIBiHNhwVOdJZUb6waM9FYAvPWOmXgDfKgHNw==
X-Received: by 2002:a50:ee90:0:b0:40f:349f:7368 with SMTP id
 f16-20020a50ee90000000b0040f349f7368mr8488283edr.236.1645820178223; 
 Fri, 25 Feb 2022 12:16:18 -0800 (PST)
Received: from ars3 ([2a02:8109:8ac0:56d0::758e])
 by smtp.gmail.com with ESMTPSA id
 n23-20020a509357000000b00412b325b05fsm1750361eda.74.2022.02.25.12.16.17
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 25 Feb 2022 12:16:17 -0800 (PST)
From: Augusto Stoffel <arstoffel@HIDDEN>
References: <CADF+RtgWCLKQGwgdTNWmgesbcwq8iBxChoN8FqMOg95Ai3CYTA@HIDDEN>
Date: Fri, 25 Feb 2022 21:16:16 +0100
In-Reply-To: <CADF+RtgWCLKQGwgdTNWmgesbcwq8iBxChoN8FqMOg95Ai3CYTA@HIDDEN>
 (David Fussner via's message of "Thu, 3 Feb 2022 15:09:22 +0000")
Message-ID: <87pmnad7n3.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.91 (gnu/linux)
MIME-Version: 1.0
Content-Type: text/plain
X-Host-Lookup-Failed: Reverse DNS lookup failed for 2a00:1450:4864:20::533
 (failed)
Received-SPF: pass client-ip=2a00:1450:4864:20::533;
 envelope-from=arstoffel@HIDDEN; helo=mail-ed1-x533.google.com
X-Spam_score_int: -6
X-Spam_score: -0.7
X-Spam_bar: /
X-Spam_report: (-0.7 / 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,
 PDS_HP_HELO_NORDNS=0.659, RCVD_IN_DNSWL_NONE=-0.0001, RDNS_NONE=0.793,
 SPF_HELO_NONE=0.001, SPF_PASS=-0.001,
 T_SCC_BODY_TEXT_LINE=-0.01 autolearn=no autolearn_force=no
X-Spam_action: no action
X-Spam-Score: -1.3 (-)
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.3 (--)

Hi David,

I took a superficial look at this thread, and this seems very nice.

I was wondering why you want to be able to find the definition of macros
with @ in their name.  Those are "private" macros that the user
shouldn't have occasion to use.  Is it for a TeX programmer mode?

Let me also mention a library I wrote for analyzing TeX code (accessible
to Emacs via LSP):

    https://github.com/astoff/digestif

It's written in Lua (can run on the LuaTeX interpreter) and uses PEGs
for flexible parsing.  If you want to be very ambitious about what you
are able to parse, I think regexps are not sufficient.

Digestif can handle \cite{messed up reference} just fine, for example.

On Thu,  3 Feb 2022 at 15:09, David Fussner via "Bug reports for GNU Emacs, the Swiss army knife of text editors" <bug-gnu-emacs@HIDDEN> wrote:

> I've recently been trying to use xref commands with a tags table in a
> TeX repository, and many of the results are sub-optimal.  This is a
> known issue -- within living memory there have been at least two
> discussions related to it on help-gnu-emacs:
>
> https://lists.gnu.org/archive/html/help-gnu-emacs/2018-06/msg00126.html
> https://lists.gnu.org/archive/html/help-gnu-emacs/2021-07/msg00436.html
>
> Neither discussion resulted in any code, at least not that I can find,
> and the issues mentioned there remain.  For example,
> xref-find-definitions on, say, '\mycommand' returns
>
> No definitions found for: mycommand.
>
> (The absence of the escape char in the search string makes the search
> fail, as the tag name in the table will be '\mycommand'.)
>
> Similarly, any xref command on 'my:citekey' will only search by default
> for the half of the symbol under point, stopping at the colon.
>
> There are many other behaviors that are suboptimal, as well, so in the
> end I wrote a new xref backend for TeX buffers (cloning large portions
> of the default etags backend), and wondered whether it might be welcome
> in GNU Emacs.
>
> A few remarks:
>
> 1. The code should work as it stands both in the AUCTeX and the in-tree
> modes.  The AUCTeX hooks I've included in the patch are provisional, as
> I would want to discuss with them how they would want to handle it,
> should the patch be accepted in some form.
>
> 2. Along the way I found some issues with how etags parses TeX files,
> issues which affect the usefulness of the xref commands, so I've made
> changes in etags.c as well.  When running the test suite for etags the
> only diffs occurred in the TeX-related sections of the resulting tags
> file, and location information in those sections was good.
>
> 3. The patch as it stands enables all the changes by default to give
> what I judge to be the best out-of-the-box experience, but wiser heads
> may well have other ideas.
>
> 4. If it looks like the patch will make it into Emacs in some form, I'm
> going to need to assign copyright, so I'd appreciate help with getting
> that started.
>
> Thanks,
>
> David.




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#53749: 29.0.50; [PATCH] Xref backend for TeX buffers
Resent-From: Augusto Stoffel <arstoffel@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Fri, 25 Feb 2022 20:17:02 +0000
Resent-Message-ID: <handler.53749.B53749.164582018631982 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 53749
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: patch
To: 53749 <at> debbugs.gnu.org
Cc: dfussner@HIDDEN
X-Debbugs-Original-To: David Fussner via "Bug reports for GNU Emacs, the Swiss army knife of text editors" <bug-gnu-emacs@HIDDEN>
X-Debbugs-Original-Cc: 53749 <at> debbugs.gnu.org, David Fussner <dfussner@HIDDEN>
Received: via spool by 53749-submit <at> debbugs.gnu.org id=B53749.164582018631982
          (code B ref 53749); Fri, 25 Feb 2022 20:17:02 +0000
Received: (at 53749) by debbugs.gnu.org; 25 Feb 2022 20:16:26 +0000
Received: from localhost ([127.0.0.1]:53810 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1nNh0s-0008Jm-44
	for submit <at> debbugs.gnu.org; Fri, 25 Feb 2022 15:16:26 -0500
Received: from mail-ed1-f54.google.com ([209.85.208.54]:39919)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <arstoffel@HIDDEN>) id 1nNh0q-0008JX-DA
 for 53749 <at> debbugs.gnu.org; Fri, 25 Feb 2022 15:16:25 -0500
Received: by mail-ed1-f54.google.com with SMTP id g20so8941764edw.6
 for <53749 <at> debbugs.gnu.org>; Fri, 25 Feb 2022 12:16:24 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112;
 h=from:to:cc:subject:references:date:in-reply-to:message-id
 :user-agent:mime-version;
 bh=pOtJY65BSCDg5reHSC+XupwZ0t80w4yz2ZVZg70/NPM=;
 b=GYXELjg/pBo6hQT+aJ2L4VV4TUtbiGFSqxvajZZtkkqXAT6grRQomHjllLI2UwyIAS
 5hlPH0P0ZUOhMvLopGT7t5+Qbjoe8DwbU5evHdWNi2ZbZyP1/oFFyTgEuiDSKCEhF+CN
 qrsYdiaAVyqtuTUu4W+PoQNjOJF0g2arS2eKDRA7L0fGSp8nHh3BbrhrKJXtLmqyhsZH
 XC4uKyvHE18rj12RNpKUyy7uv23k88h7JBWdQJ+Gyiq2sidgnAswEQKK/meMPbRTefUp
 O3V8hQq/9p+mgeigZleCgHlNBK8rxIT6BQDPgVzM+AFjplARx+l0dJtoThhqY7vPLYvl
 08ZQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20210112;
 h=x-gm-message-state:from:to:cc:subject:references:date:in-reply-to
 :message-id:user-agent:mime-version;
 bh=pOtJY65BSCDg5reHSC+XupwZ0t80w4yz2ZVZg70/NPM=;
 b=XyXvWQDqpaxWyKM0iAZApEPyKmjKEg3TBwUQvHLCbwvoRHz0MP61IFEO7maC5ZC+Ng
 qSX2LY78xBTwecHld4KwYazbJdtnG/7m5KHIUqTw1/W9ELTNgAy8rPOMIM4y5qipPjUE
 pW6rMRdn8jDA+qxcTZuVE52P9B0yOJGA9a1jwzBAlj4Eun8L2uRGSiS/R6RgqfvCkMLJ
 TpXCky0pQRxoxtfQAXNnLYeTcSzA3V0v1HYNcdt8rxC7yH4gsyauEyaleSb47Esr0FcE
 NTGsNKWz475cz9ElmT5NaZyl59RFwx1nzCKiH7X6oNbAHmiNz9AGepnTHRNP6NxoWyT4
 cK/A==
X-Gm-Message-State: AOAM533YSleFgFPKLsjcJJgfonGoAgbfTHvv3DzXKkCi+FXZFetz/t2i
 a/V2AzU/6zPYCxWKOpLDf1s=
X-Google-Smtp-Source: ABdhPJzkrNg5/WBOm2QpdYQfT2LHEAhiHWZc3ImETfIBiHNhwVOdJZUb6waM9FYAvPWOmXgDfKgHNw==
X-Received: by 2002:a50:ee90:0:b0:40f:349f:7368 with SMTP id
 f16-20020a50ee90000000b0040f349f7368mr8488283edr.236.1645820178223; 
 Fri, 25 Feb 2022 12:16:18 -0800 (PST)
Received: from ars3 ([2a02:8109:8ac0:56d0::758e])
 by smtp.gmail.com with ESMTPSA id
 n23-20020a509357000000b00412b325b05fsm1750361eda.74.2022.02.25.12.16.17
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 25 Feb 2022 12:16:17 -0800 (PST)
From: Augusto Stoffel <arstoffel@HIDDEN>
References: <CADF+RtgWCLKQGwgdTNWmgesbcwq8iBxChoN8FqMOg95Ai3CYTA@HIDDEN>
Date: Fri, 25 Feb 2022 21:16:16 +0100
In-Reply-To: <CADF+RtgWCLKQGwgdTNWmgesbcwq8iBxChoN8FqMOg95Ai3CYTA@HIDDEN>
 (David Fussner via's message of "Thu, 3 Feb 2022 15:09:22 +0000")
Message-ID: <87pmnad7n3.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.91 (gnu/linux)
MIME-Version: 1.0
Content-Type: text/plain
X-Spam-Score: -0.0 (/)
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: -1.0 (-)

Hi David,

I took a superficial look at this thread, and this seems very nice.

I was wondering why you want to be able to find the definition of macros
with @ in their name.  Those are "private" macros that the user
shouldn't have occasion to use.  Is it for a TeX programmer mode?

Let me also mention a library I wrote for analyzing TeX code (accessible
to Emacs via LSP):

    https://github.com/astoff/digestif

It's written in Lua (can run on the LuaTeX interpreter) and uses PEGs
for flexible parsing.  If you want to be very ambitious about what you
are able to parse, I think regexps are not sufficient.

Digestif can handle \cite{messed up reference} just fine, for example.

On Thu,  3 Feb 2022 at 15:09, David Fussner via "Bug reports for GNU Emacs, the Swiss army knife of text editors" <bug-gnu-emacs@HIDDEN> wrote:

> I've recently been trying to use xref commands with a tags table in a
> TeX repository, and many of the results are sub-optimal.  This is a
> known issue -- within living memory there have been at least two
> discussions related to it on help-gnu-emacs:
>
> https://lists.gnu.org/archive/html/help-gnu-emacs/2018-06/msg00126.html
> https://lists.gnu.org/archive/html/help-gnu-emacs/2021-07/msg00436.html
>
> Neither discussion resulted in any code, at least not that I can find,
> and the issues mentioned there remain.  For example,
> xref-find-definitions on, say, '\mycommand' returns
>
> No definitions found for: mycommand.
>
> (The absence of the escape char in the search string makes the search
> fail, as the tag name in the table will be '\mycommand'.)
>
> Similarly, any xref command on 'my:citekey' will only search by default
> for the half of the symbol under point, stopping at the colon.
>
> There are many other behaviors that are suboptimal, as well, so in the
> end I wrote a new xref backend for TeX buffers (cloning large portions
> of the default etags backend), and wondered whether it might be welcome
> in GNU Emacs.
>
> A few remarks:
>
> 1. The code should work as it stands both in the AUCTeX and the in-tree
> modes.  The AUCTeX hooks I've included in the patch are provisional, as
> I would want to discuss with them how they would want to handle it,
> should the patch be accepted in some form.
>
> 2. Along the way I found some issues with how etags parses TeX files,
> issues which affect the usefulness of the xref commands, so I've made
> changes in etags.c as well.  When running the test suite for etags the
> only diffs occurred in the TeX-related sections of the resulting tags
> file, and location information in those sections was good.
>
> 3. The patch as it stands enables all the changes by default to give
> what I judge to be the best out-of-the-box experience, but wiser heads
> may well have other ideas.
>
> 4. If it looks like the patch will make it into Emacs in some form, I'm
> going to need to assign copyright, so I'd appreciate help with getting
> that started.
>
> Thanks,
>
> David.




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#53749: 29.0.50; [PATCH] Xref backend for TeX buffers
Resent-From: David Fussner <dfussner@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Sat, 26 Feb 2022 09:30:01 +0000
Resent-Message-ID: <handler.53749.B.164586776421600 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 53749
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: patch
To: Augusto Stoffel <arstoffel@HIDDEN>
Cc: 53749 <at> debbugs.gnu.org
X-Debbugs-Original-Cc: 53749 <at> debbugs.gnu.org, "David Fussner via Bug reports for GNU Emacs, the Swiss army knife of text editors" <bug-gnu-emacs@HIDDEN>
Received: via spool by submit <at> debbugs.gnu.org id=B.164586776421600
          (code B ref -1); Sat, 26 Feb 2022 09:30:01 +0000
Received: (at submit) by debbugs.gnu.org; 26 Feb 2022 09:29:24 +0000
Received: from localhost ([127.0.0.1]:54293 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1nNtOF-0005cI-Ld
	for submit <at> debbugs.gnu.org; Sat, 26 Feb 2022 04:29:24 -0500
Received: from lists.gnu.org ([209.51.188.17]:39174)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <dfussner@HIDDEN>) id 1nNtOD-0005cA-Gm
 for submit <at> debbugs.gnu.org; Sat, 26 Feb 2022 04:29:22 -0500
Received: from eggs.gnu.org ([209.51.188.92]:38630)
 by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <dfussner@HIDDEN>)
 id 1nNtOD-0004mn-2x
 for bug-gnu-emacs@HIDDEN; Sat, 26 Feb 2022 04:29:21 -0500
Received: from [2607:f8b0:4864:20::735] (port=45755
 helo=mail-qk1-x735.google.com)
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
 (Exim 4.90_1) (envelope-from <dfussner@HIDDEN>)
 id 1nNtOB-0002U3-C1
 for bug-gnu-emacs@HIDDEN; Sat, 26 Feb 2022 04:29:20 -0500
Received: by mail-qk1-x735.google.com with SMTP id b13so6523576qkj.12
 for <bug-gnu-emacs@HIDDEN>; Sat, 26 Feb 2022 01:29:18 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=googlemail.com; s=20210112;
 h=mime-version:references:in-reply-to:from:date:message-id:subject:to
 :cc; bh=QCQ9aqQF2VgkXkjJXKe+ExzyiCy1QnZKHQ5H+PCQXpI=;
 b=HIn811gh+Jc0o/BUZ6t1v+zQfvF6lr2edfonkYLeK+KdX0qr45Hn/mpaPu8wDk6zyI
 sW5UmUfOI86t6sT6C9cCr3GqSFlXxVTfRljKQmu2AQm6yqfEJUeBZVXl9T+5EuHFB6Rn
 ELQzecofeKwr/7EW5ck84ZNr93cBhPGapT5aofqJ4aVOvTIOvyPCMWiSZaek/FfHFmz6
 pkQ9MBb3i37zyido9tT/5G4yr1TRTfOgC6ul/TBee6cScA5H4d7DCmLRvFP2tQX5QyUF
 QFXSbLCRO/RJT/gHT276KefVlGGCTCtVg7Z5nLGnRDkrMmt4SmZTLFfbJrHVrwSyPmJD
 Yrsg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20210112;
 h=x-gm-message-state:mime-version:references:in-reply-to:from:date
 :message-id:subject:to:cc;
 bh=QCQ9aqQF2VgkXkjJXKe+ExzyiCy1QnZKHQ5H+PCQXpI=;
 b=OfLHYdKA/hQWUWnAk5b93l5U+72AOG3o5Od2w7zM4X84lS3EY8LZKTi72i1Kv05MEj
 kC4eCJ+ccwNyBsQCU1xFdJqBRo7FaIkV7YwSR2aEL9bN1lxYKUiDidyRKDERH8UZVOje
 ih8m/gvpIEnC+U4o6QfWy4+4jg9QEtM6nrOolGAiOwFYzYI00NDo9kNtl6CKFP0BnRsT
 JvEpMelEMJMhXZ7OzarNIBiM11a1FfpU6tjc5kezDcrCIwNfsnsGkmPHUCDW00fIO1GC
 UBKOuyYTzZSuVAGh8axnrArdJd8mkJlGVbcIjhz+lGalWmpyQMuBVipV269iMekuXjlf
 1tgA==
X-Gm-Message-State: AOAM531D2PtBbOJ1FRo9kAfM/2THdSORjx2LB99ar1Zc5lEm3oGJkFKz
 4NrBxCYlA1dRhtCXigsBqE7wSxqJtMq9QyBqS7k=
X-Google-Smtp-Source: ABdhPJxD2uIvSagDTxAakvQVcDMJpunL8m0eLgVUMJRahlDmDZcQBJ6vMq6XXWoGSoBKp0MEFApWJWatXWn+BsDFl8Y=
X-Received: by 2002:a37:4147:0:b0:47c:4595:b8c with SMTP id
 o68-20020a374147000000b0047c45950b8cmr6917449qka.267.1645867757950; Sat, 26
 Feb 2022 01:29:17 -0800 (PST)
MIME-Version: 1.0
References: <CADF+RtgWCLKQGwgdTNWmgesbcwq8iBxChoN8FqMOg95Ai3CYTA@HIDDEN>
 <87pmnad7n3.fsf@HIDDEN>
In-Reply-To: <87pmnad7n3.fsf@HIDDEN>
From: David Fussner <dfussner@HIDDEN>
Date: Sat, 26 Feb 2022 09:29:06 +0000
Message-ID: <CADF+Rti7JdViHpksyO7cnHy_gj8bCUDkXV0OfAP8Q-CfZn2mkw@HIDDEN>
Content-Type: text/plain; charset="UTF-8"
X-Host-Lookup-Failed: Reverse DNS lookup failed for 2607:f8b0:4864:20::735
 (failed)
Received-SPF: pass client-ip=2607:f8b0:4864:20::735;
 envelope-from=dfussner@HIDDEN; helo=mail-qk1-x735.google.com
X-Spam_score_int: -6
X-Spam_score: -0.7
X-Spam_bar: /
X-Spam_report: (-0.7 / 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,
 PDS_HP_HELO_NORDNS=0.659, RCVD_IN_DNSWL_NONE=-0.0001, RDNS_NONE=0.793,
 SPF_HELO_NONE=0.001, SPF_PASS=-0.001,
 T_SCC_BODY_TEXT_LINE=-0.01 autolearn=no autolearn_force=no
X-Spam_action: no action
X-Spam-Score: -1.3 (-)
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.3 (--)

Hi Augusto,

On Fri, 25 Feb 2022 at 20:16, Augusto Stoffel <arstoffel@HIDDEN> wrote:
>
> Hi David,

>
> I took a superficial look at this thread, and this seems very nice.

Thanks!

>
> I was wondering why you want to be able to find the definition of macros
> with @ in their name.  Those are "private" macros that the user
> shouldn't have occasion to use.  Is it for a TeX programmer mode?

I confess that TeX developers are indeed one of the main targets for
the feature as I envisioned it.  For creating and following \labels,
\refs, and \cites (of all sorts) I find RefTeX very handy, as well as
for jumping around \chapters and \sections and the like.  What I miss
when developing are the code-navigation features of something like
xref, which are (from the user point of view) both simple and
powerful.  My modest goal was to make Emacs' extensive infrastructure
work a little better out of the box for TeX documents, especially for
styles and other collections of macros.

>
> Let me also mention a library I wrote for analyzing TeX code (accessible
> to Emacs via LSP):
>
>     https://github.com/astoff/digestif
>
> It's written in Lua (can run on the LuaTeX interpreter) and uses PEGs
> for flexible parsing.  If you want to be very ambitious about what you
> are able to parse, I think regexps are not sufficient.
>
> Digestif can handle \cite{messed up reference} just fine, for example.
>

This looks very nice indeed, and if I'm reading it right provides a
replacement both for RefTeX and for the code-navigation features I'm
trying to implement.  I figure I'll continue trying to get improved
out-of-the-box features into core, and if I manage to satisfy Dmitry
we'll then have a choice, but in any case I'm going to have a longer
look at digestif when I get some time.

Thanks for the hint!

David.




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#53749: 29.0.50; [PATCH] Xref backend for TeX buffers
Resent-From: David Fussner <dfussner@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Sat, 26 Feb 2022 09:30:02 +0000
Resent-Message-ID: <handler.53749.B53749.164586777221619 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 53749
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: patch
To: Augusto Stoffel <arstoffel@HIDDEN>
Cc: 53749 <at> debbugs.gnu.org
X-Debbugs-Original-Cc: 53749 <at> debbugs.gnu.org, "David Fussner via Bug reports for GNU Emacs, the Swiss army knife of text editors" <bug-gnu-emacs@HIDDEN>
Received: via spool by 53749-submit <at> debbugs.gnu.org id=B53749.164586777221619
          (code B ref 53749); Sat, 26 Feb 2022 09:30:02 +0000
Received: (at 53749) by debbugs.gnu.org; 26 Feb 2022 09:29:32 +0000
Received: from localhost ([127.0.0.1]:54296 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1nNtOO-0005cd-5T
	for submit <at> debbugs.gnu.org; Sat, 26 Feb 2022 04:29:32 -0500
Received: from mail-qk1-f170.google.com ([209.85.222.170]:36354)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <dfussner@HIDDEN>) id 1nNtOF-0005c5-La
 for 53749 <at> debbugs.gnu.org; Sat, 26 Feb 2022 04:29:24 -0500
Received: by mail-qk1-f170.google.com with SMTP id g24so6564986qkl.3
 for <53749 <at> debbugs.gnu.org>; Sat, 26 Feb 2022 01:29:23 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=googlemail.com; s=20210112;
 h=mime-version:references:in-reply-to:from:date:message-id:subject:to
 :cc; bh=QCQ9aqQF2VgkXkjJXKe+ExzyiCy1QnZKHQ5H+PCQXpI=;
 b=HIn811gh+Jc0o/BUZ6t1v+zQfvF6lr2edfonkYLeK+KdX0qr45Hn/mpaPu8wDk6zyI
 sW5UmUfOI86t6sT6C9cCr3GqSFlXxVTfRljKQmu2AQm6yqfEJUeBZVXl9T+5EuHFB6Rn
 ELQzecofeKwr/7EW5ck84ZNr93cBhPGapT5aofqJ4aVOvTIOvyPCMWiSZaek/FfHFmz6
 pkQ9MBb3i37zyido9tT/5G4yr1TRTfOgC6ul/TBee6cScA5H4d7DCmLRvFP2tQX5QyUF
 QFXSbLCRO/RJT/gHT276KefVlGGCTCtVg7Z5nLGnRDkrMmt4SmZTLFfbJrHVrwSyPmJD
 Yrsg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20210112;
 h=x-gm-message-state:mime-version:references:in-reply-to:from:date
 :message-id:subject:to:cc;
 bh=QCQ9aqQF2VgkXkjJXKe+ExzyiCy1QnZKHQ5H+PCQXpI=;
 b=u+BkHtwICIYrMCl2lGCZY6M59xaz582OYv+9mt6IQTgqzsjvnZq/2DDU0Trnh+nsbN
 PpNbJIcdRbeZmOmIMK1aE9zaopSleHZ2jZnDRWb9KQQL/lp9pPq0uWcnVpGcGB6LDwM7
 f3Rz6QoqF5atBYHHNLGYs0ijuCrRTTlRZvMmVLUUgsnIEAW9iUFVYPZ2jue3IrXZltMw
 mjXdiZjWOEuLTY2cIvnn1UEsujsex2nP2ZAjkSp6wpdnAOttK2bq8Q1Rsodhmz6iSgpB
 +QIIr3FP2HRVXFUwEa/OjNlSK7BOeA7sgvdtRXNBZa9uDR90CjVaD+TNMPXF4p1g2pDs
 VHLQ==
X-Gm-Message-State: AOAM531O1NZF7pU1k8zT6CxlgXXLCu2+nfhxsI8/88BgI7ZLkIxXlVmi
 OUMZyA4TkGTgAiBNorK3Yu6J1GOgVcUUL1h5km0=
X-Google-Smtp-Source: ABdhPJxD2uIvSagDTxAakvQVcDMJpunL8m0eLgVUMJRahlDmDZcQBJ6vMq6XXWoGSoBKp0MEFApWJWatXWn+BsDFl8Y=
X-Received: by 2002:a37:4147:0:b0:47c:4595:b8c with SMTP id
 o68-20020a374147000000b0047c45950b8cmr6917449qka.267.1645867757950; Sat, 26
 Feb 2022 01:29:17 -0800 (PST)
MIME-Version: 1.0
References: <CADF+RtgWCLKQGwgdTNWmgesbcwq8iBxChoN8FqMOg95Ai3CYTA@HIDDEN>
 <87pmnad7n3.fsf@HIDDEN>
In-Reply-To: <87pmnad7n3.fsf@HIDDEN>
From: David Fussner <dfussner@HIDDEN>
Date: Sat, 26 Feb 2022 09:29:06 +0000
Message-ID: <CADF+Rti7JdViHpksyO7cnHy_gj8bCUDkXV0OfAP8Q-CfZn2mkw@HIDDEN>
Content-Type: text/plain; charset="UTF-8"
X-Spam-Score: -0.0 (/)
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: -1.0 (-)

Hi Augusto,

On Fri, 25 Feb 2022 at 20:16, Augusto Stoffel <arstoffel@HIDDEN> wrote:
>
> Hi David,

>
> I took a superficial look at this thread, and this seems very nice.

Thanks!

>
> I was wondering why you want to be able to find the definition of macros
> with @ in their name.  Those are "private" macros that the user
> shouldn't have occasion to use.  Is it for a TeX programmer mode?

I confess that TeX developers are indeed one of the main targets for
the feature as I envisioned it.  For creating and following \labels,
\refs, and \cites (of all sorts) I find RefTeX very handy, as well as
for jumping around \chapters and \sections and the like.  What I miss
when developing are the code-navigation features of something like
xref, which are (from the user point of view) both simple and
powerful.  My modest goal was to make Emacs' extensive infrastructure
work a little better out of the box for TeX documents, especially for
styles and other collections of macros.

>
> Let me also mention a library I wrote for analyzing TeX code (accessible
> to Emacs via LSP):
>
>     https://github.com/astoff/digestif
>
> It's written in Lua (can run on the LuaTeX interpreter) and uses PEGs
> for flexible parsing.  If you want to be very ambitious about what you
> are able to parse, I think regexps are not sufficient.
>
> Digestif can handle \cite{messed up reference} just fine, for example.
>

This looks very nice indeed, and if I'm reading it right provides a
replacement both for RefTeX and for the code-navigation features I'm
trying to implement.  I figure I'll continue trying to get improved
out-of-the-box features into core, and if I manage to satisfy Dmitry
we'll then have a choice, but in any case I'm going to have a longer
look at digestif when I get some time.

Thanks for the hint!

David.




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#53749: 29.0.50; [PATCH] Xref backend for TeX buffers
Resent-From: Augusto Stoffel <arstoffel@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Sat, 26 Feb 2022 10:57:02 +0000
Resent-Message-ID: <handler.53749.B.164587301930991 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 53749
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: patch
To: David Fussner <dfussner@HIDDEN>
Cc: 53749 <at> debbugs.gnu.org
X-Debbugs-Original-Cc: 53749 <at> debbugs.gnu.org, "David Fussner via Bug reports for GNU Emacs, the Swiss army knife of text editors" <bug-gnu-emacs@HIDDEN>
Received: via spool by submit <at> debbugs.gnu.org id=B.164587301930991
          (code B ref -1); Sat, 26 Feb 2022 10:57:02 +0000
Received: (at submit) by debbugs.gnu.org; 26 Feb 2022 10:56:59 +0000
Received: from localhost ([127.0.0.1]:54334 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1nNul1-00083m-49
	for submit <at> debbugs.gnu.org; Sat, 26 Feb 2022 05:56:59 -0500
Received: from lists.gnu.org ([209.51.188.17]:38498)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <arstoffel@HIDDEN>) id 1nNuky-00083X-QT
 for submit <at> debbugs.gnu.org; Sat, 26 Feb 2022 05:56:57 -0500
Received: from eggs.gnu.org ([209.51.188.92]:53568)
 by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <arstoffel@HIDDEN>)
 id 1nNuky-0002LK-Iw
 for bug-gnu-emacs@HIDDEN; Sat, 26 Feb 2022 05:56:56 -0500
Received: from [2a00:1450:4864:20::532] (port=39593
 helo=mail-ed1-x532.google.com)
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
 (Exim 4.90_1) (envelope-from <arstoffel@HIDDEN>)
 id 1nNukw-0008Cv-Eq
 for bug-gnu-emacs@HIDDEN; Sat, 26 Feb 2022 05:56:56 -0500
Received: by mail-ed1-x532.google.com with SMTP id g20so10714243edw.6
 for <bug-gnu-emacs@HIDDEN>; Sat, 26 Feb 2022 02:56:53 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112;
 h=from:to:cc:subject:references:date:in-reply-to:message-id
 :user-agent:mime-version;
 bh=FiuLSzPgHom99UkqJzF7iOp8PIqjGYHi7APrz9WKkqA=;
 b=f6RY2WEltd8BdP+oHStF6LtZ6WrYeruvkeoyxKO/BUOYZY55UHnzyV/UATvO4brgLa
 R3OkhPX8+lXxXI1NCR+FbuB2K3KEnqUgDwIDwP9mBAkAM+JLLIlwpAGWMlhipc3d+DQY
 5WcjfMxSPNEkIgNGxsnmezVFFGUlo9gfJF/HvPXvtqm557mXCArPMb/E43W8dK6OebZX
 vdp3m7q/DJUR9EvgJCqqTnK470PAEirDXsv0QQml4XfB7Yy6UqQTbdDtgTc6mi3cp+rP
 9X6qq4MgtEiOeCOm0FxyJPMtKtmcSDSWzhtkVv4U0b9SjmPjuEWdWtxxyFSvatchQ1Hz
 Hhcw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20210112;
 h=x-gm-message-state:from:to:cc:subject:references:date:in-reply-to
 :message-id:user-agent:mime-version;
 bh=FiuLSzPgHom99UkqJzF7iOp8PIqjGYHi7APrz9WKkqA=;
 b=UcdCvNGM4O5i+dH8DJIF59zcHANmJoA+cMnM3eD+vGDnFZc0n+FqDohU6bcp742C6N
 v+K0TwYRj+GrK5NduQyZbbpwdBreuUEH4UL3zqZRToAgbJfAhGjpyaoUoUv3OL7xyAsX
 pX0l1fOOFWBnDfmP1/0Iny7wJNTOy52hiozf3CxERq7tGjWmDjSCGh9MpXmyi8fpENle
 1CoVIknCOnU9k2FAO0l5d1slO4DYM/4Cgvdo9MmtCJEYYsvjhIPOt5bChb5cduBEeayW
 dLQPYvZ/TTfnIhmuN1Y25bAyovamg8pKQsPEd8sQRz2ICHhLPGL5OP9t3gpvDoIwTjUp
 3Ivw==
X-Gm-Message-State: AOAM533R+bM4LEDf4+3Eu1O/cJivtILXmtfZxYnYIrefkOmfi6tekn5p
 fKfZUwXX/9bfIaTyR4W1nSoCa/YLwX3AcA==
X-Google-Smtp-Source: ABdhPJyto6oGJpRqyfOM7aocdnKqMYaReM6+HGONklHUYzjPh4qQb/sycpqQ+ua+FjYpfEhmssmmmg==
X-Received: by 2002:a50:aa8c:0:b0:410:801c:4e2f with SMTP id
 q12-20020a50aa8c000000b00410801c4e2fmr10752783edc.179.1645873012160; 
 Sat, 26 Feb 2022 02:56:52 -0800 (PST)
Received: from ars3 ([2a02:8109:8ac0:56d0::758e])
 by smtp.gmail.com with ESMTPSA id
 o14-20020a170906774e00b006d5b915f27dsm2086897ejn.169.2022.02.26.02.56.51
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Sat, 26 Feb 2022 02:56:51 -0800 (PST)
From: Augusto Stoffel <arstoffel@HIDDEN>
References: <CADF+RtgWCLKQGwgdTNWmgesbcwq8iBxChoN8FqMOg95Ai3CYTA@HIDDEN>
 <87pmnad7n3.fsf@HIDDEN>
 <CADF+Rti7JdViHpksyO7cnHy_gj8bCUDkXV0OfAP8Q-CfZn2mkw@HIDDEN>
Date: Sat, 26 Feb 2022 11:56:50 +0100
In-Reply-To: <CADF+Rti7JdViHpksyO7cnHy_gj8bCUDkXV0OfAP8Q-CfZn2mkw@HIDDEN>
 (David Fussner's message of "Sat, 26 Feb 2022 09:29:06 +0000")
Message-ID: <87czj9dhfx.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.91 (gnu/linux)
MIME-Version: 1.0
Content-Type: text/plain
X-Host-Lookup-Failed: Reverse DNS lookup failed for 2a00:1450:4864:20::532
 (failed)
Received-SPF: pass client-ip=2a00:1450:4864:20::532;
 envelope-from=arstoffel@HIDDEN; helo=mail-ed1-x532.google.com
X-Spam_score_int: -6
X-Spam_score: -0.7
X-Spam_bar: /
X-Spam_report: (-0.7 / 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,
 PDS_HP_HELO_NORDNS=0.659, RCVD_IN_DNSWL_NONE=-0.0001, RDNS_NONE=0.793,
 SPF_HELO_NONE=0.001, SPF_PASS=-0.001,
 T_SCC_BODY_TEXT_LINE=-0.01 autolearn=no autolearn_force=no
X-Spam_action: no action
X-Spam-Score: -1.3 (-)
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.3 (--)

On Sat, 26 Feb 2022 at 09:29, David Fussner <dfussner@HIDDEN> wrote:

> Hi Augusto,
>
> On Fri, 25 Feb 2022 at 20:16, Augusto Stoffel <arstoffel@HIDDEN> wrote:
>>
>> Hi David,
>
>>
>> I took a superficial look at this thread, and this seems very nice.
>
> Thanks!
>
>>
>> I was wondering why you want to be able to find the definition of macros
>> with @ in their name.  Those are "private" macros that the user
>> shouldn't have occasion to use.  Is it for a TeX programmer mode?
>
> I confess that TeX developers are indeed one of the main targets for
> the feature as I envisioned it.  For creating and following \labels,
> \refs, and \cites (of all sorts) I find RefTeX very handy, as well as
> for jumping around \chapters and \sections and the like.  What I miss
> when developing are the code-navigation features of something like
> xref, which are (from the user point of view) both simple and
> powerful.  My modest goal was to make Emacs' extensive infrastructure
> work a little better out of the box for TeX documents, especially for
> styles and other collections of macros.

Sorry for entering a tangent, but here's one more thing I dislike about
RefTeX you might want to consider.  If you type \label{something}, as
opposed to using the RefTeX command to add a label (or if you edit the
label by hand) then RefTeX will not reparse the document and get out of
sync.  Or at least that was the case when I still used RefTeX.  So it
might be worth considering some cache invalidation scheme there.
(Digestif has caching for multifile documents, but parsing a single file
is fast enough that this is not a problem I need to worry :-).)

>>
>> Let me also mention a library I wrote for analyzing TeX code (accessible
>> to Emacs via LSP):
>>
>>     https://github.com/astoff/digestif
>>
>> It's written in Lua (can run on the LuaTeX interpreter) and uses PEGs
>> for flexible parsing.  If you want to be very ambitious about what you
>> are able to parse, I think regexps are not sufficient.
>>
>> Digestif can handle \cite{messed up reference} just fine, for example.
>>
>
> This looks very nice indeed, and if I'm reading it right provides a
> replacement both for RefTeX and for the code-navigation features I'm
> trying to implement.

That's right.  Also command completion (including snippets, if that's
your thing) and Eldoc.

>  I figure I'll continue trying to get improved
> out-of-the-box features into core, and if I manage to satisfy Dmitry
> we'll then have a choice, but in any case I'm going to have a longer
> look at digestif when I get some time.

Let me mention one last thing, since you seem interested in a TeX
programming mode.

Digestif will not work great out of the box for programming because it
correctly considers @ to have catcode "other" (so it can't be part of
the name of a command).  But this is trivial to change and, in fact,
Digestif already has a "latex-prog" mode that simulates the correct
catcodes.  It would be easy to include a "latex-expl3" mode as well.

The problem is that there's no way for Emacs to communicate that one of
these programming modes is to be used.  This could be fixed in two ways:

A. by creating latex-prog and latex-expl3 derived modes in Emacs, or

B. adding heuristics to Digestif to decide if a given file is "document"
   or "code".

Do you have any thoughts about A?  Would there be any other benefits in
Emacs to justify the latex-prog and latex-expl3 major modes?  It seems
that (at least in AUCTeX) @ is always considered a letter, which may be
innocuous but is kinda wrong.

>
> Thanks for the hint!
>
> David.




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#53749: 29.0.50; [PATCH] Xref backend for TeX buffers
Resent-From: Augusto Stoffel <arstoffel@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Sat, 26 Feb 2022 10:58:02 +0000
Resent-Message-ID: <handler.53749.B53749.164587302831036 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 53749
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: patch
To: David Fussner <dfussner@HIDDEN>
Cc: 53749 <at> debbugs.gnu.org
X-Debbugs-Original-Cc: 53749 <at> debbugs.gnu.org, "David Fussner via Bug reports for GNU Emacs, the Swiss army knife of text editors" <bug-gnu-emacs@HIDDEN>
Received: via spool by 53749-submit <at> debbugs.gnu.org id=B53749.164587302831036
          (code B ref 53749); Sat, 26 Feb 2022 10:58:02 +0000
Received: (at 53749) by debbugs.gnu.org; 26 Feb 2022 10:57:08 +0000
Received: from localhost ([127.0.0.1]:54337 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1nNul9-00084W-H4
	for submit <at> debbugs.gnu.org; Sat, 26 Feb 2022 05:57:07 -0500
Received: from mail-ed1-f41.google.com ([209.85.208.41]:45801)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <arstoffel@HIDDEN>) id 1nNul0-00083T-Dr
 for 53749 <at> debbugs.gnu.org; Sat, 26 Feb 2022 05:56:58 -0500
Received: by mail-ed1-f41.google.com with SMTP id c6so10668571edk.12
 for <53749 <at> debbugs.gnu.org>; Sat, 26 Feb 2022 02:56:58 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112;
 h=from:to:cc:subject:references:date:in-reply-to:message-id
 :user-agent:mime-version;
 bh=FiuLSzPgHom99UkqJzF7iOp8PIqjGYHi7APrz9WKkqA=;
 b=f6RY2WEltd8BdP+oHStF6LtZ6WrYeruvkeoyxKO/BUOYZY55UHnzyV/UATvO4brgLa
 R3OkhPX8+lXxXI1NCR+FbuB2K3KEnqUgDwIDwP9mBAkAM+JLLIlwpAGWMlhipc3d+DQY
 5WcjfMxSPNEkIgNGxsnmezVFFGUlo9gfJF/HvPXvtqm557mXCArPMb/E43W8dK6OebZX
 vdp3m7q/DJUR9EvgJCqqTnK470PAEirDXsv0QQml4XfB7Yy6UqQTbdDtgTc6mi3cp+rP
 9X6qq4MgtEiOeCOm0FxyJPMtKtmcSDSWzhtkVv4U0b9SjmPjuEWdWtxxyFSvatchQ1Hz
 Hhcw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20210112;
 h=x-gm-message-state:from:to:cc:subject:references:date:in-reply-to
 :message-id:user-agent:mime-version;
 bh=FiuLSzPgHom99UkqJzF7iOp8PIqjGYHi7APrz9WKkqA=;
 b=vduFUamzPXRGaTjvUmD93FZVafTv8jUTrUBSbQQmFYNA9qYMpekHh6ZveXSYDmsbIp
 LdJ8R0XhXQC2CDoMT1ky1rnwmaTdy125htwSGSLkd8PgbTI1iHmAMb38dECgpv5dslgM
 zjS17+ly89vW5WVt5NnmprCjypg0xprAQboBT/FsNHpsxs/ve9sKllBM19cH9bACyNp/
 B/9rhH/8nuMekG9obAbWeRILwmakMmwRdohSgdgKKkoXrcSPem230IMX/SRBXxFJPYE6
 +hHbPW/3BZqSHc7PafSNGqMQXsQIrHmQIjncMfZPLDbQyz6WoyYQbr88YwjxqQ274EPx
 2NTg==
X-Gm-Message-State: AOAM530xuApXiqqS0lb1dUsf2dEP1aVXlKzQ2/w4gUjZAkxWEDMGg86C
 n8uzjblisV2hOOmJ2nSFjJgcQ0SdNkwOdw==
X-Google-Smtp-Source: ABdhPJyto6oGJpRqyfOM7aocdnKqMYaReM6+HGONklHUYzjPh4qQb/sycpqQ+ua+FjYpfEhmssmmmg==
X-Received: by 2002:a50:aa8c:0:b0:410:801c:4e2f with SMTP id
 q12-20020a50aa8c000000b00410801c4e2fmr10752783edc.179.1645873012160; 
 Sat, 26 Feb 2022 02:56:52 -0800 (PST)
Received: from ars3 ([2a02:8109:8ac0:56d0::758e])
 by smtp.gmail.com with ESMTPSA id
 o14-20020a170906774e00b006d5b915f27dsm2086897ejn.169.2022.02.26.02.56.51
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Sat, 26 Feb 2022 02:56:51 -0800 (PST)
From: Augusto Stoffel <arstoffel@HIDDEN>
References: <CADF+RtgWCLKQGwgdTNWmgesbcwq8iBxChoN8FqMOg95Ai3CYTA@HIDDEN>
 <87pmnad7n3.fsf@HIDDEN>
 <CADF+Rti7JdViHpksyO7cnHy_gj8bCUDkXV0OfAP8Q-CfZn2mkw@HIDDEN>
Date: Sat, 26 Feb 2022 11:56:50 +0100
In-Reply-To: <CADF+Rti7JdViHpksyO7cnHy_gj8bCUDkXV0OfAP8Q-CfZn2mkw@HIDDEN>
 (David Fussner's message of "Sat, 26 Feb 2022 09:29:06 +0000")
Message-ID: <87czj9dhfx.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.91 (gnu/linux)
MIME-Version: 1.0
Content-Type: text/plain
X-Spam-Score: -0.0 (/)
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: -1.0 (-)

On Sat, 26 Feb 2022 at 09:29, David Fussner <dfussner@HIDDEN> wrote:

> Hi Augusto,
>
> On Fri, 25 Feb 2022 at 20:16, Augusto Stoffel <arstoffel@HIDDEN> wrote:
>>
>> Hi David,
>
>>
>> I took a superficial look at this thread, and this seems very nice.
>
> Thanks!
>
>>
>> I was wondering why you want to be able to find the definition of macros
>> with @ in their name.  Those are "private" macros that the user
>> shouldn't have occasion to use.  Is it for a TeX programmer mode?
>
> I confess that TeX developers are indeed one of the main targets for
> the feature as I envisioned it.  For creating and following \labels,
> \refs, and \cites (of all sorts) I find RefTeX very handy, as well as
> for jumping around \chapters and \sections and the like.  What I miss
> when developing are the code-navigation features of something like
> xref, which are (from the user point of view) both simple and
> powerful.  My modest goal was to make Emacs' extensive infrastructure
> work a little better out of the box for TeX documents, especially for
> styles and other collections of macros.

Sorry for entering a tangent, but here's one more thing I dislike about
RefTeX you might want to consider.  If you type \label{something}, as
opposed to using the RefTeX command to add a label (or if you edit the
label by hand) then RefTeX will not reparse the document and get out of
sync.  Or at least that was the case when I still used RefTeX.  So it
might be worth considering some cache invalidation scheme there.
(Digestif has caching for multifile documents, but parsing a single file
is fast enough that this is not a problem I need to worry :-).)

>>
>> Let me also mention a library I wrote for analyzing TeX code (accessible
>> to Emacs via LSP):
>>
>>     https://github.com/astoff/digestif
>>
>> It's written in Lua (can run on the LuaTeX interpreter) and uses PEGs
>> for flexible parsing.  If you want to be very ambitious about what you
>> are able to parse, I think regexps are not sufficient.
>>
>> Digestif can handle \cite{messed up reference} just fine, for example.
>>
>
> This looks very nice indeed, and if I'm reading it right provides a
> replacement both for RefTeX and for the code-navigation features I'm
> trying to implement.

That's right.  Also command completion (including snippets, if that's
your thing) and Eldoc.

>  I figure I'll continue trying to get improved
> out-of-the-box features into core, and if I manage to satisfy Dmitry
> we'll then have a choice, but in any case I'm going to have a longer
> look at digestif when I get some time.

Let me mention one last thing, since you seem interested in a TeX
programming mode.

Digestif will not work great out of the box for programming because it
correctly considers @ to have catcode "other" (so it can't be part of
the name of a command).  But this is trivial to change and, in fact,
Digestif already has a "latex-prog" mode that simulates the correct
catcodes.  It would be easy to include a "latex-expl3" mode as well.

The problem is that there's no way for Emacs to communicate that one of
these programming modes is to be used.  This could be fixed in two ways:

A. by creating latex-prog and latex-expl3 derived modes in Emacs, or

B. adding heuristics to Digestif to decide if a given file is "document"
   or "code".

Do you have any thoughts about A?  Would there be any other benefits in
Emacs to justify the latex-prog and latex-expl3 major modes?  It seems
that (at least in AUCTeX) @ is always considered a letter, which may be
innocuous but is kinda wrong.

>
> Thanks for the hint!
>
> David.




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#53749: 29.0.50; [PATCH] Xref backend for TeX buffers
Resent-From: Arash Esbati <arash@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Sun, 27 Feb 2022 18:44:02 +0000
Resent-Message-ID: <handler.53749.B53749.164598739715931 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 53749
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: patch
To: Augusto Stoffel <arstoffel@HIDDEN>
Cc: 53749 <at> debbugs.gnu.org, David Fussner <dfussner@HIDDEN>
Received: via spool by 53749-submit <at> debbugs.gnu.org id=B53749.164598739715931
          (code B ref 53749); Sun, 27 Feb 2022 18:44:02 +0000
Received: (at 53749) by debbugs.gnu.org; 27 Feb 2022 18:43:17 +0000
Received: from localhost ([127.0.0.1]:59207 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1nOOVo-00048t-Vp
	for submit <at> debbugs.gnu.org; Sun, 27 Feb 2022 13:43:17 -0500
Received: from eggs.gnu.org ([209.51.188.92]:59644)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <arash@HIDDEN>) id 1nOOVn-00048g-9t
 for 53749 <at> debbugs.gnu.org; Sun, 27 Feb 2022 13:43:15 -0500
Received: from [2001:470:142:3::e] (port=54422 helo=fencepost.gnu.org)
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <arash@HIDDEN>)
 id 1nOOVh-0007MC-2h; Sun, 27 Feb 2022 13:43:09 -0500
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org;
 s=fencepost-gnu-org; h=MIME-Version:In-Reply-To:Date:References:Subject:To:
 From; bh=sL/+jcbohWc/odqt66v0yqvRuyvd36sR/FDyPGjtQ/0=; b=i+dHj06LfboVDCJheM2d
 psR/ZPC8owPRXUJ+Opek/b5eDKcudj2tTapC7Mrvz8HFS7L3JXTSVS1cxbOxWJ8+FnQ+68BGYcZBi
 oMn8dH09n3Ii48soAEPOYj8UIPP0GHYg+PKGnEV/BJL/zn1ejrR1+WoNAdt/5HXViYUul20WT/nRg
 q3MEE2qgGEUFFKokgQtKgkJDg91YHKG096Jo/3i0UvIwldyW6GDF5ZovTgj3K1ArO6KFt/sWM/+7P
 vdenpxJ2T/bgusyr3/X9grT+VKktrLAOa2GE8zPYSPDkvd6S/OAK3t5qzj6bctrTD6v/LJrbE9BLh
 jX7yYWOsDCwJgA==;
Received: from p5b326363.dip0.t-ipconnect.de ([91.50.99.99]:50422 helo=MUTANT)
 by fencepost.gnu.org with esmtpsa
 (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1)
 (envelope-from <arash@HIDDEN>)
 id 1nOOVg-00006d-B8; Sun, 27 Feb 2022 13:43:08 -0500
From: Arash Esbati <arash@HIDDEN>
References: <CADF+RtgWCLKQGwgdTNWmgesbcwq8iBxChoN8FqMOg95Ai3CYTA@HIDDEN>
 <87pmnad7n3.fsf@HIDDEN>
 <CADF+Rti7JdViHpksyO7cnHy_gj8bCUDkXV0OfAP8Q-CfZn2mkw@HIDDEN>
 <87czj9dhfx.fsf@HIDDEN>
Date: Sun, 27 Feb 2022 19:42:55 +0100
In-Reply-To: <87czj9dhfx.fsf@HIDDEN> (Augusto Stoffel's message of "Sat, 26
 Feb 2022 11:56:50 +0100")
Message-ID: <864k4k2lsg.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/29.0.50
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-Spam-Score: -2.3 (--)
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 (---)

Augusto Stoffel <arstoffel@HIDDEN> writes:

> If you type \label{something}, as opposed to using the RefTeX command
> to add a label (or if you edit the label by hand) then RefTeX will not
> reparse the document and get out of sync.

If you know the known labels to RefTeX are out of sync, you can issue
`C-c )' with a prefix argument:

,----[ C-h f reftex-reference RET ]
| reftex-reference is an interactive native compiled Lisp function in
| =E2=80=98reftex-ref.el=E2=80=99.
|=20
| (reftex-reference &optional TYPE NO-INSERT CUT)
|=20
| Make a LaTeX reference.  Look only for labels of a certain TYPE.
| With prefix arg, force to rescan buffer for labels.  This should only be
| necessary if you have recently entered labels yourself without using
| reftex-label.  Rescanning of the buffer can also be requested from the
| label selection menu.
| The function returns the selected label or nil.
| If NO-INSERT is non-nil, do not insert \ref command, just return label.
| When called with 2 C-u prefix args, disable magic word recognition.
|=20
|   Probably introduced at or before Emacs version 20.1.
|=20
`----

Or in the labels *RefTeX select* buffer, you have these choices:

 r / C-u r  Reparse document / Reparse entire document.

I usually hit r when I don't find the label I'm looking for.

> Or at least that was the case when I still used RefTeX.  So it might
> be worth considering some cache invalidation scheme there.

The question is if it's worth the effort where a remedy is already in
place.

Best, Arash




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#53749: 29.0.50; [PATCH] Xref backend for TeX buffers
Resent-From: David Fussner <dfussner@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Mon, 28 Feb 2022 09:10:02 +0000
Resent-Message-ID: <handler.53749.B53749.16460393978882 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 53749
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: patch
To: Arash Esbati <arash@HIDDEN>
Cc: 53749 <at> debbugs.gnu.org, Augusto Stoffel <arstoffel@HIDDEN>
Received: via spool by 53749-submit <at> debbugs.gnu.org id=B53749.16460393978882
          (code B ref 53749); Mon, 28 Feb 2022 09:10:02 +0000
Received: (at 53749) by debbugs.gnu.org; 28 Feb 2022 09:09:57 +0000
Received: from localhost ([127.0.0.1]:59985 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1nOc2X-0002JA-1w
	for submit <at> debbugs.gnu.org; Mon, 28 Feb 2022 04:09:57 -0500
Received: from mail-qt1-f176.google.com ([209.85.160.176]:40794)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <dfussner@HIDDEN>) id 1nOc2T-0002Ix-FE
 for 53749 <at> debbugs.gnu.org; Mon, 28 Feb 2022 04:09:53 -0500
Received: by mail-qt1-f176.google.com with SMTP id t28so8342027qtc.7
 for <53749 <at> debbugs.gnu.org>; Mon, 28 Feb 2022 01:09:53 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=googlemail.com; s=20210112;
 h=mime-version:references:in-reply-to:from:date:message-id:subject:to
 :cc:content-transfer-encoding;
 bh=TEcTYdBXf7Uh+Wy/k7NnKvcCPiO55Hmrfl2PGCNGXis=;
 b=EFVxelue7r/2JiIoDN2nRNtF0fX/8yv5x+sHhSZH1uJloltvz1qpb/bNzMr335byC+
 /hiJh8Q5qbxGBPAETU42e3mvhAM7kyiGCU86q/PJXwuBvt3IaB9Rcd69ImYiK4PPqqVR
 kjfiNiZoz4xOPz7DpSNsFzGsFIi7Mw5Iim2Z3n9T8+O97RAMV756BQz6s9JonZrDhDY6
 MF4vukrOeQugHPBIW7waUxbc6GdSbO65Fv3NUnpf+jsO2pU+49WAkhG1Dw4bi5XxkLvh
 urWxKxyIa4ZohsL2UOJXQK4R4WGWyVbF6gVhQcxGbS7km4ofnKg7t7ynuAwRvvxnDLjd
 o9fA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20210112;
 h=x-gm-message-state:mime-version:references:in-reply-to:from:date
 :message-id:subject:to:cc:content-transfer-encoding;
 bh=TEcTYdBXf7Uh+Wy/k7NnKvcCPiO55Hmrfl2PGCNGXis=;
 b=3K8GCJfoDpzMZxgjAzVOdKEpgevu+Z5UuJwSgESB77d3FzCvomID57bHW/NYywHEJm
 CnkNWUJ3HI2Vm+kxeC9nYTiN2WXX18oXQZ/SD53uuMHZcZh4xR8CNNeIC7oY5Wgsv9da
 ntjmVXNOIOORmk0oDoLPjgDIrLQAIKviji6nrYs6BmuvDJRf1TqNSkSewtpuFO5TAasu
 zDFfJdVrIbMB2RP3C+4HC++iVarWvpNUJVHt+25h4SClJ8TnLV3kVDaDf/JnxclgISpN
 fUwjcwnQcngp6hteJpdRGpQZKAplcHX9eiTpxpPbllyzpYwZkWsZEbXInRgnjZZ9nwSP
 DwPA==
X-Gm-Message-State: AOAM532tI4vMZHqTzsU6E+eWdW9e4z49rAiNpFcmoVFYDxndKOr1PMhp
 mO600YidFldzMb1iWShIug/FZgA4X/kbHNXlURc=
X-Google-Smtp-Source: ABdhPJzYk8EWMj294pfJCKOolNqIrTUGsI1TQiBv+CBH1ze0cBX4POxLrQ6AierbvFC01xJqV9qxM/xYwpgL+RRrTl8=
X-Received: by 2002:a05:622a:1a1c:b0:2de:82f:b1f5 with SMTP id
 f28-20020a05622a1a1c00b002de082fb1f5mr15895498qtb.156.1646039387910; Mon, 28
 Feb 2022 01:09:47 -0800 (PST)
MIME-Version: 1.0
References: <CADF+RtgWCLKQGwgdTNWmgesbcwq8iBxChoN8FqMOg95Ai3CYTA@HIDDEN>
 <87pmnad7n3.fsf@HIDDEN>
 <CADF+Rti7JdViHpksyO7cnHy_gj8bCUDkXV0OfAP8Q-CfZn2mkw@HIDDEN>
 <87czj9dhfx.fsf@HIDDEN> <864k4k2lsg.fsf@HIDDEN>
In-Reply-To: <864k4k2lsg.fsf@HIDDEN>
From: David Fussner <dfussner@HIDDEN>
Date: Mon, 28 Feb 2022 09:09:36 +0000
Message-ID: <CADF+RthbME7D52NMhRRusT=enNQFnJodJ6R1Ak-5ecPg2p3uKw@HIDDEN>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Spam-Score: -0.0 (/)
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: -1.0 (-)

Hi Augusto,

For what it's worth, I've always just done what Arash suggests when
RefTeX gets out of sync, and haven't had any issues with it that I can
remember.  (To be fair, my use cases haven't exactly been exotic.)

> The problem is that there's no way for Emacs to communicate that one of
> these programming modes is to be used.  This could be fixed in two ways:
>
> A. by creating latex-prog and latex-expl3 derived modes in Emacs, or
>
> B. adding heuristics to Digestif to decide if a given file is "document"
>    or "code".
>
> Do you have any thoughts about A?  Would there be any other benefits in
> Emacs to justify the latex-prog and latex-expl3 major modes?  It seems
> that (at least in AUCTeX) @ is always considered a letter, which may be
> innocuous but is kinda wrong.

The only thought I have is that it sounds like a new major mode would
be overkill for what you need here.  I would think that a variable or
defcustom might do the trick, or at most maybe a minor mode?  When
navigating code I really want to be able to follow the commands to
their source no matter whether the command is internal or for users,
though I can see how in a code-completion setting you might want to be
able to separate the two more cleanly.  Obviously, I'm not the person
you need to convince about all of this -- that would be Arash and the
emacs maintainers, themselves.

Best,

David.

On Sun, 27 Feb 2022 at 18:43, Arash Esbati <arash@HIDDEN> wrote:
>
> Augusto Stoffel <arstoffel@HIDDEN> writes:
>
> > If you type \label{something}, as opposed to using the RefTeX command
> > to add a label (or if you edit the label by hand) then RefTeX will not
> > reparse the document and get out of sync.
>
> If you know the known labels to RefTeX are out of sync, you can issue
> `C-c )' with a prefix argument:
>
> ,----[ C-h f reftex-reference RET ]
> | reftex-reference is an interactive native compiled Lisp function in
> | =E2=80=98reftex-ref.el=E2=80=99.
> |
> | (reftex-reference &optional TYPE NO-INSERT CUT)
> |
> | Make a LaTeX reference.  Look only for labels of a certain TYPE.
> | With prefix arg, force to rescan buffer for labels.  This should only b=
e
> | necessary if you have recently entered labels yourself without using
> | reftex-label.  Rescanning of the buffer can also be requested from the
> | label selection menu.
> | The function returns the selected label or nil.
> | If NO-INSERT is non-nil, do not insert \ref command, just return label.
> | When called with 2 C-u prefix args, disable magic word recognition.
> |
> |   Probably introduced at or before Emacs version 20.1.
> |
> `----
>
> Or in the labels *RefTeX select* buffer, you have these choices:
>
>  r / C-u r  Reparse document / Reparse entire document.
>
> I usually hit r when I don't find the label I'm looking for.
>
> > Or at least that was the case when I still used RefTeX.  So it might
> > be worth considering some cache invalidation scheme there.
>
> The question is if it's worth the effort where a remedy is already in
> place.
>
> Best, Arash




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#53749: 29.0.50; [PATCH] Xref backend for TeX buffers
Resent-From: Arash Esbati <arash@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Mon, 28 Feb 2022 11:56:02 +0000
Resent-Message-ID: <handler.53749.B53749.16460493333985 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 53749
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: patch
To: David Fussner <dfussner@HIDDEN>
Cc: 53749 <at> debbugs.gnu.org, Augusto Stoffel <arstoffel@HIDDEN>
Received: via spool by 53749-submit <at> debbugs.gnu.org id=B53749.16460493333985
          (code B ref 53749); Mon, 28 Feb 2022 11:56:02 +0000
Received: (at 53749) by debbugs.gnu.org; 28 Feb 2022 11:55:33 +0000
Received: from localhost ([127.0.0.1]:60322 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1nOecn-00012D-HD
	for submit <at> debbugs.gnu.org; Mon, 28 Feb 2022 06:55:33 -0500
Received: from eggs.gnu.org ([209.51.188.92]:57192)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <arash@HIDDEN>) id 1nOecl-000121-MK
 for 53749 <at> debbugs.gnu.org; Mon, 28 Feb 2022 06:55:32 -0500
Received: from [2001:470:142:3::e] (port=37644 helo=fencepost.gnu.org)
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <arash@HIDDEN>)
 id 1nOecg-0001z2-C9; Mon, 28 Feb 2022 06:55:26 -0500
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org;
 s=fencepost-gnu-org; h=MIME-Version:In-Reply-To:Date:References:Subject:To:
 From; bh=cqn9p5eHNJByoXorGwu720L6kgXeZR7ZMokcRcx2SNk=; b=MbzMNddh1vOuF+p01xLB
 ER9r3rVpqIp1O4sPbONZSzJqzFsApAhslgqhqpv13q4DhyUyTtssx01dawokZjKOvHntbRAWK1Vz5
 QuMQrrrJRL5wJ+c/qNKRJby4ENe7soptkCX/85H7X31o3+V+kcSiSTsgcyoSKM9OYLQhT0qoWel5K
 6P6MlhpaS/4HsC3gwk9dd58ZKvFqUO5ImSXRH0npZC/I6XPYZzgJTrUc/fIf1Q/z73mY7AJt8Ljg1
 +ozr4jkv+hO1sUUhVVUgD+YG+PHe2+ZjOoVkPkvw4PvdGHgarD+WoDUuQSgNugqYUZvSnPI/nQW2D
 vK2dV9x0rwdVHw==;
Received: from p5b326363.dip0.t-ipconnect.de ([91.50.99.99]:59179 helo=MUTANT)
 by fencepost.gnu.org with esmtpsa
 (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1)
 (envelope-from <arash@HIDDEN>)
 id 1nOecf-0003CL-Rc; Mon, 28 Feb 2022 06:55:26 -0500
From: Arash Esbati <arash@HIDDEN>
References: <CADF+RtgWCLKQGwgdTNWmgesbcwq8iBxChoN8FqMOg95Ai3CYTA@HIDDEN>
 <87pmnad7n3.fsf@HIDDEN>
 <CADF+Rti7JdViHpksyO7cnHy_gj8bCUDkXV0OfAP8Q-CfZn2mkw@HIDDEN>
 <87czj9dhfx.fsf@HIDDEN> <864k4k2lsg.fsf@HIDDEN>
 <CADF+RthbME7D52NMhRRusT=enNQFnJodJ6R1Ak-5ecPg2p3uKw@HIDDEN>
Date: Mon, 28 Feb 2022 12:54:52 +0100
In-Reply-To: <CADF+RthbME7D52NMhRRusT=enNQFnJodJ6R1Ak-5ecPg2p3uKw@HIDDEN>
 (David Fussner's message of "Mon, 28 Feb 2022 09:09:36 +0000")
Message-ID: <86h78j8aur.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/29.0.50
MIME-Version: 1.0
Content-Type: text/plain
X-Spam-Score: -2.3 (--)
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 (---)

David Fussner <dfussner@HIDDEN> writes:

>> The problem is that there's no way for Emacs to communicate that one of
>> these programming modes is to be used.  This could be fixed in two ways:
>>
>> A. by creating latex-prog and latex-expl3 derived modes in Emacs, or
>>
>> B. adding heuristics to Digestif to decide if a given file is "document"
>>    or "code".
>>
>> Do you have any thoughts about A?  Would there be any other benefits in
>> Emacs to justify the latex-prog and latex-expl3 major modes?  It seems
>> that (at least in AUCTeX) @ is always considered a letter, which may be
>> innocuous but is kinda wrong.
>
> The only thought I have is that it sounds like a new major mode would
> be overkill for what you need here.  I would think that a variable or
> defcustom might do the trick, or at most maybe a minor mode?

Sorry if I'm missing something here, I wasn't tracking this thread.  But
does doctex-mode (or docTeX in AUCTeX) fit the bill here?

Best, Arash




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#53749: 29.0.50; [PATCH] Xref backend for TeX buffers
Resent-From: Augusto Stoffel <arstoffel@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Mon, 28 Feb 2022 13:06:02 +0000
Resent-Message-ID: <handler.53749.B53749.164605354919885 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 53749
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: patch
To: David Fussner <dfussner@HIDDEN>
Cc: 53749 <at> debbugs.gnu.org, Arash Esbati <arash@HIDDEN>
Received: via spool by 53749-submit <at> debbugs.gnu.org id=B53749.164605354919885
          (code B ref 53749); Mon, 28 Feb 2022 13:06:02 +0000
Received: (at 53749) by debbugs.gnu.org; 28 Feb 2022 13:05:49 +0000
Received: from localhost ([127.0.0.1]:60473 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1nOfim-0005Af-Fo
	for submit <at> debbugs.gnu.org; Mon, 28 Feb 2022 08:05:48 -0500
Received: from mail-ed1-f42.google.com ([209.85.208.42]:33622)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <arstoffel@HIDDEN>) id 1nOfik-0005AR-E2
 for 53749 <at> debbugs.gnu.org; Mon, 28 Feb 2022 08:05:46 -0500
Received: by mail-ed1-f42.google.com with SMTP id s14so17549440edw.0
 for <53749 <at> debbugs.gnu.org>; Mon, 28 Feb 2022 05:05:46 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112;
 h=from:to:cc:subject:references:date:in-reply-to:message-id
 :user-agent:mime-version:content-transfer-encoding;
 bh=49H0wRYpOluU+MRv3P538YcwV03c6qfYnHcDghI3il4=;
 b=oOAvMH5kT4KT36vpFPIaCM4fgdZxuCbJR4r1TpW3k1lvEv0NZgkQ59N/dLLPvqFi3q
 WvTrwDveDRgU5oP24bsprqZwY/GthYSHNTHWYym6PNL2V0tmfmuKWUFuu4n1OExn/8rT
 fNMxEL8bENZ68AuRO9P0CW/ADJYa5svijSsAq/2ROcwMvvHqEiqL0QZ/vAnBuHidLlUO
 A8lkDp5t7qDsnmK/X4qzbPVu561P3MEfUZ72g7URZpRBha/VlHDFv9SX5UgQFz7ieXpu
 EecObhuRR5bglfF9cjR0OFolXjta55cg3BNjy62k99UZn/5W/lFcycAvMBVIG5ICuIqN
 u1xw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20210112;
 h=x-gm-message-state:from:to:cc:subject:references:date:in-reply-to
 :message-id:user-agent:mime-version:content-transfer-encoding;
 bh=49H0wRYpOluU+MRv3P538YcwV03c6qfYnHcDghI3il4=;
 b=gOSe8z7gRO+f2wKZfww2iGLN91LpMWWqpXGOREvxAWKukJRcNsHWom+7NBB5r3JKVF
 2CuqNq0l03I9g94aK2GQUn0MSC33cD2PTqag27cpxUm4QYEbGXZmsLaDcG4p+yPbi6fC
 dKJsiOPp0jK7YIcURJTPkmxw3oWYZ7dI0LYxczXg3GfK9uzM95m0+zlZ+pg/DR/tofpv
 txnN77WvFu7Bej6L62tLwnUWsl2Wp3DxQfvRJGQa7cG9woXXNHSW8g3+7KhFoZ/jct1d
 D68bG7II0iaECqOX3mUU0zJsrnkusw5SKufVC6PxxUSGzklTn1djxOJ41k5VBc1ee0+F
 xZ4Q==
X-Gm-Message-State: AOAM532oofOfSBdP2biTnORR6l3sY44Adsh3kRfMR3t2MlzUljaOo0Oc
 tveqbwoHy3gsPjphneFBlD0OAYfRMm8MvA==
X-Google-Smtp-Source: ABdhPJy8qwtmp3aZ8OSqQcuiBKcz7ODAO1FIRzEYdsyhfBUS3VoCGvQ91GkfJ7NiyS+e1uqeiRyr+Q==
X-Received: by 2002:aa7:c0ce:0:b0:400:1a:e9a2 with SMTP id
 j14-20020aa7c0ce000000b00400001ae9a2mr19883158edp.396.1646053540320; 
 Mon, 28 Feb 2022 05:05:40 -0800 (PST)
Received: from ars3 ([2a02:8109:8ac0:56d0::758e])
 by smtp.gmail.com with ESMTPSA id
 sb31-20020a1709076d9f00b006ceb969822esm4385682ejc.76.2022.02.28.05.05.39
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 28 Feb 2022 05:05:39 -0800 (PST)
From: Augusto Stoffel <arstoffel@HIDDEN>
References: <CADF+RtgWCLKQGwgdTNWmgesbcwq8iBxChoN8FqMOg95Ai3CYTA@HIDDEN>
 <87pmnad7n3.fsf@HIDDEN>
 <CADF+Rti7JdViHpksyO7cnHy_gj8bCUDkXV0OfAP8Q-CfZn2mkw@HIDDEN>
 <87czj9dhfx.fsf@HIDDEN> <864k4k2lsg.fsf@HIDDEN>
 <CADF+RthbME7D52NMhRRusT=enNQFnJodJ6R1Ak-5ecPg2p3uKw@HIDDEN>
Date: Mon, 28 Feb 2022 14:05:38 +0100
In-Reply-To: <CADF+RthbME7D52NMhRRusT=enNQFnJodJ6R1Ak-5ecPg2p3uKw@HIDDEN>
 (David Fussner's message of "Mon, 28 Feb 2022 09:09:36 +0000")
Message-ID: <87wnhf9m59.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.91 (gnu/linux)
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-Spam-Score: -0.0 (/)
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: -1.0 (-)

On Mon, 28 Feb 2022 at 09:09, David Fussner <dfussner@HIDDEN> wrote:

> For what it's worth, I've always just done what Arash suggests when
> RefTeX gets out of sync, and haven't had any issues with it that I can
> remember.  (To be fair, my use cases haven't exactly been exotic.)

Sure, I'm aware you have to do the manual resync when using RefTeX.  I
just think it's a totally unnecessary hurdle at this time and age.  I
used to advice the RefTeX commands so they would reparse the document
every time, and this worked just fine.  (Granted, I never worked on
anything over 100 pages or so, but it should also be possible to reparse
individual files of a multifile project so that the file sizes never
become an issue.)

>> The problem is that there's no way for Emacs to communicate that one of
>> these programming modes is to be used.  This could be fixed in two ways:
>>
>> A. by creating latex-prog and latex-expl3 derived modes in Emacs, or
>>
>> B. adding heuristics to Digestif to decide if a given file is "document"
>>    or "code".
>>
>> Do you have any thoughts about A?  Would there be any other benefits in
>> Emacs to justify the latex-prog and latex-expl3 major modes?  It seems
>> that (at least in AUCTeX) @ is always considered a letter, which may be
>> innocuous but is kinda wrong.
>
> The only thought I have is that it sounds like a new major mode would
> be overkill for what you need here.  I would think that a variable or
> defcustom might do the trick, or at most maybe a minor mode?  When
> navigating code I really want to be able to follow the commands to
> their source no matter whether the command is internal or for users,
> though I can see how in a code-completion setting you might want to be
> able to separate the two more cleanly.  Obviously, I'm not the person
> you need to convince about all of this -- that would be Arash and the
> emacs maintainers, themselves.

Okay, thanks for your insight.

>
> Best,
>
> David.
>
> On Sun, 27 Feb 2022 at 18:43, Arash Esbati <arash@HIDDEN> wrote:
>>
>> Augusto Stoffel <arstoffel@HIDDEN> writes:
>>
>> > If you type \label{something}, as opposed to using the RefTeX command
>> > to add a label (or if you edit the label by hand) then RefTeX will not
>> > reparse the document and get out of sync.
>>
>> If you know the known labels to RefTeX are out of sync, you can issue
>> `C-c )' with a prefix argument:
>>
>> ,----[ C-h f reftex-reference RET ]
>> | reftex-reference is an interactive native compiled Lisp function in
>> | =E2=80=98reftex-ref.el=E2=80=99.
>> |
>> | (reftex-reference &optional TYPE NO-INSERT CUT)
>> |
>> | Make a LaTeX reference.  Look only for labels of a certain TYPE.
>> | With prefix arg, force to rescan buffer for labels.  This should only =
be
>> | necessary if you have recently entered labels yourself without using
>> | reftex-label.  Rescanning of the buffer can also be requested from the
>> | label selection menu.
>> | The function returns the selected label or nil.
>> | If NO-INSERT is non-nil, do not insert \ref command, just return label.
>> | When called with 2 C-u prefix args, disable magic word recognition.
>> |
>> |   Probably introduced at or before Emacs version 20.1.
>> |
>> `----
>>
>> Or in the labels *RefTeX select* buffer, you have these choices:
>>
>>  r / C-u r  Reparse document / Reparse entire document.
>>
>> I usually hit r when I don't find the label I'm looking for.
>>
>> > Or at least that was the case when I still used RefTeX.  So it might
>> > be worth considering some cache invalidation scheme there.
>>
>> The question is if it's worth the effort where a remedy is already in
>> place.
>>
>> Best, Arash




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#53749: 29.0.50; [PATCH] Xref backend for TeX buffers
Resent-From: Augusto Stoffel <arstoffel@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Mon, 28 Feb 2022 13:12:02 +0000
Resent-Message-ID: <handler.53749.B53749.164605387720528 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 53749
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: patch
To: Arash Esbati <arash@HIDDEN>
Cc: 53749 <at> debbugs.gnu.org, David Fussner <dfussner@HIDDEN>
Received: via spool by 53749-submit <at> debbugs.gnu.org id=B53749.164605387720528
          (code B ref 53749); Mon, 28 Feb 2022 13:12:02 +0000
Received: (at 53749) by debbugs.gnu.org; 28 Feb 2022 13:11:17 +0000
Received: from localhost ([127.0.0.1]:60496 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1nOfo5-0005L1-Kh
	for submit <at> debbugs.gnu.org; Mon, 28 Feb 2022 08:11:17 -0500
Received: from mail-ej1-f45.google.com ([209.85.218.45]:46950)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <arstoffel@HIDDEN>) id 1nOfo4-0005Km-9z
 for 53749 <at> debbugs.gnu.org; Mon, 28 Feb 2022 08:11:16 -0500
Received: by mail-ej1-f45.google.com with SMTP id qx21so24609175ejb.13
 for <53749 <at> debbugs.gnu.org>; Mon, 28 Feb 2022 05:11:16 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112;
 h=from:to:cc:subject:references:date:in-reply-to:message-id
 :user-agent:mime-version;
 bh=PWDq0UhgcV1UsuW1wVTWUXOZmwYlTg0TSLLfpFK9IjM=;
 b=Gm1znBIV8trWlBoZFgiT2dEdpp7QmsIrPrCJS+VZBJXll+bLcmIvT8BqVhVdrYPxlg
 iiCeffhNPqHowOPWfNIJ/+kqlwV+lol3sQF1xcemwTZsLMLA53ZE8vRmb0j57AN+mrQ4
 jUSPxJ1NYoenmQUWmX47UnEMgku/LG+LZvXXUNotUB5WJd5a45i8bC6wvTyADTBNtn0m
 z7LsyECCkCI3/WGQZgwdbJQo+aW8JTlh2F58l56FvOWUSxxyLrgGkaWo7vFHuSVi3yhk
 NXX81D/DvDz/zd/I62tCjcT4c+6I6ryiamqMRZe16MId/5yWM0lGBg4gdacq6H9lVObJ
 qb/Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20210112;
 h=x-gm-message-state:from:to:cc:subject:references:date:in-reply-to
 :message-id:user-agent:mime-version;
 bh=PWDq0UhgcV1UsuW1wVTWUXOZmwYlTg0TSLLfpFK9IjM=;
 b=surHqNTl+zAF4RD2SMZT2nKIqK7wgCmCrWDQI7xScJZnBWXJ3Zz3DAn0IMeIc/7xV6
 Wd/xEmuTETt5DKpN7s8QMrdmTzfLVuhFuz7G1w+VWZxFrsp2QeIh0McrbZnIR3gIcozP
 2jMgHeVA82xV1XBHDLCOWkm8hvNlA3X73DuDssVdAfE/KkJQpEeDV9lECvTo96ziDuYZ
 cLSMt2Gancc6bV7duUySZGFifsPlC6xD4nLa6Wbo4JcL/PUAdfdFFTQ7SO4V2tdtOHAi
 96Kegzk5z9Mm5lHKmLTG2c33DU5ra90vGFLR1CUqm1NYI1Tky8PolawczFf/O3NZSQDu
 9+UA==
X-Gm-Message-State: AOAM530cvaqNldtYbsgeP0iShTVZew3PYCRrC1DKixbhakRk2K3bEsgf
 81T31vHiCqFmgerDoWqPUNsZWXMYxz1SXw==
X-Google-Smtp-Source: ABdhPJz2P3V4f5/kBDfX04gUN/Va/T5kkxZ12T0wxM+cnw51LzcLV/qnQBcUZH7261yfLu/RQ9tfqA==
X-Received: by 2002:a17:906:407:b0:6cd:472b:2d5f with SMTP id
 d7-20020a170906040700b006cd472b2d5fmr14612566eja.573.1646053866768; 
 Mon, 28 Feb 2022 05:11:06 -0800 (PST)
Received: from ars3 ([2a02:8109:8ac0:56d0::758e])
 by smtp.gmail.com with ESMTPSA id
 w14-20020a509d8e000000b00412cf368b4csm6079917ede.53.2022.02.28.05.11.05
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 28 Feb 2022 05:11:05 -0800 (PST)
From: Augusto Stoffel <arstoffel@HIDDEN>
References: <CADF+RtgWCLKQGwgdTNWmgesbcwq8iBxChoN8FqMOg95Ai3CYTA@HIDDEN>
 <87pmnad7n3.fsf@HIDDEN>
 <CADF+Rti7JdViHpksyO7cnHy_gj8bCUDkXV0OfAP8Q-CfZn2mkw@HIDDEN>
 <87czj9dhfx.fsf@HIDDEN> <864k4k2lsg.fsf@HIDDEN>
 <CADF+RthbME7D52NMhRRusT=enNQFnJodJ6R1Ak-5ecPg2p3uKw@HIDDEN>
 <86h78j8aur.fsf@HIDDEN>
Date: Mon, 28 Feb 2022 14:11:05 +0100
In-Reply-To: <86h78j8aur.fsf@HIDDEN> (Arash Esbati's message of "Mon, 28 Feb
 2022 12:54:52 +0100")
Message-ID: <87sfs39lw6.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.91 (gnu/linux)
MIME-Version: 1.0
Content-Type: text/plain
X-Spam-Score: -0.0 (/)
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: -1.0 (-)

On Mon, 28 Feb 2022 at 12:54, Arash Esbati <arash@HIDDEN> wrote:

> Sorry if I'm missing something here, I wasn't tracking this thread.  But
> does doctex-mode (or docTeX in AUCTeX) fit the bill here?

Ah, I forgot about that one.  I mean basically that, but for files like
plain.tex or tikz.code.tex; or also when writing a .sty file directly
for personal purposes only.

But since tex-mode and derived ones always pretend @ is a letter, I
guess there's no real need for a dedicated TeX programming mode.

Now, how about expl3 code, where _ and : are letters too?




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#53749: 29.0.50; [PATCH] Xref backend for TeX buffers
Resent-From: Arash Esbati <arash@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Mon, 28 Feb 2022 19:05:02 +0000
Resent-Message-ID: <handler.53749.B53749.16460750779840 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 53749
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: patch
To: Augusto Stoffel <arstoffel@HIDDEN>
Cc: 53749 <at> debbugs.gnu.org, David Fussner <dfussner@HIDDEN>
Received: via spool by 53749-submit <at> debbugs.gnu.org id=B53749.16460750779840
          (code B ref 53749); Mon, 28 Feb 2022 19:05:02 +0000
Received: (at 53749) by debbugs.gnu.org; 28 Feb 2022 19:04:37 +0000
Received: from localhost ([127.0.0.1]:34783 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1nOlK1-0002Ye-FI
	for submit <at> debbugs.gnu.org; Mon, 28 Feb 2022 14:04:37 -0500
Received: from eggs.gnu.org ([209.51.188.92]:55906)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <arash@HIDDEN>) id 1nOlJy-0002YO-Lf
 for 53749 <at> debbugs.gnu.org; Mon, 28 Feb 2022 14:04:35 -0500
Received: from [2001:470:142:3::e] (port=46426 helo=fencepost.gnu.org)
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <arash@HIDDEN>)
 id 1nOlJt-0006hH-AC; Mon, 28 Feb 2022 14:04:29 -0500
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org;
 s=fencepost-gnu-org; h=MIME-Version:In-Reply-To:Date:References:Subject:To:
 From; bh=/RVTOJUrbvpU16z3ul1LDpKuiVm7VTimIijU9TJbNq0=; b=Vp4rpPIV/sJ0f7vXO747
 IwXgJlA+QY+AUEC3aFNLy7Py4wharBdUr0xpdNh1nzc3XYQUyQR/3JnncgVtH+eZKMzcrlzP5D9Z0
 NKI8HE4S+qnZWHmlcS99fn2xLjOKieqWsxDhk0y5faHJTubeja40qz7Ula/F8w6JaLWNrMLdk7Ksz
 avWxvCdc9XJ7dGV8Ro+VSnbDQcFatxxHCW4uUuChk+1X95fQUQWjLKGiGb12PB+rs9OW8YD7nqLWx
 5RS9Ke0ff2XXnLQ10AYDlh9wTdCS0ZYkWdD1ocde5L4wU3q1eVFTmcwKnsHVuEonItChAu2jiGvP1
 UF35kaO60UjUAA==;
Received: from p5b326363.dip0.t-ipconnect.de ([91.50.99.99]:55941 helo=MUTANT)
 by fencepost.gnu.org with esmtpsa
 (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1)
 (envelope-from <arash@HIDDEN>)
 id 1nOlJs-000493-SK; Mon, 28 Feb 2022 14:04:29 -0500
From: Arash Esbati <arash@HIDDEN>
References: <CADF+RtgWCLKQGwgdTNWmgesbcwq8iBxChoN8FqMOg95Ai3CYTA@HIDDEN>
 <87pmnad7n3.fsf@HIDDEN>
 <CADF+Rti7JdViHpksyO7cnHy_gj8bCUDkXV0OfAP8Q-CfZn2mkw@HIDDEN>
 <87czj9dhfx.fsf@HIDDEN> <864k4k2lsg.fsf@HIDDEN>
 <CADF+RthbME7D52NMhRRusT=enNQFnJodJ6R1Ak-5ecPg2p3uKw@HIDDEN>
 <86h78j8aur.fsf@HIDDEN> <87sfs39lw6.fsf@HIDDEN>
Date: Mon, 28 Feb 2022 20:04:02 +0100
In-Reply-To: <87sfs39lw6.fsf@HIDDEN> (Augusto Stoffel's message of "Mon, 28
 Feb 2022 14:11:05 +0100")
Message-ID: <86a6eaak4d.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/29.0.50
MIME-Version: 1.0
Content-Type: text/plain
X-Spam-Score: -2.3 (--)
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 (---)

Augusto Stoffel <arstoffel@HIDDEN> writes:

> Now, how about expl3 code, where _ and : are letters too?

AUCTeX has a style file expl3.el[1] which changes the syntax for "_" and
":".  Can't tell about the builtin tex/latex-mode.

Best, Arash

Footnotes:
[1]  http://git.savannah.gnu.org/cgit/auctex.git/tree/style/expl3.el




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#53749: 29.0.50; [PATCH] Xref backend for TeX buffers
Resent-From: David Fussner <dfussner@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Tue, 01 Mar 2022 08:47:01 +0000
Resent-Message-ID: <handler.53749.B53749.16461244013982 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 53749
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: patch
To: Arash Esbati <arash@HIDDEN>
Cc: 53749 <at> debbugs.gnu.org, Augusto Stoffel <arstoffel@HIDDEN>
Received: via spool by 53749-submit <at> debbugs.gnu.org id=B53749.16461244013982
          (code B ref 53749); Tue, 01 Mar 2022 08:47:01 +0000
Received: (at 53749) by debbugs.gnu.org; 1 Mar 2022 08:46:41 +0000
Received: from localhost ([127.0.0.1]:35381 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1nOy9Z-00012A-Hz
	for submit <at> debbugs.gnu.org; Tue, 01 Mar 2022 03:46:41 -0500
Received: from mail-qk1-f181.google.com ([209.85.222.181]:34748)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <dfussner@HIDDEN>) id 1nOy9X-00011y-SE
 for 53749 <at> debbugs.gnu.org; Tue, 01 Mar 2022 03:46:40 -0500
Received: by mail-qk1-f181.google.com with SMTP id 185so12449780qkh.1
 for <53749 <at> debbugs.gnu.org>; Tue, 01 Mar 2022 00:46:39 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=googlemail.com; s=20210112;
 h=mime-version:references:in-reply-to:from:date:message-id:subject:to
 :cc; bh=U9o8mlU0jKv1EIOASU+ECMaswr6voSVvlXxE8L4y1sc=;
 b=h1kMJS6SCBVgk9h+DNgnsBp36saCUrol+H0q53KZLWJCIMkXqReMGteAyMkt5L2dQi
 1ijKJVKwHTdFryAl45BE9wLd6O7bAJ8NapbBWR5J1ZdIKz216R2KNZRaTmGx8bKrJbUP
 S26vtwFhF1MnsXsvuG9vDGv0UeLGxqO0CMvgXGf/YxC8+fcD11ZfyZkVu9sWuEhaCJAh
 fGk0S9DqajQFGdH6G1DkFNYsYFSt6neYfBMZdYluW4Why2l4gIKMXs6ORcqqmSH/xAAM
 O0lHqNd1TTOn/YCeN49iPy0rU7n0ABDqpEJH/kI/eSdT7Mz2/6gBadbq/3aGhGfH7QU0
 qyAQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20210112;
 h=x-gm-message-state:mime-version:references:in-reply-to:from:date
 :message-id:subject:to:cc;
 bh=U9o8mlU0jKv1EIOASU+ECMaswr6voSVvlXxE8L4y1sc=;
 b=S2hLk1tR4ur2n6xeNiGSYUwoN5U3IsGaHFS7aXYPI/dqdElVwJM82DrZJrN6IZehea
 cADj0n7FfvYNLo9oArIMJ8dZ0cfV2ZI30FgMU/SA4H0/zehDP03M5rFmbGglYpWx4bzK
 cMmCSK9tlh+mhKK2BlPWw3Kf50YPWjYgOqIRjLsjXMPGjzQs9DGQg4uUNJKEIFn1kZuy
 oUYewjKEev4LqHRTjJ54xZoD8JMl577d/Q+EkVzfOb82R8YOBENAvZKNqoGnCb7qEWVE
 tUrj2c6Dg3i0e6gc9AC1kEVqZDwFYVJd+vKfkbPXXHZS3IkN/+yhltXEa2Tfb2WgojtH
 Q14w==
X-Gm-Message-State: AOAM532fdeTwyUN/dLQuldM+OlbVeo3a1uhl4kpvFkYvjpO49Bg5QnGq
 xzApwe/JHBTp/oiZXb4/I7R07WM80qNEGqfYobU=
X-Google-Smtp-Source: ABdhPJzh2tj1HelxrFWXPPxYF5LIW8WVF+/ZgMnkgnolumA+K9nTHFQyiTt9zSoQIuhK5GScHwiW3rbNQWlTWLiNCj8=
X-Received: by 2002:a05:620a:1475:b0:60d:f9d7:a877 with SMTP id
 j21-20020a05620a147500b0060df9d7a877mr13360844qkl.54.1646124394233; Tue, 01
 Mar 2022 00:46:34 -0800 (PST)
MIME-Version: 1.0
References: <CADF+RtgWCLKQGwgdTNWmgesbcwq8iBxChoN8FqMOg95Ai3CYTA@HIDDEN>
 <87pmnad7n3.fsf@HIDDEN>
 <CADF+Rti7JdViHpksyO7cnHy_gj8bCUDkXV0OfAP8Q-CfZn2mkw@HIDDEN>
 <87czj9dhfx.fsf@HIDDEN> <864k4k2lsg.fsf@HIDDEN>
 <CADF+RthbME7D52NMhRRusT=enNQFnJodJ6R1Ak-5ecPg2p3uKw@HIDDEN>
 <86h78j8aur.fsf@HIDDEN> <87sfs39lw6.fsf@HIDDEN> <86a6eaak4d.fsf@HIDDEN>
In-Reply-To: <86a6eaak4d.fsf@HIDDEN>
From: David Fussner <dfussner@HIDDEN>
Date: Tue, 1 Mar 2022 08:46:23 +0000
Message-ID: <CADF+RtieNVUXtZhjSEfyXSx1nbji2=qdVsvaw=PsVh5Hu7p0xA@HIDDEN>
Content-Type: text/plain; charset="UTF-8"
X-Spam-Score: -0.0 (/)
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: -1.0 (-)

Unless I'm missing something, the in-tree code hasn't (yet) made any
syntax changes for expl3.

Best,

David.

On Mon, 28 Feb 2022 at 19:04, Arash Esbati <arash@HIDDEN> wrote:
>
> Augusto Stoffel <arstoffel@HIDDEN> writes:
>
> > Now, how about expl3 code, where _ and : are letters too?
>
> AUCTeX has a style file expl3.el[1] which changes the syntax for "_" and
> ":".  Can't tell about the builtin tex/latex-mode.
>
> Best, Arash
>
> Footnotes:
> [1]  http://git.savannah.gnu.org/cgit/auctex.git/tree/style/expl3.el




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#53749: 29.0.50; [PATCH] Xref backend for TeX buffers
Resent-From: Lars Ingebrigtsen <larsi@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Thu, 08 Sep 2022 13:26:02 +0000
Resent-Message-ID: <handler.53749.B53749.166264351523914 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 53749
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: patch
To: Dmitry Gutov <dgutov@HIDDEN>
Cc: 53749 <at> debbugs.gnu.org, David Fussner <dfussner@HIDDEN>
Received: via spool by 53749-submit <at> debbugs.gnu.org id=B53749.166264351523914
          (code B ref 53749); Thu, 08 Sep 2022 13:26:02 +0000
Received: (at 53749) by debbugs.gnu.org; 8 Sep 2022 13:25:15 +0000
Received: from localhost ([127.0.0.1]:57682 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1oWHWs-0006De-JN
	for submit <at> debbugs.gnu.org; Thu, 08 Sep 2022 09:25:14 -0400
Received: from quimby.gnus.org ([95.216.78.240]:56848)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <larsi@HIDDEN>) id 1oWHWn-0006DK-SY
 for 53749 <at> debbugs.gnu.org; Thu, 08 Sep 2022 09:25:13 -0400
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnus.org;
 s=20200322; h=Content-Type:MIME-Version:Message-ID:Date:References:
 In-Reply-To:Subject:Cc:To:From:Sender:Reply-To:Content-Transfer-Encoding:
 Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender:
 Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:
 List-Subscribe:List-Post:List-Owner:List-Archive;
 bh=VqHaHI80aTnlkXeyYytApBLW0GzAO9YKv4fJqHFRH8Y=; b=cZSk5Tr9dDqTVGkxtyYcw4LpSA
 qbICPnDdXkeDJHBeDwAZcUopp0gzgzFLtsssiYr+2tNQsDWvpFGe4+ZvAmdpVpGWPJhxjHj0hHyMN
 1zp++bG+hR9115F7P9G4TmQkWSCTQ0cRzuD48miH1Q3gHabENsGPHp7nMkQ/WY4wy6CQ=;
Received: from [84.212.220.105] (helo=joga)
 by quimby.gnus.org with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.92) (envelope-from <larsi@HIDDEN>)
 id 1oWHWf-0002mJ-4z; Thu, 08 Sep 2022 15:25:03 +0200
From: Lars Ingebrigtsen <larsi@HIDDEN>
In-Reply-To: <1de34060-e93b-0a42-fff5-20e283abe0dc@HIDDEN> (Dmitry Gutov's
 message of "Mon, 21 Feb 2022 04:11:33 +0200")
References: <CADF+RtgWCLKQGwgdTNWmgesbcwq8iBxChoN8FqMOg95Ai3CYTA@HIDDEN>
 <1de34060-e93b-0a42-fff5-20e283abe0dc@HIDDEN>
X-Now-Playing: Body =?UTF-8?Q?Me=CF=80a's?= _The Work Is Slow_: "Rice Tea"
Date: Thu, 08 Sep 2022 15:25:00 +0200
Message-ID: <87o7vq0zir.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 (gnu/linux)
MIME-Version: 1.0
Content-Type: text/plain
X-Spam-Report: Spam detection software, running on the system "quimby.gnus.org",
 has NOT identified this incoming email as spam.  The original
 message has been attached to this so you can view it or label
 similar future email.  If you have any questions, see
 @@CONTACT_ADDRESS@@ for details.
 Content preview: Dmitry Gutov <dgutov@HIDDEN> writes: > Let us first
 discuss
 whether we could make do without an additional > Xref backend. Just to make
 sure. (I'm going through old bug reports that unfortunately weren't resolved
 at the time.) 
 Content analysis details:   (-2.9 points, 5.0 required)
 pts rule name              description
 ---- ---------------------- --------------------------------------------------
 -1.0 ALL_TRUSTED            Passed through trusted hosts only via SMTP
 -1.9 BAYES_00               BODY: Bayes spam probability is 0 to 1%
 [score: 0.0000]
X-Spam-Score: -2.3 (--)
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 (---)

Dmitry Gutov <dgutov@HIDDEN> writes:

> Let us first discuss whether we could make do without an additional
> Xref backend. Just to make sure.

(I'm going through old bug reports that unfortunately weren't resolved
at the time.)

I've only skimmed this bug report, so I might well have missed
something.  Was there a conclusion here as to what should be done?  It
looks like useful functionality to me (but it's been years since I've
written tex-y stuff).

In any case, if this is to be applied, we'd need to have a copyright
assignment to the FSF on file.  David, would you be willing to sign
that?




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


Received: (at control) by debbugs.gnu.org; 8 Sep 2022 13:25:18 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Sep 08 09:25:18 2022
Received: from localhost ([127.0.0.1]:57685 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1oWHWv-0006Dw-Uu
	for submit <at> debbugs.gnu.org; Thu, 08 Sep 2022 09:25:18 -0400
Received: from quimby.gnus.org ([95.216.78.240]:56864)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <larsi@HIDDEN>) id 1oWHWu-0006DT-8C
 for control <at> debbugs.gnu.org; Thu, 08 Sep 2022 09:25:16 -0400
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnus.org;
 s=20200322; h=Subject:From:To:Message-Id:Date:Sender:Reply-To:Cc:
 MIME-Version:Content-Type:Content-Transfer-Encoding:Content-ID:
 Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc
 :Resent-Message-ID:In-Reply-To:References:List-Id:List-Help:List-Unsubscribe:
 List-Subscribe:List-Post:List-Owner:List-Archive;
 bh=VU3pGUsnxxgSEgT6Bnwj6U1NEOG9+G8k1UpZghaZVsE=; b=McZRM1utzzPjY4ROqsM1znMEe+
 wRB7DWAmLULjvxQB12+YF3hXbsmnuTe4iyuzM+PnzxxeDNkXZgMks7/O51AQmQFPObFBJXNgMVGNI
 YDo2o5ZPSJvmt6SC/wjLXIiOO3wQC5FH4Yb0Gc/3/QCgg/gubC6pbRqAkzxJSCZgDUPw=;
Received: from [84.212.220.105] (helo=joga)
 by quimby.gnus.org with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.92) (envelope-from <larsi@HIDDEN>) id 1oWHWm-0002mY-Bp
 for control <at> debbugs.gnu.org; Thu, 08 Sep 2022 15:25:10 +0200
Date: Thu, 08 Sep 2022 15:25:06 +0200
Message-Id: <87mtba0zil.fsf@HIDDEN>
To: control <at> debbugs.gnu.org
From: Lars Ingebrigtsen <larsi@HIDDEN>
Subject: control message for bug #53749
X-Spam-Report: Spam detection software, running on the system "quimby.gnus.org",
 has NOT identified this incoming email as spam.  The original
 message has been attached to this so you can view it or label
 similar future email.  If you have any questions, see
 @@CONTACT_ADDRESS@@ for details.
 Content preview:  tags 53749 + moreinfo quit 
 Content analysis details:   (-2.9 points, 5.0 required)
 pts rule name              description
 ---- ---------------------- --------------------------------------------------
 -1.0 ALL_TRUSTED            Passed through trusted hosts only via SMTP
 -1.9 BAYES_00               BODY: Bayes spam probability is 0 to 1%
 [score: 0.0000]
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: control
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 (---)

tags 53749 + moreinfo
quit





Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#53749: 29.0.50; [PATCH] Xref backend for TeX buffers
Resent-From: David Fussner <dfussner@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Thu, 08 Sep 2022 13:36:02 +0000
Resent-Message-ID: <handler.53749.B53749.1662644103790 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 53749
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: patch moreinfo
To: Lars Ingebrigtsen <larsi@HIDDEN>
Cc: 53749 <at> debbugs.gnu.org, Dmitry Gutov <dgutov@HIDDEN>
Received: via spool by 53749-submit <at> debbugs.gnu.org id=B53749.1662644103790
          (code B ref 53749); Thu, 08 Sep 2022 13:36:02 +0000
Received: (at 53749) by debbugs.gnu.org; 8 Sep 2022 13:35:03 +0000
Received: from localhost ([127.0.0.1]:57725 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1oWHgM-0000CU-Vd
	for submit <at> debbugs.gnu.org; Thu, 08 Sep 2022 09:35:03 -0400
Received: from mail-qt1-f178.google.com ([209.85.160.178]:45025)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <dfussner@HIDDEN>) id 1oWHgK-0000Bl-VT
 for 53749 <at> debbugs.gnu.org; Thu, 08 Sep 2022 09:35:01 -0400
Received: by mail-qt1-f178.google.com with SMTP id g14so12812260qto.11
 for <53749 <at> debbugs.gnu.org>; Thu, 08 Sep 2022 06:35:00 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=googlemail.com; s=20210112;
 h=cc:to:subject:message-id:date:from:in-reply-to:references
 :mime-version:from:to:cc:subject:date;
 bh=GYpXlKyBTaQMnRdBJhetfDcP+G5U5WodofsxJGBSMlk=;
 b=eJ4fAH2Li8G9OWPfLJJ+axl8cWm+52Hbvxs350umlS/DeaEwUtrGViQ44D/bzZqOEr
 O+Bn6+LFCkBFXlNIpztnHN7HMnG2c9UUm15QXiHManYBQLYjCP20TD8Zii/YoyMwcijd
 adSy0bVsB6paRTGkJ2EsuteNgkWxBwQkYxh0jeXInjPeQ19Qm2ZwRaARFM7lYGTKPz+2
 R5cljdVPF47R5wzqzB120lmku+y7ZzAExxCQVVXUndchQ3cRqmj2hsI64LU7l5XKDA8f
 u4KQ3vw/xWARpVhMQu7JAEgs7jL2af2bf1nXX/U9iJLHzoTDxUpokZ7pmMZITzEjx7i4
 EIww==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20210112;
 h=cc:to:subject:message-id:date:from:in-reply-to:references
 :mime-version:x-gm-message-state:from:to:cc:subject:date;
 bh=GYpXlKyBTaQMnRdBJhetfDcP+G5U5WodofsxJGBSMlk=;
 b=oONjOxkqReLXSZMrUPlwH+PBDLPwInXybT8KAt0qjjROZ6KFKwJrNaHSNpegos31Yg
 lulGvwAGhp4jxrXe7hl8W2xuNbpfb5kkB63BthXomnqzD1QZy94Hb9lY4nz6yVYMOcqx
 PpczBPHJ1FIFkdDHjmikZ8kZtWVN7FRL602OcSC0bn2QI8id0/0HEYE7Ro94wOZ31BMX
 rU2TaN+Oeuj/IBwT+fJR0XZearIQLV3kLu64AiqMzCP4EBa6/eNKPFd0zkhtZVmt9yJf
 upBAnaXn3bmG4kkySlja+RedQcvnOtiS40HJ8alhmDx5sgURvrPuUVvYLv+YyIVJGMFQ
 kFEg==
X-Gm-Message-State: ACgBeo3DUKoQTq2cBq4LxSdKn8qe1IFwiYU8UBVR66VIRUMWf3ecf0aO
 7ZYpdsFdLlb9rCO5DIJUcv1GnYy10WkUbf2/TRg=
X-Google-Smtp-Source: AA6agR4XLe8Hwkq95n43He1ciAdk+i6RH3J9rD4Zpl/8h14q5S9PAi9E01EDlYqrM48WgmFXFXjVYDFDDha7QvElvj0=
X-Received: by 2002:ac8:590f:0:b0:343:61fc:e242 with SMTP id
 15-20020ac8590f000000b0034361fce242mr7757191qty.635.1662644095196; Thu, 08
 Sep 2022 06:34:55 -0700 (PDT)
MIME-Version: 1.0
References: <CADF+RtgWCLKQGwgdTNWmgesbcwq8iBxChoN8FqMOg95Ai3CYTA@HIDDEN>
 <1de34060-e93b-0a42-fff5-20e283abe0dc@HIDDEN> <87o7vq0zir.fsf@HIDDEN>
In-Reply-To: <87o7vq0zir.fsf@HIDDEN>
From: David Fussner <dfussner@HIDDEN>
Date: Thu, 8 Sep 2022 14:34:47 +0100
Message-ID: <CADF+Rtjii7ZHkrfLzS63Yt1UiPPfnOrSsFZe2SMRetOS4w0vng@HIDDEN>
Content-Type: text/plain; charset="UTF-8"
X-Spam-Score: -0.0 (/)
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: -1.0 (-)

Hi Lars,

The conclusion at the time was that the patch needed reworking before
Dmitry was happy with it, and I've not yet found enough time to do so,
though I'm still fully intending to make the necessary changes. Please
leave the bug open so I can restart the conversation when I have a
better patch. (Oh, and I'm more than happy to sign the copyright
assignment whenever Dmitry judges the patch to be ready.)

Thanks for the reminder.

David.

On Thu, 8 Sept 2022 at 14:25, Lars Ingebrigtsen <larsi@HIDDEN> wrote:
>
> Dmitry Gutov <dgutov@HIDDEN> writes:
>
> > Let us first discuss whether we could make do without an additional
> > Xref backend. Just to make sure.
>
> (I'm going through old bug reports that unfortunately weren't resolved
> at the time.)
>
> I've only skimmed this bug report, so I might well have missed
> something.  Was there a conclusion here as to what should be done?  It
> looks like useful functionality to me (but it's been years since I've
> written tex-y stuff).
>
> In any case, if this is to be applied, we'd need to have a copyright
> assignment to the FSF on file.  David, would you be willing to sign
> that?




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#53749: 29.0.50; [PATCH] Xref backend for TeX buffers
Resent-From: Lars Ingebrigtsen <larsi@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Thu, 08 Sep 2022 13:40:02 +0000
Resent-Message-ID: <handler.53749.B53749.16626443531267 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 53749
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: patch moreinfo
To: David Fussner <dfussner@HIDDEN>
Cc: 53749 <at> debbugs.gnu.org, Dmitry Gutov <dgutov@HIDDEN>
Received: via spool by 53749-submit <at> debbugs.gnu.org id=B53749.16626443531267
          (code B ref 53749); Thu, 08 Sep 2022 13:40:02 +0000
Received: (at 53749) by debbugs.gnu.org; 8 Sep 2022 13:39:13 +0000
Received: from localhost ([127.0.0.1]:57751 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1oWHkP-0000KM-5t
	for submit <at> debbugs.gnu.org; Thu, 08 Sep 2022 09:39:13 -0400
Received: from quimby.gnus.org ([95.216.78.240]:57380)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <larsi@HIDDEN>) id 1oWHkN-0000K8-9r
 for 53749 <at> debbugs.gnu.org; Thu, 08 Sep 2022 09:39:11 -0400
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnus.org;
 s=20200322; h=Content-Type:MIME-Version:Message-ID:Date:References:
 In-Reply-To:Subject:Cc:To:From:Sender:Reply-To:Content-Transfer-Encoding:
 Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender:
 Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:
 List-Subscribe:List-Post:List-Owner:List-Archive;
 bh=IOOOhh1kVIe3NDZvnEsWihVh4PoaKhrJdUXVz73wOWc=; b=UkaJzvvbC7h3KPlHBVC6so9RTn
 mvMQkwxtCHnAW3yi2JT2wCGqfCLQB0Tn99eZLM3RQJH830h7A2Sl9hj6Sh94Raj4reJqFNi7DvL2k
 dvCoGysNfHZNfMzz15IIB97TOFdGBFVz04pi9IF8a2z1jhyMOv6Cekrf7Yc5gP05yiHE=;
Received: from [84.212.220.105] (helo=joga)
 by quimby.gnus.org with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.92) (envelope-from <larsi@HIDDEN>)
 id 1oWHkF-0002xX-9t; Thu, 08 Sep 2022 15:39:05 +0200
From: Lars Ingebrigtsen <larsi@HIDDEN>
In-Reply-To: <CADF+Rtjii7ZHkrfLzS63Yt1UiPPfnOrSsFZe2SMRetOS4w0vng@HIDDEN>
 (David Fussner's message of "Thu, 8 Sep 2022 14:34:47 +0100")
References: <CADF+RtgWCLKQGwgdTNWmgesbcwq8iBxChoN8FqMOg95Ai3CYTA@HIDDEN>
 <1de34060-e93b-0a42-fff5-20e283abe0dc@HIDDEN>
 <87o7vq0zir.fsf@HIDDEN>
 <CADF+Rtjii7ZHkrfLzS63Yt1UiPPfnOrSsFZe2SMRetOS4w0vng@HIDDEN>
Face: iVBORw0KGgoAAAANSUhEUgAAADAAAAAwAgMAAAAqbBEUAAAABGdBTUEAALGPC/xhBQAAACBj
 SFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAADFBMVEWXlWNpalDFzrf/
 //+6G1XXAAAAAWJLR0QDEQxM8gAAAAlwSFlzAAALEgAACxIB0t1+/AAAAAd0SU1FB+YJCAw3Jo99
 xAwAAAEDSURBVCjPbdG9boQwDAfwfxCWKqYghb0duvAUQTqWm5wq3ts36XBT99tvaKWKp6zzBQw1
 QsoPJ8GJgRQGw6aBf0A4QOQPTCLzkTlDdQKmHQbUnwHs0xZd1eC8vg00ok0j3ZgbDIww27nCBu8r
 AJEVrqATrZOogCXHNcO5UWIDmV6PsA4F1jtaLgV9WBiMmmGS0Z+gZRc8SQy+og8SVkWXQDehA9+B
 XlCBaLSyBrH6f99gFFzxPn2INOhQM7ZgTadhh4Ikfr6VDRZ9IkpGQkxj1HJC4ApDd3E75GcwDXCv
 jrRqzPl6490feLPYga9PTA3b9sDku9yfdOEkyN3WL78oXdz+AJswgvt/SGGhAAAAWmVYSWZNTQAq
 AAAACAAFARIAAwAAAAEAAQAAARoABQAAAAEAAABKARsABQAAAAEAAABSASgAAwAAAAEAAgAAAhMA
 AwAAAAEAAQAAAAAAAAAAAEgAAAABAAAASAAAAAEfUvc0AAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDIy
 LTA5LTA4VDEyOjU1OjM4KzAwOjAwWNHXXwAAACV0RVh0ZGF0ZTptb2RpZnkAMjAyMi0wOS0wOFQx
 Mjo1NTozOCswMDowMCmMb+MAAAAXdEVYdGV4aWY6WUNiQ3JQb3NpdGlvbmluZwAxrA+AYwAAAABJ
 RU5ErkJggg==
X-Now-Playing: Body =?UTF-8?Q?Me=CF=80a's?= _The Work Is Slow_: "Ribbon"
Date: Thu, 08 Sep 2022 15:39:02 +0200
Message-ID: <8735d20yvd.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 (gnu/linux)
MIME-Version: 1.0
Content-Type: text/plain
X-Spam-Report: Spam detection software, running on the system "quimby.gnus.org",
 has NOT identified this incoming email as spam.  The original
 message has been attached to this so you can view it or label
 similar future email.  If you have any questions, see
 @@CONTACT_ADDRESS@@ for details.
 Content preview: David Fussner <dfussner@HIDDEN> writes: > The
 conclusion
 at the time was that the patch needed reworking before > Dmitry was happy
 with it, and I've not yet found enough time to do so, > though I'm still
 fully intending to make the necessar [...] 
 Content analysis details:   (-2.9 points, 5.0 required)
 pts rule name              description
 ---- ---------------------- --------------------------------------------------
 -1.0 ALL_TRUSTED            Passed through trusted hosts only via SMTP
 -1.9 BAYES_00               BODY: Bayes spam probability is 0 to 1%
 [score: 0.0000]
X-Spam-Score: -2.3 (--)
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 (---)

David Fussner <dfussner@HIDDEN> writes:

> The conclusion at the time was that the patch needed reworking before
> Dmitry was happy with it, and I've not yet found enough time to do so,
> though I'm still fully intending to make the necessary changes. Please
> leave the bug open so I can restart the conversation when I have a
> better patch.

Of course.

> (Oh, and I'm more than happy to sign the copyright
> assignment whenever Dmitry judges the patch to be ready.)

Here's the form to get started:


Please email the following information to assign@HIDDEN, and we
will send you the assignment form for your past and future changes.

Please use your full legal name (in ASCII characters) as the subject
line of the message.
----------------------------------------------------------------------
REQUEST: SEND FORM FOR PAST AND FUTURE CHANGES

[What is the name of the program or package you're contributing to?]
Emacs

[Did you copy any files or text written by someone else in these changes?
Even if that material is free software, we need to know about it.]

[Do you have an employer who might have a basis to claim to own
your changes?  Do you attend a school which might make such a claim?]

[For the copyright registration, what country are you a citizen of?]

[What year were you born?]

[Please write your email address here.]

[Please write your postal address here.]

[Which files have you changed so far, and which new files have you written
so far?]




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#53749: 29.0.50; [PATCH] Xref backend for TeX buffers
Resent-From: David Fussner <dfussner@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Thu, 08 Sep 2022 15:52:02 +0000
Resent-Message-ID: <handler.53749.B53749.166265227326810 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 53749
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: patch moreinfo
To: Lars Ingebrigtsen <larsi@HIDDEN>
Cc: 53749 <at> debbugs.gnu.org, Dmitry Gutov <dgutov@HIDDEN>
Received: via spool by 53749-submit <at> debbugs.gnu.org id=B53749.166265227326810
          (code B ref 53749); Thu, 08 Sep 2022 15:52:02 +0000
Received: (at 53749) by debbugs.gnu.org; 8 Sep 2022 15:51:13 +0000
Received: from localhost ([127.0.0.1]:59941 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1oWJo8-0006yM-KV
	for submit <at> debbugs.gnu.org; Thu, 08 Sep 2022 11:51:12 -0400
Received: from mail-qk1-f171.google.com ([209.85.222.171]:43868)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <dfussner@HIDDEN>) id 1oWJo4-0006y5-V2
 for 53749 <at> debbugs.gnu.org; Thu, 08 Sep 2022 11:51:11 -0400
Received: by mail-qk1-f171.google.com with SMTP id j6so13212310qkl.10
 for <53749 <at> debbugs.gnu.org>; Thu, 08 Sep 2022 08:51:08 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=googlemail.com; s=20210112;
 h=cc:to:subject:message-id:date:from:in-reply-to:references
 :mime-version:from:to:cc:subject:date;
 bh=tpQXfKI0HxK8WEM4KeKdscXFm2+cVBr00pH7opmcFA0=;
 b=ajGMx68arKQzN5KkDPfZgFGnljmfVS2kqLYX1aDDWB6nc1e9viRmc6MZ3l3IONMlvx
 ni/Cp0HIwX53lGbYqtIFRV1XnXfT6jrI/cM0OyHb5MLhros61fHbLAsWtViZI7GHAUp3
 Yd/DqWPFZ1BxDhUrKI1uVGBiMOql+lHjSCcZSEscW7sD2LwPhwVHvF394eM1UKgoDSvP
 6Csnv3PbsOCcqhVEtTqsEfGT1Wi+5klJ6KsEu1raXPX/QRbPMMm9LlejLDFKh06ff+DZ
 9J0ir29zwaYkevXQLoLiL2Gei5D4dXdEkkGf6VnX7Dm7Katx6C5bx05nY5khGEyMEEfi
 0ohw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20210112;
 h=cc:to:subject:message-id:date:from:in-reply-to:references
 :mime-version:x-gm-message-state:from:to:cc:subject:date;
 bh=tpQXfKI0HxK8WEM4KeKdscXFm2+cVBr00pH7opmcFA0=;
 b=ibYQ9Av8UGB14zkIcTLsz2OrLyicmg2RNCw1gGXFQMEUMPvSYpO2OxsrlCBI28NLKR
 9kjACF8XKAOaYgSyIJcXR2RE3j3DKkcJuALgSF/ZcM7+Ncz8tlh4K9AhgtKtcxMa2zZk
 S0GZAFvKyWgEcboHiBANDaomD7/9wy+NNYxZunhqF76Yp2vIHNPG7eUnYBlLRtDrqKQa
 kQ0dSNpmCiUVoOS2h/iEUKI2HzsXygDIUI/2uhGkXlTc6GSC6aOd5h2LQ7vRhfyFF2Uh
 NMsk0txBM9y6wewK+Y4EXqH6OZgQ1/rjEcHdUTfr7qst2dEQxscrZz0eruVoApwa8AUC
 LxdA==
X-Gm-Message-State: ACgBeo0QtL+tWgH1/xYx37qsc52+cTZYriJdgTRNehDcBe5ePjOki8f+
 iDf+pHOTCELCNADSdbFGNujwy9DeACoTJ1J6WQk=
X-Google-Smtp-Source: AA6agR5kSb/3AieDnf5mFeG6WVfv7jtarsO9irp9H0BxHSWz7ENZsAOhyXYLaBxHEvD5qPs/9COIaTchfziugpxbjd4=
X-Received: by 2002:a05:620a:458c:b0:6bb:848a:b86b with SMTP id
 bp12-20020a05620a458c00b006bb848ab86bmr6930840qkb.267.1662652263172; Thu, 08
 Sep 2022 08:51:03 -0700 (PDT)
MIME-Version: 1.0
References: <CADF+RtgWCLKQGwgdTNWmgesbcwq8iBxChoN8FqMOg95Ai3CYTA@HIDDEN>
 <1de34060-e93b-0a42-fff5-20e283abe0dc@HIDDEN> <87o7vq0zir.fsf@HIDDEN>
 <CADF+Rtjii7ZHkrfLzS63Yt1UiPPfnOrSsFZe2SMRetOS4w0vng@HIDDEN>
 <8735d20yvd.fsf@HIDDEN>
In-Reply-To: <8735d20yvd.fsf@HIDDEN>
From: David Fussner <dfussner@HIDDEN>
Date: Thu, 8 Sep 2022 16:50:55 +0100
Message-ID: <CADF+Rtgz5f6fcVuTLrv_N8oObRw+Uw-Je7bz54Gagb3pRgpR=g@HIDDEN>
Content-Type: text/plain; charset="UTF-8"
X-Spam-Score: -0.0 (/)
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: -1.0 (-)

Thanks Lars, will do.

On Thu, 8 Sept 2022 at 14:39, Lars Ingebrigtsen <larsi@HIDDEN> wrote:
>
> David Fussner <dfussner@HIDDEN> writes:
>
> > The conclusion at the time was that the patch needed reworking before
> > Dmitry was happy with it, and I've not yet found enough time to do so,
> > though I'm still fully intending to make the necessary changes. Please
> > leave the bug open so I can restart the conversation when I have a
> > better patch.
>
> Of course.
>
> > (Oh, and I'm more than happy to sign the copyright
> > assignment whenever Dmitry judges the patch to be ready.)
>
> Here's the form to get started:
>
>
> Please email the following information to assign@HIDDEN, and we
> will send you the assignment form for your past and future changes.
>
> Please use your full legal name (in ASCII characters) as the subject
> line of the message.
> ----------------------------------------------------------------------
> REQUEST: SEND FORM FOR PAST AND FUTURE CHANGES
>
> [What is the name of the program or package you're contributing to?]
> Emacs
>
> [Did you copy any files or text written by someone else in these changes?
> Even if that material is free software, we need to know about it.]
>
> [Do you have an employer who might have a basis to claim to own
> your changes?  Do you attend a school which might make such a claim?]
>
> [For the copyright registration, what country are you a citizen of?]
>
> [What year were you born?]
>
> [Please write your email address here.]
>
> [Please write your postal address here.]
>
> [Which files have you changed so far, and which new files have you written
> so far?]




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#53749: 29.0.50; [PATCH] Xref backend for TeX buffers
Resent-From: Stefan Kangas <stefankangas@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Sun, 03 Sep 2023 09:09:01 +0000
Resent-Message-ID: <handler.53749.B53749.169373212714832 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 53749
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: patch moreinfo
To: David Fussner <dfussner@HIDDEN>
Cc: 53749 <at> debbugs.gnu.org, Lars Ingebrigtsen <larsi@HIDDEN>, Dmitry Gutov <dgutov@HIDDEN>
Received: via spool by 53749-submit <at> debbugs.gnu.org id=B53749.169373212714832
          (code B ref 53749); Sun, 03 Sep 2023 09:09:01 +0000
Received: (at 53749) by debbugs.gnu.org; 3 Sep 2023 09:08:47 +0000
Received: from localhost ([127.0.0.1]:39362 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1qcj66-0003rA-Qu
	for submit <at> debbugs.gnu.org; Sun, 03 Sep 2023 05:08:47 -0400
Received: from mail-lf1-x131.google.com ([2a00:1450:4864:20::131]:48318)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <stefankangas@HIDDEN>) id 1qcj64-0003qm-HM
 for 53749 <at> debbugs.gnu.org; Sun, 03 Sep 2023 05:08:45 -0400
Received: by mail-lf1-x131.google.com with SMTP id
 2adb3069b0e04-500b0f06136so933169e87.0
 for <53749 <at> debbugs.gnu.org>; Sun, 03 Sep 2023 02:08:34 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=gmail.com; s=20221208; t=1693732108; x=1694336908; darn=debbugs.gnu.org;
 h=cc:to:subject:message-id:date:mime-version:references:in-reply-to
 :from:from:to:cc:subject:date:message-id:reply-to;
 bh=gJRb1es0KM5WPn/lcfNivxNbZKbPSzELieC1bIDA8Ww=;
 b=pPkVObV8r+2dFof2yemdDMZoPCBp+0Q81gxZN91tuHHuES187SKln8DHlKvxSjT8Xp
 UqSDK/puJmS4Ghl2/IZGE+t5id6Q+J864+3z1HIexckvqrJdYVy0EL5WNuq/ZTv1heQ6
 5qrNHAohXZ5+DN/lv4MdFVIMjkWHMk7OGFy3pcTImdX0Gta6qmLzfz9P9LilybznSHL2
 6UxZlQsWM+kd44M6l9Z3BShyys9yreDQAMpE24lsPG0GYIUgdygrRKm4tRlpkFUDmG1i
 pmYSyr0L3TvdWaEWUrZz/kHHu0jP6pwCpXD0Koa3kRT6L8nJLdxDJ9ECg4NAEKfB5334
 hW/Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20221208; t=1693732108; x=1694336908;
 h=cc:to:subject:message-id:date:mime-version:references:in-reply-to
 :from:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
 bh=gJRb1es0KM5WPn/lcfNivxNbZKbPSzELieC1bIDA8Ww=;
 b=O+aFPJ2+e8Wt6IvNGrQNSqeWwaLShckTmSyhkAVEP2i9JWTW1PacOyCaLkFJhaQboY
 69vXLd1VomHZtwbwhAnPWv4Vl6FuW9KisnIPKWtlRX3o4NP8zM5ktgfOcatQz6xTLlNV
 SLOrz22DwowcmZWCOkaU7tA3h6fQvf0ZL4SLTpJfoj1PIcgU+TtDu2EHrjB/SWwZmP4y
 4NFRPcmzsywIYBWorh1uNa0SPjYEQ3RtjX1l+7rWJfm2yACDf7lsavH94JEYG/Hdmwqc
 p4xvlfrpPMu7LWVdcz7pHvpW88n5N53Oq53n22Jhny8xQV0Dldf1X7t5Y8ow4RDQwgOi
 M9dw==
X-Gm-Message-State: AOJu0Yx47NruXhkpoNJhZJ+oGmnfOEvbAXKHc0bxm2jdwoVzaMDtwADT
 2ZPhdJumzKf+aEZMN9W6zWejMa+T9w/dNXLdFbM=
X-Google-Smtp-Source: AGHT+IEBNa/fMWHqi1hqcfdkxIqfopCdByC07SAJkju/esC2JzDWAezLkLE3PlcmC0zXlZrxKYag/hwHvhXI22nX1Rk=
X-Received: by 2002:a05:6512:6ca:b0:500:b0e8:a899 with SMTP id
 u10-20020a05651206ca00b00500b0e8a899mr6828450lff.30.1693732108038; Sun, 03
 Sep 2023 02:08:28 -0700 (PDT)
Received: from 753933720722 named unknown by gmailapi.google.com with
 HTTPREST; Sun, 3 Sep 2023 02:08:27 -0700
From: Stefan Kangas <stefankangas@HIDDEN>
In-Reply-To: <CADF+Rtgz5f6fcVuTLrv_N8oObRw+Uw-Je7bz54Gagb3pRgpR=g@HIDDEN>
 (David Fussner's message of "Thu, 8 Sep 2022 16:50:55 +0100")
References: <CADF+RtgWCLKQGwgdTNWmgesbcwq8iBxChoN8FqMOg95Ai3CYTA@HIDDEN>
 <1de34060-e93b-0a42-fff5-20e283abe0dc@HIDDEN> <87o7vq0zir.fsf@HIDDEN>
 <CADF+Rtjii7ZHkrfLzS63Yt1UiPPfnOrSsFZe2SMRetOS4w0vng@HIDDEN>
 <8735d20yvd.fsf@HIDDEN>
 <CADF+Rtgz5f6fcVuTLrv_N8oObRw+Uw-Je7bz54Gagb3pRgpR=g@HIDDEN>
MIME-Version: 1.0
Date: Sun, 3 Sep 2023 02:08:27 -0700
Message-ID: <CADwFkm=p8_Tbu+cXMDA8zEKovb+Ld7QFUJz_AhFnJebhik=JBg@HIDDEN>
Content-Type: text/plain; charset="UTF-8"
X-Spam-Score: 0.0 (/)
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: -1.0 (-)

David Fussner <dfussner@HIDDEN> writes:

> Thanks Lars, will do.
>
> On Thu, 8 Sept 2022 at 14:39, Lars Ingebrigtsen <larsi@HIDDEN> wrote:
>>
>> David Fussner <dfussner@HIDDEN> writes:
>>
>> > The conclusion at the time was that the patch needed reworking before
>> > Dmitry was happy with it, and I've not yet found enough time to do so,
>> > though I'm still fully intending to make the necessary changes. Please
>> > leave the bug open so I can restart the conversation when I have a
>> > better patch.
>>
>> Of course.

That was a year ago.  Have you made any progress here?




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


Received: (at control) by debbugs.gnu.org; 3 Sep 2023 09:09:02 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sun Sep 03 05:09:02 2023
Received: from localhost ([127.0.0.1]:39366 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1qcj6M-0003rs-5I
	for submit <at> debbugs.gnu.org; Sun, 03 Sep 2023 05:09:02 -0400
Received: from mail-lf1-x134.google.com ([2a00:1450:4864:20::134]:62704)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <stefankangas@HIDDEN>) id 1qcj6K-0003rS-8W
 for control <at> debbugs.gnu.org; Sun, 03 Sep 2023 05:09:00 -0400
Received: by mail-lf1-x134.google.com with SMTP id
 2adb3069b0e04-500bdef7167so1662393e87.0
 for <control <at> debbugs.gnu.org>; Sun, 03 Sep 2023 02:08:49 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=gmail.com; s=20221208; t=1693732124; x=1694336924; darn=debbugs.gnu.org;
 h=to:subject:message-id:date:mime-version:from:from:to:cc:subject
 :date:message-id:reply-to;
 bh=/OSTpmY5Qgo51CSW5uxRMPiWYpKU7aY+x6r9ezhsNsU=;
 b=BzQeiVCeZE22CxV8fsDVewRreYkr+VaOhdt9DbUNUK2pjVLOkP1crOeMUpIzOjFh+s
 E8E7ptvkpVX/77rGD5k8vVAkB0SDwgdS7h8Dm5Vj4YA8Ou5lb7CwcOf5zN4cU3PX1DXl
 Flrf5v8Mkw80dj2phSTum/ENXK7yMlvET7WyZYPXHFugg2fLe8Nku7fXccayK4ALxdgf
 Zcx92OHNju8DsuDl+QXnnYR3Y3UWvgNOsL9ljA8VunORHzo6SBaDNPfSHwI3HTDOajCQ
 KA1qaPz2ot1kYZ1YxZBhZ8SKTVI5Cmzb5dQmWD5U6MA64NdP9MV5QUQfW1lxMBFhnzjQ
 Ev3A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20221208; t=1693732124; x=1694336924;
 h=to:subject:message-id:date:mime-version:from:x-gm-message-state
 :from:to:cc:subject:date:message-id:reply-to;
 bh=/OSTpmY5Qgo51CSW5uxRMPiWYpKU7aY+x6r9ezhsNsU=;
 b=VewAzG6rB5XCDPLTttx3mpF2mfDn2Oq5JeXZp87kWtM8AaevTbf4B0S7oNxIGmsZqU
 /SH/SSPxgxheswv4kMnVmRc0EAR7yw2jvyXrE7A9Y2cGaUgE+VGZy7Zz5K8gzGYZOq5O
 wsLeY9Dkb8UiS8Shzt5Nvyr3c6o3+Qx0+NhIheQTy7gV8Pt9Nkj0Nowsk1Koo/BzP56e
 mqMzj+gF4mHgFy/NwShz6SHwthDhVCVH77ejv/5aKf5emqvDjFJPTfkbSg6zNd1t/Koa
 y7+pNCPHTrZcoAx3Z/dag+w1pLwcXWF7Igi0a6tlMNILQkL9mzmvrfiChpF6H4vhgzOe
 jONQ==
X-Gm-Message-State: AOJu0YzsvqGxXErADUyJNqEnqb7y0SsuN2Q73EifwXgrMsYqTz0ERuPP
 qbIN5D15Hxwhh6sQugf9HP6cJo0j6grgwkyMbGCn0H1W7lU=
X-Google-Smtp-Source: AGHT+IGWs9gC8LfNfccGHDGrh2SOYgnCY2K6uuA5zvpu99i5ducr1yVEV1tm711eOMKHQwfZSoRbgO6MJPRWcjyZ1Co=
X-Received: by 2002:a05:6512:3d07:b0:4fd:f6db:a7d9 with SMTP id
 d7-20020a0565123d0700b004fdf6dba7d9mr2803538lfv.32.1693732124007; Sun, 03 Sep
 2023 02:08:44 -0700 (PDT)
Received: from 753933720722 named unknown by gmailapi.google.com with
 HTTPREST; Sun, 3 Sep 2023 02:08:43 -0700
From: Stefan Kangas <stefankangas@HIDDEN>
MIME-Version: 1.0
Date: Sun, 3 Sep 2023 02:08:43 -0700
Message-ID: <CADwFkm=Zh3yv7FeoNMfesEEwiyWJxGJGF6MMHwnH6aZ3BQm-sw@HIDDEN>
Subject: control message for bug #53749
To: control <at> debbugs.gnu.org
Content-Type: text/plain; charset="UTF-8"
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: control
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: -1.0 (-)

tags 53749 - moreinfo
quit




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#53749: 29.0.50; [PATCH] Xref backend for TeX buffers
Resent-From: David Fussner <dfussner@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Sun, 03 Sep 2023 10:04:02 +0000
Resent-Message-ID: <handler.53749.B53749.169373542830127 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 53749
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: patch
To: Stefan Kangas <stefankangas@HIDDEN>
Cc: 53749 <at> debbugs.gnu.org, Lars Ingebrigtsen <larsi@HIDDEN>, Dmitry Gutov <dgutov@HIDDEN>
Received: via spool by 53749-submit <at> debbugs.gnu.org id=B53749.169373542830127
          (code B ref 53749); Sun, 03 Sep 2023 10:04:02 +0000
Received: (at 53749) by debbugs.gnu.org; 3 Sep 2023 10:03:48 +0000
Received: from localhost ([127.0.0.1]:39581 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1qcjxM-0007pq-8a
	for submit <at> debbugs.gnu.org; Sun, 03 Sep 2023 06:03:48 -0400
Received: from mail-pj1-x1031.google.com ([2607:f8b0:4864:20::1031]:48376)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <dfussner@HIDDEN>) id 1qcjxI-0007pb-Qv
 for 53749 <at> debbugs.gnu.org; Sun, 03 Sep 2023 06:03:46 -0400
Received: by mail-pj1-x1031.google.com with SMTP id
 98e67ed59e1d1-26f7f71b9a7so348447a91.0
 for <53749 <at> debbugs.gnu.org>; Sun, 03 Sep 2023 03:03:34 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=googlemail.com; s=20221208; t=1693735408; x=1694340208; darn=debbugs.gnu.org;
 h=cc:to:subject:message-id:date:from:in-reply-to:references
 :mime-version:from:to:cc:subject:date:message-id:reply-to;
 bh=Q/+ickqzNEzkc7jiqfa4uHFHZON87/r7vWcAiIXNiMA=;
 b=VpQ9ynOpDaG4xlkbdL1N1rqAchYlYNPBDbHZ/EKnqwxBEjWDwYY3basfjE9YeZ1AnO
 sxZWvk6/KdlRQv/4byO2EaIdRFqqQtdNSjLXsB+Cz4/53juz+UEzmZR4wLhSjFj3RIGT
 Etf+w+2+e9KObaG2dGpgHsJch/UNM0Sl880A8EMEN/uAtZ5HfG5D1XvZJlKdvc95nqI4
 Ez/DUCicswfqy1MxdpaM0XiQzyZbONVxmwKbCv9cvO9w4sMN+F85X5ClyhX1l51eX1s+
 /dogfZr7DCVqsS8wZnhDG2a2H1wqvNwCg/jjA2d3mrFRm8TFxgfnB+B5t+AY/Qv70dAV
 l2iA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20221208; t=1693735408; x=1694340208;
 h=cc: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=Q/+ickqzNEzkc7jiqfa4uHFHZON87/r7vWcAiIXNiMA=;
 b=Qe5rZpdUqhKCVafhL/IjROlwb6GdoVCsQvAIvIxQwbgN+UV4OusJnzglZ6r/QKy8bN
 91v4RFfB03H4coCTQIb03ShzvfLiYHXXUUwL0kn2VM+m5tu9OcDqs2QfKQAT0Ux8z3fb
 JpZC3cyPCda1dJY5USvPJd5ixlf0hNSpPTQn2LVGJ61iSS0laqLJzE5r2AWRTOs8fyPK
 S2gGEq/eAuSttAKzNTOEw6eUB1MBNCEhmB6YxNSRT9N9lATj5kYP16w8Y6KIMEwWypGA
 3e57pjlO2GV9EsCm3om27f/XZcqvEhG8W8S8XJKm1/Ys1OQJlKeEYIs+6Tawv4Mwi9Rt
 9fYQ==
X-Gm-Message-State: AOJu0Yyn52wRrLk21SeZDiuRzqS9G3NA3jXcjkA1K+SKLJzhQ8+rzl7G
 NYLCpa6ekjmdjyZvOLeBKjU+eWMctUBltcW9310=
X-Google-Smtp-Source: AGHT+IHhz4Ys0lNr/UE1lxTnWLVEAbW6Ga2CtdADlifrotq1ChO+m1mHc7Mblv6JtQlJhsrr5iGzvmAcvOWqoMlPGYQ=
X-Received: by 2002:a17:90a:aa94:b0:271:c2fd:721b with SMTP id
 l20-20020a17090aaa9400b00271c2fd721bmr6471523pjq.18.1693735408356; Sun, 03
 Sep 2023 03:03:28 -0700 (PDT)
MIME-Version: 1.0
References: <CADF+RtgWCLKQGwgdTNWmgesbcwq8iBxChoN8FqMOg95Ai3CYTA@HIDDEN>
 <1de34060-e93b-0a42-fff5-20e283abe0dc@HIDDEN> <87o7vq0zir.fsf@HIDDEN>
 <CADF+Rtjii7ZHkrfLzS63Yt1UiPPfnOrSsFZe2SMRetOS4w0vng@HIDDEN>
 <8735d20yvd.fsf@HIDDEN>
 <CADF+Rtgz5f6fcVuTLrv_N8oObRw+Uw-Je7bz54Gagb3pRgpR=g@HIDDEN>
 <CADwFkm=p8_Tbu+cXMDA8zEKovb+Ld7QFUJz_AhFnJebhik=JBg@HIDDEN>
In-Reply-To: <CADwFkm=p8_Tbu+cXMDA8zEKovb+Ld7QFUJz_AhFnJebhik=JBg@HIDDEN>
From: David Fussner <dfussner@HIDDEN>
Date: Sun, 3 Sep 2023 11:03:16 +0100
Message-ID: <CADF+RtjGfibN3Yg8mf4hVB9uPWtAwp0m6J2LRH7n0Z20S7+Yzg@HIDDEN>
Content-Type: multipart/alternative; boundary="0000000000005bd24c06047181a8"
X-Spam-Score: 0.0 (/)
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: -1.0 (-)

--0000000000005bd24c06047181a8
Content-Type: text/plain; charset="UTF-8"

Hi Stefan

Thanks for the nudge. I do in fact have a patch that I'm just about finding
time to test, so I'll try to get it to the list within a week or two.

Thanks, and best,

David.

On Sun, 3 Sept 2023, 10:08 Stefan Kangas, <stefankangas@HIDDEN> wrote:

> David Fussner <dfussner@HIDDEN> writes:
>
> > Thanks Lars, will do.
> >
> > On Thu, 8 Sept 2022 at 14:39, Lars Ingebrigtsen <larsi@HIDDEN> wrote:
> >>
> >> David Fussner <dfussner@HIDDEN> writes:
> >>
> >> > The conclusion at the time was that the patch needed reworking before
> >> > Dmitry was happy with it, and I've not yet found enough time to do so,
> >> > though I'm still fully intending to make the necessary changes. Please
> >> > leave the bug open so I can restart the conversation when I have a
> >> > better patch.
> >>
> >> Of course.
>
> That was a year ago.  Have you made any progress here?
>

--0000000000005bd24c06047181a8
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"auto">Hi=C2=A0Stefan<div dir=3D"auto"><br></div><div dir=3D"aut=
o">Thanks for the nudge. I do in fact have a patch that I&#39;m just about =
finding time to test, so I&#39;ll try to get it to the list within a week o=
r two.</div><div dir=3D"auto"><br></div><div dir=3D"auto">Thanks, and best,=
=C2=A0</div><div dir=3D"auto"><br></div><div dir=3D"auto">David.=C2=A0</div=
></div><br><div class=3D"gmail_quote"><div dir=3D"ltr" class=3D"gmail_attr"=
>On Sun, 3 Sept 2023, 10:08 Stefan Kangas, &lt;<a href=3D"mailto:stefankang=
as@HIDDEN">stefankangas@HIDDEN</a>&gt; wrote:<br></div><blockquote cl=
ass=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;p=
adding-left:1ex">David Fussner &lt;<a href=3D"mailto:dfussner@HIDDEN=
m" target=3D"_blank" rel=3D"noreferrer">dfussner@HIDDEN</a>&gt; wri=
tes:<br>
<br>
&gt; Thanks Lars, will do.<br>
&gt;<br>
&gt; On Thu, 8 Sept 2022 at 14:39, Lars Ingebrigtsen &lt;<a href=3D"mailto:=
larsi@HIDDEN" target=3D"_blank" rel=3D"noreferrer">larsi@HIDDEN</a>&gt;=
 wrote:<br>
&gt;&gt;<br>
&gt;&gt; David Fussner &lt;<a href=3D"mailto:dfussner@HIDDEN" targe=
t=3D"_blank" rel=3D"noreferrer">dfussner@HIDDEN</a>&gt; writes:<br>
&gt;&gt;<br>
&gt;&gt; &gt; The conclusion at the time was that the patch needed reworkin=
g before<br>
&gt;&gt; &gt; Dmitry was happy with it, and I&#39;ve not yet found enough t=
ime to do so,<br>
&gt;&gt; &gt; though I&#39;m still fully intending to make the necessary ch=
anges. Please<br>
&gt;&gt; &gt; leave the bug open so I can restart the conversation when I h=
ave a<br>
&gt;&gt; &gt; better patch.<br>
&gt;&gt;<br>
&gt;&gt; Of course.<br>
<br>
That was a year ago.=C2=A0 Have you made any progress here?<br>
</blockquote></div>

--0000000000005bd24c06047181a8--




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#53749: 29.0.50; [PATCH] Xref backend for TeX buffers
Resent-From: Stefan Kangas <stefankangas@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Sun, 03 Sep 2023 10:47:02 +0000
Resent-Message-ID: <handler.53749.B53749.169373798013297 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 53749
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: patch
To: David Fussner <dfussner@HIDDEN>
Cc: 53749 <at> debbugs.gnu.org, Lars Ingebrigtsen <larsi@HIDDEN>, Dmitry Gutov <dgutov@HIDDEN>
Received: via spool by 53749-submit <at> debbugs.gnu.org id=B53749.169373798013297
          (code B ref 53749); Sun, 03 Sep 2023 10:47:02 +0000
Received: (at 53749) by debbugs.gnu.org; 3 Sep 2023 10:46:20 +0000
Received: from localhost ([127.0.0.1]:39729 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1qckcV-0003SO-QP
	for submit <at> debbugs.gnu.org; Sun, 03 Sep 2023 06:46:20 -0400
Received: from mail-lf1-x12b.google.com ([2a00:1450:4864:20::12b]:53672)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <stefankangas@HIDDEN>) id 1qckcT-0003Rz-Rr
 for 53749 <at> debbugs.gnu.org; Sun, 03 Sep 2023 06:46:18 -0400
Received: by mail-lf1-x12b.google.com with SMTP id
 2adb3069b0e04-50091b91a83so940128e87.3
 for <53749 <at> debbugs.gnu.org>; Sun, 03 Sep 2023 03:46:07 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=gmail.com; s=20221208; t=1693737962; x=1694342762; darn=debbugs.gnu.org;
 h=cc:to:subject:message-id:date:mime-version:references:in-reply-to
 :from:from:to:cc:subject:date:message-id:reply-to;
 bh=nNLM09GD1aQtb+kDb263aPo7FFW0dbUkmRkwskK99wI=;
 b=BKn3uZ5zEBs1lsgWmtzrZqjymnQ5PdYmX4hghBXr+C3jU1koj1wwLU0KT5Ew+D8jfp
 vuJ1HkxUA40umih9wdArzqXVIwgLaQ42gKKtshUifGlJOaxxM2zazrSRJxjN3sWNx2gr
 bxcaMyRUiYc7WOjnZbPpZoDZ8fWLCOAZmWBkKqkPQ2A2hSR21tOaER2sfQo90uNEmRNv
 8eYJ1SjcgcosqsHefWoe0e1RZd8yC4kodTADIzl41JxuOeH/fzvg7SQthZccXka1AFpS
 3KFVrWQXeqyDgnqyS0RyDpSjWuMutOwQoJ0RLSJJlvthTZwGN+9DV2fXFUn7ed5jXx3g
 h2jg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20221208; t=1693737962; x=1694342762;
 h=cc:to:subject:message-id:date:mime-version:references:in-reply-to
 :from:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
 bh=nNLM09GD1aQtb+kDb263aPo7FFW0dbUkmRkwskK99wI=;
 b=J+ut1SgqrdurKlbfNfzcr8hb+B5ewgRgf9QOutob4DTkO82agUgD4glyfW1sJFiXU+
 s/4ZBTkencYlGWSyV921nQFK+viYCjGPQseXUGJGVSLRq5LfqyRuJHJ2UH0uoKTer+0Z
 NZFE2aEq6w+aKPN5ISRTMoFJrsmswMfp32BJ9iivOh9Jlo3v/O8g/u3WcKGmTTMbQA7U
 0YBtRKeWjpptL7/WBZUPpx7Ure9Lrokp+abDSQ/CQQLNrSfWal7RK1SwIAoP5Cl4gWEZ
 mcpZorPVI6wQRchef/Gv9p7FD/Tbamgbpn0l/9xSgaxyiFozY4++agnD1/HB/swxz56U
 sVuQ==
X-Gm-Message-State: AOJu0YwOeeO5jqImwdZwgRsNBorFoD+veUN1ngvl/YM3Aw6N9ff30RaD
 VMOUHnsqqcfgmw6iPzpbMussxiqtCRzuLa3W9mo=
X-Google-Smtp-Source: AGHT+IFfbbh5fmuQiahj+EcxytR924l3xraTHHKT69nLnXsaevrlVdw8IYN9vCpP3yuB81Mdo7s50DIKBk1+6qbyenA=
X-Received: by 2002:a19:5e13:0:b0:500:d8d6:fc5b with SMTP id
 s19-20020a195e13000000b00500d8d6fc5bmr3967860lfb.31.1693737961483; Sun, 03
 Sep 2023 03:46:01 -0700 (PDT)
Received: from 753933720722 named unknown by gmailapi.google.com with
 HTTPREST; Sun, 3 Sep 2023 03:46:01 -0700
From: Stefan Kangas <stefankangas@HIDDEN>
In-Reply-To: <CADF+RtjGfibN3Yg8mf4hVB9uPWtAwp0m6J2LRH7n0Z20S7+Yzg@HIDDEN>
References: <CADF+RtgWCLKQGwgdTNWmgesbcwq8iBxChoN8FqMOg95Ai3CYTA@HIDDEN>
 <1de34060-e93b-0a42-fff5-20e283abe0dc@HIDDEN> <87o7vq0zir.fsf@HIDDEN>
 <CADF+Rtjii7ZHkrfLzS63Yt1UiPPfnOrSsFZe2SMRetOS4w0vng@HIDDEN>
 <8735d20yvd.fsf@HIDDEN>
 <CADF+Rtgz5f6fcVuTLrv_N8oObRw+Uw-Je7bz54Gagb3pRgpR=g@HIDDEN>
 <CADwFkm=p8_Tbu+cXMDA8zEKovb+Ld7QFUJz_AhFnJebhik=JBg@HIDDEN>
 <CADF+RtjGfibN3Yg8mf4hVB9uPWtAwp0m6J2LRH7n0Z20S7+Yzg@HIDDEN>
MIME-Version: 1.0
Date: Sun, 3 Sep 2023 03:46:01 -0700
Message-ID: <CADwFkmkbMSXdjB6kF3a68_1vb4dv05_vMrKrvoX908nZJrpxOg@HIDDEN>
Content-Type: text/plain; charset="UTF-8"
X-Spam-Score: 0.0 (/)
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: -1.0 (-)

David Fussner <dfussner@HIDDEN> writes:

> Thanks for the nudge. I do in fact have a patch that I'm just about finding
> time to test, so I'll try to get it to the list within a week or two.

Sounds good, and thank you.




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


Received: (at control) by debbugs.gnu.org; 7 Sep 2023 18:27:49 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Sep 07 14:27:49 2023
Received: from localhost ([127.0.0.1]:41397 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1qeJjI-0006n8-Ta
	for submit <at> debbugs.gnu.org; Thu, 07 Sep 2023 14:27:49 -0400
Received: from mail-lf1-x12c.google.com ([2a00:1450:4864:20::12c]:50203)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <stefankangas@HIDDEN>) id 1qeJjF-0006mt-Q5
 for control <at> debbugs.gnu.org; Thu, 07 Sep 2023 14:27:46 -0400
Received: by mail-lf1-x12c.google.com with SMTP id
 2adb3069b0e04-5007abb15e9so2163250e87.0
 for <control <at> debbugs.gnu.org>; Thu, 07 Sep 2023 11:27:43 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=gmail.com; s=20221208; t=1694111258; x=1694716058; darn=debbugs.gnu.org;
 h=to:subject:message-id:date:mime-version:from:from:to:cc:subject
 :date:message-id:reply-to;
 bh=ZTjrcO0JByoAzIo6pyyMmQwBMk7FcYO++XK8R/d448I=;
 b=ewVBmA7859jxAgbIu8Ajkzq2atFYDiHQeda355vEi82G6jyqts73I9oNZ+dqxj63VV
 lcR1cVLlD8tYN+ZJi3FNPkQeNkTSY/bpkU8zrl5iwo5kAwa6Ou5KzdN6m1LgQnoRvMAf
 4m2UZYzqqXDGUzy/ag0lJToO/Bwn+6maPoDMbAScJQRlA27RRb/OwCxpVhq0ECKd99zw
 jGWfc/BgoUsxV5/lAlp6NAj3A53FJhrth1RRGW0ahCtg8PJFpEjLPZEgCTM9khPiaV/O
 zrKkY8cUpHkzoIAISBly7iQynjlcz9UIJGHKeJC+XigAqnuuKmHhUHWX8BALXwV241xa
 r75g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20230601; t=1694111258; x=1694716058;
 h=to:subject:message-id:date:mime-version:from:x-gm-message-state
 :from:to:cc:subject:date:message-id:reply-to;
 bh=ZTjrcO0JByoAzIo6pyyMmQwBMk7FcYO++XK8R/d448I=;
 b=IWsESgwtzUhKF/wnsM4ptX1RZWQ4jD3sX4C7E04p8dBl2+ikgjg8oo4fYTZkO+DW69
 qQCzWFGTj7W0NlHm7lNDkwYrGAEMTYrW3Hs5p4W9noOMChV0gwAA1PGJvLgv8n9KJNow
 tyS7QEKRO3z0zG2Y4bLV54bIoWqmNBV2PDn8CwCZrGCSoCvEuwE5XKJvubGP4WBxaO5y
 vq0GV73otOGb0qrxK0nMixyQ64//GMPNrls/dKurvH2HVmYzQ3ODEiVOR29vgLzctAMH
 ildLp1tkxdtNGxsXppnKx9KubxPFjve1WB0w6aYGnn3UulssqTxIQIZYAXJPhoSCI4TQ
 XYQQ==
X-Gm-Message-State: AOJu0Yxf9Si9sEBUr/gvMRWfkoMUe79aaS6IgH8bAC6/8GPbNIkvSv30
 ttMfOTa4aRZ0/8dJhyohGzjQOI2HJ1zmUmak8/2dHMrDjqg=
X-Google-Smtp-Source: AGHT+IFn6ohKtGLt8bZ3EwJccUa9ewYMTH6nxH1lv2ugqjBlg+u9a12ZX4N3fIsfnq9O4c7vBZsNHBO170rKUiSgq5s=
X-Received: by 2002:ac2:59d0:0:b0:4fb:9168:1fce with SMTP id
 x16-20020ac259d0000000b004fb91681fcemr178135lfn.59.1694111257737; Thu, 07 Sep
 2023 11:27:37 -0700 (PDT)
Received: from 753933720722 named unknown by gmailapi.google.com with
 HTTPREST; Thu, 7 Sep 2023 11:27:37 -0700
From: Stefan Kangas <stefankangas@HIDDEN>
MIME-Version: 1.0
Date: Thu, 7 Sep 2023 11:27:37 -0700
Message-ID: <CADwFkm=_2UZg-aYx9UKD7OAnpy5Bnn2VV8eANX386ZXwa6JDRA@HIDDEN>
Subject: control message for bug #53749
To: control <at> debbugs.gnu.org
Content-Type: text/plain; charset="UTF-8"
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: control
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: -1.0 (-)

tags 53749 + pending
quit




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#53749: 29.0.50; [PATCH] Xref backend for TeX buffers
Resent-From: David Fussner <dfussner@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Wed, 13 Sep 2023 11:12:02 +0000
Resent-Message-ID: <handler.53749.B53749.16946034787709 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 53749
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: pending patch
To: Stefan Kangas <stefankangas@HIDDEN>
Cc: 53749 <at> debbugs.gnu.org, Lars Ingebrigtsen <larsi@HIDDEN>, Dmitry Gutov <dgutov@HIDDEN>
Received: via spool by 53749-submit <at> debbugs.gnu.org id=B53749.16946034787709
          (code B ref 53749); Wed, 13 Sep 2023 11:12:02 +0000
Received: (at 53749) by debbugs.gnu.org; 13 Sep 2023 11:11:18 +0000
Received: from localhost ([127.0.0.1]:60940 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1qgNm7-00020E-9M
	for submit <at> debbugs.gnu.org; Wed, 13 Sep 2023 07:11:17 -0400
Received: from mail-pg1-x52c.google.com ([2607:f8b0:4864:20::52c]:46579)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <dfussner@HIDDEN>) id 1qgNls-0001zU-GS
 for 53749 <at> debbugs.gnu.org; Wed, 13 Sep 2023 07:11:13 -0400
Received: by mail-pg1-x52c.google.com with SMTP id
 41be03b00d2f7-573f722b86eso4714067a12.1
 for <53749 <at> debbugs.gnu.org>; Wed, 13 Sep 2023 04:10:55 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=googlemail.com; s=20221208; t=1694603449; x=1695208249; darn=debbugs.gnu.org;
 h=cc:to:subject:message-id:date:from:in-reply-to:references
 :mime-version:from:to:cc:subject:date:message-id:reply-to;
 bh=eq/0Z9vATqwjd4nbGd1dvdA0CjUulgJ5db8PtrIaHfo=;
 b=ZA5rnE3YwoIrjqdqvp4pjtGKwQlxnfpXz2+Qm525EZHndMuVLCF2ZrsMKaAGT8YSCS
 nRdltu8Bnf7Sc41pe59sRqPWN4D+8S5xEdrvJqpYpvhx7F1pQDCOXPu592cWSvvmqr88
 9+H3/GdAjG72GsjUCf77PKRH0Zi/NA3JqBBCUiYqpvR7LXDa5yuTcx0o0SbQaPgueUSj
 umuDoKGU5hyNMh/ZcLXaVUISzVojHfrpPG6bsoPs6zdK7DiP30vjl0PexkEsWxo4N3nQ
 PnqBtIoLGCzE3TXNYkcl07NO5+nqjvIqAalgMdhZoPxWvSSM6EGxBaEsZI3I3odVH8Hb
 Z3wg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20230601; t=1694603449; x=1695208249;
 h=cc: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=eq/0Z9vATqwjd4nbGd1dvdA0CjUulgJ5db8PtrIaHfo=;
 b=nEKVQjK9fv/79RmrJKDflUpasj3fpvs39e98S7TQRopWEKtYjvHU1xcyd72g8t2T0a
 web6EZ9FPDqrdh6ihFddVCZkE6jHl2dH0QNqywuz0O6W4qVTwcVH1khr/xBWme6jrZIW
 N+zRbtSDvlUmu3weUivkPqgM/gwDzUTX2eJSm5dOJN2pzR8Q9eh5rS8bJlN5zPMEhvna
 vc20krblnngwHQAlVe2Rh0nZO+gi99S1oBOjUfJ4ERGj0zO8TG/IzgrZ3biMau/hGTL7
 n7tJxzIcWzduWPwytI4/TuQXhLj4BIcUfMa+e3r9+gNHiZwG8Brn1coWO0602zokObG0
 ql2w==
X-Gm-Message-State: AOJu0Yx+kCv4hImjOLdPtRZvAmb4yu/g3xiOLyq33hRkRQqU58e/v8BM
 0VrnN9Do35PF7E6IIoRCzmO8hMaobigFfQ9xoMo=
X-Google-Smtp-Source: AGHT+IF1AopegZHokBacztAhWbDZKGYwrnt2dqqh0hyO4KwuubqGtHMKGZ3WZ+pZ/vDVVXPiE4z+qpzvNlNI63Pw2bw=
X-Received: by 2002:a05:6a20:440f:b0:133:e3e3:dc07 with SMTP id
 ce15-20020a056a20440f00b00133e3e3dc07mr2411438pzb.49.1694603449094; Wed, 13
 Sep 2023 04:10:49 -0700 (PDT)
MIME-Version: 1.0
References: <CADF+RtgWCLKQGwgdTNWmgesbcwq8iBxChoN8FqMOg95Ai3CYTA@HIDDEN>
 <1de34060-e93b-0a42-fff5-20e283abe0dc@HIDDEN> <87o7vq0zir.fsf@HIDDEN>
 <CADF+Rtjii7ZHkrfLzS63Yt1UiPPfnOrSsFZe2SMRetOS4w0vng@HIDDEN>
 <8735d20yvd.fsf@HIDDEN>
 <CADF+Rtgz5f6fcVuTLrv_N8oObRw+Uw-Je7bz54Gagb3pRgpR=g@HIDDEN>
 <CADwFkm=p8_Tbu+cXMDA8zEKovb+Ld7QFUJz_AhFnJebhik=JBg@HIDDEN>
 <CADF+RtjGfibN3Yg8mf4hVB9uPWtAwp0m6J2LRH7n0Z20S7+Yzg@HIDDEN>
 <CADwFkmkbMSXdjB6kF3a68_1vb4dv05_vMrKrvoX908nZJrpxOg@HIDDEN>
In-Reply-To: <CADwFkmkbMSXdjB6kF3a68_1vb4dv05_vMrKrvoX908nZJrpxOg@HIDDEN>
From: David Fussner <dfussner@HIDDEN>
Date: Wed, 13 Sep 2023 12:10:36 +0100
Message-ID: <CADF+RtgxigxvgG0j6bbpYnrrFVF4YTKZ1Rs0JSCc8zuu5JNA2w@HIDDEN>
Content-Type: multipart/mixed; boundary="0000000000009f58c406053b9c14"
X-Spam-Score: 0.0 (/)
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: -1.0 (-)

--0000000000009f58c406053b9c14
Content-Type: text/plain; charset="UTF-8"

Hi Dmitry,

I've belatedly found some time to get the xref commands working better
in TeX buffers, this time using the default etags backend, as you
requested last year.  The basic strategy remains the same -- create a
new thing-at-point argument "texsymbol" which replaces "symbol" in a
definable set of major modes, then pass the resulting search term to
xref.  Changes in etags.c ensure that the various TeX modes and the
tags tables are cooperating with each other, and I added a new option
to etags (--tex-alt-forms) to handle some of the complexities of the
TeX escape character (as you suggested).  I also manipulate some
variables buffer-locally to make things like project-find-regexp and
isearch-forward-thing-at-point work better in such buffers.

I attach a patch against current master. There is another patch which
contains changes to the test suite in test/manual/etags, but I'll
leave that one in case the changes I've made to etags.c need further
work.

I've sent patches to AUCTeX trying to fix a couple of issues there
with xref-find-references. There's more work to be done on related
issues in tex-mode.el, too, but this patch is a start.

Thanks,

David.

P.S. I'm also starting the copyright assignment process, in case these
changes prove acceptable.

On Sun, 3 Sept 2023 at 11:46, Stefan Kangas <stefankangas@HIDDEN> wrote:
>
> David Fussner <dfussner@HIDDEN> writes:
>
> > Thanks for the nudge. I do in fact have a patch that I'm just about finding
> > time to test, so I'll try to get it to the list within a week or two.
>
> Sounds good, and thank you.

--0000000000009f58c406053b9c14
Content-Type: text/x-patch; charset="US-ASCII"; 
	name="0001-Fix-behavior-of-xref-commands-in-TeX-buffers.patch"
Content-Disposition: attachment; 
	filename="0001-Fix-behavior-of-xref-commands-in-TeX-buffers.patch"
Content-Transfer-Encoding: base64
Content-ID: <f_lmhn30dy0>
X-Attachment-Id: f_lmhn30dy0

RnJvbSBkNWE3N2JkMWRjNDVlMDYzOGRmM2U0Yzc2M2ExNjg5MTJjOTNiNWI1IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBEYXZpZCBGdXNzbmVyIDxkZnVzc25lckBnb29nbGVtYWlsLmNv
bT4KRGF0ZTogV2VkLCAxMyBTZXAgMjAyMyAxMTo1OTo1NCArMDEwMApTdWJqZWN0OiBbUEFUQ0hd
IEZpeCBiZWhhdmlvciBvZiB4cmVmIGNvbW1hbmRzIGluIFRlWCBidWZmZXJzCgoqIGxpYi1zcmMv
ZXRhZ3MuYyAobG9uZ29wdHMpOiBBZGQgbmV3IG9wdGlvbiAtLXRleC1hbHQtZm9ybXMuCihUZVhf
Y29tbWFuZHMpOiBJbXByb3ZlIHBhcnNpbmcgb2YgY29tbWFuZHMgaW4gVGVYIGJ1ZmZlcnMuCihU
RVhfZGVmZW52KTogRXhwYW5kIGxpc3Qgb2YgY29tbWFuZHMgdG8gdGFnIGJ5IGRlZmF1bHQgaW4g
VGVYCmJ1ZmZlcnMuCihUZVhfaGVscCk6CiogZG9jL2VtYWNzL21haW50YWluaW5nLnRleGkgKFRh
ZyBTeW50YXgpOiBEb2N1bWVudCBuZXcgdGFnZ2VkCmNvbW1hbmRzIGFuZCBuZXcgdXNlciBvcHRp
b24uCihJZGVudGlmaWVyIFNlYXJjaCk6IEFkZCBub3RlIGFib3V0IGF1dG8tbW9kZS1hbGlzdCBh
bmQKeHJlZi1maW5kLXJlZmVyZW5jZXMuCgoqIGxpc3AvdGV4dG1vZGVzL3RleC1tb2RlLmVsICh0
ZXgtY29tbW9uLWluaXRpYWxpemF0aW9uKTogU2V0IHVwIHhyZWYKbW9kaWZpY2F0aW9ucyBmb3Ig
aW4tdHJlZSBUZVggbW9kZXMuCih0ZXgtdGhpbmdhdHB0LW1vZGVzLWxpc3QpOiBOZXcgdmFyLgoo
dGV4LXRoaW5nYXRwdC1pcy10ZXhzeW1ib2wpOiBOZXcgZGVmY3VzdG9tLgoodGV4LXNldC10aGlu
Z2F0cHQtc3ltYm9sKTogTmV3IGNvbW1hbmQgdG8gYXBwbHkgdmFsdWUgb2YgcHJldmlvdXMKYnVm
ZmVyLWxvY2FsbHkuCih0ZXgtLXN5bWJvbC1vci10ZXhzeW1ib2wpOiBOZXcgaGVscGVyIGZ1bmN0
aW9uIGZvciBwcmV2aW91cy4KKHRleC0tdGhpbmctYXQtcG9pbnQpOiBOZXcgZnVuY3Rpb24gdG8g
cmV0dXJuIHRleHN5bWJvbAondGhpbmctYXQtcG9pbnQnLgoodGV4LXRoaW5nYXRwdC0tYmVnaW5u
aW5nLW9mLXRleHN5bWJvbCkKKHRleC10aGluZ2F0cHQtLWVuZC1vZi10ZXhzeW1ib2wpOiBOZXcg
ZnVuY3Rpb25zIHRvIGRlZmluZSB0ZXhzeW1ib2wKInRoaW5nIiBmb3IgJ3RoaW5nLWF0LXBvaW50
Jy4KKHRleC10aGluZ2F0cHQtc3ludGF4LXRhYmxlLCB0ZXgtZXNjYXBlLWNoYXIpOiBOZXcgdmFy
cyB0byBkbyB0aGUKc2FtZS4KKHRleC10aGluZ2F0cHQtaW5jbHVkZS1lc2NhcGUpOiBOZXcgZGVm
Y3VzdG9tIHRvIHJlZmluZSBiZWhhdmlvciBvZgpwcmV2aW91cy4KKHRleC0taW5jbHVkZS1lc2Nh
cGUtcCk6IE5ldyBmdW5jdGlvbiB0byBkbyB0aGUgc2FtZS4KKHRleC10aGluZ2F0cHQtc3ludGF4
LXRhYmxlKTogTmV3IGZ1bmN0aW9uIHRvIGFjY2VzcyBhbmQgbW9kaWZ5IHRoZQpzeW50YXggdGFi
bGUgb2YgdGhlIHNhbWUgbmFtZS4KLS0tCiBkb2MvZW1hY3MvbWFpbnRhaW5pbmcudGV4aSB8ICAz
MyArKysrKy0KIGxpYi1zcmMvZXRhZ3MuYyAgICAgICAgICAgIHwgMTIyICsrKysrKysrKysrKysr
KysrKy0tLQogbGlzcC90ZXh0bW9kZXMvdGV4LW1vZGUuZWwgfCAyMTYgKysrKysrKysrKysrKysr
KysrKysrKysrKysrKysrKysrKysrKwogMyBmaWxlcyBjaGFuZ2VkLCAzNTcgaW5zZXJ0aW9ucygr
KSwgMTQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZG9jL2VtYWNzL21haW50YWluaW5nLnRl
eGkgYi9kb2MvZW1hY3MvbWFpbnRhaW5pbmcudGV4aQppbmRleCBhOTUzMzVmM2RmMi4uNDRiOGIz
MDQwMjYgMTAwNjQ0Ci0tLSBhL2RvYy9lbWFjcy9tYWludGFpbmluZy50ZXhpCisrKyBiL2RvYy9l
bWFjcy9tYWludGFpbmluZy50ZXhpCkBAIC0yNDU3LDYgKzI0NTcsMTMgQEAgSWRlbnRpZmllciBT
ZWFyY2gKIHJlZmVyZW5jZWQuICBUaGUgWFJFRiBtb2RlIGNvbW1hbmRzIGFyZSBhdmFpbGFibGUg
aW4gdGhpcyBidWZmZXIsIHNlZQogQHJlZntYcmVmIENvbW1hbmRzfS4KIAorV2hlbiBpbnZva2Vk
IGluIGEgYnVmZmVyIHdob3NlIG1ham9yIG1vZGUgdXNlcyB0aGUgQGNvZGV7ZXRhZ3N9CitiYWNr
ZW5kLCBAa2Jke00tP30gc2VhcmNoZXMgZmlsZXMgYW5kIGJ1ZmZlcnMgd2hvc2UgbWFqb3IgbW9k
ZSBtYXRjaGVzCit0aGF0IG9mIHRoZSBvcmlnaW5hbCBidWZmZXIuICBJdCBndWVzc2VzIHRoYXQg
bW9kZSBmcm9tIGZpbGUKK2V4dGVuc2lvbnMsIHNvIGlmIEBrYmR7TS0/fSBzZWVtcyB0byBiZSBz
a2lwcGluZyByZWxldmFudCBidWZmZXJzIG9yCitmaWxlcywgdHJ5IGN1c3RvbWl6aW5nIHRoZSB2
YXJpYWJsZSBAY29kZXthdXRvLW1vZGUtYWxpc3R9IHRvIGluY2x1ZGUKK3RoZSBtaXNzaW5nIGV4
dGVuc2lvbnMgKEBweHJlZntDaG9vc2luZyBNb2Rlc30pLgorCiBAdmluZGV4IHhyZWYtYXV0by1q
dW1wLXRvLWZpcnN0LXhyZWYKICAgSWYgdGhlIHZhbHVlIG9mIHRoZSB2YXJpYWJsZSBAY29kZXt4
cmVmLWF1dG8tanVtcC10by1maXJzdC14cmVmfSBpcwogQGNvZGV7dH0sIEBjb2Rle3hyZWYtZmlu
ZC1yZWZlcmVuY2VzfSBhdXRvbWF0aWNhbGx5IGp1bXBzIHRvIHRoZSBmaXJzdApAQCAtMjY3Miw4
ICsyNjc5LDIzIEBAIFRhZyBTeW50YXgKIEBjb2Rle1xzZWN0aW9ufSwgQGNvZGV7XHN1YnNlY3Rp
b259LCBAY29kZXtcc3Vic3Vic2VjdGlvbn0sCiBAY29kZXtcZXFub30sIEBjb2Rle1xsYWJlbH0s
IEBjb2Rle1xyZWZ9LCBAY29kZXtcY2l0ZX0sCiBAY29kZXtcYmliaXRlbX0sIEBjb2Rle1xwYXJ0
fSwgQGNvZGV7XGFwcGVuZGl4fSwgQGNvZGV7XGVudHJ5fSwKLUBjb2Rle1xpbmRleH0sIEBjb2Rl
e1xkZWZ9LCBAY29kZXtcbmV3Y29tbWFuZH0sIEBjb2Rle1xyZW5ld2NvbW1hbmR9LAotQGNvZGV7
XG5ld2Vudmlyb25tZW50fSBhbmQgQGNvZGV7XHJlbmV3ZW52aXJvbm1lbnR9IGFyZSB0YWdzLgor
QGNvZGV7XGluZGV4fSwgQGNvZGV7XGRlZn0sIEBjb2Rle1xlZGVmfSwgQGNvZGV7XGdkZWZ9LCBA
Y29kZXtceGRlZn0sCitAY29kZXtcbmV3Y29tbWFuZH0sIEBjb2Rle1xyZW5ld2NvbW1hbmR9LCBA
Y29kZXtcbmV3ZW52aXJvbm1lbnR9LAorQGNvZGV7XHJlbmV3ZW52aXJvbm1lbnR9LCBAY29kZXtc
RGVjbGFyZVJvYnVzdENvbW1hbmR9LAorQGNvZGV7XG5ld3JvYnVzdGNtZH0sIEBjb2Rle1xyZW5l
d3JvYnVzdGNtZH0sIEBjb2Rle1xwcm92aWRlY29tbWFuZH0sCitAY29kZXtccHJvdmlkZXJvYnVz
dGNtZH0sIEBjb2Rle1xOZXdEb2N1bWVudENvbW1hbmR9LAorQGNvZGV7XFJlbmV3RG9jdW1lbnRD
b21tYW5kfSwgQGNvZGV7XFByb3ZpZGVEb2N1bWVudENvbW1hbmR9LAorQGNvZGV7XERlY2xhcmVE
b2N1bWVudENvbW1hbmR9LCBAY29kZXtcTmV3RXhwYW5kYWJsZURvY3VtZW50Q29tbWFuZH0sCitA
Y29kZXtcUmVuZXdFeHBhbmRhYmxlRG9jdW1lbnRDb21tYW5kfSwKK0Bjb2Rle1xQcm92aWRlRXhw
YW5kYWJsZURvY3VtZW50Q29tbWFuZH0sCitAY29kZXtcRGVjbGFyZUV4cGFuZGFibGVEb2N1bWVu
dENvbW1hbmR9LAorQGNvZGV7XE5ld0RvY3VtZW50RW52aXJvbm1lbnR9LCBAY29kZXtcUmVuZXdE
b2N1bWVudEVudmlyb25tZW50fSwKK0Bjb2Rle1xQcm92aWRlRG9jdW1lbnRFbnZpcm9ubWVudH0s
CitAY29kZXtcRGVjbGFyZURvY3VtZW50RW52aXJvbm1lbnR9LCBAY29kZXtcY3NkZWZ9LCBAY29k
ZXtcY3NlZGVmfSwKK0Bjb2Rle1xjc2dkZWZ9LCBAY29kZXtcY3N4ZGVmfSwgQGNvZGV7XGNzbGV0
Y3N9LCBAY29kZXtcY3NsZXR9LAorQGNvZGV7XGxldGNzfSwgYW5kIEBjb2Rle1xsZXR9IGFyZSB0
YWdzLiAgU28gdG9vIGFyZSB0aGUgYXJndW1lbnRzIG9mCithbnkgc3RhcnJlZCB2YXJpYW50cyBv
ZiB0aGVzZSBjb21tYW5kcywgd2hlbiBzdWNoIHZhcmlhbnRzIGN1cnJlbnRseQorZXhpc3QuCiAK
IE90aGVyIGNvbW1hbmRzIGNhbiBtYWtlIHRhZ3MgYXMgd2VsbCwgaWYgeW91IHNwZWNpZnkgdGhl
bSBpbiB0aGUKIGVudmlyb25tZW50IHZhcmlhYmxlIEBlbnZ7VEVYVEFHU30gYmVmb3JlIGludm9r
aW5nIEBjb21tYW5ke2V0YWdzfS4gIFRoZQpAQCAtMjY4OSw2ICsyNzExLDEzIEBAIFRhZyBTeW50
YXgKIHNwZWNpZmllcyAodXNpbmcgQm91cm5lIHNoZWxsIHN5bnRheCkgdGhhdCB0aGUgY29tbWFu
ZHMKIEBzYW1we1xteWNvbW1hbmR9IGFuZCBAc2FtcHtcbXlvdGhlcmNvbW1hbmR9IGFsc28gZGVm
aW5lIHRhZ3MuCiAKK1RoZSBAc2FtcHstLXRleC1hbHQtZm9ybXN9IG9wdGlvbiBjYXVzZXMgZWFj
aCB0YWcgdG8gaGF2ZSB0d28gbmFtZXMsCitvbmUgd2l0aCBhbmQgb25lIHdpdGhvdXQgdGhlIEBU
ZVh7fSBlc2NhcGUgY2hhcmFjdGVyLCB1c3VhbGx5CitAc2FtcHtcfS4gIFRoaXMgbWF5IGJlIGhl
bHBmdWwgd2hlbiBtaXhpbmcgdHJhZGl0aW9uYWwgQFRlWHt9IG9yCitATGFUZVh7fSBjb25zdHJ1
Y3RzIChAc2FtcHtcZGVmfSkgd2l0aCBuZXdlciBjb25zdHJ1Y3RzIGZyb20gdGhlCitAc2FtcHtl
dG9vbGJveH0gcGFja2FnZSAoQHNhbXB7XGNzZGVmfSkuICBVc2Ugb2YgdGhpcyBvcHRpb24gd2ls
bAorZG91YmxlIHRoZSBzaXplIG9mIGFueSBAVGVYe30tcmVsYXRlZCBzZWN0aW9ucyBpbiB5b3Vy
IHRhZ3MgZmlsZS4KKwogQGl0ZW0KIEluIExpc3AgY29kZSwgYW55IGZ1bmN0aW9uIGRlZmluZWQg
d2l0aCBAY29kZXtkZWZ1bn0sIGFueSB2YXJpYWJsZQogZGVmaW5lZCB3aXRoIEBjb2Rle2RlZnZh
cn0gb3IgQGNvZGV7ZGVmY29uc3R9LCBhbmQgaW4gZ2VuZXJhbCB0aGUKZGlmZiAtLWdpdCBhL2xp
Yi1zcmMvZXRhZ3MuYyBiL2xpYi1zcmMvZXRhZ3MuYwppbmRleCAxNDdlY2JkN2MxYi4uM2E2Njgy
ZmU0NTEgMTAwNjQ0Ci0tLSBhL2xpYi1zcmMvZXRhZ3MuYworKysgYi9saWItc3JjL2V0YWdzLmMK
QEAgLTQ3NSw2ICs0NzUsNyBAQCAjZGVmaW5lIHhybmV3KG9wLCBuLCBtKSAoKG9wKSA9IHhucmVh
bGxvYyAob3AsIG4sIChtKSAqIHNpemVvZiAqKG9wKSkpCiBzdGF0aWMgYm9vbCBpZ25vcmVpbmRl
bnQ7CS8qIC1JOiBpZ25vcmUgaW5kZW50YXRpb24gaW4gQyAqLwogc3RhdGljIGludCBwYWNrYWdl
c19vbmx5OwkvKiAtLXBhY2thZ2VzLW9ubHk6IGluIEFkYSwgb25seSB0YWcgcGFja2FnZXMqLwog
c3RhdGljIGludCBjbGFzc19xdWFsaWZ5OwkvKiAtUTogcHJvZHVjZSBjbGFzcy1xdWFsaWZpZWQg
dGFncyBpbiBDKysvSmF2YSAqLworc3RhdGljIGludCB0ZXhfYWx0X2Zvcm1zOyAgICAgICAvKiAt
LXRleC1hbHQtZm9ybXM6IHRhZyBuYW1lcyB3LyBhbmQgdy9vIGVzY2FwZSAqLwogc3RhdGljIGlu
dCBkZWJ1ZzsJCS8qIC0tZGVidWcgKi8KIAogLyogU1RESU4gaXMgZGVmaW5lZCBpbiBMeW54T1Mg
c3lzdGVtIGhlYWRlcnMgKi8KQEAgLTUwOSw2ICs1MTAsNyBAQCAjZGVmaW5lIFNURElOIDB4MTAw
MQkJLyogcmV0dXJuZWQgYnkgZ2V0b3B0X2xvbmcgb24gLS1wYXJzZS1zdGRpbiAqLwogICB7ICJu
by1yZWdleCIsICAgICAgICAgICBub19hcmd1bWVudCwgICAgICAgTlVMTCwgICAgICAgICAgICAg
ICAnUicgICB9LAogICB7ICJpZ25vcmUtY2FzZS1yZWdleCIsICByZXF1aXJlZF9hcmd1bWVudCwg
TlVMTCwgICAgICAgICAgICAgICAnYycgICB9LAogICB7ICJwYXJzZS1zdGRpbiIsICAgICAgICBy
ZXF1aXJlZF9hcmd1bWVudCwgTlVMTCwgICAgICAgICAgICAgICBTVERJTiB9LAorICB7ICJ0ZXgt
YWx0LWZvcm1zIiwgICAgICBub19hcmd1bWVudCwgICAgICAgJnRleF9hbHRfZm9ybXMsICAgICAx
ICAgICB9LAogICB7ICJ2ZXJzaW9uIiwgICAgICAgICAgICBub19hcmd1bWVudCwgICAgICAgTlVM
TCwgICAgICAgICAgICAgICAnVicgICB9LAogCiAjaWYgQ1RBR1MgLyogQ3RhZ3Mgb3B0aW9ucyAq
LwpAQCAtNzkyLDEyICs3OTQsMjggQEAgI2RlZmluZSBTVERJTiAweDEwMDEJCS8qIHJldHVybmVk
IGJ5IGdldG9wdF9sb25nIG9uIC0tcGFyc2Utc3RkaW4gKi8KICJJbiBMYVRlWCB0ZXh0LCB0aGUg
YXJndW1lbnQgb2YgYW55IG9mIHRoZSBjb21tYW5kcyAnXFxjaGFwdGVyJyxcblwKICdcXHNlY3Rp
b24nLCAnXFxzdWJzZWN0aW9uJywgJ1xcc3Vic3Vic2VjdGlvbicsICdcXGVxbm8nLCAnXFxsYWJl
bCcsXG5cCiAnXFxyZWYnLCAnXFxjaXRlJywgJ1xcYmliaXRlbScsICdcXHBhcnQnLCAnXFxhcHBl
bmRpeCcsICdcXGVudHJ5JyxcblwKLSdcXGluZGV4JywgJ1xcZGVmJywgJ1xcbmV3Y29tbWFuZCcs
ICdcXHJlbmV3Y29tbWFuZCcsXG5cCi0nXFxuZXdlbnZpcm9ubWVudCcgb3IgJ1xccmVuZXdlbnZp
cm9ubWVudCcgaXMgYSB0YWcuXG5cCisnXFxpbmRleCcsICdcXGRlZicsICdcXGVkZWYnLCAnXFxn
ZGVmJywgJ1xceGRlZicsICdcXG5ld2NvbW1hbmQnLFxuXAorJ1xccmVuZXdjb21tYW5kJywgJ1xc
bmV3ZW52aXJvbm1lbnQnLCAnXFxyZW5ld2Vudmlyb25tZW50JyxcblwKKydcXERlY2xhcmVSb2J1
c3RDb21tYW5kLCAnXFxuZXdyb2J1c3RjbWQnLCAnXFxyZW5ld3JvYnVzdGNtZCcsXG5cCisnXFxw
cm92aWRlY29tbWFuZCcsICdcXHByb3ZpZGVyb2J1c3RjbWQnLCAnXFxOZXdEb2N1bWVudENvbW1h
bmQnLFxuXAorJ1xcUmVuZXdEb2N1bWVudENvbW1hbmQnLCAnXFxQcm92aWRlRG9jdW1lbnRDb21t
YW5kJyxcblwKKydcXERlY2xhcmVEb2N1bWVudENvbW1hbmQnLCAnXFxOZXdFeHBhbmRhYmxlRG9j
dW1lbnRDb21tYW5kJyxcblwKKydcXFJlbmV3RXhwYW5kYWJsZURvY3VtZW50Q29tbWFuZCcsICdc
XFByb3ZpZGVFeHBhbmRhYmxlRG9jdW1lbnRDb21tYW5kJyxcblwKKydcXERlY2xhcmVFeHBhbmRh
YmxlRG9jdW1lbnRDb21tYW5kJywgJ1xcTmV3RG9jdW1lbnRFbnZpcm9ubWVudCcsXG5cCisnXFxS
ZW5ld0RvY3VtZW50RW52aXJvbm1lbnQnLCAnXFxQcm92aWRlRG9jdW1lbnRFbnZpcm9ubWVudCcs
XG5cCisnXFxEZWNsYXJlRG9jdW1lbnRFbnZpcm9ubWVudCcsICdcXGNzZGVmJywgJ1xcY3NlZGVm
JywgJ1xcY3NnZGVmJyxcblwKKydcXGNzeGRlZicsICdcXGNzbGV0Y3MnLCAnXFxjc2xldCcsICdc
XGxldGNzJywgb3IgJ1xcbGV0JyBpcyBhIHRhZy5cblwKK1NvIGlzIHRoZSBhcmd1bWVudCBvZiBh
bnkgb2YgdGhlIHN0YXJyZWQgdmFyaWFudHMgb2YgdGhlc2UgY29tbWFuZHMsXG5cCit3aGVuIGEg
c3RhcnJlZCB2YXJpYW50IGN1cnJlbnRseSBleGlzdHMuXG5cCiBcblwKIE90aGVyIGNvbW1hbmRz
IGNhbiBiZSBzcGVjaWZpZWQgYnkgc2V0dGluZyB0aGUgZW52aXJvbm1lbnQgdmFyaWFibGVcblwK
ICdURVhUQUdTJyB0byBhIGNvbG9uLXNlcGFyYXRlZCBsaXN0IGxpa2UsIGZvciBleGFtcGxlLFxu
XAotICAgICBURVhUQUdTPVwibXljb21tYW5kOm15b3RoZXJjb21tYW5kXCIuIjsKKyAgICAgVEVY
VEFHUz1cIm15Y29tbWFuZDpteW90aGVyY29tbWFuZFwiLlxuXAorXG5cCitUaGUgJy0tdGV4LWFs
dC1mb3Jtcycgb3B0aW9uIGNhdXNlcyBlYWNoIHRhZyB0byBoYXZlIHR3byBuYW1lcywgb25lXG5c
Cit3aXRoIGFuZCBvbmUgd2l0aG91dCB0aGUgVGVYIGVzY2FwZSBjaGFyLCB1c3VhbGx5ICdcXCcu
ICBUaGlzIG1heSBiZVxuXAoraGVscGZ1bCB3aGVuIG1peGluZyB0cmFkaXRpb25hbCBUZVggb3Ig
TGFUZVggY29uc3RydWN0cyAoJ1xcZGVmJylcblwKK3dpdGggbmV3ZXIgY29uc3RydWN0cyBmcm9t
IHRoZSAnZXRvb2xib3gnIHBhY2thZ2UgKCdcXGNzZGVmJykuIjsKIAogCiBzdGF0aWMgY29uc3Qg
Y2hhciAqVGV4aW5mb19zdWZmaXhlcyBbXSA9CkBAIC01NzM1LDEyICs1NzUzLDI3IEBAIFNjaGVt
ZV9mdW5jdGlvbnMgKEZJTEUgKmluZikKIAogc3RhdGljIGxpbmVidWZmZXIgKlRFWF90b2t0YWIg
PSBOVUxMOyAvKiBUYWJsZSB3aXRoIHRhZyB0b2tlbnMgKi8KIAotLyogRGVmYXVsdCBzZXQgb2Yg
Y29udHJvbCBzZXF1ZW5jZXMgdG8gcHV0IGludG8gVEVYX3Rva3RhYi4KLSAgIFRoZSB2YWx1ZSBv
ZiBlbnZpcm9ubWVudCB2YXIgVEVYVEFHUyBpcyBwcmVwZW5kZWQgdG8gdGhpcy4gICovCisvKiBE
ZWZhdWx0IHNldCBvZiBjb250cm9sIHNlcXVlbmNlcyB0byBwdXQgaW50byBURVhfdG9rdGFiLiAg
VGhlIHZhbHVlIG9mCisgICBlbnZpcm9ubWVudCB2YXIgVEVYVEFHUyBpcyBwcmVwZW5kZWQgdG8g
dGhpcy4gICgyMDIzKSBBZGQgdmFyaWFudHMgb2YKKyAgICdcZGVmJywgc29tZSBhZGRpdGlvbmFs
IExhVGVYIChhbmQgZm9ybWVyIHhwYXJzZSkgY29tbWFuZHMsIGFuZCBjb21tb24KKyAgIHZhcmlh
bnRzIGZyb20gdGhlICdldG9vbGJveCcgcGFja2FnZS4gIEFsc28sIGFkZCBzdGFycmVkIHZhcmlh
bnRzIG9mIHRoZQorICAgY29tbWFuZHMgaWYgdGhleSBleGlzdC4gKi8KIHN0YXRpYyBjb25zdCBj
aGFyICpURVhfZGVmZW52ID0gIlwKLTpjaGFwdGVyOnNlY3Rpb246c3Vic2VjdGlvbjpzdWJzdWJz
ZWN0aW9uOmVxbm86bGFiZWw6cmVmOmNpdGU6YmliaXRlbVwKLTpwYXJ0OmFwcGVuZGl4OmVudHJ5
OmluZGV4OmRlZlwKLTpuZXdjb21tYW5kOnJlbmV3Y29tbWFuZDpuZXdlbnZpcm9ubWVudDpyZW5l
d2Vudmlyb25tZW50IjsKKzpjaGFwdGVyKjpzZWN0aW9uKjpzdWJzZWN0aW9uKjpzdWJzdWJzZWN0
aW9uKjpwYXJ0KjpsYWJlbDpyZWZcCis6Y2hhcHRlcjpzZWN0aW9uOnN1YnNlY3Rpb246c3Vic3Vi
c2VjdGlvbjplcW5vOmNpdGU6YmliaXRlbTpwYXJ0XAorOmFwcGVuZGl4OmVudHJ5OmluZGV4OmRl
ZjplZGVmOmdkZWY6eGRlZjpuZXdjb21tYW5kKjpuZXdjb21tYW5kXAorOnJlbmV3Y29tbWFuZCo6
cmVuZXdjb21tYW5kOm5ld2Vudmlyb25tZW50KjpuZXdlbnZpcm9ubWVudFwKKzpyZW5ld2Vudmly
b25tZW50KjpyZW5ld2Vudmlyb25tZW50OkRlY2xhcmVSb2J1c3RDb21tYW5kKlwKKzpEZWNsYXJl
Um9idXN0Q29tbWFuZDpyZW5ld3JvYnVzdGNtZCo6cmVuZXdyb2J1c3RjbWRcCis6bmV3cm9idXN0
Y21kKjpuZXdyb2J1c3RjbWQ6cHJvdmlkZWNvbW1hbmQqOnByb3ZpZGVjb21tYW5kXAorOnByb3Zp
ZGVyb2J1c3RjbWQqOnByb3ZpZGVyb2J1c3RjbWQ6TmV3RG9jdW1lbnRDb21tYW5kXAorOlJlbmV3
RG9jdW1lbnRDb21tYW5kOlByb3ZpZGVEb2N1bWVudENvbW1hbmRcCis6RGVjbGFyZURvY3VtZW50
Q29tbWFuZDpOZXdFeHBhbmRhYmxlRG9jdW1lbnRDb21tYW5kXAorOlJlbmV3RXhwYW5kYWJsZURv
Y3VtZW50Q29tbWFuZDpQcm92aWRlRXhwYW5kYWJsZURvY3VtZW50Q29tbWFuZFwKKzpEZWNsYXJl
RXhwYW5kYWJsZURvY3VtZW50Q29tbWFuZDpOZXdEb2N1bWVudEVudmlyb25tZW50XAorOlJlbmV3
RG9jdW1lbnRFbnZpcm9ubWVudDpQcm92aWRlRG9jdW1lbnRFbnZpcm9ubWVudFwKKzpEZWNsYXJl
RG9jdW1lbnRFbnZpcm9ubWVudDpjc2RlZjpjc2VkZWY6Y3NnZGVmOmNzeGRlZjpjc2xldGNzXAor
OmNzbGV0OmxldGNzOmxldCI7CiAKIHN0YXRpYyB2b2lkIFRFWF9kZWNvZGVfZW52IChjb25zdCBj
aGFyICosIGNvbnN0IGNoYXIgKik7CiAKQEAgLTU3NTIsNiArNTc4NSw3IEBAIFRlWF9jb21tYW5k
cyAoRklMRSAqaW5mKQogewogICBjaGFyICpjcDsKICAgbGluZWJ1ZmZlciAqa2V5OworICBjaGFy
IG5ld25hbWVbVUNIQVJfTUFYXTsKIAogICBjaGFyIFRFWF9lc2MgPSAnXDAnOwogICBjaGFyIFRF
WF9vcGdycCBVTklOSVQsIFRFWF9jbGdycCBVTklOSVQ7CkBAIC01Nzk5LDE5ICs1ODMzLDczIEBA
IFRlWF9jb21tYW5kcyAoRklMRSAqaW5mKQogCSAgICAgIHsKIAkJY2hhciAqcDsKIAkJcHRyZGlm
Zl90IG5hbWVsZW4sIGxpbmVsZW47Ci0JCWJvb2wgb3BncnAgPSBmYWxzZTsKKwkJYm9vbCBvcGdy
cCA9IGZhbHNlLCBvbmVfZXNjID0gZmFsc2U7CiAKIAkJY3AgPSBza2lwX3NwYWNlcyAoY3AgKyBr
ZXktPmxlbik7CisJCS8qIFNraXAgdGhlIG9wdGlvbmFsIGFyZ3VtZW50cyB0byBjb21tYW5kcyBp
biB0aGUgdGFncyBsaXN0IHNvCisJCSAgIHRoYXQgdGhlc2UgYXJndW1lbnRzIGRvbid0IGVuZCB1
cCBhcyB0aGUgbmFtZSBvZiB0aGUgdGFnLgorCQkgICBUaGUgbmFtZSB3aWxsIGluc3RlYWQgY29t
ZSBmcm9tIHRoZSBhcmd1bWVudCBpbiBjdXJseSBicmFjZXMKKwkJICAgdGhhdCBmb2xsb3dzIHRo
ZSBvcHRpb25hbCBvbmVzLiAgKi8KKwkJaWYgKCpjcCA9PSAnWycgfHwgKmNwID09ICcoJykKKwkJ
ICB7CisJCSAgICB3aGlsZSAoKmNwICE9IFRFWF9vcGdycCAmJiAqY3AgIT0gJ1wwJykKKwkJICAg
ICAgY3ArKzsKKwkJICB9CiAJCWlmICgqY3AgPT0gVEVYX29wZ3JwKQogCQkgIHsKIAkJICAgIG9w
Z3JwID0gdHJ1ZTsKIAkJICAgIGNwKys7CiAJCSAgfQorCQkvKiBKdW1waW5nIHRvIGEgVGVYIGNv
bW1hbmQgZGVmaW5pdGlvbiBkb2Vzbid0IHdvcmsgaW4gYXQgbGVhc3QKKwkJICAgc29tZSBvZiB0
aGUgZWRpdG9ycyB0aGF0IHVzZSBjdGFncy4gIFVzaW5nIHRoZQorCQkgICAnLS10ZXgtYWx0LWZv
cm1zJyBvcHRpb24gdG8gc3RyaXAgVEVYX2VzYyBzaG91bGQgcHJvdmlkZQorCQkgICBtaW5vciBp
bXByb3ZlbWVudHMsIHRob3VnaCBvdmVyYWxsIHRoZSBiZWhhdmlvciBpcyBzdGlsbAorCQkgICBz
dWJvcHRpbWFsLiAgKFdpdGggLS10ZXgtYWx0LWZvcm1zIHdlIHByaW50IGVhY2ggdGFnIHR3aWNl
LAorCQkgICBvbmNlIHdpdGggYW5kIG9uY2Ugd2l0aG91dCBURVhfZXNjIGluIHRoZSB0YWcgbmFt
ZS4gIFNlZQorCQkgICBiZWxvdy4pICBUaGUgdW5kb2N1bWVudGVkIGN0YWdzIG9wdGlvbiAnLS1u
by1kdXBsaWNhdGVzJyBtYXkKKwkJICAgYWxzbyBoZWxwLiAgQ2hhbmdlcyBpbiB0ZXgtbW9kZS5l
bCBpbiBHTlUgRW1hY3MgYWRkcmVzcyB0aGUKKwkJICAgbWFqb3JpdHkgb2YgdGhlc2UgaXNzdWVz
IGZvciBldGFncywgdGhvdWdoIHRoZQorCQkgICAnLS10ZXgtYWx0LWZvcm1zJyBvcHRpb24gY2Fu
IGFsc28gYmUgdXNlZnVsIHRoZXJlLiAqLworCisJCWlmICh0ZXhfYWx0X2Zvcm1zICYmICpjcCA9
PSBURVhfZXNjKQorCQkgIHsKKwkJICAgIGNwKys7CisJCSAgICBvbmVfZXNjID0gdHJ1ZTsKKwkJ
ICB9CisKKwkJLyogQWRkIG9wdGlvbmFsIGFyZ3VtZW50IGJyYWNrZXRzICcoJyBhbmQgJ1snIHRv
IHRoZSBsb29wIHRlc3QKKwkJICAgc28gdGhhdCB0aGVzZSBhcmd1bWVudHMgZG9uJ3QgYXBwZWFy
IGluIHRhZyBuYW1lcy4gIEFsc28gYWRkCisJCSAgICc9JyBhcyBpdCdzIHJlbGF0aW9uYWwgaW4g
dGhlIHZhc3QgbWFqb3JpdHkgb2YgY2FzZXMuICAqLwogCQlmb3IgKHAgPSBjcDsKLQkJICAgICAo
IWNfaXNzcGFjZSAoKnApICYmICpwICE9ICcjJyAmJgotCQkgICAgICAqcCAhPSBURVhfb3BncnAg
JiYgKnAgIT0gVEVYX2NsZ3JwKTsKKwkJICAgICAoIWNfaXNzcGFjZSAoKnApICYmICpwICE9ICcj
JyAmJiAqcCAhPSAnPScgJiYKKwkJICAgICAgKnAgIT0gJ1snICYmICpwICE9ICcoJyAmJiAqcCAh
PSBURVhfb3BncnAgJiYKKwkJICAgICAgKnAgIT0gVEVYX2NsZ3JwKTsKIAkJICAgICBwKyspCi0J
CSAgY29udGludWU7CisJCSAgLyogQWxsb3cgb25seSBvbmUgZXNjYXBlIGNoYXIgaW4gYSB0YWcg
bmFtZSwgd2hpY2gKKwkJICAgICAocHJpbWFyaWx5KSBlbmFibGVzIHRhZ2dpbmcgYSBUZVggY29t
bWFuZCdzIGRpZmZlcmVudCwKKwkJICAgICBwb3NzaWJseSB0ZW1wb3JhcnksICdcbGV0JyBiaW5k
aW5ncy4gICovCisJCSAgaWYgKCpwID09IFRFWF9lc2MpCisJCSAgICB7CisJCSAgICAgIGlmICgh
b25lX2VzYykKKwkJCXsKKwkJCSAgb25lX2VzYyA9IHRydWU7CisJCQkgIGNvbnRpbnVlOworCQkJ
fQorCQkgICAgICBlbHNlCisJCQlicmVhazsKKwkJICAgIH0KKwkJICBlbHNlCisJCSAgICBjb250
aW51ZTsKKwkJLyogUmUtcnVuIHRoZSBzY2FuIHRvIGNhdGNoIChoaWdobHkgdW51c3VhbCkgY2Fz
ZXMgd2hlcmUgYQorCQkgICBjb21tYW5kIG5hbWUgaXMgb2YgdGhlIGZvcm0gJ1woJy4gICovCisJ
CWlmICgoKnAgPT0gJygnIHx8ICpwID09ICdbJykgJiYgKHAgLSBjcCkgPCAyKQorCQkgIHsKKwkJ
ICAgIGZvciAocCA9IGNwOworCQkJICghY19pc3NwYWNlICgqcCkgJiYgKnAgIT0gJyMnICYmCisJ
CQkgICpwICE9IFRFWF9vcGdycCAmJiAqcCAhPSBURVhfY2xncnApOworCQkJIHArKykKKwkJICAg
ICAgY29udGludWU7CisJCSAgfQogCQluYW1lbGVuID0gcCAtIGNwOwogCQlsaW5lbGVuID0gbGIu
bGVuOwogCQlpZiAoIW9wZ3JwIHx8ICpwID09IFRFWF9jbGdycCkKQEAgLTU4MjAsNiArNTkwOCwx
NiBAQCBUZVhfY29tbWFuZHMgKEZJTEUgKmluZikKIAkJICAgICAgcCsrOwogCQkgICAgbGluZWxl
biA9IHAgLSBsYi5idWZmZXIgKyAxOwogCQkgIH0KKwkJLyogV2l0aCAtLXRleC1hbHQtZm9ybXMg
d2Ugc3RyaXAgYW55IFRFWF9lc2MgZnJvbSB0aGUgbmFtZSAoc2VlCisJCSAgIGFib3ZlKSwgcHJp
bnQgdGhlIHRhZyB3aXRoIFRFWF9lc2MgcHJlcGVuZGVkIHRvIHRoZSBiYXJlIHRhZworCQkgICBu
YW1lLCB0aGVuIHByaW50IHRoZSBzYW1lIHRhZyBhZ2FpbiB3aXRoIHRoZSBiYXJlIHRhZworCQkg
ICBuYW1lLiAqLworCQlpZiAodGV4X2FsdF9mb3JtcykKKwkJICB7CisJCSAgc25wcmludGYgKG5l
d25hbWUsIFVDSEFSX01BWCwgIiVjJXMiLCBURVhfZXNjLCBjcCk7CisJCSAgbWFrZV90YWcgKG5l
d25hbWUsIG5hbWVsZW4gKyAxLCB0cnVlLAorCQkJICAgIGxiLmJ1ZmZlciwgbGluZWxlbiwgbGlu
ZW5vLCBsaW5lY2hhcm5vKTsKKwkJICB9CiAJCW1ha2VfdGFnIChjcCwgbmFtZWxlbiwgdHJ1ZSwK
IAkJCSAgbGIuYnVmZmVyLCBsaW5lbGVuLCBsaW5lbm8sIGxpbmVjaGFybm8pOwogCQlnb3RvIHRl
eF9uZXh0X2xpbmU7IC8qIFdlIG9ubHkgdGFnIGEgbGluZSBvbmNlICovCmRpZmYgLS1naXQgYS9s
aXNwL3RleHRtb2Rlcy90ZXgtbW9kZS5lbCBiL2xpc3AvdGV4dG1vZGVzL3RleC1tb2RlLmVsCmlu
ZGV4IGEyNmU3YjljODNhLi4zZGU0YTA5M2UwOSAxMDA2NDQKLS0tIGEvbGlzcC90ZXh0bW9kZXMv
dGV4LW1vZGUuZWwKKysrIGIvbGlzcC90ZXh0bW9kZXMvdGV4LW1vZGUuZWwKQEAgLTEyNzcsNiAr
MTI3Nyw4IEBAIHRleC1jb21tb24taW5pdGlhbGl6YXRpb24KIAkgICAgICAoc3ludGF4LXByb3Bl
cnRpemUtcnVsZXMgbGF0ZXgtc3ludGF4LXByb3BlcnRpemUtcnVsZXMpKQogICA7OyBUQUJzIGlu
IHZlcmJhdGltIGVudmlyb25tZW50cyBkb24ndCBkbyB3aGF0IHlvdSB0aGluay4KICAgKHNldHEt
bG9jYWwgaW5kZW50LXRhYnMtbW9kZSBuaWwpCisgIDs7IFNldCB1cCB4cmVmIGJhY2tlbmQgaW4g
VGVYIGJ1ZmZlcnMuCisgICh0ZXgtc2V0LXRoaW5nYXRwdC1zeW1ib2wpCiAgIDs7IE90aGVyIHZh
cnMgdGhhdCBzaG91bGQgYmUgYnVmZmVyLWxvY2FsLgogICAobWFrZS1sb2NhbC12YXJpYWJsZSAn
dGV4LWNvbW1hbmQpCiAgIChtYWtlLWxvY2FsLXZhcmlhYmxlICd0ZXgtc3RhcnQtb2YtaGVhZGVy
KQpAQCAtMzcyNCw2ICszNzI2LDIyMCBAQCB0ZXgtY2hrdGV4CiAgICAgICAgICAgICAgICAgICAg
KGtpbGwtYnVmZmVyIChwcm9jZXNzLWJ1ZmZlciBwcm9jZXNzKSkpKSkpKQogICAgICAgKHByb2Nl
c3Mtc2VuZC1yZWdpb24gdGV4LWNoa3RleC0tcHJvY2VzcyAocG9pbnQtbWluKSAocG9pbnQtbWF4
KSkKICAgICAgIChwcm9jZXNzLXNlbmQtZW9mIHRleC1jaGt0ZXgtLXByb2Nlc3MpKSkpCisMCis7
OzsgWHJlZiAvIEV0YWdzIHR3ZWFrcworCis7OyBSYXRoZXIgdGhhbiBkZWZpbmUgYSBuZXcgeHJl
ZiBiYWNrZW5kIGZvciBUZVgsIHdlIHR3ZWFrIHRoZSBkZWZhdWx0Cis7OyBldGFncyBiYWNrZW5k
IHNvIHRoYXQgdGhlIG1haW4geHJlZiB1c2VyIGNvbW1hbmRzIChpbmNsdWRpbmcKKzs7IGB4cmVm
LWZpbmQtZGVmaW5pdGlvbnMnLCBgeHJlZi1maW5kLWFwcm9wb3MnLCBhbmQKKzs7IGB4cmVmLWZp
bmQtcmVmZXJlbmNlcycgW29uIE0tLiwgQy1NLS4sIGFuZCBNLT8sIHJlc3BlY3RpdmVseV0pIHdv
cmsKKzs7IGluIFRlWCBidWZmZXJzLiAgVGhpcyBtb3N0bHkgaW52b2x2ZXMgZGVmaW5pbmcgYSBu
ZXcgVEhJTkcgZm9yCis7OyBgdGhpbmctYXQtcG9pbnQnICh0ZXhzeW1ib2wpLCB0aGVuIHN1YnN0
aXR1dGluZyB0aGF0IFRISU5HIGZvcgorOzsgYHN5bWJvbCcgaW4gVGVYIGJ1ZmZlcnMsIGF0IGxl
YXN0IGJ5IChjb25maWd1cmFibGUpIGRlZmF1bHQuICBUaGUKKzs7IFRlWCBlc2NhcGUgY2hhcmFj
dGVyIHdpbGwgYnkgZGVmYXVsdCBhcHBlYXIgaW4gdGhlIHJlc3VsdGluZyBzdHJpbmcKKzs7IG9u
bHkgd2hlbiB0aGUgeHJlZiBjb21tYW5kIHVzZXMgc3RyaW5nIHNlYXJjaCBhbmQgbm90IHJlZ2V4
cAorOzsgc2VhcmNoLCB0aG91Z2ggdGhpcyB0b28gaXMgY29uZmlndXJhYmxlLiAgVGhlIG5ldyBU
SElORyB0eXBlIGFsc28KKzs7IGltcHJvdmVzIHRoZSBhY2N1cmFjeSBvZiBvdGhlciBjb21tYW5k
cyB0aGF0IHVzZSBgdGhpbmctYXQtcG9pbnQnCis7OyBpbiBUZVggYnVmZmVycywgbGlrZSBgaXNl
YXJjaC1mb3J3YXJkLXRoaW5nLWF0LXBvaW50JyAob24gTS1zIE0tLikKKzs7IGFuZCBgcHJvamVj
dC1maW5kLXJlZ2V4cCcgKG9uIEMteCBwIGcpLiAgSW5kZWVkLAorOzsgYHByb2plY3QtZmluZC1y
ZWdleHAnIHNvbWV0aW1lcyB3b3JrcyBiZXR0ZXIgaW4gVGVYIGJ1ZmZlcnMgdGhhbgorOzsgYHhy
ZWYtZmluZC1yZWZlcmVuY2VzJy4KKworKGRlZnZhciB0ZXgtdGhpbmdhdHB0LW1vZGVzLWxpc3QK
KyAgJyh0ZXgtbW9kZSBkb2N0ZXgtbW9kZSBsYXRleC1tb2RlIHBsYWluLXRleC1tb2RlIHNsaXRl
eC1tb2RlIGFtcy10ZXgtbW9kZSkKKyAgIk1ham9yIG1vZGVzIHdoZXJlIGB0aGluZy1hdC1wb2lu
dCcgbWF5IHVzZSB0aGUgYHRleHN5bWJvbCcgdHlwZS4KKworV2hlbiBhIGJ1ZmZlcidzIGBtYWpv
ci1tb2RlJyBpcyBpbiB0aGlzIGxpc3QsIGFuZCB3aGVuCitgdGV4LXRoaW5nYXRwdC1pcy10ZXhz
eW1ib2wnIGlzIHQgKHRoZSBkZWZhdWx0KSwgYW55IGNvbW1hbmQgaW4KK3RoYXQgYnVmZmVyIHRo
YXQgY2FsbHMgYHRoaW5nLWF0LXBvaW50JyB3aXRoIGEgYHN5bWJvbCcgYXJndW1lbnQKK2FjdHVh
bGx5IHVzZXMgdGhlIGB0ZXhzeW1ib2wnIGFyZ3VtZW50LCBpbnN0ZWFkLiIpCisKKyhkZWZjdXN0
b20gdGV4LXRoaW5nYXRwdC1pcy10ZXhzeW1ib2wgdAorICAiV2hlbiBub24tbmlsIHJlcGxhY2Ug
YHN5bWJvbCcgYnkgYHRleHN5bWJvbCcgZm9yIGB0aGluZy1hdC1wb2ludCcuCisKK1RoaXMgYXBw
bGllcyBvbmx5IHRvIFRlWCBidWZmZXJzLiAgVGhlIGB0ZXhzeW1ib2wnIFwidGhpbmdcIgorbW9k
aWZpZXMgdGhlIHN0YW5kYXJkIGBzeW1ib2wnIGZvciB1c2UgaW4gc3VjaCBidWZmZXJzLgorCitX
aGVuIG5pbCwgcmVzdG9yZSB0aGUgZGVmYXVsdCBiZWhhdmlvciBvZiBgdGhpbmctYXQtcG9pbnQn
IGluIFRlWAorYnVmZmVycy4KKworQ3VzdG9tIHdpbGwgYXV0b21hdGljYWxseSBhcHBseSBjaGFu
Z2VzIGluIGFsbCBUZVggYnVmZmVycywgYnV0CitpZiB5b3Ugc2V0IHRoZSB2YXJpYWJsZSBvdXRz
aWRlIG9mIEN1c3RvbSBpdCB3b24ndCB0YWtlIGVmZmVjdAordW50aWwgeW91IGFwcGx5IGl0IHdp
dGggXFxbdGV4LXNldC10aGluZ2F0cHQtc3ltYm9sXS4gIFdpdGhvdXQgYQorcHJlZml4IGFyZ3Vt
ZW50IChcXFt1bml2ZXJzYWwtYXJndW1lbnRdKSB0aGlzIGFwcGxpZXMgb25seSB0byB0aGUKK2N1
cnJlbnQgYnVmZmVyLCBidXQgd2l0aCBvbmUgaXQgYXBwbGllcyB0byBhbGwgVGVYIGJ1ZmZlcnMg
aW4KK2BidWZmZXItbGlzdCcuICAoVGVYIGJ1ZmZlcnMgYXJlIHRob3NlIHdob3NlIGBtYWpvci1t
b2RlJyBpcyBhCittZW1iZXIgb2YgYHRleC10aGluZ2F0cHQtbW9kZXMtbGlzdCcuKSIKKyAgOnR5
cGUgJ2Jvb2xlYW4KKyAgOmdyb3VwICd0ZXgtZmlsZQorICA6Z3JvdXAgJ1RlWC1taXNjCisgIDpp
bml0aWFsaXplICMnY3VzdG9tLWluaXRpYWxpemUtZGVmYXVsdAorICA6c2V0IChsYW1iZGEgKHZh
ciB2YWwpCisgICAgICAgICAoc2V0LWRlZmF1bHQgdmFyIHZhbCkKKyAgICAgICAgICh0ZXgtc2V0
LXRoaW5nYXRwdC1zeW1ib2wgdCkpCisgIDp2ZXJzaW9uICIzMC4xIikKKworKGRlZmN1c3RvbSB0
ZXgtdGhpbmdhdHB0LWluY2x1ZGUtZXNjYXBlICcoeHJlZi1maW5kLWRlZmluaXRpb25zCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4cmVmLWZpbmQtZGVmaW5pdGlv
bnMtb3RoZXItd2luZG93CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB4cmVmLWZpbmQtZGVmaW5pdGlvbnMtb3RoZXItZnJhbWUpCisgICJJZiBub24tbmlsLCBpbmNs
dWRlIGB0ZXgtZXNjYXBlLWNoYXInIGluIGB0aGluZy1hdC1wb2ludCcuCisKK1RoaXMgdmFyaWFi
bGUgb25seSB0YWtlcyBlZmZlY3Qgd2hlbiBgdGV4LXRoaW5nYXRwdC1pcy10ZXhzeW1ib2wnCitp
cyB0ICh0aGUgZGVmYXVsdCksIGNoYW5naW5nIHRoZSBhcmd1bWVudCBwYXNzZWQgdG8KK2B0aGlu
Zy1hdC1wb2ludCcgZnJvbSBgc3ltYm9sJyB0byBgdGV4c3ltYm9sJy4gIFdoZW4gdGhhdCBpcyB0
aGUKK2Nhc2UsIHRoZSB2YWx1ZXMgb2YgdGhpcyB2YXJpYWJsZSBhY3QgYXMgZm9sbG93czoKKwor
V2hlbiB0LCBgdGhpbmctYXQtcG9pbnQnIHdpbGwgYWx3YXlzIGluY2x1ZGUgYQorYHRleC1lc2Nh
cGUtY2hhcicgKHVzdWFsbHkgYFxcJyksIHNob3VsZCBvbmUgYmUgcHJlc2VudCwgaW4gdGhlCitz
dHJpbmcgaXQgcmV0dXJucyBpbiBUZVggYnVmZmVycy4KKworV2hlbiBuaWwsIGB0aGluZy1hdC1w
b2ludCcgd2lsbCBuZXZlciBpbmNsdWRlIHRoZQorYHRleC1lc2NhcGUtY2hhcicgaW4gdGhlIHN0
cmluZyBpdCByZXR1cm5zIGluIFRlWCBidWZmZXJzLgorCitPdGhlcndpc2UsIGl0J3MgYSBsaXN0
IG9mIGNvbW1hbmRzIGZvciB3aGljaCBgdGhpbmctYXQtcG9pbnQnCit3aWxsIGFsd2F5cyBpbmNs
dWRlIHRoZSBgdGV4LWVzY2FwZS1jaGFyJyBpbiB0aGUgc3RyaW5nIGl0CityZXR1cm5zLiAgVGhl
IHRocmVlIHhyZWYgY29tbWFuZHMgbGlzdGVkIGJ5IGRlZmF1bHQgbWF5IGNlYXNlIHRvCitmdW5j
dGlvbiBwcm9wZXJseSBpbiBUZVggYnVmZmVycyBpZiBzZXQgdG8gbmlsLCBidXQgdXNpbmcgdGhl
CitgLS10ZXgtYWx0LWZvcm1zJyBvcHRpb24gd2hlbiBjcmVhdGluZyB5b3VyIHRhZ3MgdGFibGUg
d2l0aAorYGV0YWdzJyB3aWxsIHJlY3RpZnkgdGhhdC4iCisgIDp0eXBlICcoY2hvaWNlIChjb25z
dCA6dGFnICJBbHdheXMgaW5jbHVkZSB0ZXgtZXNjYXBlLWNoYXIiIHQpCisgICAgICAgICAgICAg
ICAgIChjb25zdCA6dGFnICJOZXZlciBpbmNsdWRlIHRleC1lc2NhcGUtY2hhciIgbmlsKQorICAg
ICAgICAgICAgICAgICAoc2V0IDp0YWcgIkluY2x1ZGUgdGV4LWVzY2FwZS1jaGFyIGZvciB0aGVz
ZSBjb21tYW5kcyIKKwkJICAgICAgKHJlcGVhdCA6aW5saW5lIHQgKHN5bWJvbCA6dGFnICJjb21t
YW5kIikpKSkKKyAgOmdyb3VwICd0ZXgtZmlsZQorICA6Z3JvdXAgJ1RlWC1taXNjCisgIDp2ZXJz
aW9uICIzMC4xIikKKworKGRlZnZhciB0ZXgtZXNjYXBlLWNoYXIgP1xcCisgICJUaGUgY3VycmVu
dCwgcG9zc2libHkgYnVmZmVyLWxvY2FsLCBUZVggZXNjYXBlIGNoYXJhY3Rlci4KKworVGhlIGBl
dGFncycgcHJvZ3JhbSBvbmx5IHJlY29nbml6ZXMgYFxcJyAoOTIpIGFuZCBgIScgKDMzKSBhcwor
ZXNjYXBlIGNoYXJhY3RlcnMgaW4gVGVYIGRvY3VtZW50cywgYW5kIGlmIGl0IGRldGVjdHMgdGhl
IGxhdHRlcgoraXQgYWxzbyB1c2VzIGA8PicgYXMgdGhlIFRlWCBncm91cGluZyBjb25zdHJ1Y3Qg
cmF0aGVyIHRoYW4gYHt9Jy4KK1NldHRpbmcgdGhpcyB2YXJpYWJsZSB0byBhbnl0aGluZyBvdGhl
ciB0aGFuIGBcXCcgb3IgYCEnIGlzCitwb3NzaWJsZSBidXQgd2lsbCBub3QgYmUgdXNlZnVsIHdp
dGhvdXQgY2hhbmdlcyB0byBgZXRhZ3MnLCBhdAorbGVhc3QgZm9yIGNvbW1hbmRzIHRoYXQgc2Vh
cmNoIHRhZ3MgdGFibGVzLCBzdWNoIGFzCitgeHJlZi1maW5kLWRlZmluaXRpb25zJyAoXFxbeHJl
Zi1maW5kLWRlZmluaXRpb25zXSkgYW5kIFwKK2B4cmVmLWZpbmQtYXByb3BvcycgKFxcW3hyZWYt
ZmluZC1hcHJvcG9zXSkuIikKKworKGRlZnZhciB0ZXgtdGhpbmdhdHB0LXN5bnRheC10YWJsZQor
ICAobGV0KiAoKG9zdCAoaWYgKGJvdW5kcCAnVGVYLW1vZGUtc3ludGF4LXRhYmxlKQorICAgICAg
ICAgICAgICAgICAgVGVYLW1vZGUtc3ludGF4LXRhYmxlCisgICAgICAgICAgICAgICAgdGV4LW1v
ZGUtc3ludGF4LXRhYmxlKSkKKyAgICAgICAgIChzdCAobWFrZS1zeW50YXgtdGFibGUgb3N0KSkp
CisgICAgKG1vZGlmeS1zeW50YXgtZW50cnkgPyMgIiciIHN0KQorICAgIChtb2RpZnktc3ludGF4
LWVudHJ5ID89ICInIiBzdCkKKyAgICAobW9kaWZ5LXN5bnRheC1lbnRyeSA/YCAiJyIgc3QpCisg
ICAgKG1vZGlmeS1zeW50YXgtZW50cnkgP1wiICInIiBzdCkKKyAgICAobW9kaWZ5LXN5bnRheC1l
bnRyeSA/JyAiJyIgc3QpCisgICAgc3QpCisgICJTeW50YXggdGFibGUgZm9yIGRlbGltaXRpbmcg
YHRoaW5nLWF0LXBvaW50JyBpbiBUZVggYnVmZmVycy4KKworV2hlbiBgdGV4LXRoaW5nYXRwdC1p
cy10ZXhzeW1ib2wnIGlzIHQsIHRoaXMgc3ludGF4IHRhYmxlIGhlbHBzCit0byBkZWZpbmUgd2hh
dCBhIGB0ZXhzeW1ib2wnIGlzLiAgVG8gYWNjZXNzIGl0IHVzZSB0aGUKK2B0ZXgtdGhpbmdhdHB0
LXN5bnRheC10YWJsZScgZnVuY3Rpb24uIikKKworKGRlZnVuIHRleC10aGluZ2F0cHQtc3ludGF4
LXRhYmxlICgpCisgICJSZXR1cm4gYSBzeW50YXggdGFibGUgZm9yIGB0aGluZy1hdC1wb2ludCcg
aW4gVGVYIGJ1ZmZlcnMuCisKK0l0IG1vZGlmaWVzIHRoZSBwcmUtZGVmaW5lZCBzeW50YXggdGFi
bGUgZGVwZW5kaW5nIGJvdGggb24gdGhlCitzZXR0aW5nIG9mIHRoZSBgdGV4LWVzY2FwZS1jaGFy
JyB2YXJpYWJsZSwgd2hpY2ggbWF5IGJlIGJ1ZmZlcgorbG9jYWwsIGFuZCBvbiB3aGV0aGVyIHdl
J3JlIHVzaW5nIEFVQ1RlWCBvciB0aGUgaW4tdHJlZSB0ZXgtbW9kZS4iCisgIChsZXQgKChuc3Qg
KG1ha2Utc3ludGF4LXRhYmxlIHRleC10aGluZ2F0cHQtc3ludGF4LXRhYmxlKSkKKyAgICAgICAg
KGVzY3N5IChpZiAoYm91bmRwICdUZVgtbW9kZS1zeW50YXgtdGFibGUpCisgICAgICAgICAgICAg
ICAgICAgP1xcCisgICAgICAgICAgICAgICAgID8vKSkpCisgICAgKGNvbmQgKChjaGFyLWVxdWFs
IHRleC1lc2NhcGUtY2hhciA/XFwpKQorICAgICAgICAgICgoY2hhci1lcXVhbCB0ZXgtZXNjYXBl
LWNoYXIgPyEpCisgICAgICAgICAgIChtb2RpZnktc3ludGF4LWVudHJ5ID9cXCAiXyIgbnN0KQor
ICAgICAgICAgICAobW9kaWZ5LXN5bnRheC1lbnRyeSB0ZXgtZXNjYXBlLWNoYXIgKGNoYXItdG8t
c3RyaW5nIGVzY3N5KSBuc3QpCisgICAgICAgICAgIChtb2RpZnktc3ludGF4LWVudHJ5ID88ICIo
PiIgbnN0KQorICAgICAgICAgICAobW9kaWZ5LXN5bnRheC1lbnRyeSA/PiAiKTwiIG5zdCkpCisg
ICAgICAgICAgKHQKKyAgICAgICAgICAgKG1vZGlmeS1zeW50YXgtZW50cnkgP1xcICJfIiBuc3Qp
CisgICAgICAgICAgIChtb2RpZnktc3ludGF4LWVudHJ5IHRleC1lc2NhcGUtY2hhciAoY2hhci10
by1zdHJpbmcgZXNjc3kpIG5zdCkpKQorICAgIG5zdCkpCisKKzs7IFNldHVwIEFVQ1RlWCBtb2Rl
cy4gIChTaG91bGQgdGhpcyBiZSBpbiBBVUNUZVggaXRzZWxmPykKKyhhZGQtaG9vayAnVGVYLW1v
ZGUtaG9vayAjJ3RleC1zZXQtdGhpbmdhdHB0LXN5bWJvbCkKKworOzsgYHhyZWYtZmluZC1yZWZl
cmVuY2VzJyBuZWVkcyB0aGlzIHdoZW4gY2FsbGVkIGZyb20gYSBsYXRleC1tb2RlCis7OyBidWZm
ZXIgaW4gb3JkZXIgdG8gc2VhcmNoIGZpbGVzIG9yIGJ1ZmZlcnMgd2l0aCBhIC50ZXggc3VmZml4
Cis7OyAoaW5jbHVkaW5nIHRoZSBidWZmZXIgZnJvbSB3aGljaCBpdCBoYXMgYmVlbiBjYWxsZWQp
LiAgV2UgYXBwZW5kIGl0Cis7OyB0byBgYXV0by1tb2RlLWFsaXN0JyBzbyBhcyBub3QgdG8gaW50
ZXJmZXJlIHdpdGggdGhlIHVzdWFsCis7OyBtb2RlLXNldHRpbmcgYXBwYXJhdHVzLgorKGFkZC10
by1saXN0ICdhdXRvLW1vZGUtYWxpc3QgJygiXFwuW3RUXWVbeFhdXFwnIiAuIGxhdGV4LW1vZGUp
IHQpCisKKyhkb2xpc3QgKHRleG1vZGUgdGV4LXRoaW5nYXRwdC1tb2Rlcy1saXN0KQorICAocHV0
IHRleG1vZGUgJ2ZpbmQtdGFnLWRlZmF1bHQtZnVuY3Rpb24gJ3RleC0tdGhpbmctYXQtcG9pbnQp
KQorCisocHV0ICd0ZXhzeW1ib2wgJ2JlZ2lubmluZy1vcCAndGV4LXRoaW5nYXRwdC0tYmVnaW5u
aW5nLW9mLXRleHN5bWJvbCkKKworKHB1dCAndGV4c3ltYm9sICdlbmQtb3AgJ3RleC10aGluZ2F0
cHQtLWVuZC1vZi10ZXhzeW1ib2wpCisKKyhkZWNsYXJlLWZ1bmN0aW9uIGNsLXN1YnN0aXR1dGUg
ImNsLXNlcSIgKGNsLW5ldyBjbC1vbGQgY2wtc2VxICZyZXN0IGNsLWtleXMpKQorCisoZGVmdW4g
dGV4LXNldC10aGluZ2F0cHQtc3ltYm9sICgmb3B0aW9uYWwgYWxsKQorICAiU2V0IG1lYW5pbmcg
b2YgYHRoaW5nLWF0LXBvaW50JyBgc3ltYm9sJyBpbiAoQUxMPykgVGVYIGJ1ZmZlcnMuCisKK1do
ZW4gYHRleC10aGluZ2F0cHQtaXMtdGV4c3ltYm9sJyBpcyB0LCBzZXQgYHRoaW5nLWF0LXBvaW50
JyB0bwordXNlIHRoZSBgdGV4c3ltYm9sJyBcInRoaW5nXCIgaW5zdGVhZCBvZiBgc3ltYm9sJywg
b3RoZXJ3aXNlCittYWludGFpbiBvciByZXN0b3JlIHRoZSBkZWZhdWx0LiAgV2l0aG91dCBhbiBv
cHRpb25hbCBBTEwgbWFrZQorY2hhbmdlcyBvbmx5IGluIGN1cnJlbnQgYnVmZmVyLCB3aXRoIEFM
TCBtYWtlIGNoYW5nZXMgaW4gYWxsIFRlWAorYnVmZmVycyBpbiBgYnVmZmVyLWxpc3QnLiIKKyAg
KGludGVyYWN0aXZlICJQIikKKyAgKHJlcXVpcmUgJ3RoaW5nYXRwdCkKKyAgKGlmIGFsbAorICAg
ICAgKGRvbGlzdCAoYnVmIChidWZmZXItbGlzdCkpCisgICAgICAgICh3aXRoLWN1cnJlbnQtYnVm
ZmVyIGJ1ZgorICAgICAgICAgICh0ZXgtLXN5bWJvbC1vci10ZXhzeW1ib2wpKSkKKyAgICAodGV4
LS1zeW1ib2wtb3ItdGV4c3ltYm9sKSkpCisKKyhkZWZ1biB0ZXgtLXN5bWJvbC1vci10ZXhzeW1i
b2wgKCkKKyAgKHdoZW4gKG1lbXEgbWFqb3ItbW9kZSB0ZXgtdGhpbmdhdHB0LW1vZGVzLWxpc3Qp
CisgICAgKGlmIHRleC10aGluZ2F0cHQtaXMtdGV4c3ltYm9sCisgICAgICAgIChzZXRxLWxvY2Fs
IHRoaW5nLWF0LXBvaW50LXByb3ZpZGVyLWFsaXN0CisgICAgICAgICAgICAgICAgICAgIChhZGQt
dG8tbGlzdCAndGhpbmctYXQtcG9pbnQtcHJvdmlkZXItYWxpc3QKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICcoc3ltYm9sIC4gdGV4LS10aGluZy1hdC1wb2ludCkpCisgICAgICAg
ICAgICAgICAgICAgIGlzZWFyY2gtZm9yd2FyZC10aGluZy1hdC1wb2ludAorICAgICAgICAgICAg
ICAgICAgICAoY2wtc3Vic3RpdHV0ZSAndGV4c3ltYm9sICdzeW1ib2wKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgaXNlYXJjaC1mb3J3YXJkLXRoaW5nLWF0LXBvaW50KSkKKyAg
ICAgIChzZXRxLWxvY2FsIHRoaW5nLWF0LXBvaW50LXByb3ZpZGVyLWFsaXN0CisgICAgICAgICAg
ICAgICAgICAoZGVsZXRlICcoc3ltYm9sIC4gdGV4LS10aGluZy1hdC1wb2ludCkKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgdGhpbmctYXQtcG9pbnQtcHJvdmlkZXItYWxpc3QpCisgICAgICAg
ICAgICAgICAgICBpc2VhcmNoLWZvcndhcmQtdGhpbmctYXQtcG9pbnQKKyAgICAgICAgICAgICAg
ICAgIChjbC1zdWJzdGl0dXRlICdzeW1ib2wgJ3RleHN5bWJvbAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgaXNlYXJjaC1mb3J3YXJkLXRoaW5nLWF0LXBvaW50KSkpKSkKKworKGRl
ZnVuIHRleC0tdGhpbmctYXQtcG9pbnQgKCkKKyAgIlBhc3MgYHRoaW5nJyB0eXBlIGB0ZXhzeW1i
b2wnIHRvIGBib3VuZHMtb2YtdGhpbmctYXQtcG9pbnQnLgorCitXaGVuIGB0ZXgtdGhpbmdhdHB0
LWlzLXRleHN5bWJvbCcgaXMgdCwgY2FsbHMgaW4gVGVYIGJ1ZmZlcnMgdG8KK2B0aGluZy1hdC1w
b2ludCcgd2l0aCBhcmd1bWVudCBgc3ltYm9sJyB3aWxsIGluc3RlYWQgdXNlIHRoZQorYXJndW1l
bnQgYHRleHN5bWJvbCcuICBPdGhlcndpc2UgaXQgd2lsbCBjYWxsIGBmaW5kLXRhZy1kZWZhdWx0
Jy4iCisgIChpZiB0ZXgtdGhpbmdhdHB0LWlzLXRleHN5bWJvbAorICAgICAgKGxldCAoKGJvdW5k
cyAoYm91bmRzLW9mLXRoaW5nLWF0LXBvaW50ICd0ZXhzeW1ib2wpKSkKKyAgICAgICAgKHdoZW4g
Ym91bmRzCisgICAgICAgICAgKGJ1ZmZlci1zdWJzdHJpbmctbm8tcHJvcGVydGllcyAoY2FyIGJv
dW5kcykgKGNkciBib3VuZHMpKSkpCisgICAgKGZpbmQtdGFnLWRlZmF1bHQpKSkKKworKGRlZnVu
IHRleC0taW5jbHVkZS1lc2NhcGUtcCAoY29tbWFuZCkKKyAgKG9yIChlcSB0ZXgtdGhpbmdhdHB0
LWluY2x1ZGUtZXNjYXBlIHQpCisgICAgICAobWVtcSBjb21tYW5kIHRleC10aGluZ2F0cHQtaW5j
bHVkZS1lc2NhcGUpKSkKKworKGRlZnVuIHRleC10aGluZ2F0cHQtLWJlZ2lubmluZy1vZi10ZXhz
eW1ib2wgKCkKKyAgIk1vdmUgcG9pbnQgdG8gdGhlIGJlZ2lubmluZyBvZiB0aGUgY3VycmVudCBU
ZVggc3ltYm9sLiIKKyAgKHdpdGgtc3ludGF4LXRhYmxlICh0ZXgtdGhpbmdhdHB0LXN5bnRheC10
YWJsZSkKKyAgICAoYW5kIChyZS1zZWFyY2gtYmFja3dhcmQgIlxcKFtdWygpXVxcfFxcKFxcc3dc
XHxcXHNfXFx8XFxzLlxcKStcXCkiKQorICAgICAgICAgKHNraXAtc3ludGF4LWJhY2t3YXJkICJ3
Xy4iKQorICAgICAgICAgKHdoZW4gKHRleC0taW5jbHVkZS1lc2NhcGUtcCB0aGlzLWNvbW1hbmQp
CisgICAgICAgICAgIChza2lwLXN5bnRheC1iYWNrd2FyZCAiXFwvIikpKSkpCisKKyhkZWZ1biB0
ZXgtdGhpbmdhdHB0LS1lbmQtb2YtdGV4c3ltYm9sICgpCisgICJNb3ZlIHBvaW50IHRvIHRoZSBl
bmQgb2YgdGhlIGN1cnJlbnQgVGVYIHN5bWJvbC4iCisgICh3aXRoLXN5bnRheC10YWJsZSAodGV4
LXRoaW5nYXRwdC1zeW50YXgtdGFibGUpCisgICAgKGFuZCAocmUtc2VhcmNoLWZvcndhcmQgIlxc
KFtdWygpXVxcfFxcKFxcc3dcXHxcXHNfXFx8XFxzLlxcKStcXCkiKQorICAgICAgICAgKHNraXAt
c3ludGF4LWZvcndhcmQgIndfLiIpKSkpCiAKIChtYWtlLW9ic29sZXRlLXZhcmlhYmxlICd0ZXgt
bW9kZS1sb2FkLWhvb2sKICAgICAgICAgICAgICAgICAgICAgICAgICJ1c2UgYHdpdGgtZXZhbC1h
ZnRlci1sb2FkJyBpbnN0ZWFkLiIgIjI4LjEiKQotLSAKMi4zNS44Cgo=
--0000000000009f58c406053b9c14--




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#53749: 29.0.50; [PATCH] Xref backend for TeX buffers
Resent-From: Stefan Kangas <stefankangas@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Wed, 13 Sep 2023 13:43:01 +0000
Resent-Message-ID: <handler.53749.B53749.169461256210610 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 53749
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: pending patch
To: David Fussner <dfussner@HIDDEN>
Cc: 53749 <at> debbugs.gnu.org, Lars Ingebrigtsen <larsi@HIDDEN>, Dmitry Gutov <dgutov@HIDDEN>
Received: via spool by 53749-submit <at> debbugs.gnu.org id=B53749.169461256210610
          (code B ref 53749); Wed, 13 Sep 2023 13:43:01 +0000
Received: (at 53749) by debbugs.gnu.org; 13 Sep 2023 13:42:42 +0000
Received: from localhost ([127.0.0.1]:32978 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1qgQ8f-0002l4-VP
	for submit <at> debbugs.gnu.org; Wed, 13 Sep 2023 09:42:42 -0400
Received: from mail-lj1-x229.google.com ([2a00:1450:4864:20::229]:60438)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <stefankangas@HIDDEN>) id 1qgQ8d-0002km-HT
 for 53749 <at> debbugs.gnu.org; Wed, 13 Sep 2023 09:42:40 -0400
Received: by mail-lj1-x229.google.com with SMTP id
 38308e7fff4ca-2bf5bf33bcdso110463521fa.0
 for <53749 <at> debbugs.gnu.org>; Wed, 13 Sep 2023 06:42:34 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=gmail.com; s=20221208; t=1694612548; x=1695217348; darn=debbugs.gnu.org;
 h=cc:to:subject:message-id:date:mime-version:references:in-reply-to
 :from:from:to:cc:subject:date:message-id:reply-to;
 bh=6A+q1biI6XUrHVQzoDWAB9bixQvt1GpoOSN4vYhJNQo=;
 b=DFc4ZBJz37MXLDlf36wP6v3zWMJ6pGNeaTAxULfJZ5DaqZR2vp+sOrbC7rp9hpxRY2
 mkOFAJZhD+4Gy1pAMjdt07Fgkyjk9M4vs6u0+j6cyG1MFYOlKNVZPknw44cjEs80u+H8
 gdwBWWcM87gIvtRou3sItsviLWnCVFzy6PyUKhDIvD8G8x7XLitoEUMXyifkpAB2S0/N
 GPmkmDsBjgGF2v95o/ofG/wfU8yVumVQcuXRCB1zLHJfAKTHQnuEXawTZaYGBUiFTQ2N
 r3a5mQMMOqB9E8IsnbcHFFNgL/Wv6VPy82itJRa2qJ8zJYU/HOvgayyfCKv7Bo6uaE5E
 CkwA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20230601; t=1694612548; x=1695217348;
 h=cc:to:subject:message-id:date:mime-version:references:in-reply-to
 :from:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
 bh=6A+q1biI6XUrHVQzoDWAB9bixQvt1GpoOSN4vYhJNQo=;
 b=RG/0GyvUeEidiitgzXq64aaeCEvMhvGCTXeNhQ1IQEgH3jdEBJb81zbhdPADL/Jv26
 Ao3DCFFAuAn3CFFqlSsEJGBB8X2wUVk+VakmhwWrmGZjufsCT/idPvZZAn1k+5PEQJcu
 4H2/baEWb4B9mSTYrYSvCm9bgfXBsppMPonkH5gr83iy1iwzKPieWKN+5hJvMquEVMex
 y0JnKNPgew158Uw9n1zQUeQThvzUzQmJHQCpyxIxW2J6f3AjlhhfJrCRDyHWXt4IR22m
 Lh8sm7uMGV2o/JojO9Hrdn4SsrDxq0ftDITJmiEiWIzn5l+e8hAv3oU/7NZmcL4uCpsg
 fm0A==
X-Gm-Message-State: AOJu0YweiRAEGNV8wXToOKpkL7ShnL5GBHEXDEkB7SOpWhjqwzwRU9zV
 dHjGESAKLKDPh2cg3BJIiyfmRZvuCqQuM/UdZ1U=
X-Google-Smtp-Source: AGHT+IHelf8r/Yz09F7qUDxm4og8CP6G4BxBv9NDwNUpvvSBPQWuBVHr4iBvCKjIF+L2UvYK5kontoowax9aFmiEgjI=
X-Received: by 2002:a2e:84ce:0:b0:2b9:4413:864e with SMTP id
 q14-20020a2e84ce000000b002b94413864emr2015608ljh.53.1694612547913; Wed, 13
 Sep 2023 06:42:27 -0700 (PDT)
Received: from 753933720722 named unknown by gmailapi.google.com with
 HTTPREST; Wed, 13 Sep 2023 06:42:27 -0700
From: Stefan Kangas <stefankangas@HIDDEN>
In-Reply-To: <CADF+RtgxigxvgG0j6bbpYnrrFVF4YTKZ1Rs0JSCc8zuu5JNA2w@HIDDEN>
References: <CADF+RtgWCLKQGwgdTNWmgesbcwq8iBxChoN8FqMOg95Ai3CYTA@HIDDEN>
 <1de34060-e93b-0a42-fff5-20e283abe0dc@HIDDEN> <87o7vq0zir.fsf@HIDDEN>
 <CADF+Rtjii7ZHkrfLzS63Yt1UiPPfnOrSsFZe2SMRetOS4w0vng@HIDDEN>
 <8735d20yvd.fsf@HIDDEN>
 <CADF+Rtgz5f6fcVuTLrv_N8oObRw+Uw-Je7bz54Gagb3pRgpR=g@HIDDEN>
 <CADwFkm=p8_Tbu+cXMDA8zEKovb+Ld7QFUJz_AhFnJebhik=JBg@HIDDEN>
 <CADF+RtjGfibN3Yg8mf4hVB9uPWtAwp0m6J2LRH7n0Z20S7+Yzg@HIDDEN>
 <CADwFkmkbMSXdjB6kF3a68_1vb4dv05_vMrKrvoX908nZJrpxOg@HIDDEN>
 <CADF+RtgxigxvgG0j6bbpYnrrFVF4YTKZ1Rs0JSCc8zuu5JNA2w@HIDDEN>
MIME-Version: 1.0
Date: Wed, 13 Sep 2023 06:42:27 -0700
Message-ID: <CADwFkmnjNFk0kvL0f+TRqe670qM3Nzxso2NRDzahb4O_K_zjrg@HIDDEN>
Content-Type: text/plain; charset="UTF-8"
X-Spam-Score: 0.0 (/)
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: -1.0 (-)

David Fussner <dfussner@HIDDEN> writes:

> P.S. I'm also starting the copyright assignment process, in case these
> changes prove acceptable.

That's great, thanks.




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#53749: 29.0.50; [PATCH] Xref backend for TeX buffers
Resent-From: Dmitry Gutov <dgutov@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Wed, 13 Sep 2023 15:24:01 +0000
Resent-Message-ID: <handler.53749.B53749.169461861321719 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 53749
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: pending patch
To: David Fussner <dfussner@HIDDEN>, Stefan Kangas <stefankangas@HIDDEN>
Cc: 53749 <at> debbugs.gnu.org, Lars Ingebrigtsen <larsi@HIDDEN>
Received: via spool by 53749-submit <at> debbugs.gnu.org id=B53749.169461861321719
          (code B ref 53749); Wed, 13 Sep 2023 15:24:01 +0000
Received: (at 53749) by debbugs.gnu.org; 13 Sep 2023 15:23:33 +0000
Received: from localhost ([127.0.0.1]:35668 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1qgRiG-0005eF-OO
	for submit <at> debbugs.gnu.org; Wed, 13 Sep 2023 11:23:33 -0400
Received: from forward501b.mail.yandex.net ([178.154.239.145]:38740)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <dgutov@HIDDEN>) id 1qgRiC-0005e2-P2
 for 53749 <at> debbugs.gnu.org; Wed, 13 Sep 2023 11:23:31 -0400
Received: from mail-nwsmtp-smtp-production-main-73.iva.yp-c.yandex.net
 (mail-nwsmtp-smtp-production-main-73.iva.yp-c.yandex.net
 [IPv6:2a02:6b8:c0c:7e9c:0:640:587e:0])
 by forward501b.mail.yandex.net (Yandex) with ESMTP id F35205E7A1;
 Wed, 13 Sep 2023 18:23:19 +0300 (MSK)
Received: by mail-nwsmtp-smtp-production-main-73.iva.yp-c.yandex.net
 (smtp/Yandex) with ESMTPSA id HNhdbhADgeA0-777hMwy4; 
 Wed, 13 Sep 2023 18:23:19 +0300
X-Yandex-Fwd: 1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex.ru; s=mail;
 t=1694618599; bh=cVIHCR+BFTKECr/K8OeXfbKGQSHWFHxDdg6SQkbdX1c=;
 h=In-Reply-To:From:Subject:Message-ID:Cc:References:Date:To;
 b=A24eHabsHoRQzHHr9RrmGDtaXBgn844gey8MYcT6iqJaI7cChkR85SGgvyBvdlIkz
 IE1QGRXqA4RHAtOwh/5nuSoLlc51BYjijE8lv4Sr06jZtPOM9m0zvOTXwnfPKS+meK
 YxoigluWTilrIdNwB5ecSKvLFypWLtxRrWb/1fZM=
Authentication-Results: mail-nwsmtp-smtp-production-main-73.iva.yp-c.yandex.net;
 dkim=pass header.i=@yandex.ru
Received: from compute3.internal (compute3.nyi.internal [10.202.2.43])
 by mailauth.nyi.internal (Postfix) with ESMTP id 514B127C0054;
 Wed, 13 Sep 2023 11:23:17 -0400 (EDT)
Received: from mailfrontend2 ([10.202.2.163])
 by compute3.internal (MEProxy); Wed, 13 Sep 2023 11:23:17 -0400
X-ME-Sender: <xms:5NMBZdOO8OzXXpe21GgBY-95QITotULgSBMauKYxlT8l6CTrZvuikA>
 <xme:5NMBZf99OO9AiNt6iv29jsJMBJwEZB5z52Uvn9KbcqUOv1a99LMsCuL72Nq82HPvL
 p02vp6JeLBQjup2pFA>
X-ME-Received: <xmr:5NMBZcQXtdwhj0G_ylfRjUhuOoYSAsKwh__NsxSmkMGR7M2QdrrbOxhTg4Pab3E>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedviedrudeikedgkeekucetufdoteggodetrfdotf
 fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen
 uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne
 cujfgurhepkfffgggfuffvvehfhfgjtgfgsehtjeertddtfeejnecuhfhrohhmpeffmhhi
 thhrhicuifhuthhovhcuoegughhuthhovheshigrnhguvgigrdhruheqnecuggftrfgrth
 htvghrnheptdffgeegkeelteevtdekleethfeftdduvdegkedtkedujefhfedtveeftdff
 udevnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepug
 hguhhtohhvodhmvghsmhhtphgruhhthhhpvghrshhonhgrlhhithihqddufeeffeelleeh
 hedvqddvleegjeejjeejiedqughguhhtohhvpeephigrnhguvgigrdhruhesfhgrshhtmh
 grihhlrdgtohhm
X-ME-Proxy: <xmx:5NMBZZuiCNIF55kBIi79IlQ1x-fNwK1Br2ojzNBCK9mB6cvIfoAU5w>
 <xmx:5NMBZVdC7LxTnM5YQbY8YBTzfKSEKq9zvmKKRZZGbEFiooXxaMKkwQ>
 <xmx:5NMBZV0FTc9xwDQoGyKXfj_6UiGbpxewHfre_2_pC8w-TY_4AkfJag>
 <xmx:5dMBZWqjBnQWioIwfmSJtuByy4l_9UDiV5GI5x-nVkm7Z6l5AuHCDg>
Feedback-ID: ib1d9465d:Fastmail
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Wed,
 13 Sep 2023 11:23:15 -0400 (EDT)
Message-ID: <fcbc07cf-5ee9-131f-1a18-9cc28a5655f1@HIDDEN>
Date: Wed, 13 Sep 2023 18:23:13 +0300
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101
 Thunderbird/102.13.0
Content-Language: en-US
References: <CADF+RtgWCLKQGwgdTNWmgesbcwq8iBxChoN8FqMOg95Ai3CYTA@HIDDEN>
 <1de34060-e93b-0a42-fff5-20e283abe0dc@HIDDEN> <87o7vq0zir.fsf@HIDDEN>
 <CADF+Rtjii7ZHkrfLzS63Yt1UiPPfnOrSsFZe2SMRetOS4w0vng@HIDDEN>
 <8735d20yvd.fsf@HIDDEN>
 <CADF+Rtgz5f6fcVuTLrv_N8oObRw+Uw-Je7bz54Gagb3pRgpR=g@HIDDEN>
 <CADwFkm=p8_Tbu+cXMDA8zEKovb+Ld7QFUJz_AhFnJebhik=JBg@HIDDEN>
 <CADF+RtjGfibN3Yg8mf4hVB9uPWtAwp0m6J2LRH7n0Z20S7+Yzg@HIDDEN>
 <CADwFkmkbMSXdjB6kF3a68_1vb4dv05_vMrKrvoX908nZJrpxOg@HIDDEN>
 <CADF+RtgxigxvgG0j6bbpYnrrFVF4YTKZ1Rs0JSCc8zuu5JNA2w@HIDDEN>
From: Dmitry Gutov <dgutov@HIDDEN>
In-Reply-To: <CADF+RtgxigxvgG0j6bbpYnrrFVF4YTKZ1Rs0JSCc8zuu5JNA2w@HIDDEN>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-Spam-Score: -1.5 (-)
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.5 (--)

Hi David!

Thanks for the new patch.

I'm skipping over the etags parser changes (others might comment, I'm 
just assuming they are good).

And "thing at point" code is, I think, at your discretion (if the result 
is useful, then that seems good). I would probably not call the function 
the same way given that we don't install this "thing" globally, just 
using it from several the major modes in a particular way. Anyway, that 
is a minor affair.

I'd like to suggest two simplifications for the xref-related stuff, if 
those work for you.

On 13/09/2023 14:10, David Fussner via Bug reports for GNU Emacs, the 
Swiss army knife of text editors wrote:

> <...> I also manipulate some
> variables buffer-locally to make things like project-find-regexp and
> isearch-forward-thing-at-point work better in such buffers.

These won't be affected either way, right? Because project-find-regexp 
defaults its input to (thing-at-point 'symbol t), and isearch... 
probably also uses "symbol" if you ask it to.

So... why not just make tex-thingatpt-include-escape a boolean? What 
commands need to be distinguished that way? I think 'find-tag' (it's 
obsolete but still used sometimes) would need to obey this var as well.

And the second thing: you're putting the symbol on major modes.

+(dolist (texmode tex-thingatpt-modes-list)
+  (put texmode 'find-tag-default-function 'tex--thing-at-point))

Why not set the variable find-tag-default-function instead? That seems 
easier and more appropriate to do inside a major mode function.

Thanks.




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#53749: 29.0.50; [PATCH] Xref backend for TeX buffers
Resent-From: David Fussner <dfussner@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Wed, 13 Sep 2023 17:03:02 +0000
Resent-Message-ID: <handler.53749.B53749.169462452820033 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 53749
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: pending patch
To: Dmitry Gutov <dgutov@HIDDEN>
Cc: 53749 <at> debbugs.gnu.org, Lars Ingebrigtsen <larsi@HIDDEN>, Stefan Kangas <stefankangas@HIDDEN>
Received: via spool by 53749-submit <at> debbugs.gnu.org id=B53749.169462452820033
          (code B ref 53749); Wed, 13 Sep 2023 17:03:02 +0000
Received: (at 53749) by debbugs.gnu.org; 13 Sep 2023 17:02:08 +0000
Received: from localhost ([127.0.0.1]:35863 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1qgTFg-0005D3-31
	for submit <at> debbugs.gnu.org; Wed, 13 Sep 2023 13:02:08 -0400
Received: from mail-pf1-x433.google.com ([2607:f8b0:4864:20::433]:56333)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <dfussner@HIDDEN>) id 1qgTFd-0005CW-Ks
 for 53749 <at> debbugs.gnu.org; Wed, 13 Sep 2023 13:02:06 -0400
Received: by mail-pf1-x433.google.com with SMTP id
 d2e1a72fcca58-68fb71ded6dso6477b3a.0
 for <53749 <at> debbugs.gnu.org>; Wed, 13 Sep 2023 10:02:00 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=googlemail.com; s=20221208; t=1694624514; x=1695229314; darn=debbugs.gnu.org;
 h=cc:to:subject:message-id:date:from:in-reply-to:references
 :mime-version:from:to:cc:subject:date:message-id:reply-to;
 bh=hDk2F0fJ+GrFtXH9IsSJtROEMzPFNMtxuCT68qWf0pk=;
 b=p9Hy+mFRMhChWFnTj680PFot+HmxWmFenqfxkpP3yyIrQQ87eeqlbzOSS6tgX5YFzr
 Zrkpq8u/i7vy7wl9XwOauxbs6IRvUEYhwVNP5i00cKkucCIdCElofsoJ+GsVkzuM4r7S
 q/SY4GN+BP5WZCjt/z/1QQqnmfWaY0JAJXRHKKXpjxOweSjFhBCticC6Ejzi+Q8h68vF
 ygAVD7ajt8ucMuuSyfzRRWmQMbt2Dt19sE0O2A9Ylw424euWEcdg14Tt6gExBwvi/K7l
 M13LoPuW0QyHpkaLR2AdaDJ7O5JEq0JJgP/295ayszdarkFHSRLbLgCI4AK3H5nXuTpD
 ZdvA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20230601; t=1694624514; x=1695229314;
 h=cc: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=hDk2F0fJ+GrFtXH9IsSJtROEMzPFNMtxuCT68qWf0pk=;
 b=nFOr3Jq/s1BceJAiL9cA3K0h4jRw0QcDvulshUuzM1cD9I+v5FaQa4WdAMnxR1zPXU
 BbEHBKl3qg2ASzMa6XrPGUn9tSm0LiIy3aXJUY4FovEZnTMxW3MRG8WZc9VIcTKrDAFM
 oFh6qkTUC2Rt42TyT2Tv+OChRkA9mglKsshYaNBl0SgHGuFLahClFjSEu0WiMTvFXric
 YXqFu8B38si3yEYBO7zitplya1Pl2PZDYwoVIOf2fED9/hZe6AwXw20IYj+4q1eUa2UK
 Tx5OrOb2fSAK6lYbFA/gsVcSSPfq4XaL7LCV8hDaeZtvx53z3H1YR8f8MRHKwo9+KF17
 s8OQ==
X-Gm-Message-State: AOJu0YyWmigPf21Tqzw5Z7EohbHmtCYbKVwJpE4NQ4SGnsBKX8Gbfwg3
 93U894VALqDQvHjIOZcbCS5Fvin4/4g2UTRa4m4=
X-Google-Smtp-Source: AGHT+IFKuE3BvDA2TSXne898q+tyPJoZ4AmYsrx/wjBdxL8c5zf/m4POPx72JiUklw/avLbJwOf6Ji+IWzMk8YuBc68=
X-Received: by 2002:a05:6a21:99a2:b0:154:e054:d0d1 with SMTP id
 ve34-20020a056a2199a200b00154e054d0d1mr3422699pzb.55.1694624514105; Wed, 13
 Sep 2023 10:01:54 -0700 (PDT)
MIME-Version: 1.0
References: <CADF+RtgWCLKQGwgdTNWmgesbcwq8iBxChoN8FqMOg95Ai3CYTA@HIDDEN>
 <1de34060-e93b-0a42-fff5-20e283abe0dc@HIDDEN> <87o7vq0zir.fsf@HIDDEN>
 <CADF+Rtjii7ZHkrfLzS63Yt1UiPPfnOrSsFZe2SMRetOS4w0vng@HIDDEN>
 <8735d20yvd.fsf@HIDDEN>
 <CADF+Rtgz5f6fcVuTLrv_N8oObRw+Uw-Je7bz54Gagb3pRgpR=g@HIDDEN>
 <CADwFkm=p8_Tbu+cXMDA8zEKovb+Ld7QFUJz_AhFnJebhik=JBg@HIDDEN>
 <CADF+RtjGfibN3Yg8mf4hVB9uPWtAwp0m6J2LRH7n0Z20S7+Yzg@HIDDEN>
 <CADwFkmkbMSXdjB6kF3a68_1vb4dv05_vMrKrvoX908nZJrpxOg@HIDDEN>
 <CADF+RtgxigxvgG0j6bbpYnrrFVF4YTKZ1Rs0JSCc8zuu5JNA2w@HIDDEN>
 <fcbc07cf-5ee9-131f-1a18-9cc28a5655f1@HIDDEN>
In-Reply-To: <fcbc07cf-5ee9-131f-1a18-9cc28a5655f1@HIDDEN>
From: David Fussner <dfussner@HIDDEN>
Date: Wed, 13 Sep 2023 18:01:41 +0100
Message-ID: <CADF+Rti2gSVvfksUVO04ptKQsXrNpwUXHQ_qFjC26D8NNh578A@HIDDEN>
Content-Type: text/plain; charset="UTF-8"
X-Spam-Score: 0.0 (/)
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: -1.0 (-)

Hi Dmitry,

Thanks for the feedback!

> These won't be affected either way, right? Because project-find-regexp
> defaults its input to (thing-at-point 'symbol t), and isearch...
> probably also uses "symbol" if you ask it to.
>
> So... why not just make tex-thingatpt-include-escape a boolean? What
> commands need to be distinguished that way? I think 'find-tag' (it's
> obsolete but still used sometimes) would need to obey this var as well.

xref-find-apropos and xref-find-references don't work well (or at all)
with the escape char included in the search string, so I was keeping
that char away from them. (The buffer-local variables I manipulate for
project-find-regexp and isearch-forward-thing-at-point have to do with
ensuring they use the texsymbol thing in the first place -- see
tex--symbol-or-texsymbol.) Does that make sense?

I'll look at find-tag, too; thanks for pointing that out.

> Why not set the variable find-tag-default-function instead? That seems
> easier and more appropriate to do inside a major mode function.

I settled on putting the symbol on the modes because I thought it was
simpler than setting the variable buffer-locally in all the in-tree
and AUCTeX modes, but I'll revisit this and see whether I can come up
with something better.

Thanks again.

On Wed, 13 Sept 2023 at 16:23, Dmitry Gutov <dgutov@HIDDEN> wrote:
>
> Hi David!
>
> Thanks for the new patch.
>
> I'm skipping over the etags parser changes (others might comment, I'm
> just assuming they are good).
>
> And "thing at point" code is, I think, at your discretion (if the result
> is useful, then that seems good). I would probably not call the function
> the same way given that we don't install this "thing" globally, just
> using it from several the major modes in a particular way. Anyway, that
> is a minor affair.
>
> I'd like to suggest two simplifications for the xref-related stuff, if
> those work for you.r along the lines of your
>
> On 13/09/2023 14:10, David Fussner via Bug reports for GNU Emacs, the
> Swiss army knife of text editors wrote:
>
> > <...> I also manipulate some
> > variables buffer-locally to make things like project-find-regexp and
> > isearch-forward-thing-at-point work better in such buffers.
>
> These won't be affected either way, right? Because project-find-regexp
> defaults its input to (thing-at-point 'symbol t), and isearch...
> probably also uses "symbol" if you ask it to.
>
> So... why not just make tex-thingatpt-include-escape a boolean? What
> commands need to be distinguished that way? I think 'find-tag' (it's
> obsolete but still used sometimes) would need to obey this var as well.
>
> And the second thing: you're putting the symbol on major modes.
>
> +(dolist (texmode tex-thingatpt-modes-list)
> +  (put texmode 'find-tag-default-function 'tex--thing-at-point))
>
> Why not set the variable find-tag-default-function instead? That seems
> easier and more appropriate to do inside a major mode function.r along the lines of your
>
> Thanks.




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#53749: 29.0.50; [PATCH] Xref backend for TeX buffers
Resent-From: Eli Zaretskii <eliz@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Wed, 13 Sep 2023 19:17:02 +0000
Resent-Message-ID: <handler.53749.B53749.169463260921228 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 53749
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: pending patch
To: Dmitry Gutov <dgutov@HIDDEN>
Cc: 53749 <at> debbugs.gnu.org, larsi@HIDDEN, stefankangas@HIDDEN, dfussner@HIDDEN
Received: via spool by 53749-submit <at> debbugs.gnu.org id=B53749.169463260921228
          (code B ref 53749); Wed, 13 Sep 2023 19:17:02 +0000
Received: (at 53749) by debbugs.gnu.org; 13 Sep 2023 19:16:49 +0000
Received: from localhost ([127.0.0.1]:36060 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1qgVM0-0005WK-Pv
	for submit <at> debbugs.gnu.org; Wed, 13 Sep 2023 15:16:49 -0400
Received: from eggs.gnu.org ([2001:470:142:3::10]:54532)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <eliz@HIDDEN>) id 1qgVLy-0005W6-Ju
 for 53749 <at> debbugs.gnu.org; Wed, 13 Sep 2023 15:16:47 -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 1qgVLm-0000mt-Kb; Wed, 13 Sep 2023 15:16:34 -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=aTDFV6Z0gY4vhgOrL0CX4ksEW8OBLA/mMSd3eOjR0Vs=; b=lVgnJ8rg6/3h
 x5JKOsCzKHcWll1C84F+Sge3Ir3hYzhuDDsb2u5YlVGAcOhifJ2Ttq9upWaZ5r00vbt9+pylqoVrP
 VnWWND8fMa5jxg9qh/kZwIACNTS3Ne8G0uDNHRFjTDxFedV6Fu1S367FJCXsboDOAOCg2uIa/va0/
 /iYEf8XYqKLlsjn8WN4bxgsXsMh5Gn4RBMHJT/cy3n1XeuT3xKb+uHYSFcNeER8pqtyEf/HD+ivh2
 8szRqtCc5/5p7U1Higz74fi9dCy50le+Tvo8O794hS6wHSYBz9imuRToJ1uBbFz2xESJ8ijH3mqmt
 F5Z8FxSZB9k/8yIbxUCCIQ==;
Date: Wed, 13 Sep 2023 22:16:21 +0300
Message-Id: <83jzstnat6.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
In-Reply-To: <fcbc07cf-5ee9-131f-1a18-9cc28a5655f1@HIDDEN> (message from
 Dmitry Gutov on Wed, 13 Sep 2023 18:23:13 +0300)
References: <CADF+RtgWCLKQGwgdTNWmgesbcwq8iBxChoN8FqMOg95Ai3CYTA@HIDDEN>
 <1de34060-e93b-0a42-fff5-20e283abe0dc@HIDDEN> <87o7vq0zir.fsf@HIDDEN>
 <CADF+Rtjii7ZHkrfLzS63Yt1UiPPfnOrSsFZe2SMRetOS4w0vng@HIDDEN>
 <8735d20yvd.fsf@HIDDEN>
 <CADF+Rtgz5f6fcVuTLrv_N8oObRw+Uw-Je7bz54Gagb3pRgpR=g@HIDDEN>
 <CADwFkm=p8_Tbu+cXMDA8zEKovb+Ld7QFUJz_AhFnJebhik=JBg@HIDDEN>
 <CADF+RtjGfibN3Yg8mf4hVB9uPWtAwp0m6J2LRH7n0Z20S7+Yzg@HIDDEN>
 <CADwFkmkbMSXdjB6kF3a68_1vb4dv05_vMrKrvoX908nZJrpxOg@HIDDEN>
 <CADF+RtgxigxvgG0j6bbpYnrrFVF4YTKZ1Rs0JSCc8zuu5JNA2w@HIDDEN>
 <fcbc07cf-5ee9-131f-1a18-9cc28a5655f1@HIDDEN>
X-Spam-Score: -2.3 (--)
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 (---)

> Cc: 53749 <at> debbugs.gnu.org, Lars Ingebrigtsen <larsi@HIDDEN>
> Date: Wed, 13 Sep 2023 18:23:13 +0300
> From: Dmitry Gutov <dgutov@HIDDEN>
> 
> I'm skipping over the etags parser changes (others might comment, I'm 
> just assuming they are good).

They look OK to me at first glance, but we need to make sure the etags
tests still succeed after this change, and the new option should be
documented in the man page.  Bonus points for adding to the etags test
suite a test where this option is activated.




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#53749: 29.0.50; [PATCH] Xref backend for TeX buffers
Resent-From: David Fussner <dfussner@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Wed, 13 Sep 2023 20:26:02 +0000
Resent-Message-ID: <handler.53749.B53749.169463675528156 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 53749
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: pending patch
To: Eli Zaretskii <eliz@HIDDEN>
Cc: 53749 <at> debbugs.gnu.org, Lars Ingebrigtsen <larsi@HIDDEN>, Stefan Kangas <stefankangas@HIDDEN>, Dmitry Gutov <dgutov@HIDDEN>
Received: via spool by 53749-submit <at> debbugs.gnu.org id=B53749.169463675528156
          (code B ref 53749); Wed, 13 Sep 2023 20:26:02 +0000
Received: (at 53749) by debbugs.gnu.org; 13 Sep 2023 20:25:55 +0000
Received: from localhost ([127.0.0.1]:36162 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1qgWQt-0007K4-9n
	for submit <at> debbugs.gnu.org; Wed, 13 Sep 2023 16:25:55 -0400
Received: from mail-pj1-x1029.google.com ([2607:f8b0:4864:20::1029]:61529)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <dfussner@HIDDEN>) id 1qgWQp-0007Jn-ND
 for 53749 <at> debbugs.gnu.org; Wed, 13 Sep 2023 16:25:54 -0400
Received: by mail-pj1-x1029.google.com with SMTP id
 98e67ed59e1d1-273fa877befso171630a91.2
 for <53749 <at> debbugs.gnu.org>; Wed, 13 Sep 2023 13:25:46 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=googlemail.com; s=20221208; t=1694636740; x=1695241540; darn=debbugs.gnu.org;
 h=cc:to:subject:message-id:date:from:in-reply-to:references
 :mime-version:from:to:cc:subject:date:message-id:reply-to;
 bh=41QkY8Udl3BCpt6H7ulsqf4IpbMQRuTa8DSn6la7J6A=;
 b=aKdEUOgPcFsq47pyMOe5KNj4XJHTj0/LgEo3+nAlsPe4DF9mtbWQ6BuXGcCoo4MxNc
 9CkPXBMzaHQcoxRsyMSEU6yXAT/ENGQP4Z7I69C1z23yEsx32yT0qpLrQGfD/GJsdbkX
 2D0gOktxRAO2FJsmtpANmUVpz/Y5FVhGPwzDnuYtz3qRT7RXsFa6ouinSMRATTwY0iZP
 033Wrv5wB7RmgxUtqB8od+NqmNFAwrWBdQD+6LUN0GsQvT5T6JRTbE6uhoTs7LYV7Tnr
 LPsNt+bBkKNqzpYfamX+d6geiLMrHIqjk0uzEIGUs1BL7Uv+XbCmRH4mEyswQB6PIxFH
 v0uw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20230601; t=1694636740; x=1695241540;
 h=cc: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=41QkY8Udl3BCpt6H7ulsqf4IpbMQRuTa8DSn6la7J6A=;
 b=sADfoHxQwthfYwyEfXUUZytMIihXb/llCynBddLeEY9M8bljx8SZzSHWG7emLAejez
 pmtVj9u1GS1y5yDBgEnyWZ3Nojb69wjH3RNIDYoUAb/StVM8fhPmSacilq4YLOSs+mbJ
 m5ijiOA2L/bbMg2P4QzHzglw/QPgM74v2pDyd5g8x6z1LljELwy5H+31Z7eZjWW3sSXG
 SGtir6anfEuGeZpVFl3yk5pwlRyWTMqev6dVr7ByjlTOMHqSue6GU/AK8I/Y9z0pNLYt
 FpO4usk2Kx3b1DMY6/nG1okibSp/EyF4qPJXOrNduGEYo+YVAviNYPhxpvHRM0R5OMYM
 01yg==
X-Gm-Message-State: AOJu0YxwUQHPgz7xBSiuvp0yXnRx+GlM0ikjHe64VflqxzM0ymIeJceh
 E9F1BjEQA1u0jAsFEoYlbqqrbhmdoMbcJOFQRNc=
X-Google-Smtp-Source: AGHT+IFDNMFwmBzMwCSnhm+/q3otJV84L20ejZz6RPMW9NvMk3QRUzIPXPYPcpK/rrIpZIF9/VRmZ+Y2fJFrNPiRTKI=
X-Received: by 2002:a17:90a:7806:b0:263:f7ce:335e with SMTP id
 w6-20020a17090a780600b00263f7ce335emr3377696pjk.43.1694636740318; Wed, 13 Sep
 2023 13:25:40 -0700 (PDT)
MIME-Version: 1.0
References: <CADF+RtgWCLKQGwgdTNWmgesbcwq8iBxChoN8FqMOg95Ai3CYTA@HIDDEN>
 <1de34060-e93b-0a42-fff5-20e283abe0dc@HIDDEN> <87o7vq0zir.fsf@HIDDEN>
 <CADF+Rtjii7ZHkrfLzS63Yt1UiPPfnOrSsFZe2SMRetOS4w0vng@HIDDEN>
 <8735d20yvd.fsf@HIDDEN>
 <CADF+Rtgz5f6fcVuTLrv_N8oObRw+Uw-Je7bz54Gagb3pRgpR=g@HIDDEN>
 <CADwFkm=p8_Tbu+cXMDA8zEKovb+Ld7QFUJz_AhFnJebhik=JBg@HIDDEN>
 <CADF+RtjGfibN3Yg8mf4hVB9uPWtAwp0m6J2LRH7n0Z20S7+Yzg@HIDDEN>
 <CADwFkmkbMSXdjB6kF3a68_1vb4dv05_vMrKrvoX908nZJrpxOg@HIDDEN>
 <CADF+RtgxigxvgG0j6bbpYnrrFVF4YTKZ1Rs0JSCc8zuu5JNA2w@HIDDEN>
 <fcbc07cf-5ee9-131f-1a18-9cc28a5655f1@HIDDEN> <83jzstnat6.fsf@HIDDEN>
In-Reply-To: <83jzstnat6.fsf@HIDDEN>
From: David Fussner <dfussner@HIDDEN>
Date: Wed, 13 Sep 2023 21:25:28 +0100
Message-ID: <CADF+RtiS=c4n20YvEv8wDsmNAaYyy1d_BdKB6U=04V6Dja+S0A@HIDDEN>
Content-Type: multipart/alternative; boundary="000000000000ee1e3e0605435cc4"
X-Spam-Score: 0.0 (/)
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: -1.0 (-)

--000000000000ee1e3e0605435cc4
Content-Type: text/plain; charset="UTF-8"

Thanks Eli.

I'll have a look at the man page, and also at an additional test for the
suite. I did run the test suite, and all the diffs were where they should
be; I can send a patch that I have if you'd like, but if I'm going to add
tests maybe you'd prefer to wait?

On Wed, 13 Sept 2023, 20:16 Eli Zaretskii, <eliz@HIDDEN> wrote:

> > Cc: 53749 <at> debbugs.gnu.org, Lars Ingebrigtsen <larsi@HIDDEN>
> > Date: Wed, 13 Sep 2023 18:23:13 +0300
> > From: Dmitry Gutov <dgutov@HIDDEN>
> >
> > I'm skipping over the etags parser changes (others might comment, I'm
> > just assuming they are good).
>
> They look OK to me at first glance, but we need to make sure the etags
> tests still succeed after this change, and the new option should be
> documented in the man page.  Bonus points for adding to the etags test
> suite a test where this option is activated.
>

--000000000000ee1e3e0605435cc4
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"auto">Thanks Eli.<div dir=3D"auto"><br></div><div dir=3D"auto">=
I&#39;ll have a look at the man page, and also at an additional test for th=
e suite. I did run the test suite, and all the diffs were where they should=
 be; I can send a patch that I have if=C2=A0you&#39;d like, but if I&#39;m =
going to add tests maybe you&#39;d prefer to wait?</div></div><br><div clas=
s=3D"gmail_quote"><div dir=3D"ltr" class=3D"gmail_attr">On Wed, 13 Sept 202=
3, 20:16 Eli Zaretskii, &lt;<a href=3D"mailto:eliz@HIDDEN">eliz@HIDDEN</a=
>&gt; wrote:<br></div><blockquote class=3D"gmail_quote" style=3D"margin:0 0=
 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">&gt; Cc: <a href=3D"ma=
ilto:53749 <at> debbugs.gnu.org" target=3D"_blank" rel=3D"noreferrer">53749@debb=
ugs.gnu.org</a>, Lars Ingebrigtsen &lt;<a href=3D"mailto:larsi@HIDDEN" ta=
rget=3D"_blank" rel=3D"noreferrer">larsi@HIDDEN</a>&gt;<br>
&gt; Date: Wed, 13 Sep 2023 18:23:13 +0300<br>
&gt; From: Dmitry Gutov &lt;<a href=3D"mailto:dgutov@HIDDEN" target=3D"_=
blank" rel=3D"noreferrer">dgutov@HIDDEN</a>&gt;<br>
&gt; <br>
&gt; I&#39;m skipping over the etags parser changes (others might comment, =
I&#39;m <br>
&gt; just assuming they are good).<br>
<br>
They look OK to me at first glance, but we need to make sure the etags<br>
tests still succeed after this change, and the new option should be<br>
documented in the man page.=C2=A0 Bonus points for adding to the etags test=
<br>
suite a test where this option is activated.<br>
</blockquote></div>

--000000000000ee1e3e0605435cc4--




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#53749: 29.0.50; [PATCH] Xref backend for TeX buffers
Resent-From: Dmitry Gutov <dgutov@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Thu, 14 Sep 2023 00:00:02 +0000
Resent-Message-ID: <handler.53749.B53749.16946495934715 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 53749
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: pending patch
To: David Fussner <dfussner@HIDDEN>
Cc: 53749 <at> debbugs.gnu.org, Lars Ingebrigtsen <larsi@HIDDEN>, Stefan Kangas <stefankangas@HIDDEN>
Received: via spool by 53749-submit <at> debbugs.gnu.org id=B53749.16946495934715
          (code B ref 53749); Thu, 14 Sep 2023 00:00:02 +0000
Received: (at 53749) by debbugs.gnu.org; 13 Sep 2023 23:59:53 +0000
Received: from localhost ([127.0.0.1]:36332 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1qgZlx-0001Dy-39
	for submit <at> debbugs.gnu.org; Wed, 13 Sep 2023 19:59:53 -0400
Received: from forward500a.mail.yandex.net ([178.154.239.80]:54266)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <dgutov@HIDDEN>) id 1qgZlu-0001Do-0T
 for 53749 <at> debbugs.gnu.org; Wed, 13 Sep 2023 19:59:52 -0400
Received: from mail-nwsmtp-smtp-production-main-64.vla.yp-c.yandex.net
 (mail-nwsmtp-smtp-production-main-64.vla.yp-c.yandex.net
 [IPv6:2a02:6b8:c0f:170e:0:640:d60c:0])
 by forward500a.mail.yandex.net (Yandex) with ESMTP id E35035EF86;
 Thu, 14 Sep 2023 02:59:41 +0300 (MSK)
Received: by mail-nwsmtp-smtp-production-main-64.vla.yp-c.yandex.net
 (smtp/Yandex) with ESMTPSA id dxpbg7HDSGk0-MlxyMtim; 
 Thu, 14 Sep 2023 02:59:41 +0300
X-Yandex-Fwd: 1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex.ru; s=mail;
 t=1694649581; bh=9s8lVceYnE3mxSr+P4DSmF7RV3st3l5iYSjJOgeOPIY=;
 h=In-Reply-To:From:Subject:Message-ID:Cc:References:Date:To;
 b=fgkTGqiM1vRdLugEeFiq1vMkijoryZkr1PRRYbD5FUOgjMjeMvWB3hhnp90LH8ztb
 ke/PIGaPOFMMuDJW4zp9Vwbg+/OvTBQFN3Nbk13Hg78yr3wjteQv5paN4A/yI1P2qZ
 B7X/ZpkLJgb6dlxKUx1iPDp7A1LzqYJah9ZWZzfE=
Authentication-Results: mail-nwsmtp-smtp-production-main-64.vla.yp-c.yandex.net;
 dkim=pass header.i=@yandex.ru
Received: from compute3.internal (compute3.nyi.internal [10.202.2.43])
 by mailauth.nyi.internal (Postfix) with ESMTP id 3C30027C0060;
 Wed, 13 Sep 2023 19:59:39 -0400 (EDT)
Received: from mailfrontend2 ([10.202.2.163])
 by compute3.internal (MEProxy); Wed, 13 Sep 2023 19:59:39 -0400
X-ME-Sender: <xms:6kwCZZV3wzmmwhemLo2ecEZcEnO5iWvHWKWiHdoRyHMubJPrTTQkdg>
 <xme:6kwCZZnk-_AIsUnoZnZgK_na4uxzPwoZJLtR2AcgTFMKWWViU8pSSAJ9PQ7LZAnha
 kyiXvAHXG5F4xB9Lkg>
X-ME-Received: <xmr:6kwCZVYjDk1GhCuTHdORHP24lNB939ZCyTDtHoQfAzEXuOfJOhmDOfTjOfVY5w8>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedviedrudeiledgvdekucetufdoteggodetrfdotf
 fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen
 uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne
 cujfgurhepkfffgggfuffvvehfhfgjtgfgsehtjeertddtfeejnecuhfhrohhmpeffmhhi
 thhrhicuifhuthhovhcuoegughhuthhovheshigrnhguvgigrdhruheqnecuggftrfgrth
 htvghrnheptdffgeegkeelteevtdekleethfeftdduvdegkedtkedujefhfedtveeftdff
 udevnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepug
 hguhhtohhvodhmvghsmhhtphgruhhthhhpvghrshhonhgrlhhithihqddufeeffeelleeh
 hedvqddvleegjeejjeejiedqughguhhtohhvpeephigrnhguvgigrdhruhesfhgrshhtmh
 grihhlrdgtohhm
X-ME-Proxy: <xmx:6kwCZcW77-4IRhO7LD68T8QAIOLEH37VFAB18ohFYuurUp46XqqMfQ>
 <xmx:6kwCZTm1pUpal5xtS_tsP2MXBZU65dB9I_hDyrEAAu44GdSF5EbtoA>
 <xmx:6kwCZZf70ah3YfnOAK7USqavjLbjQ9gAshEewmiK1t4jdF_kKcppDw>
 <xmx:60wCZYzQ8t9rh7AUdrGQ-pAcSZtrQFCjHQ807c_xXezuoxLCtD4Xgg>
Feedback-ID: ib1d9465d:Fastmail
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Wed,
 13 Sep 2023 19:59:37 -0400 (EDT)
Message-ID: <2c5c8afa-b57e-3156-d21c-5523cacb4d87@HIDDEN>
Date: Thu, 14 Sep 2023 02:59:33 +0300
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101
 Thunderbird/102.13.0
Content-Language: en-US
References: <CADF+RtgWCLKQGwgdTNWmgesbcwq8iBxChoN8FqMOg95Ai3CYTA@HIDDEN>
 <1de34060-e93b-0a42-fff5-20e283abe0dc@HIDDEN> <87o7vq0zir.fsf@HIDDEN>
 <CADF+Rtjii7ZHkrfLzS63Yt1UiPPfnOrSsFZe2SMRetOS4w0vng@HIDDEN>
 <8735d20yvd.fsf@HIDDEN>
 <CADF+Rtgz5f6fcVuTLrv_N8oObRw+Uw-Je7bz54Gagb3pRgpR=g@HIDDEN>
 <CADwFkm=p8_Tbu+cXMDA8zEKovb+Ld7QFUJz_AhFnJebhik=JBg@HIDDEN>
 <CADF+RtjGfibN3Yg8mf4hVB9uPWtAwp0m6J2LRH7n0Z20S7+Yzg@HIDDEN>
 <CADwFkmkbMSXdjB6kF3a68_1vb4dv05_vMrKrvoX908nZJrpxOg@HIDDEN>
 <CADF+RtgxigxvgG0j6bbpYnrrFVF4YTKZ1Rs0JSCc8zuu5JNA2w@HIDDEN>
 <fcbc07cf-5ee9-131f-1a18-9cc28a5655f1@HIDDEN>
 <CADF+Rti2gSVvfksUVO04ptKQsXrNpwUXHQ_qFjC26D8NNh578A@HIDDEN>
From: Dmitry Gutov <dgutov@HIDDEN>
In-Reply-To: <CADF+Rti2gSVvfksUVO04ptKQsXrNpwUXHQ_qFjC26D8NNh578A@HIDDEN>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-Spam-Score: -1.5 (-)
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.5 (--)

On 13/09/2023 20:01, David Fussner via Bug reports for GNU Emacs, the 
Swiss army knife of text editors wrote:

>> These won't be affected either way, right? Because project-find-regexp
>> defaults its input to (thing-at-point 'symbol t), and isearch...
>> probably also uses "symbol" if you ask it to.
>>
>> So... why not just make tex-thingatpt-include-escape a boolean? What
>> commands need to be distinguished that way? I think 'find-tag' (it's
>> obsolete but still used sometimes) would need to obey this var as well.
> 
> xref-find-apropos and xref-find-references don't work well (or at all)
> with the escape char included in the search string, so I was keeping
> that char away from them. (The buffer-local variables I manipulate for
> project-find-regexp and isearch-forward-thing-at-point have to do with
> ensuring they use the texsymbol thing in the first place -- see
> tex--symbol-or-texsymbol.) Does that make sense?

Hmm, I suppose I skipped over that part of the patch too quickly.

Here's a potential problem with replacing the notion of "symbol": some 
other existing code (also working with TeX/LaTeX) might disagree, as it 
might have some existing notion of what a "symbol" in those modes is (as 
defined by the syntax table).

In general, we change the notion of a symbol by either changing the 
mode's syntax table, or by augmenting its effect using 
syntax-propertize-function (which, for example, could propertize the 
backslashes inside the buffer as "symbol constituent"). The latter might 
actually be a change that would affect how 'M-x xref-find-references' 
works (it will likely start to consider those \tags as symbol 
occurrences together with the backslash). But like other changes of what 
is considered to be a "symbol" in a major mode, it could conflict with 
existing code.

Anyway, I'm not saying you have to change the approach, but that's 
something to be aware of.

And to look at it from another direction: if the default implementation 
of xref-find-references (and etags uses the very generic one) doesn't 
work for you, perhaps it would be worth it to define a TeX-specific Xref 
backend. That would perhaps take 20-30 lines of code total, most of them 
delegating to the etags backend, or the default impl. But while 
delegating, you can modify the passed argument - e.g. if it included a 
backslash, you could forward it to the default impl for "find 
references" without a backslash. Or - alternatively - call 
(project-find-regexp "...") with a more complex regexp of your choice. 
The first alternative could look like this:

   (cl-defmethod xref-backend-references ((_backend (eql 'tex-etags)) 
identifier)
     (xref-backend-references 'etags (string-remove-prefix "\\" 
identifier)))

> I'll look at find-tag, too; thanks for pointing that out.

Doing the above choice on the level of Xref backend's methods 
would/should automatically make it work for all commands appropriately.

>> Why not set the variable find-tag-default-function instead? That seems
>> easier and more appropriate to do inside a major mode function.
> 
> I settled on putting the symbol on the modes because I thought it was
> simpler than setting the variable buffer-locally in all the in-tree
> and AUCTeX modes, but I'll revisit this and see whether I can come up
> with something better.

Do AUCTeX modes inherit from tex-mode? Or all call 
tex-common-initialization? Then you could set that variable locally 
inside that function once.

All in all, it might not be wise to modify the behavior of third-party 
packages from inside Emacs this way (they might have other expectations, 
or there's going to appear a new major mode that needs the same 
treatment anyway).

Setting a variable to be used through mode inheritance or delegation is 
fine, but if that doesn't help, I would probably stop at defining a 
helper function or two and documenting how it should be used. And then 
maybe work with AUCTeX people to get the remaining necessary changes in 
from their side (or just leaving that up to the user, depending on how 
functional the default config ends up being).




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#53749: 29.0.50; [PATCH] Xref backend for TeX buffers
Resent-From: Eli Zaretskii <eliz@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Thu, 14 Sep 2023 05:15:01 +0000
Resent-Message-ID: <handler.53749.B53749.16946684853678 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 53749
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: pending patch
To: David Fussner <dfussner@HIDDEN>
Cc: 53749 <at> debbugs.gnu.org, larsi@HIDDEN, stefankangas@HIDDEN, dgutov@HIDDEN
Received: via spool by 53749-submit <at> debbugs.gnu.org id=B53749.16946684853678
          (code B ref 53749); Thu, 14 Sep 2023 05:15:01 +0000
Received: (at 53749) by debbugs.gnu.org; 14 Sep 2023 05:14:45 +0000
Received: from localhost ([127.0.0.1]:36507 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1qgegf-0000xF-Ep
	for submit <at> debbugs.gnu.org; Thu, 14 Sep 2023 01:14:45 -0400
Received: from eggs.gnu.org ([2001:470:142:3::10]:34742)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <eliz@HIDDEN>) id 1qgegc-0000x3-UI
 for 53749 <at> debbugs.gnu.org; Thu, 14 Sep 2023 01:14:44 -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 1qgegR-0001g7-Gk; Thu, 14 Sep 2023 01:14:31 -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=v47V7zflxV3qhXbcqVKxt6HE1cDmbLU9qUsGi/qyKIU=; b=R5CSaPYJbuzT
 w8bixkCHnZAdKotsT4tLq86C/Wi5bGApTgQdE02Ic3R12lIMFKNgLawgmwwTOnzswfNKPy1QQIySZ
 /M3eA1Mnh5OYkDoiZ2UmoPQFKs4/W+uSMwRcWfXytXiR/OgdrpgC5Uu1P3A/5sUI+u8229W6nOABh
 EZdhLCOQcGVfPtBdW6BozyE5qGmuCadKrMSHDrGrC47DCUg95MzemBJ41vKJ2nytU+j/1lPFDqtUc
 QfDUP4XKTAhrKWzlQsNBjoHBx67E/Hq4tA7tqGWbvCmmNdpgGBuVVFdmWxMApWYXVQFEuj7CIoxTJ
 VtZwOen8cEFh2bdrtfyq9A==;
Date: Thu, 14 Sep 2023 08:14:21 +0300
Message-Id: <83cyylmj4i.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
In-Reply-To: <CADF+RtiS=c4n20YvEv8wDsmNAaYyy1d_BdKB6U=04V6Dja+S0A@HIDDEN>
 (message from David Fussner on Wed, 13 Sep 2023 21:25:28 +0100)
References: <CADF+RtgWCLKQGwgdTNWmgesbcwq8iBxChoN8FqMOg95Ai3CYTA@HIDDEN>
 <1de34060-e93b-0a42-fff5-20e283abe0dc@HIDDEN> <87o7vq0zir.fsf@HIDDEN>
 <CADF+Rtjii7ZHkrfLzS63Yt1UiPPfnOrSsFZe2SMRetOS4w0vng@HIDDEN>
 <8735d20yvd.fsf@HIDDEN>
 <CADF+Rtgz5f6fcVuTLrv_N8oObRw+Uw-Je7bz54Gagb3pRgpR=g@HIDDEN>
 <CADwFkm=p8_Tbu+cXMDA8zEKovb+Ld7QFUJz_AhFnJebhik=JBg@HIDDEN>
 <CADF+RtjGfibN3Yg8mf4hVB9uPWtAwp0m6J2LRH7n0Z20S7+Yzg@HIDDEN>
 <CADwFkmkbMSXdjB6kF3a68_1vb4dv05_vMrKrvoX908nZJrpxOg@HIDDEN>
 <CADF+RtgxigxvgG0j6bbpYnrrFVF4YTKZ1Rs0JSCc8zuu5JNA2w@HIDDEN>
 <fcbc07cf-5ee9-131f-1a18-9cc28a5655f1@HIDDEN> <83jzstnat6.fsf@HIDDEN>
 <CADF+RtiS=c4n20YvEv8wDsmNAaYyy1d_BdKB6U=04V6Dja+S0A@HIDDEN>
X-Spam-Score: -2.3 (--)
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 (---)

> From: David Fussner <dfussner@HIDDEN>
> Date: Wed, 13 Sep 2023 21:25:28 +0100
> Cc: Dmitry Gutov <dgutov@HIDDEN>, Stefan Kangas <stefankangas@HIDDEN>, 53749 <at> debbugs.gnu.org, 
> 	Lars Ingebrigtsen <larsi@HIDDEN>
> 
> I'll have a look at the man page, and also at an additional test for the suite. I did run the test suite, and
> all the diffs were where they should be; I can send a patch that I have if you'd like, but if I'm going to
> add tests maybe you'd prefer to wait?

Sure, we will wait.  There's no rush.  Let's have a complete patch
that covers all the aspects of this, and install it in one go.
Meanwhile you will also have time to work on the other review
comments.

Thanks.




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#53749: 29.0.50; [PATCH] Xref backend for TeX buffers
Resent-From: Eli Zaretskii <eliz@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Thu, 14 Sep 2023 06:11:01 +0000
Resent-Message-ID: <handler.53749.B53749.169467183519614 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 53749
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: pending patch
To: Dmitry Gutov <dgutov@HIDDEN>, Stefan Monnier <monnier@HIDDEN>, Tassilo Horn <tsdh@HIDDEN>
Cc: 53749 <at> debbugs.gnu.org, larsi@HIDDEN, stefankangas@HIDDEN, dfussner@HIDDEN
Received: via spool by 53749-submit <at> debbugs.gnu.org id=B53749.169467183519614
          (code B ref 53749); Thu, 14 Sep 2023 06:11:01 +0000
Received: (at 53749) by debbugs.gnu.org; 14 Sep 2023 06:10:35 +0000
Received: from localhost ([127.0.0.1]:36614 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1qgfYg-00056I-CX
	for submit <at> debbugs.gnu.org; Thu, 14 Sep 2023 02:10:34 -0400
Received: from eggs.gnu.org ([2001:470:142:3::10]:59350)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <eliz@HIDDEN>) id 1qgfYd-000562-FL
 for 53749 <at> debbugs.gnu.org; Thu, 14 Sep 2023 02:10:33 -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 1qgfYR-0006gD-RR; Thu, 14 Sep 2023 02:10:19 -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=xntW5xfSLhAMvBSsazXkTqy2XzPg9UBcKv0LOUQ72GA=; b=Yf4KfEUyg1HR
 1XXBX4mTITRHzO30bmG0bwnKp5SJH568fmrfvNqR4NtXnqVej+elNMR/sf+aXumXAi9cQA5w3Szso
 HFwjQ6wljyvvuEybTtfe8Q+g+pPEddX5C5ioPIyxNmLpaq9uE+8vtHP8DhAebjNPU9YahKiBheZMk
 lfR3E5mNV22FAOoBqrGjkSzlK+igASA2d7CEWMJa10cQb3mbKqvqr/IZlVNkJVJfFKWDdvrAwSvwI
 tJ+TDpDexCzYkhPqJNsOqExdCCvJQ1H4UMrvAVv95qBy633kDzbZlv3mD1XzoDWJDyYLMHtaQGmee
 9+5eGRMa7J1KzwLkIKjmew==;
Date: Thu, 14 Sep 2023 09:10:06 +0300
Message-Id: <831qf1mgjl.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
In-Reply-To: <2c5c8afa-b57e-3156-d21c-5523cacb4d87@HIDDEN> (message from
 Dmitry Gutov on Thu, 14 Sep 2023 02:59:33 +0300)
References: <CADF+RtgWCLKQGwgdTNWmgesbcwq8iBxChoN8FqMOg95Ai3CYTA@HIDDEN>
 <1de34060-e93b-0a42-fff5-20e283abe0dc@HIDDEN> <87o7vq0zir.fsf@HIDDEN>
 <CADF+Rtjii7ZHkrfLzS63Yt1UiPPfnOrSsFZe2SMRetOS4w0vng@HIDDEN>
 <8735d20yvd.fsf@HIDDEN>
 <CADF+Rtgz5f6fcVuTLrv_N8oObRw+Uw-Je7bz54Gagb3pRgpR=g@HIDDEN>
 <CADwFkm=p8_Tbu+cXMDA8zEKovb+Ld7QFUJz_AhFnJebhik=JBg@HIDDEN>
 <CADF+RtjGfibN3Yg8mf4hVB9uPWtAwp0m6J2LRH7n0Z20S7+Yzg@HIDDEN>
 <CADwFkmkbMSXdjB6kF3a68_1vb4dv05_vMrKrvoX908nZJrpxOg@HIDDEN>
 <CADF+RtgxigxvgG0j6bbpYnrrFVF4YTKZ1Rs0JSCc8zuu5JNA2w@HIDDEN>
 <fcbc07cf-5ee9-131f-1a18-9cc28a5655f1@HIDDEN>
 <CADF+Rti2gSVvfksUVO04ptKQsXrNpwUXHQ_qFjC26D8NNh578A@HIDDEN>
 <2c5c8afa-b57e-3156-d21c-5523cacb4d87@HIDDEN>
X-Spam-Score: -2.3 (--)
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 (---)

> Cc: 53749 <at> debbugs.gnu.org, Lars Ingebrigtsen <larsi@HIDDEN>,
>  Stefan Kangas <stefankangas@HIDDEN>
> Date: Thu, 14 Sep 2023 02:59:33 +0300
> From: Dmitry Gutov <dgutov@HIDDEN>
> 
> On 13/09/2023 20:01, David Fussner via Bug reports for GNU Emacs, the 
> Swiss army knife of text editors wrote:
> 
> >> These won't be affected either way, right? Because project-find-regexp
> >> defaults its input to (thing-at-point 'symbol t), and isearch...
> >> probably also uses "symbol" if you ask it to.
> >>
> >> So... why not just make tex-thingatpt-include-escape a boolean? What
> >> commands need to be distinguished that way? I think 'find-tag' (it's
> >> obsolete but still used sometimes) would need to obey this var as well.
> > 
> > xref-find-apropos and xref-find-references don't work well (or at all)
> > with the escape char included in the search string, so I was keeping
> > that char away from them. (The buffer-local variables I manipulate for
> > project-find-regexp and isearch-forward-thing-at-point have to do with
> > ensuring they use the texsymbol thing in the first place -- see
> > tex--symbol-or-texsymbol.) Does that make sense?
> 
> Hmm, I suppose I skipped over that part of the patch too quickly.
> 
> Here's a potential problem with replacing the notion of "symbol": some 
> other existing code (also working with TeX/LaTeX) might disagree, as it 
> might have some existing notion of what a "symbol" in those modes is (as 
> defined by the syntax table).
> 
> In general, we change the notion of a symbol by either changing the 
> mode's syntax table, or by augmenting its effect using 
> syntax-propertize-function (which, for example, could propertize the 
> backslashes inside the buffer as "symbol constituent"). The latter might 
> actually be a change that would affect how 'M-x xref-find-references' 
> works (it will likely start to consider those \tags as symbol 
> occurrences together with the backslash). But like other changes of what 
> is considered to be a "symbol" in a major mode, it could conflict with 
> existing code.
> 
> Anyway, I'm not saying you have to change the approach, but that's 
> something to be aware of.
> 
> And to look at it from another direction: if the default implementation 
> of xref-find-references (and etags uses the very generic one) doesn't 
> work for you, perhaps it would be worth it to define a TeX-specific Xref 
> backend. That would perhaps take 20-30 lines of code total, most of them 
> delegating to the etags backend, or the default impl. But while 
> delegating, you can modify the passed argument - e.g. if it included a 
> backslash, you could forward it to the default impl for "find 
> references" without a backslash. Or - alternatively - call 
> (project-find-regexp "...") with a more complex regexp of your choice. 
> The first alternative could look like this:
> 
>    (cl-defmethod xref-backend-references ((_backend (eql 'tex-etags)) 
> identifier)
>      (xref-backend-references 'etags (string-remove-prefix "\\" 
> identifier)))
> 
> > I'll look at find-tag, too; thanks for pointing that out.
> 
> Doing the above choice on the level of Xref backend's methods 
> would/should automatically make it work for all commands appropriately.
> 
> >> Why not set the variable find-tag-default-function instead? That seems
> >> easier and more appropriate to do inside a major mode function.
> > 
> > I settled on putting the symbol on the modes because I thought it was
> > simpler than setting the variable buffer-locally in all the in-tree
> > and AUCTeX modes, but I'll revisit this and see whether I can come up
> > with something better.
> 
> Do AUCTeX modes inherit from tex-mode? Or all call 
> tex-common-initialization? Then you could set that variable locally 
> inside that function once.
> 
> All in all, it might not be wise to modify the behavior of third-party 
> packages from inside Emacs this way (they might have other expectations, 
> or there's going to appear a new major mode that needs the same 
> treatment anyway).
> 
> Setting a variable to be used through mode inheritance or delegation is 
> fine, but if that doesn't help, I would probably stop at defining a 
> helper function or two and documenting how it should be used. And then 
> maybe work with AUCTeX people to get the remaining necessary changes in 
> from their side (or just leaving that up to the user, depending on how 
> functional the default config ends up being).

I think we should add Stefan and Tassilo (CCed) to this discussion, as
they might have valuable comments about this.




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#53749: 29.0.50; [PATCH] Xref backend for TeX buffers
Resent-From: David Fussner <dfussner@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Thu, 14 Sep 2023 16:12:02 +0000
Resent-Message-ID: <handler.53749.B53749.169470790229575 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 53749
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: pending patch
To: Dmitry Gutov <dgutov@HIDDEN>, Eli Zaretskii <eliz@HIDDEN>
Cc: 53749 <at> debbugs.gnu.org, Lars Ingebrigtsen <larsi@HIDDEN>, Stefan Kangas <stefankangas@HIDDEN>
Received: via spool by 53749-submit <at> debbugs.gnu.org id=B53749.169470790229575
          (code B ref 53749); Thu, 14 Sep 2023 16:12:02 +0000
Received: (at 53749) by debbugs.gnu.org; 14 Sep 2023 16:11:42 +0000
Received: from localhost ([127.0.0.1]:40952 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1qgowP-0007gx-Jn
	for submit <at> debbugs.gnu.org; Thu, 14 Sep 2023 12:11:42 -0400
Received: from mail-pg1-x52f.google.com ([2607:f8b0:4864:20::52f]:52332)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <dfussner@HIDDEN>) id 1qgowK-0007gi-VW
 for 53749 <at> debbugs.gnu.org; Thu, 14 Sep 2023 12:11:40 -0400
Received: by mail-pg1-x52f.google.com with SMTP id
 41be03b00d2f7-56b2e689968so908736a12.0
 for <53749 <at> debbugs.gnu.org>; Thu, 14 Sep 2023 09:11:30 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=googlemail.com; s=20221208; t=1694707885; x=1695312685; darn=debbugs.gnu.org;
 h=cc:to:subject:message-id:date:from:in-reply-to:references
 :mime-version:from:to:cc:subject:date:message-id:reply-to;
 bh=yClKgPrgkH0ijtbUZoAa+ts8E01p26jewN3Op7wFT6Y=;
 b=fppzqFe9Y7Ir216D293aOU2fb6jrVg2m9cIZDy5yn8mK5pEBV8TclBs9qzIpuHZZFU
 n9F9xrdOLkndpQYxvi8OCgVuip1a5qEmdiB5IT76KcodiEI63aKDz23h2GHMK8XIbJAR
 HWJnWhmDZHut+4QXSeHG5OTQ7YsMhBHXNf8vaGVwLan29hj8/kA2aQeHY9/Q/dpKqhgH
 BuAzuWGDE0Ja13/CWhf68Vr2DRJ0bYHEvMY7Nm4mZ9TqdWLtTHr5F2YmP6+VZmv7pgDO
 8kvHU6GAySgP/KAiqmuqWvzw0a5DJotmoTm+RUoS5GiFWRVaiVC4f4MpsTOR63vEYgJu
 e7Rw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20230601; t=1694707885; x=1695312685;
 h=cc: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=yClKgPrgkH0ijtbUZoAa+ts8E01p26jewN3Op7wFT6Y=;
 b=XyMvFiAmvd5Sgj8qVKz6LVcKti6FCmS/HMnnye1VNcwZDVaxIwWg1E+URYtosWXO88
 llUYpqWLTFKciCYcEES5HTdah2NvpMi25ho574Zm1ez9Y3toPA9VKiCRwogboscmyYWQ
 z74IWVNq+0yaosmheRpzOrjq5okzuttDdNM6otG/wCHZtbMUQMOJQm1JqCWVuAFBpeqa
 Vp2uFsah91DEG9berQQe+I8ORtTh6LzTlHgr6TlmFkp2NjNlhTw4sZBIukovHiOEuwBt
 g5+j76AzyO6MQgj8g9hxpZin3BY9JFvSt/O5eaNRtc+Ea5mha+2Cb6EPj2BncdCKeB/c
 uiIQ==
X-Gm-Message-State: AOJu0YzmZxLiUcw4pL0L1PgcLYipYm3OXFtrF9bF4r9cvNFtgzv7L99E
 gW8mtY4ioH+b+Qw6gjf2tcShJ2QHMR2V5+mBL3g=
X-Google-Smtp-Source: AGHT+IG61FnwSQmCXmH3t+pgdEz698YFKHzZKoflutTzs5z4qykFXSirDm0lhGWH5mF/8XROSnhFCgy/nlH7d9tCGlc=
X-Received: by 2002:a17:90b:164d:b0:270:1611:484b with SMTP id
 il13-20020a17090b164d00b002701611484bmr5433909pjb.41.1694707885068; Thu, 14
 Sep 2023 09:11:25 -0700 (PDT)
MIME-Version: 1.0
References: <CADF+RtgWCLKQGwgdTNWmgesbcwq8iBxChoN8FqMOg95Ai3CYTA@HIDDEN>
 <1de34060-e93b-0a42-fff5-20e283abe0dc@HIDDEN> <87o7vq0zir.fsf@HIDDEN>
 <CADF+Rtjii7ZHkrfLzS63Yt1UiPPfnOrSsFZe2SMRetOS4w0vng@HIDDEN>
 <8735d20yvd.fsf@HIDDEN>
 <CADF+Rtgz5f6fcVuTLrv_N8oObRw+Uw-Je7bz54Gagb3pRgpR=g@HIDDEN>
 <CADwFkm=p8_Tbu+cXMDA8zEKovb+Ld7QFUJz_AhFnJebhik=JBg@HIDDEN>
 <CADF+RtjGfibN3Yg8mf4hVB9uPWtAwp0m6J2LRH7n0Z20S7+Yzg@HIDDEN>
 <CADwFkmkbMSXdjB6kF3a68_1vb4dv05_vMrKrvoX908nZJrpxOg@HIDDEN>
 <CADF+RtgxigxvgG0j6bbpYnrrFVF4YTKZ1Rs0JSCc8zuu5JNA2w@HIDDEN>
 <fcbc07cf-5ee9-131f-1a18-9cc28a5655f1@HIDDEN>
 <CADF+Rti2gSVvfksUVO04ptKQsXrNpwUXHQ_qFjC26D8NNh578A@HIDDEN>
 <2c5c8afa-b57e-3156-d21c-5523cacb4d87@HIDDEN>
In-Reply-To: <2c5c8afa-b57e-3156-d21c-5523cacb4d87@HIDDEN>
From: David Fussner <dfussner@HIDDEN>
Date: Thu, 14 Sep 2023 17:11:13 +0100
Message-ID: <CADF+RtjXg_BMkeWV-5GmPu8LVZSc+cCsDQ9Wk=00c1H=anAUUg@HIDDEN>
Content-Type: text/plain; charset="UTF-8"
X-Spam-Score: 0.0 (/)
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: -1.0 (-)

Hi Dmitry,

Once again, many thanks for the feedback. I'm still not certain I
agree about the risks involved in creating a new "thing" type, as it
really only appears in a small number of commands and then only in TeX
buffers, and generally I tried to design the code to keep out of the
way of anything outside of such buffers, but needless to say you see
further and more clearly than I can. I've been reviewing your comments
and my code, and have a few ideas and questions about how to go
forward. Though I haven't coded it yet, it's possible that the
simplest (and least intrusive) approach to follow would do something
like this:

1. Get rid of the new texsymbol "thing" and just use a buffer-local
value of find-tag-default-function and a rather more thoroughly
modified syntax table to control what "symbol" means, but _only_ in
the context of commands that use find-tag-default-function. I think
I'd lose the ability to change the behavior of
isearch-forward-thing-at-point and project-find-regexp, as I can't see
how to temporarily modify the syntax table there, though perhaps I'm
missing something.

2. Simply eliminate the TeX escape character entirely, both from tag
names in a TAGS file and from any thing-at-point in a TeX buffer. I
think this would eliminate the need to distinguish among the various
xref commands in terms of whether they can or can't handle the escape
character. It would also eliminate the need for the new user option in
etags.c, as there would no longer be any code to cope with the escape
character when finding a (thing-at-point 'symbol). This is slightly
less powerful than the default I proposed, but there are probably many
use cases where it won't matter at all (though it would for my own,
possibly eccentric, use case).

Does this sound to you like a plausible way forward?

I've tried to reach out to the AUCTeX developers to see what they
might want to do about setting the value of local variables there, and
anything they come up with should be doable.

 Thanks again.

On Thu, 14 Sept 2023 at 00:59, Dmitry Gutov <dgutov@HIDDEN> wrote:
>
> On 13/09/2023 20:01, David Fussner via Bug reports for GNU Emacs, the
> Swiss army knife of text editors wrote:
>
> >> These won't be affected either way, right? Because project-find-regexp
> >> defaults its input to (thing-at-point 'symbol t), and isearch...
> >> probably also uses "symbol" if you ask it to.
> >>
> >> So... why not just make tex-thingatpt-include-escape a boolean? What
> >> commands need to be distinguished that way? I think 'find-tag' (it's
> >> obsolete but still used sometimes) would need to obey this var as well.
> >
> > xref-find-apropos and xref-find-references don't work well (or at all)
> > with the escape char included in the search string, so I was keeping
> > that char away from them. (The buffer-local variables I manipulate for
> > project-find-regexp and isearch-forward-thing-at-point have to do with
> > ensuring they use the texsymbol thing in the first place -- see
> > tex--symbol-or-texsymbol.) Does that make sense?
>
> Hmm, I suppose I skipped over that part of the patch too quickly.
>
> Here's a potential problem with replacing the notion of "symbol": some
> other existing code (also working with TeX/LaTeX) might disagree, as it
> might have some existing notion of what a "symbol" in those modes is (as
> defined by the syntax table).
>
> In general, we change the notion of a symbol by either changing the
> mode's syntax table, or by augmenting its effect using
> syntax-propertize-function (which, for example, could propertize the
> backslashes inside the buffer as "symbol constituent"). The latter might
> actually be a change that would affect how 'M-x xref-find-references'
> works (it will likely start to consider those \tags as symbol
> occurrences together with the backslash). But like other changes of what
> is considered to be a "symbol" in a major mode, it could conflict with
> existing code.
>
> Anyway, I'm not saying you have to change the approach, but that's
> something to be aware of.
>
> And to look at it from another direction: if the default implementation
> of xref-find-references (and etags uses the very generic one) doesn't
> work for you, perhaps it would be worth it to define a TeX-specific Xref
> backend. That would perhaps take 20-30 lines of code total, most of them
> delegating to the etags backend, or the default impl. But while
> delegating, you can modify the passed argument - e.g. if it included a
> backslash, you could forward it to the default impl for "find
> references" without a backslash. Or - alternatively - call
> (project-find-regexp "...") with a more complex regexp of your choice.
> The first alternative could look like this:
>
>    (cl-defmethod xref-backend-references ((_backend (eql 'tex-etags))
> identifier)
>      (xref-backend-references 'etags (string-remove-prefix "\\"
> identifier)))
>
> > I'll look at find-tag, too; thanks for pointing that out.
>
> Doing the above choice on the level of Xref backend's methods
> would/should automatically make it work for all commands appropriately.
>
> >> Why not set the variable find-tag-default-function instead? That seems
> >> easier and more appropriate to do inside a major mode function.
> >
> > I settled on putting the symbol on the modes because I thought it was
> > simpler than setting the variable buffer-locally in all the in-tree
> > and AUCTeX modes, but I'll revisit this and see whether I can come up
> > with something better.
>
> Do AUCTeX modes inherit from tex-mode? Or all call
> tex-common-initialization? Then you could set that variable locally
> inside that function once.
>
> All in all, it might not be wise to modify the behavior of third-party
> packages from inside Emacs this way (they might have other expectations,
> or there's going to appear a new major mode that needs the same
> treatment anyway).
>
> Setting a variable to be used through mode inheritance or delegation is
> fine, but if that doesn't help, I would probably stop at defining a
> helper function or two and documenting how it should be used. And then
> maybe work with AUCTeX people to get the remaining necessary changes in
> from their side (or just leaving that up to the user, depending on how
> functional the default config ends up being).




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#53749: 29.0.50; [PATCH] Xref backend for TeX buffers
Resent-From: Dmitry Gutov <dgutov@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Thu, 14 Sep 2023 23:56:02 +0000
Resent-Message-ID: <handler.53749.B53749.16947357312507 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 53749
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: pending patch
To: David Fussner <dfussner@HIDDEN>, Eli Zaretskii <eliz@HIDDEN>
Cc: 53749 <at> debbugs.gnu.org, Lars Ingebrigtsen <larsi@HIDDEN>, Stefan Kangas <stefankangas@HIDDEN>
Received: via spool by 53749-submit <at> debbugs.gnu.org id=B53749.16947357312507
          (code B ref 53749); Thu, 14 Sep 2023 23:56:02 +0000
Received: (at 53749) by debbugs.gnu.org; 14 Sep 2023 23:55:31 +0000
Received: from localhost ([127.0.0.1]:41471 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1qgwBF-0000eL-Ck
	for submit <at> debbugs.gnu.org; Thu, 14 Sep 2023 19:55:31 -0400
Received: from forward500b.mail.yandex.net ([178.154.239.144]:36956)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <dgutov@HIDDEN>) id 1qgwB9-0000e5-EQ
 for 53749 <at> debbugs.gnu.org; Thu, 14 Sep 2023 19:55:27 -0400
Received: from mail-nwsmtp-smtp-production-main-46.myt.yp-c.yandex.net
 (mail-nwsmtp-smtp-production-main-46.myt.yp-c.yandex.net
 [IPv6:2a02:6b8:c12:5b86:0:640:36b7:0])
 by forward500b.mail.yandex.net (Yandex) with ESMTP id 4D3B25EC47;
 Fri, 15 Sep 2023 02:55:15 +0300 (MSK)
Received: by mail-nwsmtp-smtp-production-main-46.myt.yp-c.yandex.net
 (smtp/Yandex) with ESMTPSA id Ctqi0OPDcqM0-vMPGMJVR; 
 Fri, 15 Sep 2023 02:55:14 +0300
X-Yandex-Fwd: 1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex.ru; s=mail;
 t=1694735714; bh=S0NfX6R6EdYmuKQGejBrE2ZCz87Ck0YvppztuUB4UJ8=;
 h=In-Reply-To:From:Subject:Message-ID:Cc:References:Date:To;
 b=mnv1dxPXVs692q9E3bM0+BDcxV1IoF/AswaFqvbiKyfgs8dxw7znYscy6aCAmEcH9
 Ur4Y8CqCHvpeFiaEeLfiadgV7w4bBN0yzPJVi4zGpAOvibFHgpHMhL6jCUDG6Q6EaQ
 bGcq99uVISMEbYcXCLazGzt6s2T0cG2RHNprZ11Y=
Authentication-Results: mail-nwsmtp-smtp-production-main-46.myt.yp-c.yandex.net;
 dkim=pass header.i=@yandex.ru
Received: from compute3.internal (compute3.nyi.internal [10.202.2.43])
 by mailauth.nyi.internal (Postfix) with ESMTP id 1D81B27C005B;
 Thu, 14 Sep 2023 19:55:12 -0400 (EDT)
Received: from mailfrontend2 ([10.202.2.163])
 by compute3.internal (MEProxy); Thu, 14 Sep 2023 19:55:12 -0400
X-ME-Sender: <xms:X50DZXCPRnPvTnNQuJJ5d1VDggN273Siw7dX5glmIURtsQFiZcMOyA>
 <xme:X50DZdjOHx08_RiHzC3hgNyRhOdISMbJ9l_ipbOZ35MQZKs6v4LkLaVrwrfsCQS9p
 majzryWKFRR7Ots4SU>
X-ME-Received: <xmr:X50DZSl64fAmxkZgNMR2awH5lfiNAg62WNdB9t-DH63kWtuHaoi_4kd5BNR7E4U>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedviedrudejuddgvdejucetufdoteggodetrfdotf
 fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen
 uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne
 cujfgurhepkfffgggfuffvvehfhfgjtgfgsehtjeertddtfeejnecuhfhrohhmpeffmhhi
 thhrhicuifhuthhovhcuoegughhuthhovheshigrnhguvgigrdhruheqnecuggftrfgrth
 htvghrnheptdffgeegkeelteevtdekleethfeftdduvdegkedtkedujefhfedtveeftdff
 udevnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepug
 hguhhtohhvodhmvghsmhhtphgruhhthhhpvghrshhonhgrlhhithihqddufeeffeelleeh
 hedvqddvleegjeejjeejiedqughguhhtohhvpeephigrnhguvgigrdhruhesfhgrshhtmh
 grihhlrdgtohhm
X-ME-Proxy: <xmx:X50DZZxFcZT09-rtJdIBXMl78z_rFfgKffIlxOehzr0t_NGM-3w3Qw>
 <xmx:X50DZcSP2KgInMZJaSRxJM0ip_xMrYYhuNHVF8gygmM9luGe3PxbUA>
 <xmx:X50DZcbq9Xbn2_z5_eXuJR7atuZBI7xxRyJ8IPiuXBIoTBQbz2VcuA>
 <xmx:X50DZSejyuCS2FMoRJYwoB25WrZ94i60ZB_AnTQzwU-9LOlfbYlo_g>
Feedback-ID: ib1d9465d:Fastmail
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Thu,
 14 Sep 2023 19:55:10 -0400 (EDT)
Message-ID: <891e916e-d05b-b82b-5d3f-148f097d52cc@HIDDEN>
Date: Fri, 15 Sep 2023 02:55:08 +0300
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101
 Thunderbird/102.13.0
Content-Language: en-US
References: <CADF+RtgWCLKQGwgdTNWmgesbcwq8iBxChoN8FqMOg95Ai3CYTA@HIDDEN>
 <1de34060-e93b-0a42-fff5-20e283abe0dc@HIDDEN> <87o7vq0zir.fsf@HIDDEN>
 <CADF+Rtjii7ZHkrfLzS63Yt1UiPPfnOrSsFZe2SMRetOS4w0vng@HIDDEN>
 <8735d20yvd.fsf@HIDDEN>
 <CADF+Rtgz5f6fcVuTLrv_N8oObRw+Uw-Je7bz54Gagb3pRgpR=g@HIDDEN>
 <CADwFkm=p8_Tbu+cXMDA8zEKovb+Ld7QFUJz_AhFnJebhik=JBg@HIDDEN>
 <CADF+RtjGfibN3Yg8mf4hVB9uPWtAwp0m6J2LRH7n0Z20S7+Yzg@HIDDEN>
 <CADwFkmkbMSXdjB6kF3a68_1vb4dv05_vMrKrvoX908nZJrpxOg@HIDDEN>
 <CADF+RtgxigxvgG0j6bbpYnrrFVF4YTKZ1Rs0JSCc8zuu5JNA2w@HIDDEN>
 <fcbc07cf-5ee9-131f-1a18-9cc28a5655f1@HIDDEN>
 <CADF+Rti2gSVvfksUVO04ptKQsXrNpwUXHQ_qFjC26D8NNh578A@HIDDEN>
 <2c5c8afa-b57e-3156-d21c-5523cacb4d87@HIDDEN>
 <CADF+RtjXg_BMkeWV-5GmPu8LVZSc+cCsDQ9Wk=00c1H=anAUUg@HIDDEN>
From: Dmitry Gutov <dgutov@HIDDEN>
In-Reply-To: <CADF+RtjXg_BMkeWV-5GmPu8LVZSc+cCsDQ9Wk=00c1H=anAUUg@HIDDEN>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-Spam-Score: -1.5 (-)
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.5 (--)

Hi David,

On 14/09/2023 19:11, David Fussner via Bug reports for GNU Emacs, the 
Swiss army knife of text editors wrote:

> Once again, many thanks for the feedback. I'm still not certain I
> agree about the risks involved in creating a new "thing" type, as it
> really only appears in a small number of commands and then only in TeX
> buffers, and generally I tried to design the code to keep out of the
> way of anything outside of such buffers, but needless to say you see
> further and more clearly than I can. I've been reviewing your comments
> and my code, and have a few ideas and questions about how to go
> forward. Though I haven't coded it yet, it's possible that the
> simplest (and least intrusive) approach to follow would do something
> like this:

I agree that the risks are probably low, and my review stems from the 
general approach that doing global modifications to the environment can 
lead to problems. It might or might not happen in your case. If anything 
happens, though, the same modifications tend to make it harder to 
investigate, e.g. to find where a particular bit of behavior comes from. 
So the more local an implementation of a feature can be, is generally 
the better.

But I'm no maintainer of tex-mode, and whatever choices are made here 
won't have effect outside of TeX, so if somebody wants to disagree with 
me, they're more than welcome to.

> 1. Get rid of the new texsymbol "thing" and just use a buffer-local
> value of find-tag-default-function and a rather more thoroughly
> modified syntax table to control what "symbol" means, but _only_ in
> the context of commands that use find-tag-default-function. I think
> I'd lose the ability to change the behavior of
> isearch-forward-thing-at-point and project-find-regexp, as I can't see
> how to temporarily modify the syntax table there, though perhaps I'm
> missing something.

I'm suggesting this approach together with defining a "new" backend for 
TeX. Quotes because while it's going to have its own name, it's mostly 
going to perform forwarding to an existing backend (etags).

This should make it practical for you to treat identifiers in 
xref-backend-definitions differently from that in 
xref-backend-references and xref-backend-apropos.

If you define find-tag-default-function, you don't have to change the 
syntax table too: it might be easier to search around with a regexp.

But for the new backend, you can also define the method 
xref-backend-identifier-at-point, where you would invoke the necessary 
bounds-of-thing logic. Then you won't need a change in 
find-tag-default-function.

Either way, though, the major modes will need to set up 
xref-backend-functions instead (with add-hook). This could also be done 
in a minor mode, which you'd enable in any TeX-related major modes that 
you use.

> 2. Simply eliminate the TeX escape character entirely, both from tag
> names in a TAGS file and from any thing-at-point in a TeX buffer. I
> think this would eliminate the need to distinguish among the various
> xref commands in terms of whether they can or can't handle the escape
> character. It would also eliminate the need for the new user option in
> etags.c, as there would no longer be any code to cope with the escape
> character when finding a (thing-at-point 'symbol). This is slightly
> less powerful than the default I proposed, but there are probably many
> use cases where it won't matter at all (though it would for my own,
> possibly eccentric, use case).

I wanted to ask whether including the backslash is important enough (it 
should not matter too much for disambiguation), but I figured it must 
be, otherwise you wouldn't go to all this effort.

If not, it would simplify things a lot, though.




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#53749: 29.0.50; [PATCH] Xref backend for TeX buffers
Resent-From: David Fussner <dfussner@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Fri, 15 Sep 2023 06:48:02 +0000
Resent-Message-ID: <handler.53749.B53749.169476047922039 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 53749
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: pending patch
To: Dmitry Gutov <dgutov@HIDDEN>
Cc: 53749 <at> debbugs.gnu.org, Eli Zaretskii <eliz@HIDDEN>, Lars Ingebrigtsen <larsi@HIDDEN>, Stefan Kangas <stefankangas@HIDDEN>
Received: via spool by 53749-submit <at> debbugs.gnu.org id=B53749.169476047922039
          (code B ref 53749); Fri, 15 Sep 2023 06:48:02 +0000
Received: (at 53749) by debbugs.gnu.org; 15 Sep 2023 06:47:59 +0000
Received: from localhost ([127.0.0.1]:41885 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1qh2cQ-0005jL-7M
	for submit <at> debbugs.gnu.org; Fri, 15 Sep 2023 02:47:59 -0400
Received: from mail-wr1-x430.google.com ([2a00:1450:4864:20::430]:55385)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <dfussner@HIDDEN>) id 1qh2cN-0005iR-6J
 for 53749 <at> debbugs.gnu.org; Fri, 15 Sep 2023 02:47:56 -0400
Received: by mail-wr1-x430.google.com with SMTP id
 ffacd0b85a97d-31fa666000dso1607379f8f.2
 for <53749 <at> debbugs.gnu.org>; Thu, 14 Sep 2023 23:47:48 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=googlemail.com; s=20230601; t=1694760463; x=1695365263; darn=debbugs.gnu.org;
 h=cc:to:subject:message-id:date:from:in-reply-to:references
 :mime-version:from:to:cc:subject:date:message-id:reply-to;
 bh=A5VBnLWqFKIETrCgLRfZktivEcRHktust55c5PCG9y8=;
 b=TRl0GhaAjTqEYPSpxf85IM37qZffkUOebqUhFw4tgSZcOgi+Pf3dQ2BoOzDBbpKc5o
 ZhhdvrnHEkEnBNOhpfqwUK0cEkNcPeWOeWF+Eg0KA38U9sjOFf9kh8YYrLiCIqvoihzM
 MA69+sT8IeukGOK9/Q46nnaJIVsZFhYW+n+DXdkXnSM1z3UjoR2tK1U0Ws7ljoHdwnvL
 URjIEk3ESmNSkFwljyhqe2h/M/17Kc7bQ7JM+HayQUUH0W77nwmv17DTVdruyBKQziZJ
 56wD7lib4IPbeOyFFXN4Vjx7Yh/nIaUrkiIoCmuiAETXcOBJoLdAfDKlpiZSK9KBwXdP
 Bq0g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20230601; t=1694760463; x=1695365263;
 h=cc: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=A5VBnLWqFKIETrCgLRfZktivEcRHktust55c5PCG9y8=;
 b=uWhWLvQiOgyy5QYUa7DaXj4CD2H+YHjFIp9hp5BOZxU+70Bb0xSPRW2TKhfVOysLbc
 9KWte8G5oqCOtWCGGlHrrpX9M/xgIpj9LuRmnjM2VYYoBP77WO4Avrve6PXSLKbT4EP5
 Tro7L9WSym19eMMU04XPW/h0Rkkv8vezltsd692LdkdTeeoAIt9t4Py6ORzDvzUvh0gR
 XgPdkxC/QZrokjsNX7uaPhJ5CG/upaOGxYdwh6SmPp3oBjupSPdqe2AOue/xNKKkH8lE
 k9US3c/0ekqVhKWNax1wYZl6sBqORKrqburi0xGAZcxgKtWbaX4BB04RK/v8ea+qEOpg
 b0Fw==
X-Gm-Message-State: AOJu0Yx/loB5P0h7UW485mlpqQAoRoBzE59rNLf4I2/ZkNVVx1pfYiJH
 ou7+A4uvZvpfRCsUvKEV4/et380HbHI2ojL4T4yh2pPntR8=
X-Google-Smtp-Source: AGHT+IHObs5SPCI7PA5ftADb/+NgwkAJtneNrviNGeKFkPChr2X1n302k0cqe2CWgKci3wVYXlrnOfkmM4NA+V2JdFY=
X-Received: by 2002:a5d:408b:0:b0:31f:95ec:9099 with SMTP id
 o11-20020a5d408b000000b0031f95ec9099mr576003wrp.33.1694760462700; Thu, 14 Sep
 2023 23:47:42 -0700 (PDT)
MIME-Version: 1.0
References: <CADF+RtgWCLKQGwgdTNWmgesbcwq8iBxChoN8FqMOg95Ai3CYTA@HIDDEN>
 <1de34060-e93b-0a42-fff5-20e283abe0dc@HIDDEN> <87o7vq0zir.fsf@HIDDEN>
 <CADF+Rtjii7ZHkrfLzS63Yt1UiPPfnOrSsFZe2SMRetOS4w0vng@HIDDEN>
 <8735d20yvd.fsf@HIDDEN>
 <CADF+Rtgz5f6fcVuTLrv_N8oObRw+Uw-Je7bz54Gagb3pRgpR=g@HIDDEN>
 <CADwFkm=p8_Tbu+cXMDA8zEKovb+Ld7QFUJz_AhFnJebhik=JBg@HIDDEN>
 <CADF+RtjGfibN3Yg8mf4hVB9uPWtAwp0m6J2LRH7n0Z20S7+Yzg@HIDDEN>
 <CADwFkmkbMSXdjB6kF3a68_1vb4dv05_vMrKrvoX908nZJrpxOg@HIDDEN>
 <CADF+RtgxigxvgG0j6bbpYnrrFVF4YTKZ1Rs0JSCc8zuu5JNA2w@HIDDEN>
 <fcbc07cf-5ee9-131f-1a18-9cc28a5655f1@HIDDEN>
 <CADF+Rti2gSVvfksUVO04ptKQsXrNpwUXHQ_qFjC26D8NNh578A@HIDDEN>
 <2c5c8afa-b57e-3156-d21c-5523cacb4d87@HIDDEN>
 <CADF+RtjXg_BMkeWV-5GmPu8LVZSc+cCsDQ9Wk=00c1H=anAUUg@HIDDEN>
 <891e916e-d05b-b82b-5d3f-148f097d52cc@HIDDEN>
In-Reply-To: <891e916e-d05b-b82b-5d3f-148f097d52cc@HIDDEN>
From: David Fussner <dfussner@HIDDEN>
Date: Fri, 15 Sep 2023 07:47:29 +0100
Message-ID: <CADF+Rth0qE5ACbneSQgwOuk0_Zz=D_uFm00M=5A5SNoGEwjYUg@HIDDEN>
Content-Type: multipart/alternative; boundary="0000000000005bd4030605602bd4"
X-Spam-Score: 0.0 (/)
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: -1.0 (-)

--0000000000005bd4030605602bd4
Content-Type: text/plain; charset="UTF-8"

Thanks Dmitry,

I'll make another stab at a "new" backend, as suggested. I'll have a look
at the escape char thing, too, and see how I feel about dropping it. It
shouldn't take 18 months this time!

Best,

David.

On Fri, 15 Sept 2023, 00:55 Dmitry Gutov, <dgutov@HIDDEN> wrote:

> Hi David,
>
> On 14/09/2023 19:11, David Fussner via Bug reports for GNU Emacs, the
> Swiss army knife of text editors wrote:
>
> > Once again, many thanks for the feedback. I'm still not certain I
> > agree about the risks involved in creating a new "thing" type, as it
> > really only appears in a small number of commands and then only in TeX
> > buffers, and generally I tried to design the code to keep out of the
> > way of anything outside of such buffers, but needless to say you see
> > further and more clearly than I can. I've been reviewing your comments
> > and my code, and have a few ideas and questions about how to go
> > forward. Though I haven't coded it yet, it's possible that the
> > simplest (and least intrusive) approach to follow would do something
> > like this:
>
> I agree that the risks are probably low, and my review stems from the
> general approach that doing global modifications to the environment can
> lead to problems. It might or might not happen in your case. If anything
> happens, though, the same modifications tend to make it harder to
> investigate, e.g. to find where a particular bit of behavior comes from.
> So the more local an implementation of a feature can be, is generally
> the better.
>
> But I'm no maintainer of tex-mode, and whatever choices are made here
> won't have effect outside of TeX, so if somebody wants to disagree with
> me, they're more than welcome to.
>
> > 1. Get rid of the new texsymbol "thing" and just use a buffer-local
> > value of find-tag-default-function and a rather more thoroughly
> > modified syntax table to control what "symbol" means, but _only_ in
> > the context of commands that use find-tag-default-function. I think
> > I'd lose the ability to change the behavior of
> > isearch-forward-thing-at-point and project-find-regexp, as I can't see
> > how to temporarily modify the syntax table there, though perhaps I'm
> > missing something.
>
> I'm suggesting this approach together with defining a "new" backend for
> TeX. Quotes because while it's going to have its own name, it's mostly
> going to perform forwarding to an existing backend (etags).
>
> This should make it practical for you to treat identifiers in
> xref-backend-definitions differently from that in
> xref-backend-references and xref-backend-apropos.
>
> If you define find-tag-default-function, you don't have to change the
> syntax table too: it might be easier to search around with a regexp.
>
> But for the new backend, you can also define the method
> xref-backend-identifier-at-point, where you would invoke the necessary
> bounds-of-thing logic. Then you won't need a change in
> find-tag-default-function.
>
> Either way, though, the major modes will need to set up
> xref-backend-functions instead (with add-hook). This could also be done
> in a minor mode, which you'd enable in any TeX-related major modes that
> you use.
>
> > 2. Simply eliminate the TeX escape character entirely, both from tag
> > names in a TAGS file and from any thing-at-point in a TeX buffer. I
> > think this would eliminate the need to distinguish among the various
> > xref commands in terms of whether they can or can't handle the escape
> > character. It would also eliminate the need for the new user option in
> > etags.c, as there would no longer be any code to cope with the escape
> > character when finding a (thing-at-point 'symbol). This is slightly
> > less powerful than the default I proposed, but there are probably many
> > use cases where it won't matter at all (though it would for my own,
> > possibly eccentric, use case).
>
> I wanted to ask whether including the backslash is important enough (it
> should not matter too much for disambiguation), but I figured it must
> be, otherwise you wouldn't go to all this effort.
>
> If not, it would simplify things a lot, though.
>

--0000000000005bd4030605602bd4
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"auto">Thanks=C2=A0Dmitry,=C2=A0<div dir=3D"auto"><br></div><div=
 dir=3D"auto">I&#39;ll make another stab at a &quot;new&quot; backend, as s=
uggested. I&#39;ll have a look at the escape char thing, too, and see how I=
 feel about dropping it. It shouldn&#39;t take 18 months this time!</div><d=
iv dir=3D"auto"><br></div><div dir=3D"auto">Best,</div><div dir=3D"auto"><b=
r></div><div dir=3D"auto">David.=C2=A0</div></div><br><div class=3D"gmail_q=
uote"><div dir=3D"ltr" class=3D"gmail_attr">On Fri, 15 Sept 2023, 00:55 Dmi=
try Gutov, &lt;<a href=3D"mailto:dgutov@HIDDEN">dgutov@HIDDEN</a>&gt;=
 wrote:<br></div><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8=
ex;border-left:1px #ccc solid;padding-left:1ex">Hi David,<br>
<br>
On 14/09/2023 19:11, David Fussner via Bug reports for GNU Emacs, the <br>
Swiss army knife of text editors wrote:<br>
<br>
&gt; Once again, many thanks for the feedback. I&#39;m still not certain I<=
br>
&gt; agree about the risks involved in creating a new &quot;thing&quot; typ=
e, as it<br>
&gt; really only appears in a small number of commands and then only in TeX=
<br>
&gt; buffers, and generally I tried to design the code to keep out of the<b=
r>
&gt; way of anything outside of such buffers, but needless to say you see<b=
r>
&gt; further and more clearly than I can. I&#39;ve been reviewing your comm=
ents<br>
&gt; and my code, and have a few ideas and questions about how to go<br>
&gt; forward. Though I haven&#39;t coded it yet, it&#39;s possible that the=
<br>
&gt; simplest (and least intrusive) approach to follow would do something<b=
r>
&gt; like this:<br>
<br>
I agree that the risks are probably low, and my review stems from the <br>
general approach that doing global modifications to the environment can <br=
>
lead to problems. It might or might not happen in your case. If anything <b=
r>
happens, though, the same modifications tend to make it harder to <br>
investigate, e.g. to find where a particular bit of behavior comes from. <b=
r>
So the more local an implementation of a feature can be, is generally <br>
the better.<br>
<br>
But I&#39;m no maintainer of tex-mode, and whatever choices are made here <=
br>
won&#39;t have effect outside of TeX, so if somebody wants to disagree with=
 <br>
me, they&#39;re more than welcome to.<br>
<br>
&gt; 1. Get rid of the new texsymbol &quot;thing&quot; and just use a buffe=
r-local<br>
&gt; value of find-tag-default-function and a rather more thoroughly<br>
&gt; modified syntax table to control what &quot;symbol&quot; means, but _o=
nly_ in<br>
&gt; the context of commands that use find-tag-default-function. I think<br=
>
&gt; I&#39;d lose the ability to change the behavior of<br>
&gt; isearch-forward-thing-at-point and project-find-regexp, as I can&#39;t=
 see<br>
&gt; how to temporarily modify the syntax table there, though perhaps I&#39=
;m<br>
&gt; missing something.<br>
<br>
I&#39;m suggesting this approach together with defining a &quot;new&quot; b=
ackend for <br>
TeX. Quotes because while it&#39;s going to have its own name, it&#39;s mos=
tly <br>
going to perform forwarding to an existing backend (etags).<br>
<br>
This should make it practical for you to treat identifiers in <br>
xref-backend-definitions differently from that in <br>
xref-backend-references and xref-backend-apropos.<br>
<br>
If you define find-tag-default-function, you don&#39;t have to change the <=
br>
syntax table too: it might be easier to search around with a regexp.<br>
<br>
But for the new backend, you can also define the method <br>
xref-backend-identifier-at-point, where you would invoke the necessary <br>
bounds-of-thing logic. Then you won&#39;t need a change in <br>
find-tag-default-function.<br>
<br>
Either way, though, the major modes will need to set up <br>
xref-backend-functions instead (with add-hook). This could also be done <br=
>
in a minor mode, which you&#39;d enable in any TeX-related major modes that=
 <br>
you use.<br>
<br>
&gt; 2. Simply eliminate the TeX escape character entirely, both from tag<b=
r>
&gt; names in a TAGS file and from any thing-at-point in a TeX buffer. I<br=
>
&gt; think this would eliminate the need to distinguish among the various<b=
r>
&gt; xref commands in terms of whether they can or can&#39;t handle the esc=
ape<br>
&gt; character. It would also eliminate the need for the new user option in=
<br>
&gt; etags.c, as there would no longer be any code to cope with the escape<=
br>
&gt; character when finding a (thing-at-point &#39;symbol). This is slightl=
y<br>
&gt; less powerful than the default I proposed, but there are probably many=
<br>
&gt; use cases where it won&#39;t matter at all (though it would for my own=
,<br>
&gt; possibly eccentric, use case).<br>
<br>
I wanted to ask whether including the backslash is important enough (it <br=
>
should not matter too much for disambiguation), but I figured it must <br>
be, otherwise you wouldn&#39;t go to all this effort.<br>
<br>
If not, it would simplify things a lot, though.<br>
</blockquote></div>

--0000000000005bd4030605602bd4--




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#53749: 29.0.50; [PATCH] Xref backend for TeX buffers
Resent-From: Tassilo Horn <tsdh@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Fri, 15 Sep 2023 19:13:02 +0000
Resent-Message-ID: <handler.53749.B53749.169480513326897 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 53749
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: pending patch
To: Eli Zaretskii <eliz@HIDDEN>
Cc: 53749 <at> debbugs.gnu.org, Ikumi Keita <ikumi@HIDDEN>, dfussner@HIDDEN, stefankangas@HIDDEN, Dmitry Gutov <dgutov@HIDDEN>, larsi@HIDDEN, Stefan Monnier <monnier@HIDDEN>
Received: via spool by 53749-submit <at> debbugs.gnu.org id=B53749.169480513326897
          (code B ref 53749); Fri, 15 Sep 2023 19:13:02 +0000
Received: (at 53749) by debbugs.gnu.org; 15 Sep 2023 19:12:13 +0000
Received: from localhost ([127.0.0.1]:44790 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1qhEEe-0006zl-Ii
	for submit <at> debbugs.gnu.org; Fri, 15 Sep 2023 15:12:12 -0400
Received: from eggs.gnu.org ([2001:470:142:3::10]:43426)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <tsdh@HIDDEN>) id 1qhEEb-0006yf-4s
 for 53749 <at> debbugs.gnu.org; Fri, 15 Sep 2023 15:12:10 -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 <tsdh@HIDDEN>)
 id 1qhEEM-0001fz-Dk; Fri, 15 Sep 2023 15:11:54 -0400
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org;
 s=fencepost-gnu-org; h=MIME-Version:In-reply-to:Date:Subject:To:From:
 References; bh=MimMsDZskqyGYlfUQs16VjhR6Pb0NO1wnLNI4ZdoaXI=; b=M8jRwCBdsw/vlq
 DH5o1tdPM2aFdGXxYM0fN2S83DQcuXw5GTKGBQ/plPG6XXNt7TNAyHosDefahAIsuylv6yP1Z7jrl
 9U3sZGiYZRLhgLpL8BPOtP0wkAOFhMcKjlz5xrlSX6U5oPmqn4IbWTOXHPY/dvayldhviqZr1W5kF
 JkoXtTXeapZDbbrgatBA5EdLzDcviQJLKyoTwfnvlXP04nqD0q73RvRLjyFueSLCmglDRCVzn9oHx
 7BptR8Ia1ydXcF8fbBprlB7QiClqDOGgy0HiPO+RntFKRj+xZBioow0sWyVlpsy36H2Cp1EqqtS2C
 bffBFn9MgpOyMNrI34Jw==;
X-ME-Sender: <xms:eKwEZZQ_uDLYYX9wS3msfpLJFYd8qpTZC7toGGvxOh8HBYEL7didSA>
 <xme:eKwEZSwm-F2WBgENUl6iO9J4AvWFZGps2fNla6o0jGAmMPKYwRJ47e2FRk_O6THFk
 j16ZWouC-1owg>
X-ME-Received: <xmr:eKwEZe0g5ER--mc_zISBDt577lZhlIh_3uxTnuoaI0MeQeGg04mSvNZybm5xoLgkzrHwV9SMVTbxUOhU4Nqgkpj_SjTDumc>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedviedrudejvddgudefudcutefuodetggdotefrod
 ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfgh
 necuuegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmd
 enucfjughrpehffgfhvfevufffjgfkgggtsehttdertddtredtnecuhfhrohhmpefvrghs
 shhilhhoucfjohhrnhcuoehtshguhhesghhnuhdrohhrgheqnecuggftrfgrthhtvghrnh
 epudejtdehuddvleffjeekteegvdehleehvdeufefhueekkeekhedvgfeggeffvefgnecu
 vehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepthhhohhrnh
 domhgvshhmthhprghuthhhphgvrhhsohhnrghlihhthidqkeeijeefkeejkeegqdeifeeh
 vdelkedqthhsughhpeepghhnuhdrohhrghesfhgrshhtmhgrihhlrdhfmh
X-ME-Proxy: <xmx:eKwEZRBfFnBXHSZpFudUg-_8N1JPaVvx8jpBelAtGkXqKK0v7Ev-Cg>
 <xmx:eKwEZSie8pEpllUZMNB8bD8zWujVzgtusqkJGoXpjgv_zE7H9EBZPQ>
 <xmx:eKwEZVrjKxx9_84uXzJm8DeV_JU6bd3PpPwpuKD6mOJbvO0f6JLwtQ>
 <xmx:eawEZdWxxEuSH-nzncrfakvMkVcVsK-wfUi-m9g3DbsVgl3WZKbuqQ>
Feedback-ID: ib2b94485:Fastmail
References: <CADF+RtgWCLKQGwgdTNWmgesbcwq8iBxChoN8FqMOg95Ai3CYTA@HIDDEN>
 <1de34060-e93b-0a42-fff5-20e283abe0dc@HIDDEN> <87o7vq0zir.fsf@HIDDEN>
 <CADF+Rtjii7ZHkrfLzS63Yt1UiPPfnOrSsFZe2SMRetOS4w0vng@HIDDEN>
 <8735d20yvd.fsf@HIDDEN>
 <CADF+Rtgz5f6fcVuTLrv_N8oObRw+Uw-Je7bz54Gagb3pRgpR=g@HIDDEN>
 <CADwFkm=p8_Tbu+cXMDA8zEKovb+Ld7QFUJz_AhFnJebhik=JBg@HIDDEN>
 <CADF+RtjGfibN3Yg8mf4hVB9uPWtAwp0m6J2LRH7n0Z20S7+Yzg@HIDDEN>
 <CADwFkmkbMSXdjB6kF3a68_1vb4dv05_vMrKrvoX908nZJrpxOg@HIDDEN>
 <CADF+RtgxigxvgG0j6bbpYnrrFVF4YTKZ1Rs0JSCc8zuu5JNA2w@HIDDEN>
 <fcbc07cf-5ee9-131f-1a18-9cc28a5655f1@HIDDEN>
 <CADF+Rti2gSVvfksUVO04ptKQsXrNpwUXHQ_qFjC26D8NNh578A@HIDDEN>
 <2c5c8afa-b57e-3156-d21c-5523cacb4d87@HIDDEN> <831qf1mgjl.fsf@HIDDEN>
User-agent: mu4e 1.11.17; emacs 30.0.50
From: Tassilo Horn <tsdh@HIDDEN>
Date: Fri, 15 Sep 2023 20:45:45 +0200
In-reply-to: <831qf1mgjl.fsf@HIDDEN>
Message-ID: <87cyyj9rpp.fsf@HIDDEN>
MIME-Version: 1.0
Content-Type: text/plain
X-Spam-Score: -2.3 (--)
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 (---)

Eli Zaretskii <eliz@HIDDEN> writes:

Hi Eli & all, thanks for inviting me to the discussion.  I'm adding
Keita, too, because he's currently the by far most active AUCTeX
developer.

>> Do AUCTeX modes inherit from tex-mode?

Not currently but in Keita's feature/fix-mode-names-overlap branch which
will probably become AUCTeX 14, I guess.

>> Or all call tex-common-initialization? Then you could set that
>> variable locally inside that function once.

Again, not right now but probably in the future.

>> All in all, it might not be wise to modify the behavior of
>> third-party packages from inside Emacs this way (they might have
>> other expectations, or there's going to appear a new major mode that
>> needs the same treatment anyway).
>> 
>> Setting a variable to be used through mode inheritance or delegation
>> is fine, but if that doesn't help, I would probably stop at defining
>> a helper function or two and documenting how it should be used. And
>> then maybe work with AUCTeX people to get the remaining necessary
>> changes in from their side (or just leaving that up to the user,
>> depending on how functional the default config ends up being).

That sounds reasonable.

Bye,
Tassilo




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#53749: 29.0.50; [PATCH] Xref backend for TeX buffers
Resent-From: Ikumi Keita <ikumi@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Sat, 16 Sep 2023 05:54:02 +0000
Resent-Message-ID: <handler.53749.B53749.16948436098958 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 53749
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: pending patch
To: Tassilo Horn <tsdh@HIDDEN>
Cc: 53749 <at> debbugs.gnu.org, dfussner@HIDDEN, Stefan Monnier <monnier@HIDDEN>, Dmitry Gutov <dgutov@HIDDEN>, larsi@HIDDEN, Eli Zaretskii <eliz@HIDDEN>, stefankangas@HIDDEN
Received: via spool by 53749-submit <at> debbugs.gnu.org id=B53749.16948436098958
          (code B ref 53749); Sat, 16 Sep 2023 05:54:02 +0000
Received: (at 53749) by debbugs.gnu.org; 16 Sep 2023 05:53:29 +0000
Received: from localhost ([127.0.0.1]:45223 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1qhOFF-0002KQ-7T
	for submit <at> debbugs.gnu.org; Sat, 16 Sep 2023 01:53:29 -0400
Received: from smtp1a.inetd.co.jp ([210.129.88.11]:54562)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <ikumi@HIDDEN>) id 1qhOFC-0002KC-70
 for 53749 <at> debbugs.gnu.org; Sat, 16 Sep 2023 01:53:28 -0400
Received: from localhost (42-144-34-11.rev.home.ne.jp [42.144.34.11])
 by smtp1a.inetd.co.jp (Postfix) with ESMTPA id 354885C;
 Sat, 16 Sep 2023 14:53:17 +0900 (JST)
From: Ikumi Keita <ikumi@HIDDEN>
In-reply-to: <87cyyj9rpp.fsf@HIDDEN>
References: <CADF+RtgWCLKQGwgdTNWmgesbcwq8iBxChoN8FqMOg95Ai3CYTA@HIDDEN>
 <1de34060-e93b-0a42-fff5-20e283abe0dc@HIDDEN> <87o7vq0zir.fsf@HIDDEN>
 <CADF+Rtjii7ZHkrfLzS63Yt1UiPPfnOrSsFZe2SMRetOS4w0vng@HIDDEN>
 <8735d20yvd.fsf@HIDDEN>
 <CADF+Rtgz5f6fcVuTLrv_N8oObRw+Uw-Je7bz54Gagb3pRgpR=g@HIDDEN>
 <CADwFkm=p8_Tbu+cXMDA8zEKovb+Ld7QFUJz_AhFnJebhik=JBg@HIDDEN>
 <CADF+RtjGfibN3Yg8mf4hVB9uPWtAwp0m6J2LRH7n0Z20S7+Yzg@HIDDEN>
 <CADwFkmkbMSXdjB6kF3a68_1vb4dv05_vMrKrvoX908nZJrpxOg@HIDDEN>
 <CADF+RtgxigxvgG0j6bbpYnrrFVF4YTKZ1Rs0JSCc8zuu5JNA2w@HIDDEN>
 <fcbc07cf-5ee9-131f-1a18-9cc28a5655f1@HIDDEN>
 <CADF+Rti2gSVvfksUVO04ptKQsXrNpwUXHQ_qFjC26D8NNh578A@HIDDEN>
 <2c5c8afa-b57e-3156-d21c-5523cacb4d87@HIDDEN> <831qf1mgjl.fsf@HIDDEN>
 <87cyyj9rpp.fsf@HIDDEN>
Comments: In-reply-to Tassilo Horn <tsdh@HIDDEN>
 message dated "Fri, 15 Sep 2023 20:45:45 +0200."
X-Mailer: MH-E 8.6+git; nmh 1.7.1; Emacs 29.1
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-ID: <65792.1694843596.1@localhost>
Date: Sat, 16 Sep 2023 14:53:16 +0900
Message-ID: <65793.1694843596@localhost>
X-Spam-Score: 0.0 (/)
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: -1.0 (-)

Hi all,

>>>>> Tassilo Horn <tsdh@HIDDEN> writes:
>>> Do AUCTeX modes inherit from tex-mode?

> Not currently but in Keita's feature/fix-mode-names-overlap branch

Currently, no. In feater/fix-mode-names-overlap branch, the major mode
iheritance relations are:

text-mode      --+-- TeX-mode
                 +-- Texinfo-mode

TeX-mode       --+-- plain-TeX-mode
                 +-- LaTeX-mode
                 +-- ConTeXt-mode

plain-TeX-mode --+-- AmSTeX-mode
                 +-- japanese-plain-TeX-mode

LaTeX-mode     --+-- docTeX-mode
                 +-- japanese-LaTeX-mode

(There are ConTeXt-en-mode and ConTeXt-nl-mode as well, but my current
personal plain is to delete them.)

I don't think it's a good idea to inherit from tex-mode; it isn't
diffcult to change the "top" mode from text-mode with tex-mode, but in
that case LaTeX-mode can't have both built-in latex-mode and TeX-mode as
its parent mode.

(Maybe an exception is Texinfo-mode. It would make sense to have
built-in texinfo-mode as parent of Texinfo-mode. If there is a good
reason to do so, I won't object strongly.)

> which will probably become AUCTeX 14, I guess.

I hope so. :-)

>>> Or all call tex-common-initialization? Then you could set that
>>> variable locally inside that function once.

> Again, not right now but probably in the future.

Currently, they don't call tex-common-initialization, but we can do so
in TeX-mode. (But I haven't consider its pros and cons deeply yet.)

Best regards,
Ikumi Keita
#StandWithUkraine #StopWarInUkraine




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#53749: 29.0.50; [PATCH] Xref backend for TeX buffers
Resent-From: David Fussner <dfussner@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Sun, 17 Sep 2023 08:51:02 +0000
Resent-Message-ID: <handler.53749.B53749.16949406195538 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 53749
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: pending patch
To: Ikumi Keita <ikumi@HIDDEN>
Cc: 53749 <at> debbugs.gnu.org, Tassilo Horn <tsdh@HIDDEN>, Stefan Monnier <monnier@HIDDEN>, Dmitry Gutov <dgutov@HIDDEN>, larsi@HIDDEN, Eli Zaretskii <eliz@HIDDEN>, stefankangas@HIDDEN
Received: via spool by 53749-submit <at> debbugs.gnu.org id=B53749.16949406195538
          (code B ref 53749); Sun, 17 Sep 2023 08:51:02 +0000
Received: (at 53749) by debbugs.gnu.org; 17 Sep 2023 08:50:19 +0000
Received: from localhost ([127.0.0.1]:49025 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1qhnTt-0001RC-5v
	for submit <at> debbugs.gnu.org; Sun, 17 Sep 2023 04:50:19 -0400
Received: from mail-pg1-x534.google.com ([2607:f8b0:4864:20::534]:58374)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <dfussner@HIDDEN>) id 1qhnTo-0001Qs-6h
 for 53749 <at> debbugs.gnu.org; Sun, 17 Sep 2023 04:50:15 -0400
Received: by mail-pg1-x534.google.com with SMTP id
 41be03b00d2f7-577f6b414a4so2905429a12.0
 for <53749 <at> debbugs.gnu.org>; Sun, 17 Sep 2023 01:50:04 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=googlemail.com; s=20230601; t=1694940599; x=1695545399; darn=debbugs.gnu.org;
 h=cc:to:subject:message-id:date:from:in-reply-to:references
 :mime-version:from:to:cc:subject:date:message-id:reply-to;
 bh=ZSF8pGd6O/0Mqz62bpL80UTm9fkQesJznsP8QFr1pwY=;
 b=dKiqv0m7+aZ6IS3Z0O2GWx6GFiAJuwOhNtH+VIwfpkT0dIDcgLma/Bj5dc8VCppAyZ
 818Vjw5dE0yFHBGNUy1xiZRih03/2emDls+GcfupZzQnmHaVz0RT9nR+ofhzY/K/Nff/
 /oB3hxNkkBPgV8reHYRYlw43nakg/hblM+SBmhAhRdvxMMrl5UPdJcMw8atoBct6wzl4
 AfzsDfheIdHNZI7UgrWRd1UkkEXvDiWB3RM4jRIVYFoFz8+KU/wVhSmCvbGA1yGVA28K
 ORwxhCTmi9BtVlbVYEXMkIDrepujRw43OU4faskclGYThDmrCbwTIQCjAXexBAVqR2St
 ucrw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20230601; t=1694940599; x=1695545399;
 h=cc: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=ZSF8pGd6O/0Mqz62bpL80UTm9fkQesJznsP8QFr1pwY=;
 b=iMfER/GUCkRvwoBW5OtencVTBEZa3mztCs5x0kBMB/1QvqNs0y0j/Qf+dHQ+nAIiVM
 T8ZedBjAdDsfz9JteAShi7o+DpAUl+y+OL9J31BnaghEmsNOR2EBMhkRgpwzoBNQxSkx
 6HF6XeHCf30OSLDxPmem/tut+TQBSZnG5lq1n0z5p5eJj1fm7t6ViCnTpW5E3v0AWAgw
 sf1BQby1XxH+iz2wB1ccrIcKxjxYoG9PYbFgarrnqG8DO8Tq4Lhpt5EJe2kQgcS9AKW8
 4E4U5Lx7OYMZ7LDfj5SQZnt1Za3l6gWjW3e3I80XCkdh7GuFrFCh3Wut9mYIXYONAhdS
 7BZQ==
X-Gm-Message-State: AOJu0YwvFnbRt4SyZlrNAGc9Jy1//6NbYjA/ItBEUocN1eAHuSueANTU
 gWKnFmXZLtK+h9xpm30J9ulKR+OF64vLm3/qkFk=
X-Google-Smtp-Source: AGHT+IF/GM48GS+eh1ceKLKVBNRzNz0OGi+8UxLfIbaKuoyFcdE/kHtFxWMwd6EUSV+vPaoWAkcslaffGD/HNe9zKQk=
X-Received: by 2002:a17:90b:1e44:b0:263:f630:228f with SMTP id
 pi4-20020a17090b1e4400b00263f630228fmr6146624pjb.23.1694940598656; Sun, 17
 Sep 2023 01:49:58 -0700 (PDT)
MIME-Version: 1.0
References: <CADF+RtgWCLKQGwgdTNWmgesbcwq8iBxChoN8FqMOg95Ai3CYTA@HIDDEN>
 <1de34060-e93b-0a42-fff5-20e283abe0dc@HIDDEN> <87o7vq0zir.fsf@HIDDEN>
 <CADF+Rtjii7ZHkrfLzS63Yt1UiPPfnOrSsFZe2SMRetOS4w0vng@HIDDEN>
 <8735d20yvd.fsf@HIDDEN>
 <CADF+Rtgz5f6fcVuTLrv_N8oObRw+Uw-Je7bz54Gagb3pRgpR=g@HIDDEN>
 <CADwFkm=p8_Tbu+cXMDA8zEKovb+Ld7QFUJz_AhFnJebhik=JBg@HIDDEN>
 <CADF+RtjGfibN3Yg8mf4hVB9uPWtAwp0m6J2LRH7n0Z20S7+Yzg@HIDDEN>
 <CADwFkmkbMSXdjB6kF3a68_1vb4dv05_vMrKrvoX908nZJrpxOg@HIDDEN>
 <CADF+RtgxigxvgG0j6bbpYnrrFVF4YTKZ1Rs0JSCc8zuu5JNA2w@HIDDEN>
 <fcbc07cf-5ee9-131f-1a18-9cc28a5655f1@HIDDEN>
 <CADF+Rti2gSVvfksUVO04ptKQsXrNpwUXHQ_qFjC26D8NNh578A@HIDDEN>
 <2c5c8afa-b57e-3156-d21c-5523cacb4d87@HIDDEN> <831qf1mgjl.fsf@HIDDEN>
 <87cyyj9rpp.fsf@HIDDEN> <65793.1694843596@localhost>
In-Reply-To: <65793.1694843596@localhost>
From: David Fussner <dfussner@HIDDEN>
Date: Sun, 17 Sep 2023 09:49:46 +0100
Message-ID: <CADF+RtikqxOW0XpwGTWWuGNTWjz3-MWMcO6U65Tta3PJjkRXqw@HIDDEN>
Content-Type: text/plain; charset="UTF-8"
X-Spam-Score: 0.0 (/)
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: -1.0 (-)

Hi Tassilo and Keita,

Thanks for the clarifications. If you look at the current patch to
tex-mode.el, there's one function call added to TeX-mode-hook, mainly
for my own testing purposes, but no matter what the final patch looks
like it should only similarly require a single function call in an
AUCTeX hook to activate the new xref code there, along with one in
tex-common-initialization for the in-tree modes. If and when all
parties are satisfied by the patch I'll certainly be in touch with you
to find out how you'd prefer to handle activating it (or not) in
AUCTeX. The current state of affairs is a convenience for me and for
anyone else who cares to test the code.

Thanks again,

David.

On Sat, 16 Sept 2023 at 06:53, Ikumi Keita <ikumi@HIDDEN> wrote:
>
> Hi all,
>
> >>>>> Tassilo Horn <tsdh@HIDDEN> writes:
> >>> Do AUCTeX modes inherit from tex-mode?
>
> > Not currently but in Keita's feature/fix-mode-names-overlap branch
>
> Currently, no. In feater/fix-mode-names-overlap branch, the major mode
> iheritance relations are:
>
> text-mode      --+-- TeX-mode
>                  +-- Texinfo-mode
>
> TeX-mode       --+-- plain-TeX-mode
>                  +-- LaTeX-mode
>                  +-- ConTeXt-mode
>
> plain-TeX-mode --+-- AmSTeX-mode
>                  +-- japanese-plain-TeX-mode
>
> LaTeX-mode     --+-- docTeX-mode
>                  +-- japanese-LaTeX-mode
>
> (There are ConTeXt-en-mode and ConTeXt-nl-mode as well, but my current
> personal plain is to delete them.)
>
> I don't think it's a good idea to inherit from tex-mode; it isn't
> diffcult to change the "top" mode from text-mode with tex-mode, but in
> that case LaTeX-mode can't have both built-in latex-mode and TeX-mode as
> its parent mode.
>
> (Maybe an exception is Texinfo-mode. It would make sense to have
> built-in texinfo-mode as parent of Texinfo-mode. If there is a good
> reason to do so, I won't object strongly.)
>
> > which will probably become AUCTeX 14, I guess.
>
> I hope so. :-)
>
> >>> Or all call tex-common-initialization? Then you could set that
> >>> variable locally inside that function once.
>
> > Again, not right now but probably in the future.
>
> Currently, they don't call tex-common-initialization, but we can do so
> in TeX-mode. (But I haven't consider its pros and cons deeply yet.)
>
> Best regards,
> Ikumi Keita
> #StandWithUkraine #StopWarInUkraine




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#53749: 29.0.50; [PATCH] Xref backend for TeX buffers
Resent-From: Arash Esbati <arash@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Mon, 22 Apr 2024 13:07:02 +0000
Resent-Message-ID: <handler.53749.B53749.17137912151524 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 53749
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: pending patch
To: David Fussner <dfussner@HIDDEN>
Cc: 53749 <at> debbugs.gnu.org, Ikumi Keita <ikumi@HIDDEN>, Dmitry Gutov <dgutov@HIDDEN>, Stefan Monnier <monnier@HIDDEN>, Tassilo Horn <tsdh@HIDDEN>, Eli Zaretskii <eliz@HIDDEN>, stefankangas@HIDDEN
Received: via spool by 53749-submit <at> debbugs.gnu.org id=B53749.17137912151524
          (code B ref 53749); Mon, 22 Apr 2024 13:07:02 +0000
Received: (at 53749) by debbugs.gnu.org; 22 Apr 2024 13:06:55 +0000
Received: from localhost ([127.0.0.1]:45956 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1rytNm-0000OW-Il
	for submit <at> debbugs.gnu.org; Mon, 22 Apr 2024 09:06:54 -0400
Received: from eggs.gnu.org ([2001:470:142:3::10]:51338)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <arash@HIDDEN>) id 1rytNh-0000NW-GG
 for 53749 <at> debbugs.gnu.org; Mon, 22 Apr 2024 09:06:52 -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 <arash@HIDDEN>)
 id 1rytNJ-00012B-Fx; Mon, 22 Apr 2024 09:06:25 -0400
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org;
 s=fencepost-gnu-org; h=MIME-Version:Date:References:In-Reply-To:Subject:To:
 From; bh=COC37xvPPdk9JwImAhHDcJn72qW0mVzg/ChMZSUpVk4=; b=ZLPUJmCNdUdSS3z8phal
 MPW5rcFTioViFu+OVZYg+eerzBU8dgK1tkqt8v/4caKrYu1w4sQfStFjBUJl3iMeXibtjt1yz+r+z
 Qj5cxK8+rk1N8qOMnmduj2nvywFuFiRnSQ+FkFf9SLGJo7vss9TmtXh+NH5ZYkHGN7YFx5CGqvj0i
 GLgdzYje5tEd6Ij/MHvxfDujB98Fw6C4gm+HqLtEd9mUmJ1QZ7NBGvdkYzASzxlHmUXCcMAkmSh24
 BqU2MiuGiIWyy8Di/w2HxIO2ImowNXs8Julh2LdIrZoMx+dDUR87hdYx8BE14ZlEuIrqU3uvHmXYQ
 CVZ+vBWP5R0rIw==;
From: Arash Esbati <arash@HIDDEN>
In-Reply-To: <CADF+RtikqxOW0XpwGTWWuGNTWjz3-MWMcO6U65Tta3PJjkRXqw@HIDDEN>
 (David Fussner's message of "Sun, 17 Sep 2023 09:49:46 +0100")
References: <CADF+RtgWCLKQGwgdTNWmgesbcwq8iBxChoN8FqMOg95Ai3CYTA@HIDDEN>
 <1de34060-e93b-0a42-fff5-20e283abe0dc@HIDDEN>
 <87o7vq0zir.fsf@HIDDEN>
 <CADF+Rtjii7ZHkrfLzS63Yt1UiPPfnOrSsFZe2SMRetOS4w0vng@HIDDEN>
 <8735d20yvd.fsf@HIDDEN>
 <CADF+Rtgz5f6fcVuTLrv_N8oObRw+Uw-Je7bz54Gagb3pRgpR=g@HIDDEN>
 <CADwFkm=p8_Tbu+cXMDA8zEKovb+Ld7QFUJz_AhFnJebhik=JBg@HIDDEN>
 <CADF+RtjGfibN3Yg8mf4hVB9uPWtAwp0m6J2LRH7n0Z20S7+Yzg@HIDDEN>
 <CADwFkmkbMSXdjB6kF3a68_1vb4dv05_vMrKrvoX908nZJrpxOg@HIDDEN>
 <CADF+RtgxigxvgG0j6bbpYnrrFVF4YTKZ1Rs0JSCc8zuu5JNA2w@HIDDEN>
 <fcbc07cf-5ee9-131f-1a18-9cc28a5655f1@HIDDEN>
 <CADF+Rti2gSVvfksUVO04ptKQsXrNpwUXHQ_qFjC26D8NNh578A@HIDDEN>
 <2c5c8afa-b57e-3156-d21c-5523cacb4d87@HIDDEN>
 <831qf1mgjl.fsf@HIDDEN> <87cyyj9rpp.fsf@HIDDEN>
 <65793.1694843596@localhost>
 <CADF+RtikqxOW0XpwGTWWuGNTWjz3-MWMcO6U65Tta3PJjkRXqw@HIDDEN>
Date: Mon, 22 Apr 2024 15:06:06 +0200
Message-ID: <m24jbtim2p.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13)
MIME-Version: 1.0
Content-Type: text/plain
X-Spam-Score: -2.3 (--)
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 (---)

David Fussner <dfussner@HIDDEN> writes:

> Thanks for the clarifications. If you look at the current patch to
> tex-mode.el, there's one function call added to TeX-mode-hook, mainly
> for my own testing purposes, but no matter what the final patch looks
> like it should only similarly require a single function call in an
> AUCTeX hook to activate the new xref code there, along with one in
> tex-common-initialization for the in-tree modes. If and when all
> parties are satisfied by the patch I'll certainly be in touch with you
> to find out how you'd prefer to handle activating it (or not) in
> AUCTeX. The current state of affairs is a convenience for me and for
> anyone else who cares to test the code.

Hi David,

I justed wanted to come back on this report and ask if there is any
progress?  It would be nice to get Xref working within TeX buffers.

TIA.  Best, Arash




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#53749: 29.0.50; [PATCH] Xref backend for TeX buffers
Resent-From: David Fussner <dfussner@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Mon, 22 Apr 2024 14:57:03 +0000
Resent-Message-ID: <handler.53749.B53749.17137978198330 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 53749
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: pending patch
To: Arash Esbati <arash@HIDDEN>
Cc: 53749 <at> debbugs.gnu.org, Ikumi Keita <ikumi@HIDDEN>, Dmitry Gutov <dgutov@HIDDEN>, Stefan Monnier <monnier@HIDDEN>, Tassilo Horn <tsdh@HIDDEN>, Eli Zaretskii <eliz@HIDDEN>, stefankangas@HIDDEN
Received: via spool by 53749-submit <at> debbugs.gnu.org id=B53749.17137978198330
          (code B ref 53749); Mon, 22 Apr 2024 14:57:03 +0000
Received: (at 53749) by debbugs.gnu.org; 22 Apr 2024 14:56:59 +0000
Received: from localhost ([127.0.0.1]:46287 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1ryv6I-0002AI-9d
	for submit <at> debbugs.gnu.org; Mon, 22 Apr 2024 10:56:59 -0400
Received: from mail-pj1-x102a.google.com ([2607:f8b0:4864:20::102a]:42460)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <dfussner@HIDDEN>) id 1ryv6D-00029N-02
 for 53749 <at> debbugs.gnu.org; Mon, 22 Apr 2024 10:56:56 -0400
Received: by mail-pj1-x102a.google.com with SMTP id
 98e67ed59e1d1-2a55a3d0b8eso3025245a91.1
 for <53749 <at> debbugs.gnu.org>; Mon, 22 Apr 2024 07:56:36 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=googlemail.com; s=20230601; t=1713797791; x=1714402591; darn=debbugs.gnu.org;
 h=cc:to:subject:message-id:date:from:in-reply-to:references
 :mime-version:from:to:cc:subject:date:message-id:reply-to;
 bh=bDesAdu67aLrP3IjcUXxIkDFDHN2kc+f2ubt1lCxf1E=;
 b=i80gqKMCVKkGI2GfGt+2EZC55tmxSYqmmd3GUpcY6ewf4kw00HtkKXX+VoYH8D/ldR
 v+yi21Uqc68JRL9BIsidRNGukZgSweGQhcm7uav9xmlOqWjRU8Lfx9koUv8Y8BihUkeR
 pFo3V4mSM/tUkHCGxS3iif8j4bJs4eV9et4VzH/zT1QeL7LReUtX07ayxanzrhdZ35x7
 BgGUGTNy2IkzhsR5+mLc/ZhYfuKstBxm1dtYGEEevLYyLRs33lZX9pvsevfXiZIZAWhH
 JhLp7+yOWVBPRpryYdXX+Jx8CNChu8hs/HSg9BE49Ea+W7xErJY1dshgCoHjhO/0qHip
 +U2g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20230601; t=1713797791; x=1714402591;
 h=cc: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=bDesAdu67aLrP3IjcUXxIkDFDHN2kc+f2ubt1lCxf1E=;
 b=ab+NzC9iT4xkLrkuhfJkFxkIQT44/OMchPSQ3PVWlzg1hm0u4h7FnKiq6ICVBv8Rzd
 lwefEoIR3BM2bXYfPfIjUGsEqeXOCH/gM0cPM5G9rrGYmVIyoEfsrpX9MB8rQnc/7Aun
 0jkbvS8jBMKCOHE+9ojzFDdAXn5XenIA1QGHacMY3UCfcE29mfOaqTSxUeCUb2m7JLTE
 MjdzfkBs7Uir3lglAp/L/WPkeSCMl3yAWq4k8WETf4LND3Bh5o5J6OJhTtfNGSTBBS3r
 noHHj8+ZVGL68DA5PJ0Fc1Ji5b//vfDnD4HNjt7F19lGlrKD00Zq1bQ8N0vgJjAI3TSV
 KT7Q==
X-Forwarded-Encrypted: i=1;
 AJvYcCXWq1ZO2F7EMa/tmgzOpE9iKqeXlPqN6Mx07mNxlCwmNkAyrbDbZQndxOgplnFAvwt8u1VFakNmGFXS2PyBGhOlvETuTdM=
X-Gm-Message-State: AOJu0Yw9g+4CUcrS6OdZJUyUoN3RfQ3CQb+XmCVlcsHntPiHFzcFaCxU
 pM5yoLOB+WlBeOB5vAEib16VguN5oSNlWfIZgPByW/wv+zvnLJZw+0rG7TJw4s0Olze1S+fqYdg
 /kXvZ0PaedxjUlAKKS8zjyw65Mag=
X-Google-Smtp-Source: AGHT+IFIFHBzFMS7pMUY8/IFxPOKa1suVZz1BcVx/X7C52fkK2DV5oRWWO/g255ObPZSRpJbHERZIrvqU25syqVr5dU=
X-Received: by 2002:a17:90a:928d:b0:2a2:9e5d:9bf9 with SMTP id
 n13-20020a17090a928d00b002a29e5d9bf9mr18166007pjo.8.1713797790843; Mon, 22
 Apr 2024 07:56:30 -0700 (PDT)
MIME-Version: 1.0
References: <CADF+RtgWCLKQGwgdTNWmgesbcwq8iBxChoN8FqMOg95Ai3CYTA@HIDDEN>
 <1de34060-e93b-0a42-fff5-20e283abe0dc@HIDDEN> <87o7vq0zir.fsf@HIDDEN>
 <CADF+Rtjii7ZHkrfLzS63Yt1UiPPfnOrSsFZe2SMRetOS4w0vng@HIDDEN>
 <8735d20yvd.fsf@HIDDEN>
 <CADF+Rtgz5f6fcVuTLrv_N8oObRw+Uw-Je7bz54Gagb3pRgpR=g@HIDDEN>
 <CADwFkm=p8_Tbu+cXMDA8zEKovb+Ld7QFUJz_AhFnJebhik=JBg@HIDDEN>
 <CADF+RtjGfibN3Yg8mf4hVB9uPWtAwp0m6J2LRH7n0Z20S7+Yzg@HIDDEN>
 <CADwFkmkbMSXdjB6kF3a68_1vb4dv05_vMrKrvoX908nZJrpxOg@HIDDEN>
 <CADF+RtgxigxvgG0j6bbpYnrrFVF4YTKZ1Rs0JSCc8zuu5JNA2w@HIDDEN>
 <fcbc07cf-5ee9-131f-1a18-9cc28a5655f1@HIDDEN>
 <CADF+Rti2gSVvfksUVO04ptKQsXrNpwUXHQ_qFjC26D8NNh578A@HIDDEN>
 <2c5c8afa-b57e-3156-d21c-5523cacb4d87@HIDDEN> <831qf1mgjl.fsf@HIDDEN>
 <87cyyj9rpp.fsf@HIDDEN> <65793.1694843596@localhost>
 <CADF+RtikqxOW0XpwGTWWuGNTWjz3-MWMcO6U65Tta3PJjkRXqw@HIDDEN>
 <m24jbtim2p.fsf@HIDDEN>
In-Reply-To: <m24jbtim2p.fsf@HIDDEN>
From: David Fussner <dfussner@HIDDEN>
Date: Mon, 22 Apr 2024 15:56:34 +0100
Message-ID: <CADF+RtiysDPn_V=+KFKip_Owx6t1u9N4yDnBr-zyf3LiC6xZ0g@HIDDEN>
Content-Type: text/plain; charset="UTF-8"
X-Spam-Score: 0.0 (/)
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: -1.0 (-)

Hi Arash,

Thanks for the nudge. I am in fact in the final stages of preparing a
new patch to get xref working in TeX buffers. As usual, the main
complexities are in xref-find-references, and while I have you here I
wonder whether I could ask your thoughts about addressing one part of
this complexity.

The semantic/symref backend used by xref-find-references greps in
files matching the major-mode of the buffer where the user calls the
command. It looks in semantic-symref-filepattern-alist for
file-extensions matching the major-mode, and if that fails it looks in
auto-mode-alist. When both fail to produce any file extensions it
tells the user to customize semantic-symref-filepattern-alist. Also,
if it finds things in s-s-f-a, it doesn't go on to auto-mode-alist, so
s-s-f-a has to be complete in order to be useful. In effect, we need
s-s-f-a to hold all the extensions for all the modes that can appear
as values of major-mode, and I notice that AUCTeX has started to
populate that alist, though incompletely. I'm also aware that many
packages add their own extensions to files which are basically TeX or
LaTeX files, and I wonder whether we can really keep up with the whole
of CTAN in terms of providing complete lists of extensions for
s-s-f-a.

As an example of where we are, if you open a plain-tex-mode (or
plain-TeX-mode) file and M-? with point on some standard word you'll
currently get the message to customize s-s-f-a, because
auto-mode-alist has only tex-mode and s-s-f-a doesn't cover them,
either.

I ask you Arash, therefore, as an AUCTeX and emacs developer, and I
ask any other developers also, whether you'd prefer me just to put
together as complete a list as possible for addition to s-s-f-a --
with patches for AUCTeX for all the new modes there -- or, and this is
what I'm finishing up now, whether you'd consider it overkill to have
code that constructs (or modifies) entries in s-s-f-a by searching in
auto-mode-alist and in the buffer-list for all the file extensions
emacs knows about that relate to the current major-mode. Changes in
s-s-f-a wouldn't be persistent across sessions, but they would allow a
user to open a file with any file extension, run latex-mode, and M-?
would work in that buffer, and search that buffer from another buffer
with a related major-mode, all without needing any user intervention.
It would also allow customizations in auto-mode-alist to appear in
s-s-f-a automatically, which seems convenient to me.

If your answer is "show me the code", I'll do that shortly, but I
wondered whether anyone had any preliminary thoughts on the matter.

Best, and sorry for the long question,

David.

On Mon, 22 Apr 2024 at 14:06, Arash Esbati <arash@HIDDEN> wrote:
>
> David Fussner <dfussner@HIDDEN> writes:
>
> > Thanks for the clarifications. If you look at the current patch to
> > tex-mode.el, there's one function call added to TeX-mode-hook, mainly
> > for my own testing purposes, but no matter what the final patch looks
> > like it should only similarly require a single function call in an
> > AUCTeX hook to activate the new xref code there, along with one in
> > tex-common-initialization for the in-tree modes. If and when all
> > parties are satisfied by the patch I'll certainly be in touch with you
> > to find out how you'd prefer to handle activating it (or not) in
> > AUCTeX. The current state of affairs is a convenience for me and for
> > anyone else who cares to test the code.
>
> Hi David,
>
> I justed wanted to come back on this report and ask if there is any
> progress?  It would be nice to get Xref working within TeX buffers.
>
> TIA.  Best, Arash




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#53749: 29.0.50; [PATCH] Xref backend for TeX buffers
Resent-From: Stefan Monnier <monnier@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Mon, 22 Apr 2024 16:16:02 +0000
Resent-Message-ID: <handler.53749.B53749.17138025388701 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 53749
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: pending patch
To: David Fussner <dfussner@HIDDEN>
Cc: 53749 <at> debbugs.gnu.org, Ikumi Keita <ikumi@HIDDEN>, Dmitry Gutov <dgutov@HIDDEN>, Arash Esbati <arash@HIDDEN>, stefankangas@HIDDEN, Tassilo Horn <tsdh@HIDDEN>, Eli Zaretskii <eliz@HIDDEN>
Received: via spool by 53749-submit <at> debbugs.gnu.org id=B53749.17138025388701
          (code B ref 53749); Mon, 22 Apr 2024 16:16:02 +0000
Received: (at 53749) by debbugs.gnu.org; 22 Apr 2024 16:15:38 +0000
Received: from localhost ([127.0.0.1]:46627 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1rywKQ-0002GH-GL
	for submit <at> debbugs.gnu.org; Mon, 22 Apr 2024 12:15:38 -0400
Received: from mailscanner.iro.umontreal.ca ([132.204.25.50]:63657)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <monnier@HIDDEN>) id 1rywKN-0002F7-Av
 for 53749 <at> debbugs.gnu.org; Mon, 22 Apr 2024 12:15:37 -0400
Received: from pmg3.iro.umontreal.ca (localhost [127.0.0.1])
 by pmg3.iro.umontreal.ca (Proxmox) with ESMTP id C599F4413BE;
 Mon, 22 Apr 2024 12:15:12 -0400 (EDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=iro.umontreal.ca;
 s=mail; t=1713802511;
 bh=EiMlp8ZZ62dPhHQvc0nMF+dmAiyfVGt/wtYQkItVhtk=;
 h=From:To:Cc:Subject:In-Reply-To:References:Date:From;
 b=n+M3uskcYdQPMzVAqMKINfDwpCasaOKM0p/2eZsn4GDurRa6QzOEc/Ve1jR2t2eJK
 QuQHe/KMseTjDZgJ+en+nU/EOjx0zNjjXIYK9aVgPC0WZzz3VlkZjm3/JgD7NGCuhZ
 iJBfTJATthKi2623eo18K9C59IGrvZOlrfhy7S8yd8MekHzF61nTlHFH+AKEQ69a+T
 NsLylqSQAxUARpMUpOahwpATu9td87/tKbrCR01jUdK1NVlmnhkoNW1jP0JaReJF8E
 R+CfhJQDBa4brvc+1VBZeoVV3vTnTfuGptRKkAStLWLdDAsI8uxbPShJSZtf0XZ5cg
 +3j3CHyAxMOWw==
Received: from mail01.iro.umontreal.ca (unknown [172.31.2.1])
 by pmg3.iro.umontreal.ca (Proxmox) with ESMTP id 1CC94441394;
 Mon, 22 Apr 2024 12:15:11 -0400 (EDT)
Received: from pastel (unknown [45.72.201.215])
 by mail01.iro.umontreal.ca (Postfix) with ESMTPSA id C585C1202CB;
 Mon, 22 Apr 2024 12:15:10 -0400 (EDT)
From: Stefan Monnier <monnier@HIDDEN>
In-Reply-To: <CADF+RtiysDPn_V=+KFKip_Owx6t1u9N4yDnBr-zyf3LiC6xZ0g@HIDDEN>
 (David Fussner's message of "Mon, 22 Apr 2024 15:56:34 +0100")
Message-ID: <jwvbk61l6o9.fsf-monnier+emacs@HIDDEN>
References: <CADF+RtgWCLKQGwgdTNWmgesbcwq8iBxChoN8FqMOg95Ai3CYTA@HIDDEN>
 <1de34060-e93b-0a42-fff5-20e283abe0dc@HIDDEN>
 <87o7vq0zir.fsf@HIDDEN>
 <CADF+Rtjii7ZHkrfLzS63Yt1UiPPfnOrSsFZe2SMRetOS4w0vng@HIDDEN>
 <8735d20yvd.fsf@HIDDEN>
 <CADF+Rtgz5f6fcVuTLrv_N8oObRw+Uw-Je7bz54Gagb3pRgpR=g@HIDDEN>
 <CADwFkm=p8_Tbu+cXMDA8zEKovb+Ld7QFUJz_AhFnJebhik=JBg@HIDDEN>
 <CADF+RtjGfibN3Yg8mf4hVB9uPWtAwp0m6J2LRH7n0Z20S7+Yzg@HIDDEN>
 <CADwFkmkbMSXdjB6kF3a68_1vb4dv05_vMrKrvoX908nZJrpxOg@HIDDEN>
 <CADF+RtgxigxvgG0j6bbpYnrrFVF4YTKZ1Rs0JSCc8zuu5JNA2w@HIDDEN>
 <fcbc07cf-5ee9-131f-1a18-9cc28a5655f1@HIDDEN>
 <CADF+Rti2gSVvfksUVO04ptKQsXrNpwUXHQ_qFjC26D8NNh578A@HIDDEN>
 <2c5c8afa-b57e-3156-d21c-5523cacb4d87@HIDDEN>
 <831qf1mgjl.fsf@HIDDEN> <87cyyj9rpp.fsf@HIDDEN>
 <65793.1694843596@localhost>
 <CADF+RtikqxOW0XpwGTWWuGNTWjz3-MWMcO6U65Tta3PJjkRXqw@HIDDEN>
 <m24jbtim2p.fsf@HIDDEN>
 <CADF+RtiysDPn_V=+KFKip_Owx6t1u9N4yDnBr-zyf3LiC6xZ0g@HIDDEN>
Date: Mon, 22 Apr 2024 12:15:09 -0400
User-Agent: Gnus/5.13 (Gnus v5.13)
MIME-Version: 1.0
Content-Type: text/plain
X-SPAM-INFO: Spam detection results:  0
 ALL_TRUSTED                -1 Passed through trusted hosts only via SMTP
 AWL -0.012 Adjusted score from AWL reputation of From: address
 BAYES_00                 -1.9 Bayes spam probability is 0 to 1%
 DKIM_SIGNED               0.1 Message has a DKIM or DK signature,
 not necessarily valid
 DKIM_VALID -0.1 Message has at least one valid DKIM or DK signature
 DKIM_VALID_AU -0.1 Message has a valid DKIM or DK signature from author's
 domain
 DKIM_VALID_EF -0.1 Message has a valid DKIM or DK signature from envelope-from
 domain
X-SPAM-LEVEL: 
X-Spam-Score: -2.3 (--)
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 (---)

> auto-mode-alist. When both fail to produce any file extensions it
> tells the user to customize semantic-symref-filepattern-alist.

Yes, this is not ideal.

I think ideally we'd build a regexp from `auto-mode-alist` and
`major-mode-remap-alist/defaults`, tho it may require additional info.

E.g. we may need to complement that with additional "related modes"
(e.g. html modes may want to mention `php-mode` as "related").


        Stefan





Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#53749: 29.0.50; [PATCH] Xref backend for TeX buffers
Resent-From: David Fussner <dfussner@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Mon, 22 Apr 2024 16:38:03 +0000
Resent-Message-ID: <handler.53749.B53749.171380386017457 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 53749
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: pending patch
To: Stefan Monnier <monnier@HIDDEN>
Cc: 53749 <at> debbugs.gnu.org, Ikumi Keita <ikumi@HIDDEN>, Dmitry Gutov <dgutov@HIDDEN>, Arash Esbati <arash@HIDDEN>, stefankangas@HIDDEN, Tassilo Horn <tsdh@HIDDEN>, Eli Zaretskii <eliz@HIDDEN>
Received: via spool by 53749-submit <at> debbugs.gnu.org id=B53749.171380386017457
          (code B ref 53749); Mon, 22 Apr 2024 16:38:03 +0000
Received: (at 53749) by debbugs.gnu.org; 22 Apr 2024 16:37:40 +0000
Received: from localhost ([127.0.0.1]:46734 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1rywfi-0004XM-Mv
	for submit <at> debbugs.gnu.org; Mon, 22 Apr 2024 12:37:40 -0400
Received: from mail-pg1-x52f.google.com ([2607:f8b0:4864:20::52f]:47339)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <dfussner@HIDDEN>) id 1rywfg-0004WI-4H
 for 53749 <at> debbugs.gnu.org; Mon, 22 Apr 2024 12:37:37 -0400
Received: by mail-pg1-x52f.google.com with SMTP id
 41be03b00d2f7-5dca1efad59so3359172a12.2
 for <53749 <at> debbugs.gnu.org>; Mon, 22 Apr 2024 09:37:19 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=googlemail.com; s=20230601; t=1713803834; x=1714408634; darn=debbugs.gnu.org;
 h=cc:to:subject:message-id:date:from:in-reply-to:references
 :mime-version:from:to:cc:subject:date:message-id:reply-to;
 bh=nHw9F+nbcZCCdzuHnnzxs26k60Bn/+oO4uktZBzrf58=;
 b=c81ZwQvzqdL1BKUyRqN3B6hLCb0Wx5JlWPNGk6ChmuMVOOZiU3qD3L7hRq5LxcdHjJ
 /zogIYPAG6R9neB5qGKmmpcmQ15d1IHIbmjYeIXWIWkz52VpHMnkv42H+LTWT3GhZTZd
 Hyp9lBcgEpTbJBS1rD/aKgOL8iHvudLJ5uHdMkKxciDS4Vpv4Uv9lo5FAHVSFGdCMKMZ
 1d2VC0G8gxyZnXBeYVylCkjyBuxuNc1Y977kBCrXNNHUiYdb0v1mzY85oycsLSsVmQdT
 si8SrGzUNuqrQkTYZmP4MooaXx5TfcXpuGjynEdV1jcxZzTSe7CQvlJnvIwUzfXSMZOj
 udgw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20230601; t=1713803834; x=1714408634;
 h=cc: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=nHw9F+nbcZCCdzuHnnzxs26k60Bn/+oO4uktZBzrf58=;
 b=BFYvIbxex+bpayKTxjXLjhovNFc0cAq88xCGN+ywfzxPpUeFLZoJtvUauEi0NnwmAg
 A1bPVufNkXDyjWvhXst+DyIqR5F2b+JqDGLcoG4ULCPD/mm+thmVYVLBfI84oviV0TCy
 7gZKWrFdRz/ONnUYRNzXKKj0KDpKGNsHDoIwtq7yZ5Mg/osyXPjz+rrNEQa1f4CnJ6s9
 5nU2JTqtK5DtfLZBbIdG40gpmgI6oQvrGKiyWzpVqdZ/wuHzlvAcMCKf4RiAwr3mWXE5
 2uP3cbvs/XrFL4wNRqTS6q5tDCw4dRZsjm6TzywMODdtQMzBq9vwBzHIapoyNSp7wV+j
 V/9g==
X-Forwarded-Encrypted: i=1;
 AJvYcCWNUL8clJKuuZvX1BofSRTi0mYgrO8tCYmguSYGqOmy0v4m2lfLXihsIFv2MQNSdkvcyMTqHb5ELWfFg+EZ3Pjt7F9a2ZQ=
X-Gm-Message-State: AOJu0YybV9R/VlNoPQTe2+2NyUj/kf5YElBGClm/trax8zmCexfxD6Nu
 wdNZqM/6Uabr0c2/5Is+MJFE1pwIzmHaXOY1aGZ3oJRyXHlqNr+aPSqG2KnWcbZ7LWcF+s5dDj8
 mV2FhWIOZGMKiZKZRVuVhkCDX9xs=
X-Google-Smtp-Source: AGHT+IHFXGTDWjqGW+TL9o+BbAZJzo8ZqjmEW1yl8/4FVZ6G8/NZrXf3lxlSzsG4GLWfnh+JJiLAADf5O4uQwefuvFw=
X-Received: by 2002:a17:90b:374f:b0:2ae:78cd:59fe with SMTP id
 ne15-20020a17090b374f00b002ae78cd59femr859357pjb.31.1713803834090; Mon, 22
 Apr 2024 09:37:14 -0700 (PDT)
MIME-Version: 1.0
References: <CADF+RtgWCLKQGwgdTNWmgesbcwq8iBxChoN8FqMOg95Ai3CYTA@HIDDEN>
 <1de34060-e93b-0a42-fff5-20e283abe0dc@HIDDEN> <87o7vq0zir.fsf@HIDDEN>
 <CADF+Rtjii7ZHkrfLzS63Yt1UiPPfnOrSsFZe2SMRetOS4w0vng@HIDDEN>
 <8735d20yvd.fsf@HIDDEN>
 <CADF+Rtgz5f6fcVuTLrv_N8oObRw+Uw-Je7bz54Gagb3pRgpR=g@HIDDEN>
 <CADwFkm=p8_Tbu+cXMDA8zEKovb+Ld7QFUJz_AhFnJebhik=JBg@HIDDEN>
 <CADF+RtjGfibN3Yg8mf4hVB9uPWtAwp0m6J2LRH7n0Z20S7+Yzg@HIDDEN>
 <CADwFkmkbMSXdjB6kF3a68_1vb4dv05_vMrKrvoX908nZJrpxOg@HIDDEN>
 <CADF+RtgxigxvgG0j6bbpYnrrFVF4YTKZ1Rs0JSCc8zuu5JNA2w@HIDDEN>
 <fcbc07cf-5ee9-131f-1a18-9cc28a5655f1@HIDDEN>
 <CADF+Rti2gSVvfksUVO04ptKQsXrNpwUXHQ_qFjC26D8NNh578A@HIDDEN>
 <2c5c8afa-b57e-3156-d21c-5523cacb4d87@HIDDEN> <831qf1mgjl.fsf@HIDDEN>
 <87cyyj9rpp.fsf@HIDDEN> <65793.1694843596@localhost>
 <CADF+RtikqxOW0XpwGTWWuGNTWjz3-MWMcO6U65Tta3PJjkRXqw@HIDDEN>
 <m24jbtim2p.fsf@HIDDEN>
 <CADF+RtiysDPn_V=+KFKip_Owx6t1u9N4yDnBr-zyf3LiC6xZ0g@HIDDEN>
 <jwvbk61l6o9.fsf-monnier+emacs@HIDDEN>
In-Reply-To: <jwvbk61l6o9.fsf-monnier+emacs@HIDDEN>
From: David Fussner <dfussner@HIDDEN>
Date: Mon, 22 Apr 2024 17:37:18 +0100
Message-ID: <CADF+RtimAoDGFxnWuKMb19RQLTBABtDZ=m=mZe9wFMd26mSi2A@HIDDEN>
Content-Type: text/plain; charset="UTF-8"
X-Spam-Score: 0.0 (/)
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: -1.0 (-)

Thank you, Stefan -- I didn't know about
major-mode-remap-alist/defaults. Do you think TeX and friends are
handled by emacs distinctively enough to warrant keeping some
specialist extension-handling code in tex-mode.el, or do you think
some changes should be more generally available, in grep.el, say? (I'm
wondering whether it might be useful, for example, for
semantic-symref-derive-find-filepatterns to add extensions from
auto-mode-alist even when some extensions are found in
semantic-symref-filepattern-alist.)

David.

On Mon, 22 Apr 2024 at 17:15, Stefan Monnier <monnier@HIDDEN> wrote:
>
> > auto-mode-alist. When both fail to produce any file extensions it
> > tells the user to customize semantic-symref-filepattern-alist.
>
> Yes, this is not ideal.
>
> I think ideally we'd build a regexp from `auto-mode-alist` and
> `major-mode-remap-alist/defaults`, tho it may require additional info.
>
> E.g. we may need to complement that with additional "related modes"
> (e.g. html modes may want to mention `php-mode` as "related").
>
>
>         Stefan
>




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#53749: 29.0.50; [PATCH] Xref backend for TeX buffers
Resent-From: Stefan Monnier <monnier@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Mon, 22 Apr 2024 17:17:02 +0000
Resent-Message-ID: <handler.53749.B53749.17138062161754 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 53749
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: pending patch
To: David Fussner <dfussner@HIDDEN>
Cc: 53749 <at> debbugs.gnu.org, Ikumi Keita <ikumi@HIDDEN>, Dmitry Gutov <dgutov@HIDDEN>, Arash Esbati <arash@HIDDEN>, stefankangas@HIDDEN, Tassilo Horn <tsdh@HIDDEN>, Eli Zaretskii <eliz@HIDDEN>
Received: via spool by 53749-submit <at> debbugs.gnu.org id=B53749.17138062161754
          (code B ref 53749); Mon, 22 Apr 2024 17:17:02 +0000
Received: (at 53749) by debbugs.gnu.org; 22 Apr 2024 17:16:56 +0000
Received: from localhost ([127.0.0.1]:46898 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1ryxHj-0000SE-O1
	for submit <at> debbugs.gnu.org; Mon, 22 Apr 2024 13:16:55 -0400
Received: from mailscanner.iro.umontreal.ca ([132.204.25.50]:3957)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <monnier@HIDDEN>) id 1ryxHg-0000RK-S3
 for 53749 <at> debbugs.gnu.org; Mon, 22 Apr 2024 13:16:54 -0400
Received: from pmg1.iro.umontreal.ca (localhost.localdomain [127.0.0.1])
 by pmg1.iro.umontreal.ca (Proxmox) with ESMTP id 229D5100170;
 Mon, 22 Apr 2024 13:16:31 -0400 (EDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=iro.umontreal.ca;
 s=mail; t=1713806190;
 bh=NLvuOgorwlEQ1UtQTLxY1DTD3RUrejOcZ4oFvQ57bFI=;
 h=From:To:Cc:Subject:In-Reply-To:References:Date:From;
 b=GKkFqoimsIzFggSA3lKwHZ7j9UoXDQTBc3BODwIWffpgzq40/rfm/8CTSl5Rgjndr
 5RBZ7I0D/xiyOm2dle8xM6gcOkbbLqAsCIjdhka5kyrdKSpmNNZzGPsAaKRfA4Sn5E
 0SXYYhp7AKlUBgvHhQPsU8N15YEGnKbmI6cWIdEU1apzGb5G0Udjcbnk9f0w6nwyhD
 nPQBkebFNpNadGuctQ9ueOE/7b+oLTGz7rw3b5Xt21Fzw3IkxCbaendn++xXaFvZNx
 hXg0/2xi8YY5r5Tm9efkMmbWMsz6zFMSLxD446zm8ZKcyxu3r9tA462sPk3Qt0TTtD
 y1kMb7L/ymV0g==
Received: from mail01.iro.umontreal.ca (unknown [172.31.2.1])
 by pmg1.iro.umontreal.ca (Proxmox) with ESMTP id 3102010002E;
 Mon, 22 Apr 2024 13:16:30 -0400 (EDT)
Received: from pastel (unknown [45.72.201.215])
 by mail01.iro.umontreal.ca (Postfix) with ESMTPSA id DBECA120588;
 Mon, 22 Apr 2024 13:16:29 -0400 (EDT)
From: Stefan Monnier <monnier@HIDDEN>
In-Reply-To: <CADF+RtimAoDGFxnWuKMb19RQLTBABtDZ=m=mZe9wFMd26mSi2A@HIDDEN>
 (David Fussner's message of "Mon, 22 Apr 2024 17:37:18 +0100")
Message-ID: <jwv5xw9l3ty.fsf-monnier+emacs@HIDDEN>
References: <CADF+RtgWCLKQGwgdTNWmgesbcwq8iBxChoN8FqMOg95Ai3CYTA@HIDDEN>
 <1de34060-e93b-0a42-fff5-20e283abe0dc@HIDDEN>
 <87o7vq0zir.fsf@HIDDEN>
 <CADF+Rtjii7ZHkrfLzS63Yt1UiPPfnOrSsFZe2SMRetOS4w0vng@HIDDEN>
 <8735d20yvd.fsf@HIDDEN>
 <CADF+Rtgz5f6fcVuTLrv_N8oObRw+Uw-Je7bz54Gagb3pRgpR=g@HIDDEN>
 <CADwFkm=p8_Tbu+cXMDA8zEKovb+Ld7QFUJz_AhFnJebhik=JBg@HIDDEN>
 <CADF+RtjGfibN3Yg8mf4hVB9uPWtAwp0m6J2LRH7n0Z20S7+Yzg@HIDDEN>
 <CADwFkmkbMSXdjB6kF3a68_1vb4dv05_vMrKrvoX908nZJrpxOg@HIDDEN>
 <CADF+RtgxigxvgG0j6bbpYnrrFVF4YTKZ1Rs0JSCc8zuu5JNA2w@HIDDEN>
 <fcbc07cf-5ee9-131f-1a18-9cc28a5655f1@HIDDEN>
 <CADF+Rti2gSVvfksUVO04ptKQsXrNpwUXHQ_qFjC26D8NNh578A@HIDDEN>
 <2c5c8afa-b57e-3156-d21c-5523cacb4d87@HIDDEN>
 <831qf1mgjl.fsf@HIDDEN> <87cyyj9rpp.fsf@HIDDEN>
 <65793.1694843596@localhost>
 <CADF+RtikqxOW0XpwGTWWuGNTWjz3-MWMcO6U65Tta3PJjkRXqw@HIDDEN>
 <m24jbtim2p.fsf@HIDDEN>
 <CADF+RtiysDPn_V=+KFKip_Owx6t1u9N4yDnBr-zyf3LiC6xZ0g@HIDDEN>
 <jwvbk61l6o9.fsf-monnier+emacs@HIDDEN>
 <CADF+RtimAoDGFxnWuKMb19RQLTBABtDZ=m=mZe9wFMd26mSi2A@HIDDEN>
Date: Mon, 22 Apr 2024 13:16:28 -0400
User-Agent: Gnus/5.13 (Gnus v5.13)
MIME-Version: 1.0
Content-Type: text/plain
X-SPAM-INFO: Spam detection results:  0
 ALL_TRUSTED                -1 Passed through trusted hosts only via SMTP
 AWL 0.060 Adjusted score from AWL reputation of From: address
 BAYES_00                 -1.9 Bayes spam probability is 0 to 1%
 DKIM_SIGNED               0.1 Message has a DKIM or DK signature,
 not necessarily valid
 DKIM_VALID -0.1 Message has at least one valid DKIM or DK signature
 DKIM_VALID_AU -0.1 Message has a valid DKIM or DK signature from author's
 domain
 DKIM_VALID_EF -0.1 Message has a valid DKIM or DK signature from envelope-from
 domain
X-SPAM-LEVEL: 
X-Spam-Score: -2.3 (--)
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 (---)

> (I'm wondering whether it might be useful, for example, for
> semantic-symref-derive-find-filepatterns to add extensions from
> auto-mode-alist even when some extensions are found in
> semantic-symref-filepattern-alist.)

Assuming we can get good enough results from `auto-mode-alist and
friends, I think we'd want to mark `semantic-symref-filepattern-alist`
as obsolete.
But before that, we need to check the assumption.

In the short term, for AUCTeX the only workable option seems to be to
add entries to `semantic-symref-filepattern-alist`.


        Stefan





Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#53749: 29.0.50; [PATCH] Xref backend for TeX buffers
Resent-From: David Fussner <dfussner@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Mon, 22 Apr 2024 17:27:01 +0000
Resent-Message-ID: <handler.53749.B53749.17138067885540 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 53749
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: pending patch
To: Stefan Monnier <monnier@HIDDEN>
Cc: 53749 <at> debbugs.gnu.org, Ikumi Keita <ikumi@HIDDEN>, Dmitry Gutov <dgutov@HIDDEN>, Arash Esbati <arash@HIDDEN>, Stefan Kangas <stefankangas@HIDDEN>, Tassilo Horn <tsdh@HIDDEN>, Eli Zaretskii <eliz@HIDDEN>
Received: via spool by 53749-submit <at> debbugs.gnu.org id=B53749.17138067885540
          (code B ref 53749); Mon, 22 Apr 2024 17:27:01 +0000
Received: (at 53749) by debbugs.gnu.org; 22 Apr 2024 17:26:28 +0000
Received: from localhost ([127.0.0.1]:46936 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1ryxQx-0001RI-Q6
	for submit <at> debbugs.gnu.org; Mon, 22 Apr 2024 13:26:28 -0400
Received: from mail-pj1-x102f.google.com ([2607:f8b0:4864:20::102f]:53466)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <dfussner@HIDDEN>) id 1ryxQu-0001Q6-9q
 for 53749 <at> debbugs.gnu.org; Mon, 22 Apr 2024 13:26:25 -0400
Received: by mail-pj1-x102f.google.com with SMTP id
 98e67ed59e1d1-2a519ac18b3so3256774a91.2
 for <53749 <at> debbugs.gnu.org>; Mon, 22 Apr 2024 10:26:08 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=googlemail.com; s=20230601; t=1713806762; x=1714411562; darn=debbugs.gnu.org;
 h=cc:to:subject:message-id:date:from:in-reply-to:references
 :mime-version:from:to:cc:subject:date:message-id:reply-to;
 bh=LUmRgCy0KAf/dzyt0y5rco+y/SBEk2lsSh2UpvmvB0M=;
 b=B6GYc5ipLDdJwc3rx4kH+T7F1MBozeWP3vUgkBDJ1uRrc1F5BuSZZQFxUGnJEGEEkF
 sMiuI9ccgq3K37vtgFruDzA1K0Ank/6Y4zGhRbOJcxoOTrCUHdvnQwiyFwqKW0wCqxWC
 5h5GXANpOM/gj4kWbqBXfrLum0tjpvuAOYOXbTzCLwlDZWbJxOnuEImGvUqrow15qEZa
 lkP39ZfaIaT837EJhfp/ry3SXOY70q5+ugQAImgyspOgPn8noB9fGmeo1QjnQPwyZpHl
 KwOzYaGVt8l+M609frDVWSiHx2rGSRM5pHf+paVfLDME0OvLk1pIbBfCWKaOAfW/MgPE
 fdUw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20230601; t=1713806762; x=1714411562;
 h=cc: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=LUmRgCy0KAf/dzyt0y5rco+y/SBEk2lsSh2UpvmvB0M=;
 b=pIDw3LypLGCFhb4scOKpXrmSIbxNg8clkbCsEIOis6LmAdIIPEl6z28EY/31q6Nqck
 8bS2pkKl7DUizlEmBL2OexX4FTG+N2SGLLwnS2J7cY1WBrUWw0VitlQX8Rzn5sqBvUeC
 ffNuVD2eDBVn1r/vH3oXoAJktClBfr98FFDdktX9iqQNHBTcmQhvhsGK1TnBkg/Oo2cn
 jjCQ3Nk6g8s7X8i/HmqeGoAYGwRF1GumUF9ndvC2RMq53BEr4bTGJxbA+mf4eekrHeWV
 1CnLtXJQZ1BOz77Qy1DOmLXlvMIVXIz9QC5EvrNnHL7XHefJOx3pbnGX0OnaKoTsPOoy
 vM4Q==
X-Forwarded-Encrypted: i=1;
 AJvYcCVndHTx444Kdn+soZpR8uEDf2Cilj9lNZEAjDPcyMkDI39vx+Xs+cBoNPdExH/KVDFrM4cg/hwW6Meusp91yrl7HVWPdig=
X-Gm-Message-State: AOJu0Yx3jLnGhpBXSPX6Mqz1xutvGlfXHSroAuq1KMJS43ejcc1l3K9h
 Qvc8x4A0bSp6efNy0la6DucQNEcRPP+AJgTUP8cehAf/lZ/v5AQZBTQTBW333CLSTaO5NU/lcV+
 bCsvOIWXp/H/deqJRyALfc8CgGmU=
X-Google-Smtp-Source: AGHT+IGG8qb06X/KcACql4p45W00BJK1w9xutDhj2RUr24EkbFTj1zW3esBLO0a/nBR3pxvAdr3ERY8y2toFaemSc1Y=
X-Received: by 2002:a17:90a:101:b0:2ad:dfe4:fa6a with SMTP id
 b1-20020a17090a010100b002addfe4fa6amr3035521pjb.12.1713806762302; Mon, 22 Apr
 2024 10:26:02 -0700 (PDT)
MIME-Version: 1.0
References: <CADF+RtgWCLKQGwgdTNWmgesbcwq8iBxChoN8FqMOg95Ai3CYTA@HIDDEN>
 <1de34060-e93b-0a42-fff5-20e283abe0dc@HIDDEN> <87o7vq0zir.fsf@HIDDEN>
 <CADF+Rtjii7ZHkrfLzS63Yt1UiPPfnOrSsFZe2SMRetOS4w0vng@HIDDEN>
 <8735d20yvd.fsf@HIDDEN>
 <CADF+Rtgz5f6fcVuTLrv_N8oObRw+Uw-Je7bz54Gagb3pRgpR=g@HIDDEN>
 <CADwFkm=p8_Tbu+cXMDA8zEKovb+Ld7QFUJz_AhFnJebhik=JBg@HIDDEN>
 <CADF+RtjGfibN3Yg8mf4hVB9uPWtAwp0m6J2LRH7n0Z20S7+Yzg@HIDDEN>
 <CADwFkmkbMSXdjB6kF3a68_1vb4dv05_vMrKrvoX908nZJrpxOg@HIDDEN>
 <CADF+RtgxigxvgG0j6bbpYnrrFVF4YTKZ1Rs0JSCc8zuu5JNA2w@HIDDEN>
 <fcbc07cf-5ee9-131f-1a18-9cc28a5655f1@HIDDEN>
 <CADF+Rti2gSVvfksUVO04ptKQsXrNpwUXHQ_qFjC26D8NNh578A@HIDDEN>
 <2c5c8afa-b57e-3156-d21c-5523cacb4d87@HIDDEN> <831qf1mgjl.fsf@HIDDEN>
 <87cyyj9rpp.fsf@HIDDEN> <65793.1694843596@localhost>
 <CADF+RtikqxOW0XpwGTWWuGNTWjz3-MWMcO6U65Tta3PJjkRXqw@HIDDEN>
 <m24jbtim2p.fsf@HIDDEN>
 <CADF+RtiysDPn_V=+KFKip_Owx6t1u9N4yDnBr-zyf3LiC6xZ0g@HIDDEN>
 <jwvbk61l6o9.fsf-monnier+emacs@HIDDEN>
 <CADF+RtimAoDGFxnWuKMb19RQLTBABtDZ=m=mZe9wFMd26mSi2A@HIDDEN>
 <jwv5xw9l3ty.fsf-monnier+emacs@HIDDEN>
In-Reply-To: <jwv5xw9l3ty.fsf-monnier+emacs@HIDDEN>
From: David Fussner <dfussner@HIDDEN>
Date: Mon, 22 Apr 2024 18:25:50 +0100
Message-ID: <CADF+RtiMWCOP_Ez4KrC-P+0QKSp0RqLZxTXEqDLhjEooH7sepA@HIDDEN>
Content-Type: multipart/alternative; boundary="00000000000047e5170616b2bbb9"
X-Spam-Score: 0.0 (/)
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: -1.0 (-)

--00000000000047e5170616b2bbb9
Content-Type: text/plain; charset="UTF-8"

Thank you. I hope one or two others might join in, but I'll have some code
to look over in a few days, in any case.

David.

On Mon, 22 Apr 2024, 18:16 Stefan Monnier, <monnier@HIDDEN> wrote:

> > (I'm wondering whether it might be useful, for example, for
> > semantic-symref-derive-find-filepatterns to add extensions from
> > auto-mode-alist even when some extensions are found in
> > semantic-symref-filepattern-alist.)
>
> Assuming we can get good enough results from `auto-mode-alist and
> friends, I think we'd want to mark `semantic-symref-filepattern-alist`
> as obsolete.
> But before that, we need to check the assumption.
>
> In the short term, for AUCTeX the only workable option seems to be to
> add entries to `semantic-symref-filepattern-alist`.
>
>
>         Stefan
>
>

--00000000000047e5170616b2bbb9
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"auto">Thank you. I hope one or two others might join in, but I&=
#39;ll have some code to look over in a few days, in any case.=C2=A0<div di=
r=3D"auto"><br></div><div dir=3D"auto">David.=C2=A0</div></div><br><div cla=
ss=3D"gmail_quote"><div dir=3D"ltr" class=3D"gmail_attr">On Mon, 22 Apr 202=
4, 18:16 Stefan Monnier, &lt;<a href=3D"mailto:monnier@HIDDEN">mo=
nnier@HIDDEN</a>&gt; wrote:<br></div><blockquote class=3D"gmail_q=
uote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1e=
x">&gt; (I&#39;m wondering whether it might be useful, for example, for<br>
&gt; semantic-symref-derive-find-filepatterns to add extensions from<br>
&gt; auto-mode-alist even when some extensions are found in<br>
&gt; semantic-symref-filepattern-alist.)<br>
<br>
Assuming we can get good enough results from `auto-mode-alist and<br>
friends, I think we&#39;d want to mark `semantic-symref-filepattern-alist`<=
br>
as obsolete.<br>
But before that, we need to check the assumption.<br>
<br>
In the short term, for AUCTeX the only workable option seems to be to<br>
add entries to `semantic-symref-filepattern-alist`.<br>
<br>
<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 Stefan<br>
<br>
</blockquote></div>

--00000000000047e5170616b2bbb9--




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#53749: 29.0.50; [PATCH] Xref backend for TeX buffers
Resent-From: Arash Esbati <arash@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Tue, 23 Apr 2024 12:06:08 +0000
Resent-Message-ID: <handler.53749.B53749.17138739247129 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 53749
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: pending patch
To: David Fussner <dfussner@HIDDEN>
Cc: 53749 <at> debbugs.gnu.org, Ikumi Keita <ikumi@HIDDEN>, Dmitry Gutov <dgutov@HIDDEN>, Stefan Monnier <monnier@HIDDEN>, Tassilo Horn <tsdh@HIDDEN>, Eli Zaretskii <eliz@HIDDEN>, stefankangas@HIDDEN
Received: via spool by 53749-submit <at> debbugs.gnu.org id=B53749.17138739247129
          (code B ref 53749); Tue, 23 Apr 2024 12:06:08 +0000
Received: (at 53749) by debbugs.gnu.org; 23 Apr 2024 12:05:24 +0000
Received: from localhost ([127.0.0.1]:51760 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1rzEth-0001q0-1a
	for submit <at> debbugs.gnu.org; Tue, 23 Apr 2024 08:05:22 -0400
Received: from eggs.gnu.org ([2001:470:142:3::10]:52992)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <arash@HIDDEN>) id 1rzEta-0001nW-5K
 for 53749 <at> debbugs.gnu.org; Tue, 23 Apr 2024 08:05:13 -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 <arash@HIDDEN>)
 id 1rzEtA-0005ko-R6; Tue, 23 Apr 2024 08:04:45 -0400
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org;
 s=fencepost-gnu-org; h=MIME-Version:Date:References:In-Reply-To:Subject:To:
 From; bh=ciijcQH9FO0ohvppQ3a1OOjqXkZJ/6pdazTMDSweG4U=; b=Cs1tHeyc52xbZxHC13kJ
 0+59CFRRw+bMMqb2bvhCge/XDtlgGkZlZAvsIKrGdQgiVYT8EqVbon1al6+7AZ6dKhUyCZHUFPIpG
 1Pd4ZjNUPeTZeF+InfzQX/SvJKWqv0qliBfrz0eD7/bGV+KH9xL5e6kn/uPktlBAsZD2PR4A7dkBJ
 XJRu9MwZgJMuEssvDVR+dO53niYrE5R7UYoUetCZ6bC6RgxxA536hGE8oYm5I6eD74XU28kt6tX4w
 9neq3pRjQN0bU85szBQbaOAiFaI+kFWL/ZrfOS2Ep9eUbxildF1ObNPEj003Qv2QtZY1ntAhQ/sTH
 6kBDTXHeLkcBEg==;
From: Arash Esbati <arash@HIDDEN>
In-Reply-To: <CADF+RtiysDPn_V=+KFKip_Owx6t1u9N4yDnBr-zyf3LiC6xZ0g@HIDDEN>
 (David Fussner's message of "Mon, 22 Apr 2024 15:56:34 +0100")
References: <CADF+RtgWCLKQGwgdTNWmgesbcwq8iBxChoN8FqMOg95Ai3CYTA@HIDDEN>
 <1de34060-e93b-0a42-fff5-20e283abe0dc@HIDDEN>
 <87o7vq0zir.fsf@HIDDEN>
 <CADF+Rtjii7ZHkrfLzS63Yt1UiPPfnOrSsFZe2SMRetOS4w0vng@HIDDEN>
 <8735d20yvd.fsf@HIDDEN>
 <CADF+Rtgz5f6fcVuTLrv_N8oObRw+Uw-Je7bz54Gagb3pRgpR=g@HIDDEN>
 <CADwFkm=p8_Tbu+cXMDA8zEKovb+Ld7QFUJz_AhFnJebhik=JBg@HIDDEN>
 <CADF+RtjGfibN3Yg8mf4hVB9uPWtAwp0m6J2LRH7n0Z20S7+Yzg@HIDDEN>
 <CADwFkmkbMSXdjB6kF3a68_1vb4dv05_vMrKrvoX908nZJrpxOg@HIDDEN>
 <CADF+RtgxigxvgG0j6bbpYnrrFVF4YTKZ1Rs0JSCc8zuu5JNA2w@HIDDEN>
 <fcbc07cf-5ee9-131f-1a18-9cc28a5655f1@HIDDEN>
 <CADF+Rti2gSVvfksUVO04ptKQsXrNpwUXHQ_qFjC26D8NNh578A@HIDDEN>
 <2c5c8afa-b57e-3156-d21c-5523cacb4d87@HIDDEN>
 <831qf1mgjl.fsf@HIDDEN> <87cyyj9rpp.fsf@HIDDEN>
 <65793.1694843596@localhost>
 <CADF+RtikqxOW0XpwGTWWuGNTWjz3-MWMcO6U65Tta3PJjkRXqw@HIDDEN>
 <m24jbtim2p.fsf@HIDDEN>
 <CADF+RtiysDPn_V=+KFKip_Owx6t1u9N4yDnBr-zyf3LiC6xZ0g@HIDDEN>
Date: Tue, 23 Apr 2024 14:04:39 +0200
Message-ID: <m2v848xp2g.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13)
MIME-Version: 1.0
Content-Type: text/plain
X-Spam-Score: -2.3 (--)
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 (---)

David Fussner <dfussner@HIDDEN> writes:

> Thanks for the nudge. I am in fact in the final stages of preparing a
> new patch to get xref working in TeX buffers.

Thanks for the update.

> The semantic/symref backend used by xref-find-references greps in
> files matching the major-mode of the buffer where the user calls the
> command. It looks in semantic-symref-filepattern-alist for
> file-extensions matching the major-mode, and if that fails it looks in
> auto-mode-alist. When both fail to produce any file extensions it
> tells the user to customize semantic-symref-filepattern-alist. Also,
> if it finds things in s-s-f-a, it doesn't go on to auto-mode-alist, so
> s-s-f-a has to be complete in order to be useful. In effect, we need
> s-s-f-a to hold all the extensions for all the modes that can appear
> as values of major-mode, and I notice that AUCTeX has started to
> populate that alist, though incompletely.

I'm not familiar with the way xref works, but reading the above, xref
doesn't care about modes set per file variables, is this correct?

> I'm also aware that many packages add their own extensions to files
> which are basically TeX or LaTeX files, and I wonder whether we can
> really keep up with the whole of CTAN in terms of providing complete
> lists of extensions for s-s-f-a.

I think this is almost impossible.  Besides the effort, take for example
the .cnf extension which is used by other programs as well, so
associating it with LaTeX-mode wouldn't make sense, IMO.  Finally, I
think many packages are written in .dtx format and the ones with many
files with different extensions (.def, .enc, .fd, ...) usually extract
them from the .dtx via an .ins file, so the edited source is inside the
.dtx, and we don't need to care about these extensions.

> As an example of where we are, if you open a plain-tex-mode (or
> plain-TeX-mode) file and M-? with point on some standard word you'll
> currently get the message to customize s-s-f-a, because
> auto-mode-alist has only tex-mode and s-s-f-a doesn't cover them,
> either.

This is possibly the next mess since .tex can be plain-TeX, ConTeXt,
LaTeX ...  So in general, I second what Stefan M. wrote in his other
message, but respecting/using file local variables could help here (if
it doesn't work ATM, see above), e.g.:

--8<---------------cut here---------------start------------->8---
\beginsection 1. Introduction.
This is the start of the introduction.
\bye

%%% Local Variables:
%%% mode: plain-TeX
%%% TeX-master: t
%%% End:
--8<---------------cut here---------------end--------------->8---

HTH.  Best, Arash




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#53749: 29.0.50; [PATCH] Xref backend for TeX buffers
Resent-From: David Fussner <dfussner@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Tue, 23 Apr 2024 13:23:11 +0000
Resent-Message-ID: <handler.53749.B53749.17138785541183 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 53749
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: pending patch
To: Arash Esbati <arash@HIDDEN>
Cc: 53749 <at> debbugs.gnu.org, Ikumi Keita <ikumi@HIDDEN>, Dmitry Gutov <dgutov@HIDDEN>, Stefan Monnier <monnier@HIDDEN>, Tassilo Horn <tsdh@HIDDEN>, Eli Zaretskii <eliz@HIDDEN>, stefankangas@HIDDEN
Received: via spool by 53749-submit <at> debbugs.gnu.org id=B53749.17138785541183
          (code B ref 53749); Tue, 23 Apr 2024 13:23:11 +0000
Received: (at 53749) by debbugs.gnu.org; 23 Apr 2024 13:22:34 +0000
Received: from localhost ([127.0.0.1]:52150 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1rzG6M-0000Gs-Hg
	for submit <at> debbugs.gnu.org; Tue, 23 Apr 2024 09:22:33 -0400
Received: from mail-pl1-x629.google.com ([2607:f8b0:4864:20::629]:57533)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <dfussner@HIDDEN>) id 1rzG66-0000A6-N8
 for 53749 <at> debbugs.gnu.org; Tue, 23 Apr 2024 09:22:21 -0400
Received: by mail-pl1-x629.google.com with SMTP id
 d9443c01a7336-1e3f17c6491so44761495ad.2
 for <53749 <at> debbugs.gnu.org>; Tue, 23 Apr 2024 06:21:54 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=googlemail.com; s=20230601; t=1713878508; x=1714483308; darn=debbugs.gnu.org;
 h=cc:to:subject:message-id:date:from:in-reply-to:references
 :mime-version:from:to:cc:subject:date:message-id:reply-to;
 bh=rCjX6uk1DuX1uS2qa/XC12uCoY3pARo2nIHg3Nn1W30=;
 b=NdWpivMPhFM47/ZETyEwB2Kn0JTbsFnNd/VfmOSniBbtl83tAVZX6nHarAulhIhO+f
 /aCO4Mc9Ch0MfhpkuEs5neK4SgOwivXXa5WIlU4F0OY7TDW1KGPkdx5j0hYif3a6rLvM
 nn6ErPZDR90vUFoOhtDp7N6aML1mf5Wn7mzAIH2G3vp1ZecwJX4TDp6XIdpaCuUIeEKB
 ML/f4CDQPEWA90Mc4bOps8p10+vpD7bUg9JgK3thAMGIyi8ttwre2KM6OP7uehouXc8L
 FYv0NvmAION9MHaCRH5Jk677x1zR+zGpaM59GHs7MR65Gk0UKGqPpRMPjXimhn10suY4
 6Mkw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20230601; t=1713878508; x=1714483308;
 h=cc: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=rCjX6uk1DuX1uS2qa/XC12uCoY3pARo2nIHg3Nn1W30=;
 b=lEheCCdrc5tvI2IKdgLKIPEHSRpLrH8tghWdg60JykCrWTdVu3i15DcuHZMnQ0EoSF
 7bjONHYWm3pZQn2vt9Hcq5Jh7+QlqB3dOHl+GulDqC5r9hkWAjP818eS/WcCm/oh37dD
 7irPBW1H+9V8+lO7OC+csuJuXzrQubRKlGJjV23GYf+5527Og69IwJtGGSaeA04B/Xyh
 wxest9Yg4SvX9ulwyKFrKQY8gDLI6KpLvEea+yL//kZdUNX6XeDEYIoduSRaLsMa7PGV
 UMnV8TKiG8nIMgrdQIFmFWMX+CwCcqR3uOyMO4cYkcs88YyXL1w07ApplxGTe37U4ecM
 P+Bg==
X-Forwarded-Encrypted: i=1;
 AJvYcCVmx3t3GYCMBfShldk6vwI9ve+s81Rzk0EjlyWFFS6tx9ce19s1q1bnH5X4HgmyvFeqq1FYpZgpMd6vg0cHkGlDQN20Gn0=
X-Gm-Message-State: AOJu0YyZYlS2J+kmtG5ATPf+c714AmL4ZBWbKqDhtmzmCTXhJLgB+N/R
 802Sleg3DWxwd0FR/k+lS8CVSwCjzG5K9k88WGryDA1wYcEwAyeAJECSmt75uJm12SwCmnIz2ft
 tVvnJLlcLtKs7awiLxJiqatgSxd0=
X-Google-Smtp-Source: AGHT+IGCEiFEagmAWn69b6NCyF0aARFWihoKGqf7CPc/FNuTjpsjNH04vRG/j/kpNeIIEB52hfRvzz4DxJ1O6vNxjPk=
X-Received: by 2002:a17:902:dac7:b0:1e8:2c8d:b74a with SMTP id
 q7-20020a170902dac700b001e82c8db74amr15066997plx.10.1713878507913; Tue, 23
 Apr 2024 06:21:47 -0700 (PDT)
MIME-Version: 1.0
References: <CADF+RtgWCLKQGwgdTNWmgesbcwq8iBxChoN8FqMOg95Ai3CYTA@HIDDEN>
 <1de34060-e93b-0a42-fff5-20e283abe0dc@HIDDEN> <87o7vq0zir.fsf@HIDDEN>
 <CADF+Rtjii7ZHkrfLzS63Yt1UiPPfnOrSsFZe2SMRetOS4w0vng@HIDDEN>
 <8735d20yvd.fsf@HIDDEN>
 <CADF+Rtgz5f6fcVuTLrv_N8oObRw+Uw-Je7bz54Gagb3pRgpR=g@HIDDEN>
 <CADwFkm=p8_Tbu+cXMDA8zEKovb+Ld7QFUJz_AhFnJebhik=JBg@HIDDEN>
 <CADF+RtjGfibN3Yg8mf4hVB9uPWtAwp0m6J2LRH7n0Z20S7+Yzg@HIDDEN>
 <CADwFkmkbMSXdjB6kF3a68_1vb4dv05_vMrKrvoX908nZJrpxOg@HIDDEN>
 <CADF+RtgxigxvgG0j6bbpYnrrFVF4YTKZ1Rs0JSCc8zuu5JNA2w@HIDDEN>
 <fcbc07cf-5ee9-131f-1a18-9cc28a5655f1@HIDDEN>
 <CADF+Rti2gSVvfksUVO04ptKQsXrNpwUXHQ_qFjC26D8NNh578A@HIDDEN>
 <2c5c8afa-b57e-3156-d21c-5523cacb4d87@HIDDEN> <831qf1mgjl.fsf@HIDDEN>
 <87cyyj9rpp.fsf@HIDDEN> <65793.1694843596@localhost>
 <CADF+RtikqxOW0XpwGTWWuGNTWjz3-MWMcO6U65Tta3PJjkRXqw@HIDDEN>
 <m24jbtim2p.fsf@HIDDEN>
 <CADF+RtiysDPn_V=+KFKip_Owx6t1u9N4yDnBr-zyf3LiC6xZ0g@HIDDEN>
 <m2v848xp2g.fsf@HIDDEN>
In-Reply-To: <m2v848xp2g.fsf@HIDDEN>
From: David Fussner <dfussner@HIDDEN>
Date: Tue, 23 Apr 2024 14:21:52 +0100
Message-ID: <CADF+Rtio5gvhbOtVDivddbKhjTmekRek6dzkcCSj+=upg4k8OQ@HIDDEN>
Content-Type: text/plain; charset="UTF-8"
X-Spam-Score: 0.0 (/)
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: -1.0 (-)

Thanks for the reply, Arash.

> I'm not familiar with the way xref works, but reading the above, xref
> doesn't care about modes set per file variables, is this correct?

As far as I know, the default xref-find-references deals strictly in
file extensions.

> I think this is almost impossible.  Besides the effort, take for example
> the .cnf extension which is used by other programs as well, so
> associating it with LaTeX-mode wouldn't make sense, IMO.

Agreed -- this may be an argument against my current approach. I hope,
however, that the way xref-find-references searches by directory or by
project should limit spurious searching when a more common extension
appears on a TeX file.

> This is possibly the next mess since .tex can be plain-TeX, ConTeXt,
> LaTeX ...

I guess currently I'm thinking that this is sort of a feature, as
searching for symbols in files/buffers from many closely-related modes
may produce useful matches. The code I'm finishing up tends to search
more files rather than fewer, but it should be possible to prune this
if it's deemed too messy.

> So in general, I second what Stefan M. wrote in his other
> message, but respecting/using file local variables could help here.

Currently, the code takes into account file-local variables only by
including in the search list extensions of TeX-related buffers, which
may well only have become TeX-related due to such variables.

I'll post a patch as soon as I solve an outstanding issue or two, and
we'll see where we are.

Thank you indeed for your help,

David.

On Tue, 23 Apr 2024 at 13:04, Arash Esbati <arash@HIDDEN> wrote:
>
> David Fussner <dfussner@HIDDEN> writes:
>
> > Thanks for the nudge. I am in fact in the final stages of preparing a
> > new patch to get xref working in TeX buffers.
>
> Thanks for the update.
>
> > The semantic/symref backend used by xref-find-references greps in
> > files matching the major-mode of the buffer where the user calls the
> > command. It looks in semantic-symref-filepattern-alist for
> > file-extensions matching the major-mode, and if that fails it looks in
> > auto-mode-alist. When both fail to produce any file extensions it
> > tells the user to customize semantic-symref-filepattern-alist. Also,
> > if it finds things in s-s-f-a, it doesn't go on to auto-mode-alist, so
> > s-s-f-a has to be complete in order to be useful. In effect, we need
> > s-s-f-a to hold all the extensions for all the modes that can appear
> > as values of major-mode, and I notice that AUCTeX has started to
> > populate that alist, though incompletely.
>
> I'm not familiar with the way xref works, but reading the above, xref
> doesn't care about modes set per file variables, is this correct?
>
> > I'm also aware that many packages add their own extensions to files
> > which are basically TeX or LaTeX files, and I wonder whether we can
> > really keep up with the whole of CTAN in terms of providing complete
> > lists of extensions for s-s-f-a.
>
> I think this is almost impossible.  Besides the effort, take for example
> the .cnf extension which is used by other programs as well, so
> associating it with LaTeX-mode wouldn't make sense, IMO.  Finally, I
> think many packages are written in .dtx format and the ones with many
> files with different extensions (.def, .enc, .fd, ...) usually extract
> them from the .dtx via an .ins file, so the edited source is inside the
> .dtx, and we don't need to care about these extensions.
>
> > As an example of where we are, if you open a plain-tex-mode (or
> > plain-TeX-mode) file and M-? with point on some standard word you'll
> > currently get the message to customize s-s-f-a, because
> > auto-mode-alist has only tex-mode and s-s-f-a doesn't cover them,
> > either.
>
> This is possibly the next mess since .tex can be plain-TeX, ConTeXt,
> LaTeX ...  So in general, I second what Stefan M. wrote in his other
> message, but respecting/using file local variables could help here (if
> it doesn't work ATM, see above), e.g.:
>
> --8<---------------cut here---------------start------------->8---
> \beginsection 1. Introduction.
> This is the start of the introduction.
> \bye
>
> %%% Local Variables:
> %%% mode: plain-TeX
> %%% TeX-master: t
> %%% End:
> --8<---------------cut here---------------end--------------->8---
>
> HTH.  Best, Arash




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#53749: 29.0.50; [PATCH] Xref backend for TeX buffers
Resent-From: Dmitry Gutov <dgutov@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Wed, 24 Apr 2024 00:10:04 +0000
Resent-Message-ID: <handler.53749.B53749.171391738215767 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 53749
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: pending patch
To: Stefan Monnier <monnier@HIDDEN>, David Fussner <dfussner@HIDDEN>
Cc: 53749 <at> debbugs.gnu.org, Ikumi Keita <ikumi@HIDDEN>, Arash Esbati <arash@HIDDEN>, stefankangas@HIDDEN, Tassilo Horn <tsdh@HIDDEN>, Eli Zaretskii <eliz@HIDDEN>
Received: via spool by 53749-submit <at> debbugs.gnu.org id=B53749.171391738215767
          (code B ref 53749); Wed, 24 Apr 2024 00:10:04 +0000
Received: (at 53749) by debbugs.gnu.org; 24 Apr 2024 00:09:42 +0000
Received: from localhost ([127.0.0.1]:55124 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1rzQCh-00045w-La
	for submit <at> debbugs.gnu.org; Tue, 23 Apr 2024 20:09:41 -0400
Received: from forward502b.mail.yandex.net ([178.154.239.146]:43396)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <dgutov@HIDDEN>) id 1rzQCb-00044H-7L
 for 53749 <at> debbugs.gnu.org; Tue, 23 Apr 2024 20:09:36 -0400
Received: from mail-nwsmtp-smtp-production-main-91.iva.yp-c.yandex.net
 (mail-nwsmtp-smtp-production-main-91.iva.yp-c.yandex.net
 [IPv6:2a02:6b8:c0c:15a2:0:640:2a47:0])
 by forward502b.mail.yandex.net (Yandex) with ESMTPS id 746C65F06B;
 Wed, 24 Apr 2024 03:09:13 +0300 (MSK)
Received: by mail-nwsmtp-smtp-production-main-91.iva.yp-c.yandex.net
 (smtp/Yandex) with ESMTPSA id 898fuqICZmI0-YJ4nbCb6; 
 Wed, 24 Apr 2024 03:09:12 +0300
X-Yandex-Fwd: 1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex.ru; s=mail;
 t=1713917352; bh=N+rO0q7OryuqrWO4nUncqcdQPPgbXm7v2k7XVNh1PJ0=;
 h=In-Reply-To:From:Subject:Message-ID:Cc:References:Date:To;
 b=aZdUKRVt+a7jIYNa06FhtmYRlBlGRrxsps/Gd1X1mxcuGdElvtI6MtvmptWIEm+Cz
 GOXFxClYC5SDemXVTnW4WzMxHJ3gmw1UVjL4JUzmALLqYdPbPQdOvRvVLmwd0rZGZI
 B4vJvbpWzzVLa+69YRvgo8jo22oSJG6WAzXyWb0Q=
Authentication-Results: mail-nwsmtp-smtp-production-main-91.iva.yp-c.yandex.net;
 dkim=pass header.i=@yandex.ru
Received: from compute6.internal (compute6.nyi.internal [10.202.2.47])
 by mailfauth.nyi.internal (Postfix) with ESMTP id 21D781200032;
 Tue, 23 Apr 2024 20:09:07 -0400 (EDT)
Received: from mailfrontend1 ([10.202.2.162])
 by compute6.internal (MEProxy); Tue, 23 Apr 2024 20:09:08 -0400
X-ME-Sender: <xms:o00oZtcm5fzbdl7hBCb88882nQ64JROUj5zeGcbMU6_0m4-yhhMU5Q>
 <xme:o00oZrPPoBYppytAwyB-QOEQdTHZtJNgbTZ3v6CszB93bBkFbu3O2Vfq5jyXKZsux
 k4FoQi4QC5fHPNpTFw>
X-ME-Received: <xmr:o00oZmiZd8fJs6TqZQokgRN_9JSJb5iP0fYlvGE08DFl8ef6_QJPPKhTBgBC4JguGaL2>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvledrudelvddgfeduucetufdoteggodetrfdotf
 fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen
 uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne
 cujfgurhepkfffgggfuffvvehfhfgjtgfgsehtjeertddtvdejnecuhfhrohhmpeffmhhi
 thhrhicuifhuthhovhcuoegughhuthhovheshigrnhguvgigrdhruheqnecuggftrfgrth
 htvghrnhepiefhjeeuveetffffvdefteffffekhfeuudejieehheeiudelgfehgffffedu
 ffdunecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepug
 hguhhtohhvodhmvghsmhhtphgruhhthhhpvghrshhonhgrlhhithihqddufeeffeelleeh
 hedvqddvleegjeejjeejiedqughguhhtohhvpeephigrnhguvgigrdhruhesfhgrshhtmh
 grihhlrdgtohhm
X-ME-Proxy: <xmx:o00oZm8tg0JCHZrNPkRr8Vaam1u_uAaYkxJMGBugBEXBTTPS7SHtbg>
 <xmx:o00oZpvWQ438d5OEXuq0YpoiwZGDPnkp0oksaF0_VOsJinZzScRgkQ>
 <xmx:o00oZlE-fNoiMwoS4xhe8nChBdzmj0HAHfiBdefWA1rnwRMllpY1cA>
 <xmx:o00oZgPgLMrLwMkY_hAvjYqq594MZQvZ-Mg5HVBDK9QuxZ-RbEeAkw>
 <xmx:o00oZiPg0otOBsWzLp6R1NmCbob_17a-RWCbL3LZV4FQIWZfdLfxV5bN>
Feedback-ID: ib1d9465d:Fastmail
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Tue,
 23 Apr 2024 20:09:05 -0400 (EDT)
Message-ID: <2b286a05-ff3c-4637-af52-dba5a71ba9fb@HIDDEN>
Date: Wed, 24 Apr 2024 03:09:03 +0300
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
References: <CADF+RtgWCLKQGwgdTNWmgesbcwq8iBxChoN8FqMOg95Ai3CYTA@HIDDEN>
 <CADF+Rtgz5f6fcVuTLrv_N8oObRw+Uw-Je7bz54Gagb3pRgpR=g@HIDDEN>
 <CADwFkm=p8_Tbu+cXMDA8zEKovb+Ld7QFUJz_AhFnJebhik=JBg@HIDDEN>
 <CADF+RtjGfibN3Yg8mf4hVB9uPWtAwp0m6J2LRH7n0Z20S7+Yzg@HIDDEN>
 <CADwFkmkbMSXdjB6kF3a68_1vb4dv05_vMrKrvoX908nZJrpxOg@HIDDEN>
 <CADF+RtgxigxvgG0j6bbpYnrrFVF4YTKZ1Rs0JSCc8zuu5JNA2w@HIDDEN>
 <fcbc07cf-5ee9-131f-1a18-9cc28a5655f1@HIDDEN>
 <CADF+Rti2gSVvfksUVO04ptKQsXrNpwUXHQ_qFjC26D8NNh578A@HIDDEN>
 <2c5c8afa-b57e-3156-d21c-5523cacb4d87@HIDDEN>
 <831qf1mgjl.fsf@HIDDEN> <87cyyj9rpp.fsf@HIDDEN>
 <65793.1694843596@localhost>
 <CADF+RtikqxOW0XpwGTWWuGNTWjz3-MWMcO6U65Tta3PJjkRXqw@HIDDEN>
 <m24jbtim2p.fsf@HIDDEN>
 <CADF+RtiysDPn_V=+KFKip_Owx6t1u9N4yDnBr-zyf3LiC6xZ0g@HIDDEN>
 <jwvbk61l6o9.fsf-monnier+emacs@HIDDEN>
 <CADF+RtimAoDGFxnWuKMb19RQLTBABtDZ=m=mZe9wFMd26mSi2A@HIDDEN>
 <jwv5xw9l3ty.fsf-monnier+emacs@HIDDEN>
Content-Language: en-US
From: Dmitry Gutov <dgutov@HIDDEN>
In-Reply-To: <jwv5xw9l3ty.fsf-monnier+emacs@HIDDEN>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-Spam-Score: -0.0 (/)
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: -1.0 (-)

On 22/04/2024 20:16, Stefan Monnier via Bug reports for GNU Emacs, the 
Swiss army knife of text editors wrote:
>> (I'm wondering whether it might be useful, for example, for
>> semantic-symref-derive-find-filepatterns to add extensions from
>> auto-mode-alist even when some extensions are found in
>> semantic-symref-filepattern-alist.)
> Assuming we can get good enough results from `auto-mode-alist and
> friends, I think we'd want to mark `semantic-symref-filepattern-alist`
> as obsolete.
> But before that, we need to check the assumption.

Last I checked, semantic-symref-filepattern-alist had explicit entries 
only for languages whose auto-mode-alist entries were deemed too complex 
to parse out the matching extensions from the corresponding regexps.

Or had other difficulties like the c-or-c++-mode dispatcher.




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#53749: 29.0.50; [PATCH] Xref backend for TeX buffers
Resent-From: David Fussner <dfussner@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Wed, 24 Apr 2024 09:03:07 +0000
Resent-Message-ID: <handler.53749.B53749.171394937625331 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 53749
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: pending patch
To: Dmitry Gutov <dgutov@HIDDEN>
Cc: 53749 <at> debbugs.gnu.org, Ikumi Keita <ikumi@HIDDEN>, Arash Esbati <arash@HIDDEN>, stefankangas@HIDDEN, Tassilo Horn <tsdh@HIDDEN>, Eli Zaretskii <eliz@HIDDEN>, Stefan Monnier <monnier@HIDDEN>
Received: via spool by 53749-submit <at> debbugs.gnu.org id=B53749.171394937625331
          (code B ref 53749); Wed, 24 Apr 2024 09:03:07 +0000
Received: (at 53749) by debbugs.gnu.org; 24 Apr 2024 09:02:56 +0000
Received: from localhost ([127.0.0.1]:57366 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1rzYWj-0006aI-Qq
	for submit <at> debbugs.gnu.org; Wed, 24 Apr 2024 05:02:55 -0400
Received: from mail-pj1-x102f.google.com ([2607:f8b0:4864:20::102f]:52557)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <dfussner@HIDDEN>) id 1rzYWd-0006YT-Rz
 for 53749 <at> debbugs.gnu.org; Wed, 24 Apr 2024 05:02:51 -0400
Received: by mail-pj1-x102f.google.com with SMTP id
 98e67ed59e1d1-2a52c544077so4680321a91.1
 for <53749 <at> debbugs.gnu.org>; Wed, 24 Apr 2024 02:02:30 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=googlemail.com; s=20230601; t=1713949344; x=1714554144; darn=debbugs.gnu.org;
 h=cc:to:subject:message-id:date:from:in-reply-to:references
 :mime-version:from:to:cc:subject:date:message-id:reply-to;
 bh=j3mnqq9SKi2buqbFhHk18jbwY8BXWwF6xbNvvpQFzsM=;
 b=gTPg7K8NdKByaurrKEqXAcQqwVjqpg25Pyit+K9gHZ3q8RTsmA7lBzlMkgsRDvwTbR
 D54Oxo7JzVEK9H4daXTVT35/tfI1PB41WDsHpSrdNZK6w5SpcbJOPz1bxf7XshP8J+Bj
 VTb7FENenOeNDe/gJVuUKE82L6+q68ns5XZjKUIp1raIDTAy79zBPPhUNrj6h+88lTgo
 +/UayokTnkbxm+8CJ9FONaShb0avwdyCN+B4hgCCRwGCP9hxQDTfEsPoiSMSxRTLCRQS
 0hHGgpWeZ4SdK9zEs4+GAlVpr2cK6zOhTWBspzZfEPGxo8XmM2DhGQ5YLNOZypEVD0Tk
 MSoQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20230601; t=1713949344; x=1714554144;
 h=cc: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=j3mnqq9SKi2buqbFhHk18jbwY8BXWwF6xbNvvpQFzsM=;
 b=V5xAZUWOIpe0G7A0NYqXSkVLUWhRUSeyPZhsn2brZ6OpHxJTaz49u3B56N0ADM8qan
 l5e4u+sza1uRDJJU0Ly2zjgQHwXSYWn8eHXf8pynCtrcwCK3Rxp9wPhi9rAqFgqH3ZX9
 yRo7WRyBbN0AXJuof24JTYUp63B0oeLkY7++u7yuzrT1GiRsbAJG4TFW3wC1ZVJhMuSG
 kq2otM09jbqtdsTg8gh0c63C95yJ7Y9lgBA0eLRbCuV+27XydMAQ0Sm1tzpz2BbCCwJ7
 2gOZ8Q0w0PX0VHLwA1vaPK7MvkWz7W7xcF/VOTeOCgbaQGZ0VwOhXSUivlfFgqDVdA8w
 tibQ==
X-Forwarded-Encrypted: i=1;
 AJvYcCXkoko0LQKAkgCXbqMoAbq/S8x1EbEe4rL4Yg0KQPHCtqqFleaWKfhwgNW3MdD/gUj45SArMtJqr9ooAR1qrZcTDm+yj1I=
X-Gm-Message-State: AOJu0YzP09FuRWEHHUKAMLnT7VXTRVBWC5y3s3Wfbf5ZJN0zEZhvnqjO
 VxFQOatvEWnYWZcuqcQoS8tOKTXA1VLSyE10MI67G8ugLbYWOWjjRi8IPjJLQLpQ1b4WOqve0Bs
 Xt9NdEye1Bu0Q2MGq+LbqY97IFA0=
X-Google-Smtp-Source: AGHT+IG9elGk4KZhEpQmzM/dA8mBy7J1ps9QXuo2KyFn4TNdTVVT12HNXkeld9MbXsGuVHmqrMMC7/Bt8gVBJCruMwo=
X-Received: by 2002:a17:90a:4213:b0:2ab:b411:8cbc with SMTP id
 o19-20020a17090a421300b002abb4118cbcmr1611595pjg.31.1713949344455; Wed, 24
 Apr 2024 02:02:24 -0700 (PDT)
MIME-Version: 1.0
References: <CADF+RtgWCLKQGwgdTNWmgesbcwq8iBxChoN8FqMOg95Ai3CYTA@HIDDEN>
 <CADF+Rtgz5f6fcVuTLrv_N8oObRw+Uw-Je7bz54Gagb3pRgpR=g@HIDDEN>
 <CADwFkm=p8_Tbu+cXMDA8zEKovb+Ld7QFUJz_AhFnJebhik=JBg@HIDDEN>
 <CADF+RtjGfibN3Yg8mf4hVB9uPWtAwp0m6J2LRH7n0Z20S7+Yzg@HIDDEN>
 <CADwFkmkbMSXdjB6kF3a68_1vb4dv05_vMrKrvoX908nZJrpxOg@HIDDEN>
 <CADF+RtgxigxvgG0j6bbpYnrrFVF4YTKZ1Rs0JSCc8zuu5JNA2w@HIDDEN>
 <fcbc07cf-5ee9-131f-1a18-9cc28a5655f1@HIDDEN>
 <CADF+Rti2gSVvfksUVO04ptKQsXrNpwUXHQ_qFjC26D8NNh578A@HIDDEN>
 <2c5c8afa-b57e-3156-d21c-5523cacb4d87@HIDDEN> <831qf1mgjl.fsf@HIDDEN>
 <87cyyj9rpp.fsf@HIDDEN> <65793.1694843596@localhost>
 <CADF+RtikqxOW0XpwGTWWuGNTWjz3-MWMcO6U65Tta3PJjkRXqw@HIDDEN>
 <m24jbtim2p.fsf@HIDDEN>
 <CADF+RtiysDPn_V=+KFKip_Owx6t1u9N4yDnBr-zyf3LiC6xZ0g@HIDDEN>
 <jwvbk61l6o9.fsf-monnier+emacs@HIDDEN>
 <CADF+RtimAoDGFxnWuKMb19RQLTBABtDZ=m=mZe9wFMd26mSi2A@HIDDEN>
 <jwv5xw9l3ty.fsf-monnier+emacs@HIDDEN>
 <2b286a05-ff3c-4637-af52-dba5a71ba9fb@HIDDEN>
In-Reply-To: <2b286a05-ff3c-4637-af52-dba5a71ba9fb@HIDDEN>
From: David Fussner <dfussner@HIDDEN>
Date: Wed, 24 Apr 2024 10:02:29 +0100
Message-ID: <CADF+RthZNh6sv__YJmFARFarWyQmbwNo201Xw7+PFWWiQSpy+w@HIDDEN>
Content-Type: text/plain; charset="UTF-8"
X-Spam-Score: 0.0 (/)
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: -1.0 (-)

Thanks, Dmitry.

> Last I checked, semantic-symref-filepattern-alist had explicit entries
> only for languages whose auto-mode-alist entries were deemed too complex
> to parse out the matching extensions from the corresponding regexps.
>
> Or had other difficulties like the c-or-c++-mode dispatcher.

That makes sense, and clarifies a few things for me. I guess TeX has
the "plain-tex or latex or context or ams-tex" dispatcher and also
in-tree vs. AUCTeX mode names, both of which at least for the moment
make semantic-symref-filepattern-alist seem a better fit.

Best,

David.

On Wed, 24 Apr 2024 at 01:09, Dmitry Gutov <dgutov@HIDDEN> wrote:
>
> On 22/04/2024 20:16, Stefan Monnier via Bug reports for GNU Emacs, the
> Swiss army knife of text editors wrote:
> >> (I'm wondering whether it might be useful, for example, for
> >> semantic-symref-derive-find-filepatterns to add extensions from
> >> auto-mode-alist even when some extensions are found in
> >> semantic-symref-filepattern-alist.)
> > Assuming we can get good enough results from `auto-mode-alist and
> > friends, I think we'd want to mark `semantic-symref-filepattern-alist`
> > as obsolete.
> > But before that, we need to check the assumption.
>
> Last I checked, semantic-symref-filepattern-alist had explicit entries
> only for languages whose auto-mode-alist entries were deemed too complex
> to parse out the matching extensions from the corresponding regexps.
>
> Or had other difficulties like the c-or-c++-mode dispatcher.




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#53749: 29.0.50; [PATCH] Xref backend for TeX buffers
Resent-From: David Fussner <dfussner@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Mon, 29 Apr 2024 14:17:02 +0000
Resent-Message-ID: <handler.53749.B53749.171440016612676 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 53749
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: pending patch
To: Arash Esbati <arash@HIDDEN>
Cc: 53749 <at> debbugs.gnu.org, Ikumi Keita <ikumi@HIDDEN>, Dmitry Gutov <dgutov@HIDDEN>, Stefan Monnier <monnier@HIDDEN>, Tassilo Horn <tsdh@HIDDEN>, Eli Zaretskii <eliz@HIDDEN>, stefankangas@HIDDEN
Received: via spool by 53749-submit <at> debbugs.gnu.org id=B53749.171440016612676
          (code B ref 53749); Mon, 29 Apr 2024 14:17:02 +0000
Received: (at 53749) by debbugs.gnu.org; 29 Apr 2024 14:16:06 +0000
Received: from localhost ([127.0.0.1]:57489 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1s1RnY-0003IO-6c
	for submit <at> debbugs.gnu.org; Mon, 29 Apr 2024 10:16:05 -0400
Received: from mail-pl1-x633.google.com ([2607:f8b0:4864:20::633]:61708)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <dfussner@HIDDEN>) id 1s1RnV-0003Hz-BI
 for 53749 <at> debbugs.gnu.org; Mon, 29 Apr 2024 10:16:03 -0400
Received: by mail-pl1-x633.google.com with SMTP id
 d9443c01a7336-1eab16c8d83so35393915ad.3
 for <53749 <at> debbugs.gnu.org>; Mon, 29 Apr 2024 07:15:41 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=googlemail.com; s=20230601; t=1714400135; x=1715004935; darn=debbugs.gnu.org;
 h=cc:to:subject:message-id:date:from:in-reply-to:references
 :mime-version:from:to:cc:subject:date:message-id:reply-to;
 bh=UeYyFj4qle6TFEUh7MtsLjXdnTYzVS94fRGVsexxs4w=;
 b=eY9vQcLc5cBh6eb/dXTrlVyS6rlWCOv/5yC1efDBz5snvGPwEX9wbzz/xT1piasFR9
 v+fd3JmaeWeMnUEq8Oz4u2r1PAFLjBRd3lSK2VnXXCjtZgrnKxlFFe5JGa48wj7NwXAd
 1g6hKrqqXPP96JX3794nFuJ0FhuOH9NFAS8HhVTqLrbsDuVpvykQzhjyO3bWs/HOzWo5
 PuQ7WY/qC8IkxK0sgdTBCkfLIqp0aYehkCCILlOsYvxZUykCPssIQl48jBniczMxzKv1
 0rsn3eWHyhWv2Z4E9uMMxWAhUBrwlex8BHbS7YRxYTe5ogVkdaSJVnJls2q72nPKFEM3
 bU2A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20230601; t=1714400135; x=1715004935;
 h=cc: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=UeYyFj4qle6TFEUh7MtsLjXdnTYzVS94fRGVsexxs4w=;
 b=mEf8ADsdCrIz71sVBAAULVmyM8hiIKXWSMTS84VW72/yryNmTDTq6lZ2iZP8dAGNXi
 6gaak1TQbemb8gwCGTEX75rhDgDzUy7eLIgINooxZziwExB9yUjDk9nsaM+YBJPaziFL
 +y8DZCmoHVjDexW9HfCbvUldU79PEIm4ybP1OtHtZlCtaiKBsyMZqAqmWDZSZF3+V+UY
 YbC06ev5fP/LaQELgdiJ83dA/t2R07Wl/8I9vniLsTEKJ2YnKE1PTPvzTjWgQS59Stew
 c4sjUTezDbaArJThL0lVfpaLbNSjW2ky+je5GN3xyZpXu3ICcxSThbPazQKCfMHmCnjI
 fmNQ==
X-Forwarded-Encrypted: i=1;
 AJvYcCUCTdn3KuD3XuIk7mInMxdlnJiDmGsD28MyLOy257fEW8aLS1NQKZrJ5k/WxaK25x43r6ovnqtBjG7NMUHoHfdFz5IPDGQ=
X-Gm-Message-State: AOJu0YxjCFehy2Z7Ja/sB2eWv/g8DDbJwiRVIfzEHJmdFsBEiJLq6bS4
 9ciEhMcvCQEWqk6NDEpTxvUl0Gp5QdBWOEpoQGHpKyP/b3L6Yf+RPqvL3eM1vn1L19yxYdvOVkX
 Sig4ilK4QALaFYJHesOdHjH+/i80=
X-Google-Smtp-Source: AGHT+IE6WKG+8RZWhNPT6A7E/RuAn6NiFLDolXDEW5jZZMQNACEqlAJo+tVompKsbzWZB3fpUwXttMOWySbS1nYTZJE=
X-Received: by 2002:a17:903:18e:b0:1e7:b6a3:7bd9 with SMTP id
 z14-20020a170903018e00b001e7b6a37bd9mr11895577plg.16.1714400134976; Mon, 29
 Apr 2024 07:15:34 -0700 (PDT)
MIME-Version: 1.0
References: <CADF+RtgWCLKQGwgdTNWmgesbcwq8iBxChoN8FqMOg95Ai3CYTA@HIDDEN>
 <1de34060-e93b-0a42-fff5-20e283abe0dc@HIDDEN> <87o7vq0zir.fsf@HIDDEN>
 <CADF+Rtjii7ZHkrfLzS63Yt1UiPPfnOrSsFZe2SMRetOS4w0vng@HIDDEN>
 <8735d20yvd.fsf@HIDDEN>
 <CADF+Rtgz5f6fcVuTLrv_N8oObRw+Uw-Je7bz54Gagb3pRgpR=g@HIDDEN>
 <CADwFkm=p8_Tbu+cXMDA8zEKovb+Ld7QFUJz_AhFnJebhik=JBg@HIDDEN>
 <CADF+RtjGfibN3Yg8mf4hVB9uPWtAwp0m6J2LRH7n0Z20S7+Yzg@HIDDEN>
 <CADwFkmkbMSXdjB6kF3a68_1vb4dv05_vMrKrvoX908nZJrpxOg@HIDDEN>
 <CADF+RtgxigxvgG0j6bbpYnrrFVF4YTKZ1Rs0JSCc8zuu5JNA2w@HIDDEN>
 <fcbc07cf-5ee9-131f-1a18-9cc28a5655f1@HIDDEN>
 <CADF+Rti2gSVvfksUVO04ptKQsXrNpwUXHQ_qFjC26D8NNh578A@HIDDEN>
 <2c5c8afa-b57e-3156-d21c-5523cacb4d87@HIDDEN> <831qf1mgjl.fsf@HIDDEN>
 <87cyyj9rpp.fsf@HIDDEN> <65793.1694843596@localhost>
 <CADF+RtikqxOW0XpwGTWWuGNTWjz3-MWMcO6U65Tta3PJjkRXqw@HIDDEN>
 <m24jbtim2p.fsf@HIDDEN>
In-Reply-To: <m24jbtim2p.fsf@HIDDEN>
From: David Fussner <dfussner@HIDDEN>
Date: Mon, 29 Apr 2024 15:15:41 +0100
Message-ID: <CADF+RtiOECRmdoFD1qP=gRzS+P3tJqh_WNTnuW-1zPrY9g4VBw@HIDDEN>
Content-Type: multipart/mixed; boundary="0000000000000c7e7c06173ce321"
X-Spam-Score: 0.0 (/)
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: -1.0 (-)

--0000000000000c7e7c06173ce321
Content-Type: text/plain; charset="UTF-8"

Hi Dmitry and Arash,

Here's my third attempt at a working xref backend for TeX. I'll try
quickly to summarize what's in it:

1. I've modified etags so that it creates findable tags for as many
different sorts of TeX construct as possible, including those written
in the new expl3 syntax. I've now removed the escape character from
the tag names, as this simplifies code all around.

2. 4 of the 6 xref backend functions just call the etags backend.

3. xref-backend-identifier-at-point is modified to provide new regexps
for delineating TeX symbols, and there's also code to cope with expl3
constructs slightly differently in M-? than in the other two main xref
commands.

4. xref-backend-references is a wrapper for the standard backend, the
wrapper doing two things: first, it tries to accumulate as many file
extensions for the current major-mode as emacs knows about, and second
it creates a bespoke syntax-propertize-function for strings that
aren't entirely composed of symbol or word characters. It applies this
function to file-visiting buffers and lets xref apply it in the
*xref-temp buffer, though I had to add a one-liner in xref.el to fix
what I believe is a minor bug there preventing syntax-propertize from
doing its work when the temp buffer holds text from a new file. (I can
provide a recipe for this if you want.)

5. Slightly unrelatedly, I've added new syntax-propertize-rules to
latex-mode so that expl3 constructs with the underscore aren't
fontified as subscripts, which makes such code unreadable. I'm happy
to split this off as another patch.

All comments gratefully received, and thanks,

David.

On Mon, 22 Apr 2024 at 14:06, Arash Esbati <arash@HIDDEN> wrote:
>
> David Fussner <dfussner@HIDDEN> writes:
>
> > Thanks for the clarifications. If you look at the current patch to
> > tex-mode.el, there's one function call added to TeX-mode-hook, mainly
> > for my own testing purposes, but no matter what the final patch looks
> > like it should only similarly require a single function call in an
> > AUCTeX hook to activate the new xref code there, along with one in
> > tex-common-initialization for the in-tree modes. If and when all
> > parties are satisfied by the patch I'll certainly be in touch with you
> > to find out how you'd prefer to handle activating it (or not) in
> > AUCTeX. The current state of affairs is a convenience for me and for
> > anyone else who cares to test the code.
>
> Hi David,
>
> I justed wanted to come back on this report and ask if there is any
> progress?  It would be nice to get Xref working within TeX buffers.
>
> TIA.  Best, Arash

--0000000000000c7e7c06173ce321
Content-Type: text/x-patch; charset="US-ASCII"; 
	name="0001-Provide-a-modified-xref-backend-for-TeX-buffers.patch"
Content-Disposition: attachment; 
	filename="0001-Provide-a-modified-xref-backend-for-TeX-buffers.patch"
Content-Transfer-Encoding: base64
Content-ID: <f_lvl1hef80>
X-Attachment-Id: f_lvl1hef80

RnJvbSA2NGE0ZjdjN2I4OWI0NDc1YTM4NDFiNTQyODhjMjViY2M0ZWJkZTNkIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBEYXZpZCBGdXNzbmVyIDxkZnVzc25lckBnb29nbGVtYWlsLmNv
bT4KRGF0ZTogTW9uLCAyOSBBcHIgMjAyNCAxNTowNTowMyArMDEwMApTdWJqZWN0OiBbUEFUQ0hd
IFByb3ZpZGUgYSBtb2RpZmllZCB4cmVmIGJhY2tlbmQgZm9yIFRlWCBidWZmZXJzCgoqIGxpYi1z
cmMvZXRhZ3MuYyAoVGVYX2NvbW1hbmRzKTogSW1wcm92ZSBwYXJzaW5nIG9mIGNvbW1hbmRzIGlu
IFRlWApidWZmZXJzLgooVEVYX2RlZmVudik6IEV4cGFuZCBsaXN0IG9mIGNvbW1hbmRzIHRvIHRh
ZyBieSBkZWZhdWx0IGluIFRlWApidWZmZXJzLgooVGVYX2hlbHApOgoqIGRvYy9lbWFjcy9tYWlu
dGFpbmluZy50ZXhpIChUYWcgU3ludGF4KTogRG9jdW1lbnQgbmV3IHRhZ2dlZApjb21tYW5kcy4K
KElkZW50aWZpZXIgU2VhcmNoKTogQWRkIG5vdGUgYWJvdXQgc2VtYW50aWMtc3ltcmVmLWZpbGVw
YXR0ZXJuLWFsaXN0LAphdXRvLW1vZGUtYWxpc3QsIGFuZCB4cmVmLWZpbmQtcmVmZXJlbmNlcy4K
CiogbGlzcC9wcm9nbW9kZXMveHJlZi5lbCAoeHJlZi0tY29sbGVjdC1tYXRjaGVzKTogRW5zdXJl
CnN5bnRheC1wcm9wZXJ0aXplIGFjdHVhbGx5IHJ1bnMgaW4gdGhlICp4cmVmLXRlbXAgYnVmZmVy
IGZvciBlYWNoCm5ldyBmaWxlIHNlYXJjaGVkLgoqIGxpc3AvdGV4dG1vZGVzL3RleC1tb2RlLmVs
ICh0ZXgtZm9udC1sb2NrLXN1c2NyaXB0KTogRGlzYWJsZQpzdWJzY3JpcHQgZmFjZSBpbiBleHBs
MyBjb25zdHJ1Y3RzLgoobGF0ZXgtc3ludGF4LXByb3BlcnRpemUtcnVsZXMpOiBBZGQgdHdvIG5l
dyBydWxlcyB0byBnaXZlIHN5bWJvbApzeW50YXggdG8gdGhlIHN0YW5kYXJkIGNvbXBvbmVudHMg
b2YgZXhwbDMgY29uc3RydWN0cy4KKHRleC1jb21tb24taW5pdGlhbGl6YXRpb24pOiBTZXQgdXAg
eHJlZiBiYWNrZW5kIGZvciBpbi10cmVlIFRlWAptb2Rlcy4KKHRleC0tdGhpbmctYXQtcG9pbnQs
IHRleC10aGluZ2F0cHQtLWJlZ2lubmluZy1vZi1zeW1ib2wpCih0ZXgtdGhpbmdhdHB0LS1lbmQt
b2Ytc3ltYm9sLCB0ZXgtLWJvdW5kcy1vZi1zeW1ib2wtYXQtcG9pbnQpOgpOZXcgZnVuY3Rpb25z
IHRvIHJldHVybiAndGhpbmctYXQtcG9pbnQnIGZvciB4cmVmIGJhY2tlbmQuCih0ZXgtZXNjLWFu
ZC1ncm91cC1jaGFycyk6IE5ldyB2YXIgdG8gZG8gdGhlIHNhbWUuCih4cmVmLWJhY2tlbmQtaWRl
bnRpZmllci1hdC1wb2ludCk6IE5ldyBUZVggYmFja2VuZCBtZXRob2QgdG8gcHJvdmlkZQpzeW1i
b2xzIGZvciBwcm9jZXNzaW5nIGJ5IHhyZWYuCih4cmVmLWJhY2tlbmQtaWRlbnRpZmllci1jb21w
bGV0aW9uLXRhYmxlKQooeHJlZi1iYWNrZW5kLWlkZW50aWZpZXItY29tcGxldGlvbi1pZ25vcmUt
Y2FzZSkKKHhyZWYtYmFja2VuZC1kZWZpbml0aW9ucywgeHJlZi1iYWNrZW5kLWFwcm9wb3MpOiBQ
bGFjZWhvbGRlcnMgdG8KY2FsbCB0aGUgc3RhbmRhcmQgJ2V0YWdzJyB4cmVmIGJhY2tlbmQgbWV0
aG9kcy4KKHhyZWYtYmFja2VuZC1yZWZlcmVuY2VzKTogV3JhcHBlciB0byBjYWxsIHRoZSBkZWZh
dWx0IHhyZWYgYmFja2VuZAptZXRob2QsIGZpbmRpbmcgYXMgbWFueSByZWxldmFudCBmaWxlcyBh
cyBwb3NzaWJsZSBhbmQgdXNpbmcgYSBiZXNwb2tlCnN5bnRheC1wcm9wZXJ0aXplLWZ1bmN0aW9u
LgoodGV4LS1jb2xsZWN0LWZpbGUtZXh0ZW5zaW9ucywgdGV4LXhyZWYtc3ludGF4LWZ1bmN0aW9u
KTogSGVscGVyCmZ1bmN0aW9uIGFuZCBtYWNybyBmb3IgcHJldmlvdXMuCih0ZXgtZmluZC1yZWZl
cmVuY2VzLXN5bnRheC10YWJsZSwgdGV4LS1idWZmZXJzLWxpc3QpCih0ZXgtLWxhc3QtcmVmLXN5
bnRheC1mbGFnLCB0ZXgtLW9sZC1zeW50YXgtZnVuY3Rpb24pOiBOZXcgdmFycyBmb3IKc2FtZS4K
LS0tCiBkb2MvZW1hY3MvbWFpbnRhaW5pbmcudGV4aSB8ICAzNCArKystCiBsaWItc3JjL2V0YWdz
LmMgICAgICAgICAgICB8IDE4MyArKysrKysrKysrKysrKysrKystLQogbGlzcC9wcm9nbW9kZXMv
eHJlZi5lbCAgICAgfCAgIDEgKwogbGlzcC90ZXh0bW9kZXMvdGV4LW1vZGUuZWwgfCAzMzYgKysr
KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLQogNCBmaWxlcyBjaGFuZ2VkLCA1Mzcg
aW5zZXJ0aW9ucygrKSwgMTcgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZG9jL2VtYWNzL21h
aW50YWluaW5nLnRleGkgYi9kb2MvZW1hY3MvbWFpbnRhaW5pbmcudGV4aQppbmRleCA1NzkwOThj
ODFiMS4uMmZiYjk2NGE3YTAgMTAwNjQ0Ci0tLSBhL2RvYy9lbWFjcy9tYWludGFpbmluZy50ZXhp
CisrKyBiL2RvYy9lbWFjcy9tYWludGFpbmluZy50ZXhpCkBAIC0yNTI5LDYgKzI1MjksMTUgQEAg
SWRlbnRpZmllciBTZWFyY2gKIHJlZmVyZW5jZWQuICBUaGUgWFJFRiBtb2RlIGNvbW1hbmRzIGFy
ZSBhdmFpbGFibGUgaW4gdGhpcyBidWZmZXIsIHNlZQogQHJlZntYcmVmIENvbW1hbmRzfS4KIAor
V2hlbiBpbnZva2VkIGluIGEgYnVmZmVyIHdob3NlIG1ham9yIG1vZGUgdXNlcyB0aGUgQGNvZGV7
ZXRhZ3N9IGJhY2tlbmQsCitAa2Jke00tP30gc2VhcmNoZXMgZmlsZXMgYW5kIGJ1ZmZlcnMgd2hv
c2UgbWFqb3IgbW9kZSBtYXRjaGVzIHRoYXQgb2YKK3RoZSBvcmlnaW5hbCBidWZmZXIuICBJdCBn
dWVzc2VzIHRoYXQgbW9kZSBmcm9tIGZpbGUgZXh0ZW5zaW9ucywgc28gaWYKK0BrYmR7TS0/fSBz
ZWVtcyB0byBiZSBza2lwcGluZyByZWxldmFudCBidWZmZXJzIG9yIGZpbGVzLCB0cnkKK2N1c3Rv
bWl6aW5nIGVpdGhlciB0aGUgdmFyaWFibGUgQGNvZGV7c2VtYW50aWMtc3ltcmVmLWZpbGVwYXR0
ZXJuLWFsaXN0fQorKGlmIHlvdXIgYnVmZmVyJ3MgbWFqb3IgbW9kZSBhbHJlYWR5IGhhcyBhbiBl
bnRyeSBpbiBpdCksIG9yCitAY29kZXthdXRvLW1vZGUtYWxpc3R9IChpZiBub3QpLCB0aGVyZWJ5
IGluZm9ybWluZyBAY29kZXt4cmVmfSBvZiB0aGUKK21pc3NpbmcgZXh0ZW5zaW9ucyAoQHB4cmVm
e0Nob29zaW5nIE1vZGVzfSkuCisKIEB2aW5kZXggeHJlZi1hdXRvLWp1bXAtdG8tZmlyc3QteHJl
ZgogICBJZiB0aGUgdmFsdWUgb2YgdGhlIHZhcmlhYmxlIEBjb2Rle3hyZWYtYXV0by1qdW1wLXRv
LWZpcnN0LXhyZWZ9IGlzCiBAY29kZXt0fSwgQGNvZGV7eHJlZi1maW5kLXJlZmVyZW5jZXN9IGF1
dG9tYXRpY2FsbHkganVtcHMgdG8gdGhlIGZpcnN0CkBAIC0yNzQ5LDggKzI3NTgsMjkgQEAgVGFn
IFN5bnRheAogQGNvZGV7XHNlY3Rpb259LCBAY29kZXtcc3Vic2VjdGlvbn0sIEBjb2Rle1xzdWJz
dWJzZWN0aW9ufSwKIEBjb2Rle1xlcW5vfSwgQGNvZGV7XGxhYmVsfSwgQGNvZGV7XHJlZn0sIEBj
b2Rle1xjaXRlfSwKIEBjb2Rle1xiaWJpdGVtfSwgQGNvZGV7XHBhcnR9LCBAY29kZXtcYXBwZW5k
aXh9LCBAY29kZXtcZW50cnl9LAotQGNvZGV7XGluZGV4fSwgQGNvZGV7XGRlZn0sIEBjb2Rle1xu
ZXdjb21tYW5kfSwgQGNvZGV7XHJlbmV3Y29tbWFuZH0sCi1AY29kZXtcbmV3ZW52aXJvbm1lbnR9
IGFuZCBAY29kZXtccmVuZXdlbnZpcm9ubWVudH0gYXJlIHRhZ3MuCitAY29kZXtcaW5kZXh9LCBA
Y29kZXtcZGVmfSwgQGNvZGV7XGVkZWZ9LCBAY29kZXtcZ2RlZn0sIEBjb2Rle1x4ZGVmfSwKK0Bj
b2Rle1xuZXdjb21tYW5kfSwgQGNvZGV7XHJlbmV3Y29tbWFuZH0sIEBjb2Rle1xuZXdlbnZpcm9u
bWVudH0sCitAY29kZXtccmVuZXdlbnZpcm9ubWVudH0sIEBjb2Rle1xEZWNsYXJlUm9idXN0Q29t
bWFuZH0sCitAY29kZXtcbmV3cm9idXN0Y21kfSwgQGNvZGV7XHJlbmV3cm9idXN0Y21kfSwgQGNv
ZGV7XHByb3ZpZGVjb21tYW5kfSwKK0Bjb2Rle1xwcm92aWRlcm9idXN0Y21kfSwgQGNvZGV7XE5l
d0RvY3VtZW50Q29tbWFuZH0sCitAY29kZXtcUmVuZXdEb2N1bWVudENvbW1hbmR9LCBAY29kZXtc
UHJvdmlkZURvY3VtZW50Q29tbWFuZH0sCitAY29kZXtcRGVjbGFyZURvY3VtZW50Q29tbWFuZH0s
IEBjb2Rle1xOZXdFeHBhbmRhYmxlRG9jdW1lbnRDb21tYW5kfSwKK0Bjb2Rle1xSZW5ld0V4cGFu
ZGFibGVEb2N1bWVudENvbW1hbmR9LAorQGNvZGV7XFByb3ZpZGVFeHBhbmRhYmxlRG9jdW1lbnRD
b21tYW5kfSwKK0Bjb2Rle1xEZWNsYXJlRXhwYW5kYWJsZURvY3VtZW50Q29tbWFuZH0sCitAY29k
ZXtcTmV3RG9jdW1lbnRFbnZpcm9ubWVudH0sIEBjb2Rle1xSZW5ld0RvY3VtZW50RW52aXJvbm1l
bnR9LAorQGNvZGV7XFByb3ZpZGVEb2N1bWVudEVudmlyb25tZW50fSwKK0Bjb2Rle1xEZWNsYXJl
RG9jdW1lbnRFbnZpcm9ubWVudH0sIEBjb2Rle1xjc2RlZn0sIEBjb2Rle1xjc2VkZWZ9LAorQGNv
ZGV7XGNzZ2RlZn0sIEBjb2Rle1xjc3hkZWZ9LCBAY29kZXtcY3NsZXRjc30sIEBjb2Rle1xjc2xl
dH0sCitAY29kZXtcbGV0Y3N9LCBAY29kZXtcbGV0fSwgXEBjb2Rle1xjc19uZXdfcHJvdGVjdGVk
X25vcGFyfSwKK0Bjb2Rle1xjc19uZXdfcHJvdGVjdGVkfSwgQGNvZGV7XGNzX25ld19ub3Bhcn0s
IEBjb2Rle1xjc19uZXdfZXF9LAorQGNvZGV7XGNzX25ld30sIEBjb2Rle1xjc19zZXRfcHJvdGVj
dGVkX25vcGFyfSwKK0Bjb2Rle1xjc19zZXRfcHJvdGVjdGVkfSwgQGNvZGV7XGNzX3NldF9ub3Bh
cn0sIEBjb2Rle1xjc19zZXRfZXF9LAorQGNvZGV7XGNzX3NldH0sIEBjb2Rle1xjc19nc2V0X3By
b3RlY3RlZF9ub3Bhcn0sCitAY29kZXtcY3NfZ3NldF9wcm90ZWN0ZWR9LCBAY29kZXtcY3NfZ3Nl
dF9ub3Bhcn0sIEBjb2Rle1xjc19nc2V0X2VxfSwKK0Bjb2Rle1xjc19nc2V0fSwgQGNvZGV7XGNz
X2dlbmVyYXRlX2Zyb21fYXJnX2NvdW50fSwgYW5kCitAY29kZXtcY3NfZ2VuZXJhdGVfdmFyaWFu
dH0gYXJlIHRhZ3MuICBTbyB0b28gYXJlIHRoZSBhcmd1bWVudHMgb2YgYW55CitzdGFycmVkIHZh
cmlhbnRzIG9mIHRoZXNlIGNvbW1hbmRzLgogCiBPdGhlciBjb21tYW5kcyBjYW4gbWFrZSB0YWdz
IGFzIHdlbGwsIGlmIHlvdSBzcGVjaWZ5IHRoZW0gaW4gdGhlCiBlbnZpcm9ubWVudCB2YXJpYWJs
ZSBAZW52e1RFWFRBR1N9IGJlZm9yZSBpbnZva2luZyBAY29tbWFuZHtldGFnc30uICBUaGUKZGlm
ZiAtLWdpdCBhL2xpYi1zcmMvZXRhZ3MuYyBiL2xpYi1zcmMvZXRhZ3MuYwppbmRleCAwMzJjZmE4
MDEwYi4uOGI3OWU5MmFiZjEgMTAwNjQ0Ci0tLSBhL2xpYi1zcmMvZXRhZ3MuYworKysgYi9saWIt
c3JjL2V0YWdzLmMKQEAgLTc5Miw4ICs3OTIsMjQgQEAgI2RlZmluZSBTVERJTiAweDEwMDEJCS8q
IHJldHVybmVkIGJ5IGdldG9wdF9sb25nIG9uIC0tcGFyc2Utc3RkaW4gKi8KICJJbiBMYVRlWCB0
ZXh0LCB0aGUgYXJndW1lbnQgb2YgYW55IG9mIHRoZSBjb21tYW5kcyAnXFxjaGFwdGVyJyxcblwK
ICdcXHNlY3Rpb24nLCAnXFxzdWJzZWN0aW9uJywgJ1xcc3Vic3Vic2VjdGlvbicsICdcXGVxbm8n
LCAnXFxsYWJlbCcsXG5cCiAnXFxyZWYnLCAnXFxjaXRlJywgJ1xcYmliaXRlbScsICdcXHBhcnQn
LCAnXFxhcHBlbmRpeCcsICdcXGVudHJ5JyxcblwKLSdcXGluZGV4JywgJ1xcZGVmJywgJ1xcbmV3
Y29tbWFuZCcsICdcXHJlbmV3Y29tbWFuZCcsXG5cCi0nXFxuZXdlbnZpcm9ubWVudCcgb3IgJ1xc
cmVuZXdlbnZpcm9ubWVudCcgaXMgYSB0YWcuXG5cCisnXFxpbmRleCcsICdcXGRlZicsICdcXGVk
ZWYnLCAnXFxnZGVmJywgJ1xceGRlZicsICdcXG5ld2NvbW1hbmQnLFxuXAorJ1xccmVuZXdjb21t
YW5kJywgJ1xcbmV3ZW52aXJvbm1lbnQnLCAnXFxyZW5ld2Vudmlyb25tZW50JyxcblwKKydcXERl
Y2xhcmVSb2J1c3RDb21tYW5kJywgJ1xcbmV3cm9idXN0Y21kJywgJ1xccmVuZXdyb2J1c3RjbWQn
LFxuXAorJ1xccHJvdmlkZWNvbW1hbmQnLCAnXFxwcm92aWRlcm9idXN0Y21kJywgJ1xcTmV3RG9j
dW1lbnRDb21tYW5kJyxcblwKKydcXFJlbmV3RG9jdW1lbnRDb21tYW5kJywgJ1xcUHJvdmlkZURv
Y3VtZW50Q29tbWFuZCcsXG5cCisnXFxEZWNsYXJlRG9jdW1lbnRDb21tYW5kJywgJ1xcTmV3RXhw
YW5kYWJsZURvY3VtZW50Q29tbWFuZCcsXG5cCisnXFxSZW5ld0V4cGFuZGFibGVEb2N1bWVudENv
bW1hbmQnLCAnXFxQcm92aWRlRXhwYW5kYWJsZURvY3VtZW50Q29tbWFuZCcsXG5cCisnXFxEZWNs
YXJlRXhwYW5kYWJsZURvY3VtZW50Q29tbWFuZCcsICdcXE5ld0RvY3VtZW50RW52aXJvbm1lbnQn
LFxuXAorJ1xcUmVuZXdEb2N1bWVudEVudmlyb25tZW50JywgJ1xcUHJvdmlkZURvY3VtZW50RW52
aXJvbm1lbnQnLFxuXAorJ1xcRGVjbGFyZURvY3VtZW50RW52aXJvbm1lbnQnLCdcXGNzZGVmJywg
J1xcY3NlZGVmJywgJ1xcY3NnZGVmJyxcblwKKydcXGNzeGRlZicsICdcXGNzbGV0Y3MnLCAnXFxj
c2xldCcsICdcXGxldGNzJywgJ1xcbGV0JyxcblwKKydcXGNzX25ld19wcm90ZWN0ZWRfbm9wYXIn
LCAnXFxjc19uZXdfcHJvdGVjdGVkJywgJ1xcY3NfbmV3X25vcGFyJyxcblwKKydcXGNzX25ld19l
cScsICdcXGNzX25ldycsICdcXGNzX3NldF9wcm90ZWN0ZWRfbm9wYXInLFxuXAorJ1xcY3Nfc2V0
X3Byb3RlY3RlZCcsICdcXGNzX3NldF9ub3BhcicsICdcXGNzX3NldF9lcScsICdcXGNzX3NldCcs
XG5cCisnXFxjc19nc2V0X3Byb3RlY3RlZF9ub3BhcicsICdcXGNzX2dzZXRfcHJvdGVjdGVkJywg
J1xcY3NfZ3NldF9ub3BhcicsXG5cCisnXFxjc19nc2V0X2VxJywgJ1xcY3NfZ3NldCcsICdcXGNz
X2dlbmVyYXRlX2Zyb21fYXJnX2NvdW50Jywgb3JcblwKKydcXGNzX2dlbmVyYXRlX3ZhcmlhbnQn
IGlzIGEgdGFnLiAgU28gaXMgdGhlIGFyZ3VtZW50IG9mIGFueSBzdGFycmVkXG5cCit2YXJpYW50
IG9mIHRoZXNlIGNvbW1hbmRzLlxuXAogXG5cCiBPdGhlciBjb21tYW5kcyBjYW4gYmUgc3BlY2lm
aWVkIGJ5IHNldHRpbmcgdGhlIGVudmlyb25tZW50IHZhcmlhYmxlXG5cCiAnVEVYVEFHUycgdG8g
YSBjb2xvbi1zZXBhcmF0ZWQgbGlzdCBsaWtlLCBmb3IgZXhhbXBsZSxcblwKQEAgLTU3MzYsMTEg
KzU3NTIsMjUgQEAgU2NoZW1lX2Z1bmN0aW9ucyAoRklMRSAqaW5mKQogc3RhdGljIGxpbmVidWZm
ZXIgKlRFWF90b2t0YWIgPSBOVUxMOyAvKiBUYWJsZSB3aXRoIHRhZyB0b2tlbnMgKi8KIAogLyog
RGVmYXVsdCBzZXQgb2YgY29udHJvbCBzZXF1ZW5jZXMgdG8gcHV0IGludG8gVEVYX3Rva3RhYi4K
LSAgIFRoZSB2YWx1ZSBvZiBlbnZpcm9ubWVudCB2YXIgVEVYVEFHUyBpcyBwcmVwZW5kZWQgdG8g
dGhpcy4gICovCisgICBUaGUgdmFsdWUgb2YgZW52aXJvbm1lbnQgdmFyIFRFWFRBR1MgaXMgcHJl
cGVuZGVkIHRvIHRoaXMuCisgICAoMjAyNCkgQWRkIHZhcmlhbnRzIG9mICdcZGVmJywgc29tZSBh
ZGRpdGlvbmFsIExhVGVYIChhbmQKKyAgIGZvcm1lciB4cGFyc2UpIGNvbW1hbmRzLCBjb21tb24g
dmFyaWFudHMgZnJvbSB0aGUKKyAgICdldG9vbGJveCcgcGFja2FnZSwgYW5kIHRoZSBtYWluIGV4
cGwzIGNvbW1hbmRzLiAqLwogc3RhdGljIGNvbnN0IGNoYXIgKlRFWF9kZWZlbnYgPSAiXAotOmNo
YXB0ZXI6c2VjdGlvbjpzdWJzZWN0aW9uOnN1YnN1YnNlY3Rpb246ZXFubzpsYWJlbDpyZWY6Y2l0
ZTpiaWJpdGVtXAotOnBhcnQ6YXBwZW5kaXg6ZW50cnk6aW5kZXg6ZGVmXAotOm5ld2NvbW1hbmQ6
cmVuZXdjb21tYW5kOm5ld2Vudmlyb25tZW50OnJlbmV3ZW52aXJvbm1lbnQiOworOmxhYmVsOnJl
ZjpjaGFwdGVyOnNlY3Rpb246c3Vic2VjdGlvbjpzdWJzdWJzZWN0aW9uOmVxbm86Y2l0ZTpiaWJp
dGVtXAorOnBhcnQ6YXBwZW5kaXg6ZW50cnk6aW5kZXg6ZGVmOmVkZWY6Z2RlZjp4ZGVmOm5ld2Nv
bW1hbmQ6cmVuZXdjb21tYW5kXAorOm5ld2Vudmlyb25tZW50OnJlbmV3ZW52aXJvbm1lbnQ6RGVj
bGFyZVJvYnVzdENvbW1hbmQ6cmVuZXdyb2J1c3RjbWRcCis6bmV3cm9idXN0Y21kOnByb3ZpZGVj
b21tYW5kOnByb3ZpZGVyb2J1c3RjbWQ6TmV3RG9jdW1lbnRDb21tYW5kXAorOlJlbmV3RG9jdW1l
bnRDb21tYW5kOlByb3ZpZGVEb2N1bWVudENvbW1hbmQ6RGVjbGFyZURvY3VtZW50Q29tbWFuZFwK
KzpOZXdFeHBhbmRhYmxlRG9jdW1lbnRDb21tYW5kOlJlbmV3RXhwYW5kYWJsZURvY3VtZW50Q29t
bWFuZFwKKzpQcm92aWRlRXhwYW5kYWJsZURvY3VtZW50Q29tbWFuZDpEZWNsYXJlRXhwYW5kYWJs
ZURvY3VtZW50Q29tbWFuZFwKKzpOZXdEb2N1bWVudEVudmlyb25tZW50OlJlbmV3RG9jdW1lbnRF
bnZpcm9ubWVudFwKKzpQcm92aWRlRG9jdW1lbnRFbnZpcm9ubWVudDpEZWNsYXJlRG9jdW1lbnRF
bnZpcm9ubWVudDpjc2RlZlwKKzpjc2VkZWY6Y3NnZGVmOmNzeGRlZjpjc2xldGNzOmNzbGV0Omxl
dGNzOmxldDpjc19uZXdfcHJvdGVjdGVkX25vcGFyXAorOmNzX25ld19wcm90ZWN0ZWQ6Y3NfbmV3
X25vcGFyOmNzX25ld19lcTpjc19uZXc6Y3Nfc2V0X3Byb3RlY3RlZF9ub3BhclwKKzpjc19zZXRf
cHJvdGVjdGVkOmNzX3NldF9ub3Bhcjpjc19zZXRfZXE6Y3Nfc2V0OmNzX2dzZXRfcHJvdGVjdGVk
X25vcGFyXAorOmNzX2dzZXRfcHJvdGVjdGVkOmNzX2dzZXRfbm9wYXI6Y3NfZ3NldF9lcTpjc19n
c2V0XAorOmNzX2dlbmVyYXRlX2Zyb21fYXJnX2NvdW50OmNzX2dlbmVyYXRlX3ZhcmlhbnQiOwog
CiBzdGF0aWMgdm9pZCBURVhfZGVjb2RlX2VudiAoY29uc3QgY2hhciAqLCBjb25zdCBjaGFyICop
OwogCkBAIC01Nzk5LDE5ICs1ODI5LDEzNyBAQCBUZVhfY29tbWFuZHMgKEZJTEUgKmluZikKIAkg
ICAgICB7CiAJCWNoYXIgKnA7CiAJCXB0cmRpZmZfdCBuYW1lbGVuLCBsaW5lbGVuOwotCQlib29s
IG9wZ3JwID0gZmFsc2U7CisJCWJvb2wgb3BncnAgPSBmYWxzZSwgb25lX2VzYyA9IGZhbHNlLCBp
c19leHBsdGhyZWUgPSBmYWxzZTsKIAogCQljcCA9IHNraXBfc3BhY2VzIChjcCArIGtleS0+bGVu
KTsKKworCQkvKiAxLiBUaGUgY2Fub25pY2FsIGV4cGwzIHN5bnRheCBsb29rcyBzb21ldGhpbmcg
bGlrZSB0aGlzOgorCQkgICBcY3NfbmV3Ok5wbiBcX19ob29rX3RsX2dwdXQ6Tm4geyBcRVJST1Ig
fS4gIEZpcnN0LCBpZiB3ZQorCQkgICB3YW50IHRvIHRhZyBhbnkgc3VjaCBjb21tYW5kcywgd2Ug
aW5jbHVkZSBvbmx5IHRoZSBwYXJ0CisJCSAgIGJlZm9yZSB0aGUgY29sb24gKGNzX25ldykgaW4g
VEVYX2RlZmVudiBvciBURVhUQUdTLiAgU2Vjb25kLAorCQkgICBldGFncyBza2lwcyB0aGUgYXJn
dW1lbnQgc3BlY2lmaWVyIChpbmNsdWRpbmcgdGhlIGNvbG9uKQorCQkgICBhZnRlciB0aGUgdGFn
IHRva2VuLCBzbyB0aGF0IGl0IGRvZXNuJ3QgYmVjb21lIHRoZSB0YWcgbmFtZS4KKwkJICAgVGhp
cmQsIHdlIHNldCB0aGUgYm9vbGVhbiAnaXNfZXhwbHRocmVlJyB0byB0cnVlIHNvIHRoYXQgd2UK
KwkJICAgY2FuIHJlbW92ZSB0aGUgYXJndW1lbnQgc3BlY2lmaWVyIGZyb20gdGhlIGFjdHVhbCB0
YWcgbmFtZQorCQkgICAoX19ob29rX3RsX2dwdXQpLiAgVGhpcyBhbGwgYWxsb3dzIHVzIHRvIGlu
Y2x1ZGUgZXhwbDMKKwkJICAgY29uc3RydWN0cyBpbiBURVhfZGVmZW52IG9yIGluIHRoZSBlbnZp
cm9ubWVudCB2YXJpYWJsZQorCQkgICBURVhUQUdTIHdpdGhvdXQgcmVxdWlyaW5nIGEgY2hhbmdl
IG9mIHNlcGFyYXRvciwgYW5kIGl0IGFsc28KKwkJICAgYWxsb3dzIHVzIHRvIGZpbmQgdGhlIGRl
ZmluaXRpb24gb2YgdmFyaWFudCBjb21tYW5kcyAod2l0aAorCQkgICBkaWZmZXJlbnQgYXJndW1l
bnQgc3BlY2lmaWVycykgZGVmaW5lZCB1c2luZywgZm9yIGV4YW1wbGUsCisJCSAgIFxjc19nZW5l
cmF0ZV92YXJpYW50Ok5uLiAgUGxlYXNlIG5vdGUgdGhhdCB0aGUgZXhwbDMgc3BlYworCQkgICBy
ZXF1aXJlcyBldGFncyB0byBwYXkgbW9yZSBhdHRlbnRpb24gdG8gd2hpdGVzcGFjZSBpbiB0aGUK
KwkJICAgY29kZS4KKworCQkgICAyLiBXZSBhbHNvIGF1dG9tYXRpY2FsbHkgcmVtb3ZlIHRoZSBh
c3RlcmlzayBmcm9tIHN0YXJyZWQKKwkJICAgdmFyaWFudHMgb2YgYWxsIGNvbW1hbmRzLCB3aXRo
b3V0IHRoZSBuZWVkIHRvIGluY2x1ZGUgdGhlCisJCSAgIHN0YXJyZWQgY29tbWFuZHMgZXhwbGlj
aXRseSBpbiBURVhfZGVmZW52IG9yIFRFWFRBR1MuICovCisJCWlmICgqY3AgPT0gJzonKQorCQkg
IHsKKwkJICAgIHdoaWxlICghY19pc3NwYWNlICgqY3ApICYmICpjcCAhPSBURVhfb3BncnApCisJ
CSAgICAgIGNwKys7CisJCSAgICBjcCA9IHNraXBfc3BhY2VzIChjcCk7CisJCSAgICBpc19leHBs
dGhyZWUgPSB0cnVlOworCQkgIH0KKwkJZWxzZSBpZiAoKmNwID09ICcqJykKKwkJICBjcCsrOwor
CisJCS8qIFNraXAgdGhlIG9wdGlvbmFsIGFyZ3VtZW50cyB0byBjb21tYW5kcyBpbiB0aGUgdGFn
cyBsaXN0IHNvCisJCSAgIHRoYXQgdGhlc2UgYXJndW1lbnRzIGRvbid0IGVuZCB1cCBhcyB0aGUg
bmFtZSBvZiB0aGUgdGFnLgorCQkgICBUaGUgbmFtZSB3aWxsIGluc3RlYWQgY29tZSBmcm9tIHRo
ZSBhcmd1bWVudCBpbiBjdXJseSBicmFjZXMKKwkJICAgdGhhdCBmb2xsb3dzIHRoZSBvcHRpb25h
bCBvbmVzLiAqLworCQl3aGlsZSAoKmNwICE9ICdcMCcgJiYgKmNwICE9ICclJykKKwkJICB7CisJ
CSAgICBpZiAoKmNwID09ICdbJykKKwkJICAgICAgeworCQkJd2hpbGUgKCpjcCAhPSAnXScgJiYg
KmNwICE9ICdcMCcgJiYgKmNwICE9ICclJykKKwkJCSAgY3ArKzsKKwkJICAgICAgfQorCQkgICAg
ZWxzZSBpZiAoKmNwID09ICcoJykKKwkJICAgICAgeworCQkJd2hpbGUgKCpjcCAhPSAnKScgJiYg
KmNwICE9ICdcMCcgJiYgKmNwICE9ICclJykKKwkJCSAgY3ArKzsKKwkJICAgICAgfQorCQkgICAg
ZWxzZSBpZiAoKmNwID09ICddJyB8fCAqY3AgPT0gJyknKQorCQkgICAgICBjcCsrOworCQkgICAg
ZWxzZQorCQkgICAgICBicmVhazsKKwkJICB9CiAJCWlmICgqY3AgPT0gVEVYX29wZ3JwKQogCQkg
IHsKIAkJICAgIG9wZ3JwID0gdHJ1ZTsKIAkJICAgIGNwKys7CisJCSAgICBjcCA9IHNraXBfc3Bh
Y2VzIChjcCk7IC8qIEZvciBleHBsMyBjb2RlLiAqLwogCQkgIH0KKworCQkvKiBSZW1vdmluZyB0
aGUgVGVYIGVzY2FwZSBjaGFyYWN0ZXIgZnJvbSB0YWcgbmFtZXMgc2ltcGxpZmllcworCQkgICB0
aGluZ3MgZm9yIGVkaXRvcnMgZmluZGluZyB0YWdnZWQgY29tbWFuZHMgaW4gVGVYIGJ1ZmZlcnMu
CisJCSAgIFRoaXMgYXBwbGllcyB0byBFbWFjcyBidXQgYWxzbyB0byB0aGUgdGFnLWZpbmRpbmcg
YmVoYXZpb3IKKwkJICAgb2YgYXQgbGVhc3Qgc29tZSBvZiB0aGUgZWRpdG9ycyB0aGF0IHVzZSBj
dGFncywgdGhvdWdoIGluCisJCSAgIHRoZSBsYXR0ZXIgY2FzZSB0aGlzIHdpbGwgcmVtYWluIHN1
Ym9wdGltYWwuICBUaGUKKwkJICAgdW5kb2N1bWVudGVkIGN0YWdzIG9wdGlvbiAnLS1uby1kdXBs
aWNhdGVzJyBtYXkgaGVscC4gKi8KKwkJaWYgKCpjcCA9PSBURVhfZXNjKQorCQkgIHsKKwkJICAg
IGNwKys7CisJCSAgICBvbmVfZXNjID0gdHJ1ZTsKKwkJICB9CisKKwkJLyogVGVzdGluZyAhY19p
c3NwYWNlICYmICFjX2lzcHVuY3QgaXMgc2ltcGxlciwgYnV0IGhhbHRzCisJCSAgIHByb2Nlc3Np
bmcgYXQgdG9vIG1hbnkgcGxhY2VzLiAgVGhlIGxpc3QgYXMgaXQgc3RhbmRzIHRyaWVzCisJCSAg
IGJvdGggdG8gZW5zdXJlIHRoYXQgdGFnIG5hbWVzIHdpbGwgZGVyaXZlIGZyb20gbWFjcm8gbmFt
ZXMKKwkJICAgcmF0aGVyIHRoYW4gZnJvbSBvcHRpb25hbCBwYXJhbWV0ZXJzIHRvIHRob3NlIG1h
Y3JvcywgYW5kCisJCSAgIGFsc28gdG8gcmV0dXJuIGZpbmRhYmxlIG5hbWVzIHdoaWxlIHN0aWxs
IGFsbG93aW5nIGZvcgorCQkgICB1bm9ydGhvZG94IGNvbnN0cnVjdHMuICovCiAJCWZvciAocCA9
IGNwOwotCQkgICAgICghY19pc3NwYWNlICgqcCkgJiYgKnAgIT0gJyMnICYmCi0JCSAgICAgICpw
ICE9IFRFWF9vcGdycCAmJiAqcCAhPSBURVhfY2xncnApOworCQkgICAgICghY19pc3NwYWNlICgq
cCkgJiYgKnAgIT0gJyMnICYmICpwICE9ICc9JyAmJgorCQkgICAgICAqcCAhPSAnWycgJiYgKnAg
IT0gJygnICYmICpwICE9IFRFWF9vcGdycCAmJgorCQkgICAgICAqcCAhPSBURVhfY2xncnAgJiYg
KnAgIT0gJyInICYmICpwICE9ICdcJycgJiYKKwkJICAgICAgKnAgIT0gJyUnICYmICpwICE9ICcs
JyAmJiAqcCAhPSAnfCcgJiYgKnAgIT0gJyQnKTsKIAkJICAgICBwKyspCi0JCSAgY29udGludWU7
CisJCSAgLyogSW4gZXhwbDMgY29kZSB3ZSByZW1vdmUgdGhlIGFyZ3VtZW50IHNwZWNpZmljYXRp
b24gZnJvbQorCQkgICAgIHRoZSB0YWcgbmFtZS4gIE1vcmUgZ2VuZXJhbGx5IHdlIGFsbG93IG9u
bHkgb25lIChkZWxldGVkKQorCQkgICAgIGVzY2FwZSBjaGFyIGluIGEgdGFnIG5hbWUsIHdoaWNo
IChwcmltYXJpbHkpIGVuYWJsZXMKKwkJICAgICB0YWdnaW5nIGEgVGVYIGNvbW1hbmQncyBkaWZm
ZXJlbnQsIHBvc3NpYmx5IHRlbXBvcmFyeSwKKwkJICAgICAnXGxldCcgYmluZGluZ3MuICovCisJ
CSAgaWYgKGlzX2V4cGx0aHJlZSAmJiAqcCA9PSAnOicpCisJCSAgICBicmVhazsKKwkJICBlbHNl
IGlmICgqcCA9PSBURVhfZXNjKQorCQkgICAgeyAvKiBTZWNvbmQgcGFydCBvZiB0ZXN0IGlzIGZv
ciwgZS5nLiwgXGNzbGV0LiAqLworCQkgICAgICBpZiAoIW9uZV9lc2MgJiYgIW9wZ3JwKQorCQkJ
eworCQkJICBvbmVfZXNjID0gdHJ1ZTsKKwkJCSAgY29udGludWU7CisJCQl9CisJCSAgICAgIGVs
c2UKKwkJCWJyZWFrOworCQkgICAgfQorCQkgIGVsc2UKKwkJICAgIGNvbnRpbnVlOworCQkvKiBG
b3IgVGVYIGZpbGVzLCB0YWdzIHdpdGhvdXQgYSBuYW1lIGFyZSBiYXNpY2FsbHkgY3J1ZnQsIGFu
ZAorCQkgICBpbiBzb21lIHNpdHVhdGlvbnMgdGhleSBjYW4gcHJvZHVjZSBzcHVyaW91cyBhbmQg
Y29uZnVzaW5nCisJCSAgIG1hdGNoZXMuICBUcnkgdG8gY2F0Y2ggYXMgbWFueSBjYXNlcyBhcyBw
b3NzaWJsZSB3aGVyZSBhCisJCSAgIGNvbW1hbmQgbmFtZSBpcyBvZiB0aGUgZm9ybSAnXCgnLCBi
dXQgYXZvaWQsIGFzIGZhciBhcworCQkgICBwb3NzaWJsZSwgdGhlIHNwdXJpb3VzIG1hdGNoZXMu
ICovCisJCWlmIChwID09IGNwKQorCQkgIHsKKwkJICAgIHN3aXRjaCAoKnApCisJCSAgICAgIHsg
LyogSW5jbHVkZSA9PyAqLworCQkgICAgICBjYXNlICcoJzogY2FzZSAnWyc6IGNhc2UgJyInOiBj
YXNlICdcJyc6CisJCSAgICAgIGNhc2UgJ1xcJzogY2FzZSAnISc6IGNhc2UgJz0nOiBjYXNlICcs
JzoKKwkJICAgICAgY2FzZSAnfCc6IGNhc2UgJyQnOgorCQkJcCsrOworCQkJYnJlYWs7CisJCSAg
ICAgIGNhc2UgJ3snOiBjYXNlICd9JzogY2FzZSAnPCc6IGNhc2UgJz4nOgorCQkJaWYgKCFvcGdy
cCkKKwkJCSAgeworCQkJICAgICAgcCsrOworCQkJICAgICAgaWYgKCpwID09ICdcMCcgfHwgKnAg
PT0gJyUnKQorCQkJCWdvdG8gdGV4X25leHRfbGluZTsKKwkJCSAgfQorCQkJYnJlYWs7CisJCSAg
ICAgIGRlZmF1bHQ6CisJCQlicmVhazsKKwkJICAgICAgfQorCQkgIH0KIAkJbmFtZWxlbiA9IHAg
LSBjcDsKIAkJbGluZWxlbiA9IGxiLmxlbjsKIAkJaWYgKCFvcGdycCB8fCAqcCA9PSBURVhfY2xn
cnApCkBAIC01ODIwLDkgKzU5NjgsMTggQEAgVGVYX2NvbW1hbmRzIChGSUxFICppbmYpCiAJCSAg
ICAgIHArKzsKIAkJICAgIGxpbmVsZW4gPSBwIC0gbGIuYnVmZmVyICsgMTsKIAkJICB9Ci0JCW1h
a2VfdGFnIChjcCwgbmFtZWxlbiwgdHJ1ZSwKLQkJCSAgbGIuYnVmZmVyLCBsaW5lbGVuLCBsaW5l
bm8sIGxpbmVjaGFybm8pOwotCQlnb3RvIHRleF9uZXh0X2xpbmU7IC8qIFdlIG9ubHkgdGFnIGEg
bGluZSBvbmNlICovCisJCWlmIChuYW1lbGVuKQorCQkgIG1ha2VfdGFnIChjcCwgbmFtZWxlbiwg
dHJ1ZSwKKwkJCSAgICBsYi5idWZmZXIsIGxpbmVsZW4sIGxpbmVubywgbGluZWNoYXJubyk7CisJ
CS8qIExpbmVzIHdpdGggbW9yZSB0aGFuIG9uZSBcZGVmIG9yIFxsZXQgYXJlIHN1cnByaXNpbmds
eQorCQkgICBjb21tb24gaW4gVGVYIGZpbGVzLCBlc3BlY2lhbGx5IGluIHRoZSBzeXN0ZW0gZmls
ZXMgdGhhdAorCQkgICBmb3JtIHRoZSBiYXNpcyBvZiB0aGUgdmFyaW91cyBUZVggZm9ybWF0cy4g
IFRoaXMgdGFncyB0aGVtCisJCSAgIGFsbC4gKi8KKwkJLyogZ290byB0ZXhfbmV4dF9saW5lOyAv
XCogV2Ugb25seSB0YWcgYSBsaW5lIG9uY2UgKlwvICovCisJCXdoaWxlICgqY3AgIT0gJ1wwJyAm
JiAqY3AgIT0gJyUnICYmICpjcCAhPSBURVhfZXNjKQorCQkgIGNwKys7CisJCWlmICgqY3AgIT0g
VEVYX2VzYykKKwkJICBnb3RvIHRleF9uZXh0X2xpbmU7CiAJICAgICAgfQogCX0KICAgICB0ZXhf
bmV4dF9saW5lOgpkaWZmIC0tZ2l0IGEvbGlzcC9wcm9nbW9kZXMveHJlZi5lbCBiL2xpc3AvcHJv
Z21vZGVzL3hyZWYuZWwKaW5kZXggNzU1YzNkYjA0ZmQuLjFkMmQ0OTA0YjA2IDEwMDY0NAotLS0g
YS9saXNwL3Byb2dtb2Rlcy94cmVmLmVsCisrKyBiL2xpc3AvcHJvZ21vZGVzL3hyZWYuZWwKQEAg
LTIxMjksNiArMjEyOSw3IEBAIHhyZWYtLWNvbGxlY3QtbWF0Y2hlcwogICAgICAgICAgIChlcmFz
ZS1idWZmZXIpKQogICAgICAgICAoaW5zZXJ0IHRleHQpCiAgICAgICAgIChnb3RvLWNoYXIgKHBv
aW50LW1pbikpCisgICAgICAgIChzZXRxIHN5bnRheC1wcm9wZXJ0aXplLS1kb25lIDApCiAgICAg
ICAgICh4cmVmLS1jb2xsZWN0LW1hdGNoZXMtMSByZWdleHAgZmlsZSBsaW5lCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAocG9pbnQpCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAocG9pbnQtbWF4KQpkaWZmIC0tZ2l0IGEvbGlzcC90ZXh0bW9kZXMvdGV4LW1vZGUu
ZWwgYi9saXNwL3RleHRtb2Rlcy90ZXgtbW9kZS5lbAppbmRleCA5N2M5NTAyNjdjNi4uZDk5MGEy
ZGJmYTkgMTAwNjQ0Ci0tLSBhL2xpc3AvdGV4dG1vZGVzL3RleC1tb2RlLmVsCisrKyBiL2xpc3Av
dGV4dG1vZGVzL3RleC1tb2RlLmVsCkBAIC02NDcsNyArNjQ3LDggQEAgdGV4LWZvbnQtbG9jay1z
dXNjcmlwdAogCQkgIChzZXRxIHBvcyAoMS0gcG9zKSBvZGQgKG5vdCBvZGQpKSkKIAkJb2RkKSkK
ICAgICAoaWYgKGVxIChjaGFyLWFmdGVyIHBvcykgP18pCi0JYChmYWNlIHN1YnNjcmlwdCBkaXNw
bGF5IChyYWlzZSAsKGNhciB0ZXgtZm9udC1zY3JpcHQtZGlzcGxheSkpKQorICAgICAgICAodW5s
ZXNzIChlcXVhbCAoZ2V0LXRleHQtcHJvcGVydHkgcG9zICdzeW50YXgtdGFibGUpICcoMykpCisJ
ICBgKGZhY2Ugc3Vic2NyaXB0IGRpc3BsYXkgKHJhaXNlICwoY2FyIHRleC1mb250LXNjcmlwdC1k
aXNwbGF5KSkpKQogICAgICAgYChmYWNlIHN1cGVyc2NyaXB0IGRpc3BsYXkgKHJhaXNlICwoY2Fk
ciB0ZXgtZm9udC1zY3JpcHQtZGlzcGxheSkpKSkpKQogCiAoZGVmdW4gdGV4LWZvbnQtbG9jay1t
YXRjaC1zdXNjcmlwdCAobGltaXQpCkBAIC02OTUsNyArNjk2LDI1IEBAIHRleC12ZXJiYXRpbS1l
bnZpcm9ubWVudHMKICAgICAgKCJcXFxcXFwoPzplbmRcXHxiZWdpblxcKSAqXFwoe1teXG57fV0q
fVxcKSIKICAgICAgICgxIChpZ25vcmUKICAgICAgICAgICAodGV4LWVudi1tYXJrIChtYXRjaC1i
ZWdpbm5pbmcgMCkKLSAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaC1iZWdpbm5pbmcgMSkg
KG1hdGNoLWVuZCAxKSkpKSkpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaC1iZWdp
bm5pbmcgMSkgKG1hdGNoLWVuZCAxKSkpKSkKKyAgICAgOzsgVGhlIG5leHQgdHdvIHJ1bGVzIGNo
YW5nZSB0aGUgc3ludGF4IG9mIGA6JyBhbmQgYF8nIGluIGV4cGwzCisgICAgIDs7IGNvbnN0cnVj
dHMsIHNvIHRoYXQgYHRleC1mb250LWxvY2stc3VzY3JpcHQnIGNhbiBmb250aWZ5IHRoZW0KKyAg
ICAgOzsgbW9yZSBhY2N1cmF0ZWx5LgorICAgICAoKGNvbmNhdCAiXFwoXFwoPzpbXFxcXFs6c3Bh
Y2U6XXtdX1xcfCIKKyAgICAgICAgICAgICAgIltcXFxce1s6c3BhY2U6XV1bXl1bX1s6c3BhY2U6
XVs6Y250cmw6XVs6ZGlnaXQ6XVxcXFx7fSgpLz1dK1xcKSIKKyAgICAgICAgICAgICAgIlxcKD86
XytcXCg/OlteXVtbOnNwYWNlOl1bOmNudHJsOl1bOmRpZ2l0Ol06XFxcXHt9KCkvI189XStcXHwi
CisgICAgICAgICAgICAgICIjK1sxLTldXFwpXFwpK1xcKVxcKFs6X10/XFwpIikKKyAgICAgICgx
IChpZ25vcmUKKyAgICAgICAgICAobGV0KiAoKGV4cHIgKGJ1ZmZlci1zdWJzdHJpbmctbm8tcHJv
cGVydGllcyAobWF0Y2gtYmVnaW5uaW5nIDEpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoLWVuZCAxKSkpCisgICAgICAgICAgICAg
ICAgIChsaXN0IChzZXEtcG9zaXRpb25zIGV4cHIgP18pKSkKKyAgICAgICAgICAgIChkb2xpc3Qg
KHBvcyBsaXN0KQorICAgICAgICAgICAgICAocHV0LXRleHQtcHJvcGVydHkgKCsgcG9zIChtYXRj
aC1iZWdpbm5pbmcgMSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSsgKCsg
cG9zIChtYXRjaC1iZWdpbm5pbmcgMSkpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgJ3N5bnRheC10YWJsZSAoc3RyaW5nLXRvLXN5bnRheCAiXyIpKSkpKSkKKyAgICAgICgyICJf
IikpCisgICAgICgiXFxcXFtbOmFscGhhOl1dK1xcKDpcXClbWzphbHBoYTpdWzpzcGFjZTpdXG5d
IgorICAgICAgKDEgIl8iKSkpKSkKIAogKGRlZnVuIHRleC1lbnYtbWFyayAoY21kIHN0YXJ0IGVu
ZCkKICAgKHdoZW4gKD0gY21kIChsaW5lLWJlZ2lubmluZy1wb3NpdGlvbikpCkBAIC0xMjkxLDYg
KzEzMTAsOCBAQCB0ZXgtY29tbW9uLWluaXRpYWxpemF0aW9uCiAJICAgICAgKHN5bnRheC1wcm9w
ZXJ0aXplLXJ1bGVzIGxhdGV4LXN5bnRheC1wcm9wZXJ0aXplLXJ1bGVzKSkKICAgOzsgVEFCcyBp
biB2ZXJiYXRpbSBlbnZpcm9ubWVudHMgZG9uJ3QgZG8gd2hhdCB5b3UgdGhpbmsuCiAgIChzZXRx
LWxvY2FsIGluZGVudC10YWJzLW1vZGUgbmlsKQorICA7OyBTZXQgdXAgeHJlZiBiYWNrZW5kIGlu
IFRlWCBidWZmZXJzLgorICAoYWRkLWhvb2sgJ3hyZWYtYmFja2VuZC1mdW5jdGlvbnMgIyd0ZXgt
LXhyZWYtYmFja2VuZCBuaWwgdCkKICAgOzsgT3RoZXIgdmFycyB0aGF0IHNob3VsZCBiZSBidWZm
ZXItbG9jYWwuCiAgIChtYWtlLWxvY2FsLXZhcmlhYmxlICd0ZXgtY29tbWFuZCkKICAgKG1ha2Ut
bG9jYWwtdmFyaWFibGUgJ3RleC1zdGFydC1vZi1oZWFkZXIpCkBAIC0zNzQyLDYgKzM3NjMsMzE3
IEBAIHRleC1jaGt0ZXgKICAgICAgIChwcm9jZXNzLXNlbmQtcmVnaW9uIHRleC1jaGt0ZXgtLXBy
b2Nlc3MgKHBvaW50LW1pbikgKHBvaW50LW1heCkpCiAgICAgICAocHJvY2Vzcy1zZW5kLWVvZiB0
ZXgtY2hrdGV4LS1wcm9jZXNzKSkpKQogCisMCis7OzsgWHJlZiBiYWNrZW5kCisKKzs7IEhlcmUg
d2UgbGlnaHRseSBhZGFwdCB0aGUgZGVmYXVsdCBldGFncyBiYWNrZW5kIGZvciB4cmVmIHNvIHRo
YXQKKzs7IHRoZSBtYWluIHhyZWYgdXNlciBjb21tYW5kcyAoaW5jbHVkaW5nIGB4cmVmLWZpbmQt
ZGVmaW5pdGlvbnMnLAorOzsgYHhyZWYtZmluZC1hcHJvcG9zJywgYW5kIGB4cmVmLWZpbmQtcmVm
ZXJlbmNlcycgW29uIE0tLiwgQy1NLS4sIGFuZAorOzsgTS0/LCByZXNwZWN0aXZlbHldKSB3b3Jr
IGluIFRlWCBidWZmZXJzLiAgVGhlIG9ubHkgbWV0aG9kcyB3ZQorOzsgYWN0dWFsbHkgbW9kaWZ5
IGFyZSBgeHJlZi1iYWNrZW5kLWlkZW50aWZpZXItYXQtcG9pbnQnIGFuZAorOzsgYHhyZWYtYmFj
a2VuZC1yZWZlcmVuY2VzJy4gIE1hbnkgb2YgdGhlIGNvbXBsaWNhdGlvbnMgaGVyZSwgYW5kIGlu
Cis7OyBgZXRhZ3MnIGl0c2VsZiwgYXJlIGR1ZSB0byB0aGUgbmVjZXNzaXR5IG9mIHBhcnNpbmcg
Ym90aCB0aGUgb2xkCis7OyBUZVggc3ludGF4IGFuZCB0aGUgbmV3IGV4cGwzIHN5bnRheCwgd2hp
Y2ggd2lsbCBjb250aW51ZSB0byBhcHBlYXIKKzs7IHRvZ2V0aGVyIGluIGRvY3VtZW50cyBmb3Ig
dGhlIGZvcmVzZWVhYmxlIGZ1dHVyZS4gIFN5bmNocm9uaXppbmcKKzs7IEVtYWNzIGFuZCBgZXRh
Z3MnIHRoaXMgd2F5IGFpbXMgdG8gaW1wcm92ZSB0aGUgdXNlciBleHBlcmllbmNlICJvdXQKKzs7
IG9mIHRoZSBib3guIgorCisoZGVmdmFyIHRleC1lc2MtYW5kLWdyb3VwLWNoYXJzICcoP1xcID97
ID99KQorICAiVGhlIGN1cnJlbnQgVGVYIGVzY2FwZSBhbmQgZ3JvdXBpbmcgY2hhcmFjdGVycy4K
KworVGhlIGBldGFncycgcHJvZ3JhbSBvbmx5IHJlY29nbml6ZXMgYFxcJyAoOTIpIGFuZCBgIScg
KDMzKSBhcworZXNjYXBlIGNoYXJhY3RlcnMgaW4gVGVYIGRvY3VtZW50cywgYW5kIGlmIGl0IGRl
dGVjdHMgdGhlIGxhdHRlcgoraXQgYWxzbyB1c2VzIGA8PicgYXMgdGhlIFRlWCBncm91cGluZyBj
b25zdHJ1Y3QgcmF0aGVyIHRoYW4gYHt9Jy4KK1RoZSBUZVggYHhyZWYtYmFja2VuZC1pZGVudGlm
aWVyLWF0LXBvaW50JyBtZXRob2QgdXNlcyB0aGVzZQordGhyZWUgY2hhcmFjdGVycyB0byBkZWxp
bWl0IHRoZSBgdGhpbmctYXQtcG9pbnQnIGluIFRlWCBidWZmZXJzLAorc28gdGhpcyB2YXJpYWJs
ZSBzaG91bGQgY29udGFpbiBhdCBsZWFzdCB0aGVzZSB0aHJlZSwgdGhvdWdoIHlvdQorY2FuIG9w
dGlvbmFsbHkgYWRkIG90aGVyIGNoYXJhY3RlcnMgaWYgdGhlIGRlZmF1bHQgc2V0IG9mIFRlWAor
c3ltYm9sIGRlbGltaXRlcnMgaXMgaW5hZGVxdWF0ZSBmb3IgeW91ciBkb2N1bWVudHMuICAoVGhl
CitmdW5jdGlvbnMgYHRleC10aGluZ2F0cHQtLWJlZ2lubmluZy1vZi1zeW1ib2wnCitgdGV4LXRo
aW5nYXRwdC0tZW5kLW9mLXN5bWJvbCcgY29uc3RydWN0IHRoZSByZWdleHAuKSAgU2V0dGluZwor
dGhlIGVzY2FwZSBhbmQgZ3JvdXBpbmcgY2hhcnMgdG8gYW55dGhpbmcgb3RoZXIgdGhhbiBgXFx7
fScgb3IKK2AhPD4nIHdpbGwgbm90IGJlIHVzZWZ1bCB3aXRob3V0IGNoYW5nZXMgdG8gYGV0YWdz
JywgYXQgbGVhc3QgZm9yCitjb21tYW5kcyB0aGF0IHNlYXJjaCB0YWdzIHRhYmxlcywgc3VjaCBh
cworXFxbeHJlZi1maW5kLWRlZmluaXRpb25zXSBhbmQgXFxbeHJlZi1maW5kLWFwcm9wb3NdLiIp
CisKKzs7IFBvcHVsYXRlIGBzZW1hbnRpYy1zeW1yZWYtZmlsZXBhdHRlcm4tYWxpc3QnIGZvciB0
aGUgaW4tdHJlZSBtb2RlczsKKzs7IEFVQ1RlWCBpcyBkb2luZyB0aGUgc2FtZSBmb3IgaXRzIG1v
ZGVzLgorKGRlZnZhciBzZW1hbnRpYy1zeW1yZWYtZmlsZXBhdHRlcm4tYWxpc3QpCisod2l0aC1l
dmFsLWFmdGVyLWxvYWQgJ3NlbWFudGljL3N5bXJlZi9ncmVwCisgIChwdXNoICcobGF0ZXgtbW9k
ZSAiKi5bdFRdZVt4WF0iICIqLmx0eCIgIiouc3R5IiAiKi5jbFtzb10iCisgICAgICAgICAgICAg
ICAgICAgICAiKi5iYmwiICIqLmRydiIgIiouaHZhIikKKyAgICAgICAgc2VtYW50aWMtc3ltcmVm
LWZpbGVwYXR0ZXJuLWFsaXN0KQorICAocHVzaCAnKHBsYWluLXRleC1tb2RlICIqLlt0VF1lW3hY
XSIgIiouaW5zIikKKyAgICAgICAgc2VtYW50aWMtc3ltcmVmLWZpbGVwYXR0ZXJuLWFsaXN0KQor
ICAocHVzaCAnKGRvY3RleC1tb2RlICIqLmR0eCIpIHNlbWFudGljLXN5bXJlZi1maWxlcGF0dGVy
bi1hbGlzdCkpCisKKyhkZWZ1biB0ZXgtLXhyZWYtYmFja2VuZCAoKSAndGV4LWV0YWdzKQorCis7
OyBTZXR1cCBBVUNUZVggbW9kZXMgKGZvciB0ZXN0aW5nIHB1cnBvc2VzIG9ubHkpLgorCisoYWRk
LWhvb2sgJ1RlWC1tb2RlLWhvb2sgIyd0ZXgtc2V0LWF1Y3RleC14cmVmLWJhY2tlbmQpCisKKyhk
ZWZ1biB0ZXgtc2V0LWF1Y3RleC14cmVmLWJhY2tlbmQgKCkKKyAgKGFkZC1ob29rICd4cmVmLWJh
Y2tlbmQtZnVuY3Rpb25zICMndGV4LS14cmVmLWJhY2tlbmQgbmlsIHQpKQorCis7OyBgeHJlZi1m
aW5kLXJlZmVyZW5jZXMnIGN1cnJlbnRseSBtYXkgbmVlZCB0aGlzIHdoZW4gY2FsbGVkIGZyb20g
YQorOzsgbGF0ZXgtbW9kZSBidWZmZXIgaW4gb3JkZXIgdG8gc2VhcmNoIGZpbGVzIG9yIGJ1ZmZl
cnMgd2l0aCBhIC50ZXgKKzs7IHN1ZmZpeCAoaW5jbHVkaW5nIHRoZSBidWZmZXIgZnJvbSB3aGlj
aCBpdCBoYXMgYmVlbiBjYWxsZWQpLiAgV2UKKzs7IGFwcGVuZCBpdCB0byBgYXV0by1tb2RlLWFs
aXN0JyBzbyBhcyBub3QgdG8gaW50ZXJmZXJlIHdpdGggdGhlIHVzdWFsCis7OyBtb2RlLXNldHRp
bmcgYXBwYXJhdHVzLiAgQ2hhbmdlcyBoZXJlIGFuZCBpbiBBVUNUZVggc2hvdWxkIHNvb24KKzs7
IHJlbmRlciBpdCB1bm5lY2Vzc2FyeS4KKyhhZGQtdG8tbGlzdCAnYXV0by1tb2RlLWFsaXN0ICco
IlxcLlt0VF1lW3hYXVxcJyIgLiBsYXRleC1tb2RlKSB0KQorCisoY2wtZGVmbWV0aG9kIHhyZWYt
YmFja2VuZC1pZGVudGlmaWVyLWF0LXBvaW50ICgoX2JhY2tlbmQgKGVxbCAndGV4LWV0YWdzKSkp
CisgIChyZXF1aXJlICdldGFncykKKyAgKHRleC0tdGhpbmctYXQtcG9pbnQpKQorCis7OyBUaGUg
ZGV0ZWN0aW9uIG9mIGBfJyBhbmQgYDonIGlzIGEgcHJpbWl0aXZlIG1ldGhvZCBmb3IgZGV0ZXJt
aW5pbmcKKzs7IHdoZXRoZXIgcG9pbnQgaXMgb24gYW4gZXhwbDMgY29uc3RydWN0LiAgSXQgbWF5
IGZhaWwgaW4gc29tZQorOzsgaW5zdGFuY2VzLgorKGRlZnVuIHRleC0tdGhpbmctYXQtcG9pbnQg
KCkKKyAgIkRlbWFyY2F0ZSBgdGhpbmctYXQtcG9pbnQnIGZvciBUZVggYHhyZWYnIGJhY2tlbmQu
IgorICAobGV0ICgoYm91bmRzICh0ZXgtLWJvdW5kcy1vZi1zeW1ib2wtYXQtcG9pbnQpKSkKKyAg
ICAod2hlbiBib3VuZHMKKyAgICAgIChsZXQgKCh0ZXhzeW0gKGJ1ZmZlci1zdWJzdHJpbmctbm8t
cHJvcGVydGllcyAoY2FyIGJvdW5kcykgKGNkciBib3VuZHMpKSkpCisgICAgICAgIChpZiAoYW5k
IChub3QgKHN0cmluZy1tYXRjaC1wICJyZWZlcmVuY2UiIChzeW1ib2wtbmFtZSB0aGlzLWNvbW1h
bmQpKSkKKyAgICAgICAgICAgICAgICAgKHNlcS1jb250YWlucy1wIHRleHN5bSA/XykKKyAgICAg
ICAgICAgICAgICAgKHNlcS1jb250YWlucy1wIHRleHN5bSA/OikpCisgICAgICAgICAgICAoc2Vx
LXRha2UgdGV4c3ltIChzZXEtcG9zaXRpb24gdGV4c3ltID86KSkKKyAgICAgICAgICB0ZXhzeW0p
KSkpKQorCisoZGVmdW4gdGV4LXRoaW5nYXRwdC0tYmVnaW5uaW5nLW9mLXN5bWJvbCAoKQorICAo
YW5kCisgICAocmUtc2VhcmNoLWJhY2t3YXJkIChjb25jYXQgIltdWyIKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAobWFwY29uY2F0ICMncmVnZXhwLXF1b3RlCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWFwY2FyICMnY2hhci10by1zdHJpbmcKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4LWVzYy1h
bmQtZ3JvdXAtY2hhcnMpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcIipgJyM9
JigpJSx8JFs6Y250cmw6XVs6Ymxhbms6XV0iKSkKKyAgIChmb3J3YXJkLWNoYXIpKSkKKworKGRl
ZnVuIHRleC10aGluZ2F0cHQtLWVuZC1vZi1zeW1ib2wgKCkKKyAgKGFuZAorICAgKHJlLXNlYXJj
aC1mb3J3YXJkIChjb25jYXQgIltdWyIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICht
YXBjb25jYXQgIydyZWdleHAtcXVvdGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIChtYXBjYXIgIydjaGFyLXRvLXN0cmluZworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXgtZXNjLWFuZC1ncm91cC1jaGFycykpCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXCIqYCcjPSYoKSUsfCRbOmNudHJsOl1bOmJs
YW5rOl1dIikpCisgICAoYmFja3dhcmQtY2hhcikpKQorCisoZGVmdW4gdGV4LS1ib3VuZHMtb2Yt
c3ltYm9sLWF0LXBvaW50ICgpCisgICJTaW1wbGlmeSBgYm91bmRzLW9mLXRoaW5nLWF0LXBvaW50
JyBmb3IgVGVYIGB4cmVmJyBiYWNrZW5kLiIKKyAgKGxldCAoKG9yaWcgKHBvaW50KSkpCisgICAg
KGlnbm9yZS1lcnJvcnMKKyAgICAgIChzYXZlLWV4Y3Vyc2lvbgorCSh0ZXgtdGhpbmdhdHB0LS1l
bmQtb2Ytc3ltYm9sKQorCSh0ZXgtdGhpbmdhdHB0LS1iZWdpbm5pbmctb2Ytc3ltYm9sKQorCShs
ZXQgKChiZWcgKHBvaW50KSkpCisJICAoaWYgKDw9IGJlZyBvcmlnKQorCSAgICAgIChsZXQgKChy
ZWFsLWVuZAorCQkgICAgIChwcm9nbgorCQkgICAgICAgKHRleC10aGluZ2F0cHQtLWVuZC1vZi1z
eW1ib2wpCisJCSAgICAgICAocG9pbnQpKSkpCisJCShjb25kICgoYW5kICg8PSBvcmlnIHJlYWwt
ZW5kKSAoPCBiZWcgcmVhbC1lbmQpKQorCQkgICAgICAgKGNvbnMgYmVnIHJlYWwtZW5kKSkKKyAg
ICAgICAgICAgICAgICAgICAgICAoKGFuZCAoPSBvcmlnIHJlYWwtZW5kKSAoPSBiZWcgcmVhbC1l
bmQpKQorCQkgICAgICAgKGNvbnMgYmVnICgxKyBiZWcpKSkpKSkpKSkpKTs7IEZvciAxLWNoYXIg
VGVYIGNvbW1hbmRzLgorCisoY2wtZGVmbWV0aG9kIHhyZWYtYmFja2VuZC1pZGVudGlmaWVyLWNv
bXBsZXRpb24tdGFibGUgKChfYmFja2VuZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVxbCAndGV4LWV0YWdzKSkpCisgICh4cmVmLWJh
Y2tlbmQtaWRlbnRpZmllci1jb21wbGV0aW9uLXRhYmxlICdldGFncykpCisKKyhjbC1kZWZtZXRo
b2QgeHJlZi1iYWNrZW5kLWlkZW50aWZpZXItY29tcGxldGlvbi1pZ25vcmUtY2FzZSAoKF9iYWNr
ZW5kCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAoZXFsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgJ3RleC1ldGFncykpKQorICAoeHJlZi1iYWNrZW5kLWlk
ZW50aWZpZXItY29tcGxldGlvbi1pZ25vcmUtY2FzZSAnZXRhZ3MpKQorCisoY2wtZGVmbWV0aG9k
IHhyZWYtYmFja2VuZC1kZWZpbml0aW9ucyAoKF9iYWNrZW5kIChlcWwgJ3RleC1ldGFncykpIHN5
bWJvbCkKKyAgKHhyZWYtYmFja2VuZC1kZWZpbml0aW9ucyAnZXRhZ3Mgc3ltYm9sKSkKKworKGNs
LWRlZm1ldGhvZCB4cmVmLWJhY2tlbmQtYXByb3BvcyAoKF9iYWNrZW5kIChlcWwgJ3RleC1ldGFn
cykpIHBhdHRlcm4pCisgICh4cmVmLWJhY2tlbmQtYXByb3BvcyAnZXRhZ3MgcGF0dGVybikpCisK
Kzs7IFRoZSBgeHJlZi1iYWNrZW5kLXJlZmVyZW5jZXMnIG1ldGhvZCByZXF1aXJlcyBtb3JlIGNv
ZGUgdGhhbiB0aGUKKzs7IG90aGVycyBmb3IgYXQgbGVhc3QgdHdvIG1haW4gcmVhc29uczogVGVY
IGF1dGhvcnMgaGF2ZSB0eXBpY2FsbHkgYmVlbgorOzsgZnJlZSBpbiB0aGVpciBpbnZlbnRpb24g
b2YgbmV3IGZpbGUgdHlwZXMgd2l0aCBuZXcgc3VmZml4ZXMsIGFuZCB0aGV5Cis7OyBoYXZlIGFs
c28gdGVuZGVkIHNvbWV0aW1lcyB0byBpbmNsdWRlIG5vbi1zeW1ib2wgY2hhcmFjdGVycyBpbgor
OzsgY29tbWFuZCBuYW1lcy4gIFdoZW4gY29tYmluZWQgd2l0aCB0aGUgZGVmYXVsdCBTZW1hbnRp
YyBTeW1ib2wKKzs7IFJlZmVyZW5jZSBBUEksIHRoZXNlIHR3byBjaGFyYWN0ZXJpc3RpY3Mgb2Yg
VGVYIGNvZGUgbWVhbiB0aGF0IGEKKzs7IGNvbW1hbmQgbGlrZSBgeHJlZi1maW5kLXJlZmVyZW5j
ZXMnIHdvdWxkIG9mdGVuIGZhaWwgdG8gZmluZCBhbnkgaGl0cworOzsgZm9yIGEgc3ltYm9sIGF0
IHBvaW50LCBpbmNsdWRpbmcgdGhlIG9uZSB1bmRlciBwb2ludCBpbiB0aGUgY3VycmVudAorOzsg
YnVmZmVyLCBvciBpdCB3b3VsZCBmaW5kIG9ubHkgc29tZSBpbnN0YW5jZXMgYW5kIHNraXAgb3Ro
ZXJzLgorCisoZGVmdW4gdGV4LWZpbmQtcmVmZXJlbmNlcy1zeW50YXgtdGFibGUgKCkKKyAgKGxl
dCAoKHN0IChpZiAoYm91bmRwICdUZVgtbW9kZS1zeW50YXgtdGFibGUpCisgICAgICAgICAgICAg
ICAgIChtYWtlLXN5bnRheC10YWJsZSBUZVgtbW9kZS1zeW50YXgtdGFibGUpCisgICAgICAgICAg
ICAgICAobWFrZS1zeW50YXgtdGFibGUgdGV4LW1vZGUtc3ludGF4LXRhYmxlKSkpKQorICAgIHN0
KSkKKworKGRlZm1hY3JvIHRleC14cmVmLXN5bnRheC1mdW5jdGlvbiAoc3RyIGJlZyBlbmQpCisg
IChsZXQqIChncnBiIHRlbXBzdHIKKyAgICAgICAgICAgICAgKHNocnRzdHIgKGlmIGVuZAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKHByb2duCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIChzZXRxIHRlbXBzdHIgKHNlcS10YWtlIHN0ciAoMS0gKGxlbmd0aCBzdHIpKSkpCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIChpZiBiZWcKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIChzZXRxIHRlbXBzdHIgKHNlcS1kcm9wIHRlbXBzdHIgMSkpCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgdGVtcHN0cikpCisgICAgICAgICAgICAgICAgICAgICAgICAg
KHNlcS1kcm9wIHN0ciAxKSkpCisgICAgICAgICAgICAgIChncnBhIChpZiAoYW5kIGJlZyBlbmQp
CisgICAgICAgICAgICAgICAgICAgICAgICAocHJvZzEKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAobGlzdCAxICJfIikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKHNldHEgZ3JwYiAo
bGlzdCAyICJfIikpKQorICAgICAgICAgICAgICAgICAgICAgIChsaXN0IDEgIl8iKSkpCisgICAg
ICAgICAgICAgIChyZSAoY29uY2F0IGJlZyAocmVnZXhwLXF1b3RlIHNocnRzdHIpIGVuZCkpCisg
ICAgICAgICAgICAgICh0ZW1wLXJ1bGUgKGlmIGdycGIKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKGxpc3QgcmUgZ3JwYSBncnBiKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxp
c3QgcmUgZ3JwYSkpKSkKKyAgICBgKHN5bnRheC1wcm9wZXJ0aXplLXJ1bGVzICx0ZW1wLXJ1bGUp
KSkKKworKGRlZnVuIHRleC0tY29sbGVjdC1maWxlLWV4dGVuc2lvbnMgKCkKKyAgKGxldCogKCht
bGlzdCAod2hlbiAocmFzc3EgbWFqb3ItbW9kZSBhdXRvLW1vZGUtYWxpc3QpCisJCSAgKHNlcS1m
aWx0ZXIKKwkJICAgKGxhbWJkYSAoZWx0KQorCQkgICAgIChlcSAoY2RyIGVsdCkgbWFqb3ItbW9k
ZSkpCisJCSAgIGF1dG8tbW9kZS1hbGlzdCkpKQorCSAobGNzeW0gKGludGVybi1zb2Z0IChkb3du
Y2FzZSAoc3ltYm9sLW5hbWUgbWFqb3ItbW9kZSkpKSkKKwkgKGxjbGlzdCAoYW5kIGxjc3ltCisJ
CSAgICAgIChub3QgKGVxIGxjc3ltIG1ham9yLW1vZGUpKQorCQkgICAgICAocmFzc3EgbGNzeW0g
YXV0by1tb2RlLWFsaXN0KQorCQkgICAgICAoc2VxLWZpbHRlcgorCQkgICAgICAgKGxhbWJkYSAo
ZWx0KQorCQkJIChlcSAoY2RyIGVsdCkgbGNzeW0pKQorCQkgICAgICAgYXV0by1tb2RlLWFsaXN0
KSkpCisJIChzaG9ydHN5bSAod2hlbiAoc3RyaW5ncCBtb2RlLW5hbWUpCisJCSAgICAgKGludGVy
bi1zb2Z0IChjb25jYXQgKHN0cmluZy10cmltLXJpZ2h0IG1vZGUtbmFtZSAiLy4qIikKKwkJCQkJ
ICAiLW1vZGUiKSkpKQorCSAobGNzaG9ydHN5bSAod2hlbiAoc3RyaW5ncCBtb2RlLW5hbWUpCisJ
CSAgICAgICAoaW50ZXJuLXNvZnQgKGRvd25jYXNlCisJCQkJICAgICAoY29uY2F0CisJCQkJICAg
ICAgKHN0cmluZy10cmltLXJpZ2h0IG1vZGUtbmFtZSAiLy4qIikKKwkJCQkgICAgICAiLW1vZGUi
KSkpKSkKKwkgKHNobGlzdCAoYW5kIHNob3J0c3ltCisJCSAgICAgIChub3QgKGVxIHNob3J0c3lt
IG1ham9yLW1vZGUpKQorCQkgICAgICAobm90IChlcSBzaG9ydHN5bSBsY3N5bSkpCisJCSAgICAg
IChyYXNzcSBzaG9ydHN5bSBhdXRvLW1vZGUtYWxpc3QpCisJCSAgICAgIChzZXEtZmlsdGVyCisJ
CSAgICAgICAobGFtYmRhIChlbHQpCisJCQkgKGVxIChjZHIgZWx0KSBzaG9ydHN5bSkpCisJCSAg
ICAgICBhdXRvLW1vZGUtYWxpc3QpKSkKKwkgKGxjc2hsaXN0IChhbmQgbGNzaG9ydHN5bQorCQkJ
KG5vdCAoZXEgbGNzaG9ydHN5bSBtYWpvci1tb2RlKSkKKwkJCShub3QgKGVxIGxjc2hvcnRzeW0g
bGNzeW0pKQorCQkJKHJhc3NxIGxjc2hvcnRzeW0gYXV0by1tb2RlLWFsaXN0KQorCQkJKHNlcS1m
aWx0ZXIKKwkJCSAobGFtYmRhIChlbHQpCisJCQkgICAoZXEgKGNkciBlbHQpIGxjc2hvcnRzeW0p
KQorCQkJIGF1dG8tbW9kZS1hbGlzdCkpKQorCSAoZXh0cyAod2hlbiAob3IgbWxpc3QgbGNsaXN0
IHNobGlzdCBsY3NobGlzdCkKKwkJIChzZXEtdW5pb24gKHNlcS1tYXAgIydjYXIgbGNsaXN0KQor
CQkJICAgIChzZXEtdW5pb24gKHNlcS1tYXAgIydjYXIgbWxpc3QpCisJCQkJICAgICAgIChzZXEt
dW5pb24gKHNlcS1tYXAgIydjYXIgbGNzaGxpc3QpCisJCQkJCQkgIChzZXEtbWFwICMnY2FyIHNo
bGlzdCkpKSkpKQorCSAoZWQtZXh0cyAod2hlbiBleHRzCisJCSAgICAoc2VxLW1hcAorCQkgICAg
IChsYW1iZGEgKGVsdCkKKwkJICAgICAgIChjb25jYXQgIioiIChzdHJpbmctdHJpbSAgZWx0ICJc
XFxcIiAiXFxcXCciKSkpCisJCSAgICAgZXh0cykpKSkKKyAgICBlZC1leHRzKSkKKworKGRlZnZh
ciB0ZXgtLWJ1ZmZlcnMtbGlzdCBuaWwpCisoZGVmdmFyLWxvY2FsIHRleC0tbGFzdC1yZWYtc3lu
dGF4LWZsYWcgbmlsKQorKGRlZnZhci1sb2NhbCB0ZXgtLW9sZC1zeW50YXgtZnVuY3Rpb24gbmls
KQorCisoY2wtZGVmbWV0aG9kIHhyZWYtYmFja2VuZC1yZWZlcmVuY2VzICgoX2JhY2tlbmQgKGVx
bCAndGV4LWV0YWdzKSkgaWRlbnRpZmllcikKKyAgIkZpbmQgcmVmZXJlbmNlcyBvZiBJREVOVElG
SUVSIGluIFRlWCBidWZmZXJzIGFuZCBmaWxlcy4iCisgIChyZXF1aXJlICdzZW1hbnRpYy9zeW1y
ZWYvZ3JlcCkKKyAgKGxldCAoYnVmcyB0ZXhidWZzCisgICAgICAgICAgICAgKG1vZGUgbWFqb3It
bW9kZSkpCisgICAgKGRvbGlzdCAoYnVmIChidWZmZXItbGlzdCkpCisgICAgICAoaWYgKGVxIChi
dWZmZXItbG9jYWwtdmFsdWUgJ21ham9yLW1vZGUgYnVmKSBtb2RlKQorICAgICAgICAgIChwdXNo
IGJ1ZiBidWZzKQorICAgICAgICAod2hlbiAoc3RyaW5nLW1hdGNoLXAgIi4qXFwuW3RUXWVbeFhd
IiAoYnVmZmVyLW5hbWUgYnVmKSkKKyAgICAgICAgICAocHVzaCBidWYgdGV4YnVmcykpKSkKKyAg
ICAodW5sZXNzIChzZXEtc2V0LWVxdWFsLXAgdGV4LS1idWZmZXJzLWxpc3QgYnVmcykKKyAgICAg
IChsZXQqICgoYW1hbGlzdCAodGV4LS1jb2xsZWN0LWZpbGUtZXh0ZW5zaW9ucykpCisJICAgICAo
ZXh0bGlzdCAoYWxpc3QtZ2V0IG1vZGUgc2VtYW50aWMtc3ltcmVmLWZpbGVwYXR0ZXJuLWFsaXN0
KSkKKwkgICAgIChleHRsaXN0LW5ldyAoc2VxLXVuaXEKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgIChzZXEtdW5pb24gYW1hbGlzdCBleHRsaXN0ICMnc3RyaW5nLW1hdGNoLXApKSkpCisJKHNl
dHEgdGV4LS1idWZmZXJzLWxpc3QgYnVmcykKKwkoZG9saXN0IChidWYgYnVmcykKKwkgICh3aGVu
LWxldCAoKGZidWYgKGJ1ZmZlci1maWxlLW5hbWUgYnVmKSkKKwkJICAgICAoZXh0IChmaWxlLW5h
bWUtZXh0ZW5zaW9uIGZidWYpKQorCQkgICAgIChmaW5leHQgKGNvbmNhdCAiKi4iIGV4dCkpCisJ
CSAgICAgKChub3QgKHNlcS1maW5kIChsYW1iZGEgKGVsdCkgKHN0cmluZy1tYXRjaC1wIGVsdCBm
aW5leHQpKQorCQkJCSAgICAgZXh0bGlzdC1uZXcpKSkKKwkJICAgICAoKHB1c2ggZmluZXh0IGV4
dGxpc3QtbmV3KSkpKSkKKwkodW5sZXNzIChzZXEtc2V0LWVxdWFsLXAgZXh0bGlzdC1uZXcgZXh0
bGlzdCkKKwkgIChzZXRmIChhbGlzdC1nZXQgbW9kZSBzZW1hbnRpYy1zeW1yZWYtZmlsZXBhdHRl
cm4tYWxpc3QpCisgICAgICAgICAgICAgICAgZXh0bGlzdC1uZXcpKSkpCisgICAgKGxldCogKHNl
dHN5bnRheAorICAgICAgICAgICAocHVuY3QgKHdpdGgtc3ludGF4LXRhYmxlICh0ZXgtZmluZC1y
ZWZlcmVuY2VzLXN5bnRheC10YWJsZSkKKyAgICAgICAgICAgICAgICAgICAgKHNlcS1wb3NpdGlv
bnMgaWRlbnRpZmllciAobGlzdCA/dyA/XykKKwkJCSAgICAgICAgICAgKGxhbWJkYSAoZWx0IHN5
Y29kZSkKKwkJCSAgICAgICAgICAgICAobm90IChtZW1xIChjaGFyLXN5bnRheCBlbHQpIHN5Y29k
ZSkpKSkpKQorICAgICAgICAgICAoZW5kIChhbmQgcHVuY3QKKyAgICAgICAgICAgICAgICAgICAg
IChtZW1xICgxLSAobGVuZ3RoIGlkZW50aWZpZXIpKSBwdW5jdCkKKyAgICAgICAgICAgICAgICAg
ICAgICg+IChsZW5ndGggaWRlbnRpZmllcikgMSkKKyAgICAgICAgICAgICAgICAgICAgIChjb25j
YXQgIlxcKCIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHJlZ2V4cC1xdW90ZQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgKHN0cmluZyAoZWx0IGlkZW50aWZpZXIKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMS0gKGxlbmd0aCBpZGVudGlm
aWVyKSkpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlxcKSIpKSkKKyAgICAgICAg
ICAgKGJlZyAoYW5kIHB1bmN0CisgICAgICAgICAgICAgICAgICAgICAobWVtcSAwIHB1bmN0KQor
ICAgICAgICAgICAgICAgICAgICAgKGNvbmNhdCAiXFwoIgorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAocmVnZXhwLXF1b3RlIChzdHJpbmcgKGVsdCBpZGVudGlmaWVyIDApKSkKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIlxcKSIpKSkKKyAgICAgICAgICAgKHRleHQtbW9kZS1o
b29rCisgICAgICAgICAgICAoaWYgKG9yIGVuZCBiZWcpCisgICAgICAgICAgICAgICAgKHByb2du
CisgICAgICAgICAgICAgICAgICAoc2V0cSBzZXRzeW50YXggKGxhbWJkYSAoKQorCQkgICAgICAg
ICAgICAgICAgICAgIChzZXRxLWxvY2FsIHN5bnRheC1wcm9wZXJ0aXplLWZ1bmN0aW9uCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZXZhbAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGAodGV4LXhyZWYtc3lu
dGF4LWZ1bmN0aW9uCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAsaWRlbnRpZmllciAsYmVnICxlbmQpKSkKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIChzZXRxLWxvY2FsIFRlWC1zdHlsZS1ob29rLWFwcGxpZWQtcCB0KSkpCisg
ICAgICAgICAgICAgICAgICAoY29ucyBzZXRzeW50YXggdGV4dC1tb2RlLWhvb2spKQorICAgICAg
ICAgICAgICB0ZXh0LW1vZGUtaG9vaykpKQorICAgICAgKHVubGVzcyAobWVtcSAnZG9jdGV4LW1v
ZGUgKGRlcml2ZWQtbW9kZS1hbGwtcGFyZW50cyBtb2RlKSkKKyAgICAgICAgKHNldHEgYnVmcyAo
YXBwZW5kIHRleGJ1ZnMgYnVmcykpKQorICAgICAgKGRvbGlzdCAoYnVmIGJ1ZnMpCisgICAgICAg
ICh3aXRoLWN1cnJlbnQtYnVmZmVyIGJ1ZgorICAgICAgICAgIChpZiAob3IgZW5kIGJlZykKKyAg
ICAgICAgICAgICAgKHByb2duCisgICAgICAgICAgICAgICAgKHVubGVzcyAobG9jYWwtdmFyaWFi
bGUtcCAndGV4LS1vbGQtc3ludGF4LWZ1bmN0aW9uKQorICAgICAgICAgICAgICAgICAgKHNldHEg
dGV4LS1vbGQtc3ludGF4LWZ1bmN0aW9uIHN5bnRheC1wcm9wZXJ0aXplLWZ1bmN0aW9uKSkKKyAg
ICAgICAgICAgICAgICAoc2V0cS1sb2NhbCBzeW50YXgtcHJvcGVydGl6ZS1mdW5jdGlvbgorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIChldmFsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGAodGV4LXhyZWYtc3ludGF4LWZ1bmN0aW9uCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgLGlkZW50aWZpZXIgLGJlZyAsZW5kKSkpCisgICAgICAgICAgICAgICAgKHNldHEgc3lu
dGF4LXByb3BlcnRpemUtLWRvbmUgMCkKKyAgICAgICAgICAgICAgICAoc2V0cSB0ZXgtLWxhc3Qt
cmVmLXN5bnRheC1mbGFnIHQpKQorICAgICAgICAgICAgOzsgSWYgd2UndmUgY29tcHV0ZWQgYSBi
ZXNwb2tlIGBzeW50YXgtcHJvcGVydGl6ZS1mdW5jdGlvbicKKyAgICAgICAgICAgIDs7IHRoZW4g
dGhpcyByZXR1cm5zIHRoZSBidWZmZXIgdG8gdGhlIHN0YXR1cyBxdW8gYW50ZQorICAgICAgICAg
ICAgOzsgYmVsbHVtIG9uIHRoZSBuZXh0IGludm9jYXRpb24gb2YgTS0/IHRoYXQgc2VhcmNoZXMg
aXQuCisgICAgICAgICAgICAod2hlbiB0ZXgtLWxhc3QtcmVmLXN5bnRheC1mbGFnCisgICAgICAg
ICAgICAgIChzZXRxLWxvY2FsIHN5bnRheC1wcm9wZXJ0aXplLWZ1bmN0aW9uCisgICAgICAgICAg
ICAgICAgICAgICAgICAgIChldmFsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBgKHRleC14
cmVmLXN5bnRheC1mdW5jdGlvbgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAsaWRlbnRp
ZmllciBuaWwgbmlsKSkpCisgICAgICAgICAgICAgIChzZXRxIHN5bnRheC1wcm9wZXJ0aXplLS1k
b25lIDApKSkpKQorICAgICAgKHVud2luZC1wcm90ZWN0CisgICAgICAgICAgKHhyZWYtYmFja2Vu
ZC1yZWZlcmVuY2VzIG5pbCBpZGVudGlmaWVyKQorICAgICAgICAoZG9saXN0IChidWYgYnVmcykK
KyAgICAgICAgICAod2l0aC1jdXJyZW50LWJ1ZmZlciBidWYKKyAgICAgICAgICAgICh3aGVuIGJ1
ZmZlci1maWxlLXRydWVuYW1lCisgICAgICAgICAgICAgIChpZiAob3IgZW5kIGJlZykKKyAgICAg
ICAgICAgICAgICAgIChzZXRxLWxvY2FsIHN5bnRheC1wcm9wZXJ0aXplLWZ1bmN0aW9uCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXgtLW9sZC1zeW50YXgtZnVuY3Rpb24pCisgICAg
ICAgICAgICAgICAgKHdoZW4gdGV4LS1sYXN0LXJlZi1zeW50YXgtZmxhZworICAgICAgICAgICAg
ICAgICAgKHNldHEtbG9jYWwgc3ludGF4LXByb3BlcnRpemUtZnVuY3Rpb24KKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHRleC0tb2xkLXN5bnRheC1mdW5jdGlvbikKKyAgICAgICAgICAg
ICAgICAgIChzZXRxIHRleC0tbGFzdC1yZWYtc3ludGF4LWZsYWcgbmlsKSkpKSkpKSkpKQorCiAo
bWFrZS1vYnNvbGV0ZS12YXJpYWJsZSAndGV4LW1vZGUtbG9hZC1ob29rCiAgICAgICAgICAgICAg
ICAgICAgICAgICAidXNlIGB3aXRoLWV2YWwtYWZ0ZXItbG9hZCcgaW5zdGVhZC4iICIyOC4xIikK
IChydW4taG9va3MgJ3RleC1tb2RlLWxvYWQtaG9vaykKLS0gCjIuMzUuOAoK
--0000000000000c7e7c06173ce321--




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#53749: 29.0.50; [PATCH] Xref backend for TeX buffers
Resent-From: Dmitry Gutov <dgutov@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Thu, 02 May 2024 00:44:02 +0000
Resent-Message-ID: <handler.53749.B53749.171461062823451 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 53749
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: pending patch
To: David Fussner <dfussner@HIDDEN>, Arash Esbati <arash@HIDDEN>
Cc: 53749 <at> debbugs.gnu.org, Ikumi Keita <ikumi@HIDDEN>, stefankangas@HIDDEN, Tassilo Horn <tsdh@HIDDEN>, Eli Zaretskii <eliz@HIDDEN>, Stefan Monnier <monnier@HIDDEN>
Received: via spool by 53749-submit <at> debbugs.gnu.org id=B53749.171461062823451
          (code B ref 53749); Thu, 02 May 2024 00:44:02 +0000
Received: (at 53749) by debbugs.gnu.org; 2 May 2024 00:43:48 +0000
Received: from localhost ([127.0.0.1]:40298 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1s2KY8-00066B-70
	for submit <at> debbugs.gnu.org; Wed, 01 May 2024 20:43:48 -0400
Received: from forward501c.mail.yandex.net ([178.154.239.209]:45440)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <dgutov@HIDDEN>) id 1s2KY5-000663-Q7
 for 53749 <at> debbugs.gnu.org; Wed, 01 May 2024 20:43:47 -0400
Received: from mail-nwsmtp-smtp-production-main-39.myt.yp-c.yandex.net
 (mail-nwsmtp-smtp-production-main-39.myt.yp-c.yandex.net
 [IPv6:2a02:6b8:c12:2787:0:640:338c:0])
 by forward501c.mail.yandex.net (Yandex) with ESMTPS id EAC9460EBC;
 Thu,  2 May 2024 03:43:21 +0300 (MSK)
Received: by mail-nwsmtp-smtp-production-main-39.myt.yp-c.yandex.net
 (smtp/Yandex) with ESMTPSA id GhGTZaVMf8c0-xX3IEU4d; 
 Thu, 02 May 2024 03:43:21 +0300
X-Yandex-Fwd: 1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex.ru; s=mail;
 t=1714610601; bh=2joRjDGDto1B34fMIja8cRvkGf47dR+BZ8GBojfFMco=;
 h=In-Reply-To:From:Subject:Message-ID:Cc:References:Date:To;
 b=pu0va5NX2MIBtVc1E3jbWQC/cJqrgs5ZTUR2TmQ9uREm5yo39DVLJWOV2YQvPpWd9
 HSykRz+vo82mIe+yC1l4OUynMy4gY+R1k2uMxh1JenUBNyoOgF1m8nXuFee/wX2kbs
 08ticTaQOPeIQTg5YG4MadR8/dHofdY1WrDsVCYM=
Authentication-Results: mail-nwsmtp-smtp-production-main-39.myt.yp-c.yandex.net;
 dkim=pass header.i=@yandex.ru
Received: from compute4.internal (compute4.nyi.internal [10.202.2.44])
 by mailfauth.nyi.internal (Postfix) with ESMTP id B799F1200043;
 Wed,  1 May 2024 20:43:16 -0400 (EDT)
Received: from mailfrontend2 ([10.202.2.163])
 by compute4.internal (MEProxy); Wed, 01 May 2024 20:43:16 -0400
X-ME-Sender: <xms:pOEyZoh_V-4fP3ludKSi3AeLuHagNm6RTePEE-aL625Lq6cwWJEo3Q>
 <xme:pOEyZhCZK-HckzF1DSlgcMvXIXWF3a0SEBNvExBKw1_HbohfBTblOwFiPU7YZNv47
 vmZcgRD6JWpNsLgY7Q>
X-ME-Received: <xmr:pOEyZgHkNP0U4WFoqFV96fG1C9X0R10nxUla6mWl2TI4mB9urphRO47DOmmx77xpy6nA>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvledrvddujedgfeelucetufdoteggodetrfdotf
 fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen
 uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne
 cujfgurhepkfffgggfuffvvehfhfgjtgfgsehtjeertddtvdejnecuhfhrohhmpeffmhhi
 thhrhicuifhuthhovhcuoegughhuthhovheshigrnhguvgigrdhruheqnecuggftrfgrth
 htvghrnhepiefhjeeuveetffffvdefteffffekhfeuudejieehheeiudelgfehgffffedu
 ffdunecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepug
 hguhhtohhvodhmvghsmhhtphgruhhthhhpvghrshhonhgrlhhithihqddufeeffeelleeh
 hedvqddvleegjeejjeejiedqughguhhtohhvpeephigrnhguvgigrdhruhesfhgrshhtmh
 grihhlrdgtohhm
X-ME-Proxy: <xmx:pOEyZpRmLahKnJ9-ATxBBM11c0uA4tCjVOniiVRQWhanFGfBe8JCIw>
 <xmx:pOEyZlxpMYpfb3AoHmdD0qI4E6799xBVyxg16RNSH-FuDo4HpcRw5w>
 <xmx:pOEyZn4gaaX-rQPaeVjKVRhC0nbFGa-0WDPkbvwgZccUqkA7h4TfQw>
 <xmx:pOEyZiybuYtIjHS-5cv39BBGJffquD-e9ygpgRABM8cpY0B6XJ1MdQ>
 <xmx:pOEyZphmsXwbcsZJEiuLVnz_TnWYTvHkDTLAEW0wZHXQCVnFTu7GJJ2F>
Feedback-ID: ib1d9465d:Fastmail
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Wed,
 1 May 2024 20:43:13 -0400 (EDT)
Message-ID: <e5a6ba0d-ca4a-4e21-b44f-12043c59aa6b@HIDDEN>
Date: Thu, 2 May 2024 03:43:12 +0300
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
References: <CADF+RtgWCLKQGwgdTNWmgesbcwq8iBxChoN8FqMOg95Ai3CYTA@HIDDEN>
 <87o7vq0zir.fsf@HIDDEN>
 <CADF+Rtjii7ZHkrfLzS63Yt1UiPPfnOrSsFZe2SMRetOS4w0vng@HIDDEN>
 <8735d20yvd.fsf@HIDDEN>
 <CADF+Rtgz5f6fcVuTLrv_N8oObRw+Uw-Je7bz54Gagb3pRgpR=g@HIDDEN>
 <CADwFkm=p8_Tbu+cXMDA8zEKovb+Ld7QFUJz_AhFnJebhik=JBg@HIDDEN>
 <CADF+RtjGfibN3Yg8mf4hVB9uPWtAwp0m6J2LRH7n0Z20S7+Yzg@HIDDEN>
 <CADwFkmkbMSXdjB6kF3a68_1vb4dv05_vMrKrvoX908nZJrpxOg@HIDDEN>
 <CADF+RtgxigxvgG0j6bbpYnrrFVF4YTKZ1Rs0JSCc8zuu5JNA2w@HIDDEN>
 <fcbc07cf-5ee9-131f-1a18-9cc28a5655f1@HIDDEN>
 <CADF+Rti2gSVvfksUVO04ptKQsXrNpwUXHQ_qFjC26D8NNh578A@HIDDEN>
 <2c5c8afa-b57e-3156-d21c-5523cacb4d87@HIDDEN> <831qf1mgjl.fsf@HIDDEN>
 <87cyyj9rpp.fsf@HIDDEN> <65793.1694843596@localhost>
 <CADF+RtikqxOW0XpwGTWWuGNTWjz3-MWMcO6U65Tta3PJjkRXqw@HIDDEN>
 <m24jbtim2p.fsf@HIDDEN>
 <CADF+RtiOECRmdoFD1qP=gRzS+P3tJqh_WNTnuW-1zPrY9g4VBw@HIDDEN>
Content-Language: en-US
From: Dmitry Gutov <dgutov@HIDDEN>
In-Reply-To: <CADF+RtiOECRmdoFD1qP=gRzS+P3tJqh_WNTnuW-1zPrY9g4VBw@HIDDEN>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-Spam-Score: 0.0 (/)
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: -1.0 (-)

On 29/04/2024 17:15, David Fussner via Bug reports for GNU Emacs, the 
Swiss army knife of text editors wrote:
> though I had to add a one-liner in xref.el to fix
> what I believe is a minor bug there preventing syntax-propertize from
> doing its work when the temp buffer holds text from a new file. (I can
> provide a recipe for this if you want.)

Yes, could you please expand on it separately?

The rest of the patch description just makes sense to me, and I'd be 
happy to leave (or not) the detailed review to whoever reviews TeX 
contributions around here, but this is something I'll need to pay 
special attention to.




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#53749: 29.0.50; [PATCH] Xref backend for TeX buffers
Resent-From: Arash Esbati <arash@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Thu, 02 May 2024 06:49:01 +0000
Resent-Message-ID: <handler.53749.B53749.171463248628220 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 53749
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: pending patch
To: David Fussner <dfussner@HIDDEN>
Cc: 53749 <at> debbugs.gnu.org, Ikumi Keita <ikumi@HIDDEN>, Dmitry Gutov <dgutov@HIDDEN>, Stefan Monnier <monnier@HIDDEN>, Tassilo Horn <tsdh@HIDDEN>, Eli Zaretskii <eliz@HIDDEN>, stefankangas@HIDDEN
Received: via spool by 53749-submit <at> debbugs.gnu.org id=B53749.171463248628220
          (code B ref 53749); Thu, 02 May 2024 06:49:01 +0000
Received: (at 53749) by debbugs.gnu.org; 2 May 2024 06:48:06 +0000
Received: from localhost ([127.0.0.1]:41903 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1s2QEg-0007L6-C0
	for submit <at> debbugs.gnu.org; Thu, 02 May 2024 02:48:06 -0400
Received: from eggs.gnu.org ([2001:470:142:3::10]:36642)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <arash@HIDDEN>) id 1s2QEd-0007Kj-2Z
 for 53749 <at> debbugs.gnu.org; Thu, 02 May 2024 02:48:05 -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 <arash@HIDDEN>)
 id 1s2QE9-0006O3-VB; Thu, 02 May 2024 02:47:33 -0400
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org;
 s=fencepost-gnu-org; h=MIME-Version:Date:References:In-Reply-To:Subject:To:
 From; bh=drNYDg5UxKnWe/AwBJwWjbhK6TWbk9ydSHSN0WRI9xw=; b=WHRoW+fTHdQKtS61BJWG
 J4eYyZ9aKJZW07WGSwfckIp63m0KFwqyCGO8MjjlL8P7xku3E2fE0CXi/xBubm2OLnpBQuLtLdgMe
 E9xNSirYBJ2d/KF/B3zewU26l4knvfFJOAfv7miRPtkoam+XuCQ6UpqVW9m3F2qylXvIgd/tNjj8e
 u8YJhqEShbd3ZBuaf4zhauOtL8FsFHed2Sxi9Ch56/5XUQ1gcfuXXctDO/bUg7ceB3pHFgisnuF3B
 U39UWZp2MSM08LXNILBSwmLFjskEv6nRNFziTqiWohFeiSpkPPt/uskC1SSSD6nL0ICR1K1tCrXqI
 fBTtAMX64I/l2Q==;
From: Arash Esbati <arash@HIDDEN>
In-Reply-To: <CADF+RtiOECRmdoFD1qP=gRzS+P3tJqh_WNTnuW-1zPrY9g4VBw@HIDDEN>
 (David Fussner's message of "Mon, 29 Apr 2024 15:15:41 +0100")
References: <CADF+RtgWCLKQGwgdTNWmgesbcwq8iBxChoN8FqMOg95Ai3CYTA@HIDDEN>
 <1de34060-e93b-0a42-fff5-20e283abe0dc@HIDDEN>
 <87o7vq0zir.fsf@HIDDEN>
 <CADF+Rtjii7ZHkrfLzS63Yt1UiPPfnOrSsFZe2SMRetOS4w0vng@HIDDEN>
 <8735d20yvd.fsf@HIDDEN>
 <CADF+Rtgz5f6fcVuTLrv_N8oObRw+Uw-Je7bz54Gagb3pRgpR=g@HIDDEN>
 <CADwFkm=p8_Tbu+cXMDA8zEKovb+Ld7QFUJz_AhFnJebhik=JBg@HIDDEN>
 <CADF+RtjGfibN3Yg8mf4hVB9uPWtAwp0m6J2LRH7n0Z20S7+Yzg@HIDDEN>
 <CADwFkmkbMSXdjB6kF3a68_1vb4dv05_vMrKrvoX908nZJrpxOg@HIDDEN>
 <CADF+RtgxigxvgG0j6bbpYnrrFVF4YTKZ1Rs0JSCc8zuu5JNA2w@HIDDEN>
 <fcbc07cf-5ee9-131f-1a18-9cc28a5655f1@HIDDEN>
 <CADF+Rti2gSVvfksUVO04ptKQsXrNpwUXHQ_qFjC26D8NNh578A@HIDDEN>
 <2c5c8afa-b57e-3156-d21c-5523cacb4d87@HIDDEN>
 <831qf1mgjl.fsf@HIDDEN> <87cyyj9rpp.fsf@HIDDEN>
 <65793.1694843596@localhost>
 <CADF+RtikqxOW0XpwGTWWuGNTWjz3-MWMcO6U65Tta3PJjkRXqw@HIDDEN>
 <m24jbtim2p.fsf@HIDDEN>
 <CADF+RtiOECRmdoFD1qP=gRzS+P3tJqh_WNTnuW-1zPrY9g4VBw@HIDDEN>
Date: Thu, 02 May 2024 08:47:29 +0200
Message-ID: <m234r0ogla.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13)
MIME-Version: 1.0
Content-Type: text/plain
X-Spam-Score: -2.3 (--)
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 (---)

David Fussner <dfussner@HIDDEN> writes:

> Here's my third attempt at a working xref backend for TeX. I'll try
> quickly to summarize what's in it:
>
> 1. I've modified etags so that it creates findable tags for as many
> different sorts of TeX construct as possible, including those written
> in the new expl3 syntax. I've now removed the escape character from
> the tag names, as this simplifies code all around.

Hi David,

Thanks.  I trust your code works, so I have 2 minor comments.

> 5. Slightly unrelatedly, I've added new syntax-propertize-rules to
> latex-mode so that expl3 constructs with the underscore aren't
> fontified as subscripts, which makes such code unreadable. I'm happy
> to split this off as another patch.

I think this makes sense.  AFAIK, Stefan M. looks after tex-mode.el, so
he can the review it.

> @@ -5736,11 +5752,25 @@ Scheme_functions (FILE *inf)
>  static linebuffer *TEX_toktab = NULL; /* Table with tag tokens */
>  
>  /* Default set of control sequences to put into TEX_toktab.
> -   The value of environment var TEXTAGS is prepended to this.  */
> +   The value of environment var TEXTAGS is prepended to this.
> +   (2024) Add variants of '\def', some additional LaTeX (and
> +   former xparse) commands, common variants from the
> +   'etoolbox' package, and the main expl3 commands. */
>  static const char *TEX_defenv = "\
> -:chapter:section:subsection:subsubsection:eqno:label:ref:cite:bibitem\
> -:part:appendix:entry:index:def\
> -:newcommand:renewcommand:newenvironment:renewenvironment";
> +:label:ref:chapter:section:subsection:subsubsection:eqno:cite:bibitem\

I suggest to add 'Ref' and 'footref' as well which are part of LaTeX
kernel.

> +(defvar tex-esc-and-group-chars '(?\\ ?{ ?})

(defvar tex-esc-and-group-chars '(?\\ ?\{ ?\})

> +  "The current TeX escape and grouping characters.

Best, Arash




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#53749: 29.0.50; [PATCH] Xref backend for TeX buffers
Resent-From: David Fussner <dfussner@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Thu, 02 May 2024 13:33:02 +0000
Resent-Message-ID: <handler.53749.B53749.171465678112640 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 53749
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: pending patch
To: Dmitry Gutov <dgutov@HIDDEN>
Cc: 53749 <at> debbugs.gnu.org, Ikumi Keita <ikumi@HIDDEN>, Arash Esbati <arash@HIDDEN>, Stefan Monnier <monnier@HIDDEN>, Tassilo Horn <tsdh@HIDDEN>, Eli Zaretskii <eliz@HIDDEN>, stefankangas@HIDDEN
Received: via spool by 53749-submit <at> debbugs.gnu.org id=B53749.171465678112640
          (code B ref 53749); Thu, 02 May 2024 13:33:02 +0000
Received: (at 53749) by debbugs.gnu.org; 2 May 2024 13:33:01 +0000
Received: from localhost ([127.0.0.1]:43832 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1s2WYW-0003Ho-KF
	for submit <at> debbugs.gnu.org; Thu, 02 May 2024 09:33:01 -0400
Received: from mail-pg1-x536.google.com ([2607:f8b0:4864:20::536]:44246)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <dfussner@HIDDEN>) id 1s2WYU-0003Hi-AL
 for 53749 <at> debbugs.gnu.org; Thu, 02 May 2024 09:32:59 -0400
Received: by mail-pg1-x536.google.com with SMTP id
 41be03b00d2f7-60c49bdbcd3so3170266a12.0
 for <53749 <at> debbugs.gnu.org>; Thu, 02 May 2024 06:32:36 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=googlemail.com; s=20230601; t=1714656750; x=1715261550; darn=debbugs.gnu.org;
 h=cc:to:subject:message-id:date:from:in-reply-to:references
 :mime-version:from:to:cc:subject:date:message-id:reply-to;
 bh=qbfkAEgVCtaFAoWF+BM65A4yLl8Bt1U72KGGUav95W4=;
 b=R5a1++6IEN9AZYk0TsMR5MsVzpZQmbfsn5Ph2/ad+466eDd1X1lin86HwnQhfoG2fZ
 Z4S+IGn8F1oRcP1ZHUHnGBtBSn+Hh33c4FQU34XMBcqfXZSAI0wvb8q/TlJl2aQmqQ0g
 Q2y3zPtqbEMLkx+1iGF1Rn0qnn3OBG2GCasj7gEhdZjiCJceRhjUDUvHv2uVNaGa4W+2
 anouIa0FMdBR0Fz/vIJvYslXKTWDK6kBXEDs4GMo328goYi+2tuTK4MCBdZa2QGLOGHQ
 rGQ+qix77thckO4g172e5gYCokLng3oiHsNYgtTkDJykIImIMvpcWQC29YM30B/CqMn1
 p9+A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20230601; t=1714656750; x=1715261550;
 h=cc: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=qbfkAEgVCtaFAoWF+BM65A4yLl8Bt1U72KGGUav95W4=;
 b=RrO/JCAB2dfAer6CVotz4O//NTOBNsNYyI9r41pdl1PRFTrRWJPHfvfppzXaakNUPx
 AGrtYJyTc6KEon9T2UCmXS8QLhuDN1/H8uThFfpGQq0wvMMOtS8G392EP+RlLZOg/wjH
 EmmLJCn5on10EHtMGP6uFnSg8tGXyNPUtBgBmT2pbpKtSxzPb4Efjut37duTCjZsH9c8
 XQ9GhTSZOy3sUxRA6lz0b6STnWfVWChA8QLxx+DPyRE232RqTMfttWkg3XP2fTQNXHG8
 3dajS/euYuGImzrIy1eT7qILVNJ4v6IoetdYiFq2fM2iB1PNzwdxt6Vuvzl/4fSARySJ
 7yLQ==
X-Forwarded-Encrypted: i=1;
 AJvYcCUNyBtf33TllTCwIXk/lAQXjWVUZWcim+RxCgq0Tdr+WdyZqduG0wJJmtSK+zpgOlemykUEwkdHFSwQqwsgCo7sPfASiCw=
X-Gm-Message-State: AOJu0Yyzl1BoqN+rMZeOBRZq24oUvoDsJVgguTvFgWo9Qq6qJSjhermz
 orPBiMVyQ4aYbonI1+8h8kFqOnjKjWGsFkT7n4WhPoDl3IoehnRJOoIYaU8Jp4lW70VqL/EP34Q
 47dbgbhBR0HcJ5zMAPwAfkg3h8RU=
X-Google-Smtp-Source: AGHT+IEtrE8TwQ7uKl4f/nvs8k1DeaMOXtVy13zWOwj9H68rD7jzBXTRk/8W9/kxRf34w6IeRTzuts2MvuCcU72JFKw=
X-Received: by 2002:a17:90a:a012:b0:2b2:7e94:c5fa with SMTP id
 q18-20020a17090aa01200b002b27e94c5famr5713699pjp.5.1714656750346; Thu, 02 May
 2024 06:32:30 -0700 (PDT)
MIME-Version: 1.0
References: <CADF+RtgWCLKQGwgdTNWmgesbcwq8iBxChoN8FqMOg95Ai3CYTA@HIDDEN>
 <87o7vq0zir.fsf@HIDDEN>
 <CADF+Rtjii7ZHkrfLzS63Yt1UiPPfnOrSsFZe2SMRetOS4w0vng@HIDDEN>
 <8735d20yvd.fsf@HIDDEN>
 <CADF+Rtgz5f6fcVuTLrv_N8oObRw+Uw-Je7bz54Gagb3pRgpR=g@HIDDEN>
 <CADwFkm=p8_Tbu+cXMDA8zEKovb+Ld7QFUJz_AhFnJebhik=JBg@HIDDEN>
 <CADF+RtjGfibN3Yg8mf4hVB9uPWtAwp0m6J2LRH7n0Z20S7+Yzg@HIDDEN>
 <CADwFkmkbMSXdjB6kF3a68_1vb4dv05_vMrKrvoX908nZJrpxOg@HIDDEN>
 <CADF+RtgxigxvgG0j6bbpYnrrFVF4YTKZ1Rs0JSCc8zuu5JNA2w@HIDDEN>
 <fcbc07cf-5ee9-131f-1a18-9cc28a5655f1@HIDDEN>
 <CADF+Rti2gSVvfksUVO04ptKQsXrNpwUXHQ_qFjC26D8NNh578A@HIDDEN>
 <2c5c8afa-b57e-3156-d21c-5523cacb4d87@HIDDEN> <831qf1mgjl.fsf@HIDDEN>
 <87cyyj9rpp.fsf@HIDDEN> <65793.1694843596@localhost>
 <CADF+RtikqxOW0XpwGTWWuGNTWjz3-MWMcO6U65Tta3PJjkRXqw@HIDDEN>
 <m24jbtim2p.fsf@HIDDEN>
 <CADF+RtiOECRmdoFD1qP=gRzS+P3tJqh_WNTnuW-1zPrY9g4VBw@HIDDEN>
 <e5a6ba0d-ca4a-4e21-b44f-12043c59aa6b@HIDDEN>
In-Reply-To: <e5a6ba0d-ca4a-4e21-b44f-12043c59aa6b@HIDDEN>
From: David Fussner <dfussner@HIDDEN>
Date: Thu, 2 May 2024 14:32:37 +0100
Message-ID: <CADF+Rtif9uA3qgcSbxiFMTi01wyn5fSMgdTGu1Crsdb24XexDQ@HIDDEN>
Content-Type: multipart/mixed; boundary="00000000000084407a061778a27e"
X-Spam-Score: 0.0 (/)
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: -1.0 (-)

--00000000000084407a061778a27e
Content-Type: text/plain; charset="UTF-8"

Hi Dmitry,

Thanks for looking over the patch. Here's the recipe for the purported
bug in xref.el:

1. Please apply my patch to tex-mode.el (and xref.el).

2. I've attached xref-bug.zip, which contains a directory with 4
identical LaTeX files and one LaTeX file with a single additional
character. Please extract it.

3. emacs -Q

4. C-x C-f xref-bug/mwea.ltx, and please don't visit the other 4
files.

5. Put point on \__hook_debug:n in line 6.

6. M-?, RTN, ... RTN, RTN.

The xref buffer should offer 5 hits, one from each file in the
directory.

7. Comment out the the line I added to xref--collect-matches,
byte-compile and load the file.

8. With point in the same place, M-?, RTN, ... RTN, RTN.

The xref buffer should offer 3 hits. The first is from the
file-visiting buffer (where I also set syntax-propertize--done to 0,
because in my testing there could be some issues here, too). The
second hit is from the first file opened in *xref-temp. Here,
syntax-propertize runs to line-end, and all is well. The next two
files are missed, because syntax-propertize--done is set to line-end
and they have exactly the same line length as file two, and therefore
syntax-propertize thinks that's good enough and doesn't actually
change anything. The fifth file has an additional character in line 6,
so syntax-propertize decides it needs to work on this line because
line-end > syntax-propertize--done.

You can put point on, say, \documentclass, and you'll get all 5 hits,
because this string doesn't begin or end with a non-word, non-symbol
character, and syntax-propertize doesn't need to run. You can make the
search string "\documentclass" and you'll get 2 hits, as line 1 has
the same length in all 5 files. (It's worth trying "\usepackage" as
the search string, too.)

That's my diagnosis anyway. Does it make sense?

Thanks,

David.

On Thu, 2 May 2024 at 01:43, Dmitry Gutov <dgutov@HIDDEN> wrote:
>
> On 29/04/2024 17:15, David Fussner via Bug reports for GNU Emacs, the
> Swiss army knife of text editors wrote:
> > though I had to add a one-liner in xref.el to fix
> > what I believe is a minor bug there preventing syntax-propertize from
> > doing its work when the temp buffer holds text from a new file. (I can
> > provide a recipe for this if you want.)
>
> Yes, could you please expand on it separately?
>
> The rest of the patch description just makes sense to me, and I'd be
> happy to leave (or not) the detailed review to whoever reviews TeX
> contributions around here, but this is something I'll need to pay
> special attention to.

--00000000000084407a061778a27e
Content-Type: application/zip; name="xref-bug.zip"
Content-Disposition: attachment; filename="xref-bug.zip"
Content-Transfer-Encoding: base64
Content-ID: <f_lvpa9gqw0>
X-Attachment-Id: f_lvpa9gqw0

UEsDBBQAAAAIANFpolg38qovlwAAAOUAAAARABwAeHJlZi1idWcvbXdlYS5sdHhVVAkAA6qDM2bR
gzNmdXgLAAEE6AMAAARkAAAAVY4xDoMwEAR7XsEXktJ9WlKkjCPLmMMgzPnCHQrIyt9jF5Gg3R3N
ru6iW2dAccEyPy9Xkleyi4wuwLfSKwNZN1kPqY8oTODO6UZ24ULeNgqPHcVud6x0G2MwCB/V1Nob
M8Q4mQ7a1ZvSVNpxaQ28VZOJI6CwLn6DEUHhydv3WQx+xPQ/nXdlGJnyE5Y9QIKZZM8pYHeAflBL
AwQUAAAACADnaaJYN/KqL5cAAADlAAAAEQAcAHhyZWYtYnVnL213ZWIubHR4VVQJAAPRgzNmCYQz
ZnV4CwABBOgDAAAEZAAAAFWOMQ6DMBAEe17BF5LSfVpSpIwjy5jDIMz5wh0KyMrfYxeRoN0dza7u
oltnQHHBMj8vV5JXsouMLsC30isDWTdZD6mPKEzgzulGduFC3jYKjx3FbnesdBtjMAgf1dTaGzPE
OJkO2tWb0lTacWkNvFWTiSOgsC5+gxFB4cnb91kMfsT0P513ZRiZ8hOWPUCCmWTPKWB3gH5QSwME
FAAAAAgA6WmiWDfyqi+XAAAA5QAAABEAHAB4cmVmLWJ1Zy9td2VjLmx0eFVUCQAD1YMzZgmEM2Z1
eAsAAQToAwAABGQAAABVjjEOgzAQBHtewReS0n1aUqSMI8uYwyDM+cIdCsjK32MXkaDdHc2u7qJb
Z0BxwTI/L1eSV7KLjC7At9IrA1k3WQ+pjyhM4M7pRnbhQt42Co8dxW53rHQbYzAIH9XU2hszxDiZ
DtrVm9JU2nFpDbxVk4kjoLAufoMRQeHJ2/dZDH7E9D+dd2UYmfITlj1Agplkzylgd4B+UEsDBBQA
AAAIAOxpolg38qovlwAAAOUAAAARABwAeHJlZi1idWcvbXdlZC5sdHhVVAkAA9uDM2YJhDNmdXgL
AAEE6AMAAARkAAAAVY4xDoMwEAR7XsEXktJ9WlKkjCPLmMMgzPnCHQrIyt9jF5Gg3R3Nru6iW2dA
ccEyPy9Xkleyi4wuwLfSKwNZN1kPqY8oTODO6UZ24ULeNgqPHcVud6x0G2MwCB/V1NobM8Q4mQ7a
1ZvSVNpxaQ28VZOJI6CwLn6DEUHhydv3WQx+xPQ/nXdlGJnyE5Y9QIKZZM8pYHeAflBLAwQUAAAA
CABcaqJYugxYb5gAAADmAAAAEQAcAHhyZWYtYnVnL213ZWUubHR4VVQJAAOvhDNm0IQzZnV4CwAB
BOgDAAAEZAAAAFWOMQ6DMBAEe17BF5LSfVpSpIwjy5jDIMz5wh0KyMrfYxeRoN0dza7uoltnQHHB
Mj8vV5JXsouMLsC30isDWTdZD6mPKEzgzulGduFC3jYKjx3FbnesdBtjMAgf1dTaGzPEOJkO2tWb
0lTacWkNvFXTZORIKKzLgMGIoPAk7vtsBj9i+r/OwzKMTPkKyx4gwUyy5xSwO0A/UEsBAh4DFAAA
AAgA0WmiWDfyqi+XAAAA5QAAABEAGAAAAAAAAQAAAKSBAAAAAHhyZWYtYnVnL213ZWEubHR4VVQF
AAOqgzNmdXgLAAEE6AMAAARkAAAAUEsBAh4DFAAAAAgA52miWDfyqi+XAAAA5QAAABEAGAAAAAAA
AQAAAKSB4gAAAHhyZWYtYnVnL213ZWIubHR4VVQFAAPRgzNmdXgLAAEE6AMAAARkAAAAUEsBAh4D
FAAAAAgA6WmiWDfyqi+XAAAA5QAAABEAGAAAAAAAAQAAAKSBxAEAAHhyZWYtYnVnL213ZWMubHR4
VVQFAAPVgzNmdXgLAAEE6AMAAARkAAAAUEsBAh4DFAAAAAgA7GmiWDfyqi+XAAAA5QAAABEAGAAA
AAAAAQAAAKSBpgIAAHhyZWYtYnVnL213ZWQubHR4VVQFAAPbgzNmdXgLAAEE6AMAAARkAAAAUEsB
Ah4DFAAAAAgAXGqiWLoMWG+YAAAA5gAAABEAGAAAAAAAAQAAAKSBiAMAAHhyZWYtYnVnL213ZWUu
bHR4VVQFAAOvhDNmdXgLAAEE6AMAAARkAAAAUEsFBgAAAAAFAAUAswEAAGsEAAAAAA==
--00000000000084407a061778a27e--




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#53749: 29.0.50; [PATCH] Xref backend for TeX buffers
Resent-From: David Fussner <dfussner@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Thu, 02 May 2024 13:36:01 +0000
Resent-Message-ID: <handler.53749.B53749.171465690712747 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 53749
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: pending patch
To: Arash Esbati <arash@HIDDEN>
Cc: 53749 <at> debbugs.gnu.org, Ikumi Keita <ikumi@HIDDEN>, Dmitry Gutov <dgutov@HIDDEN>, Stefan Monnier <monnier@HIDDEN>, Tassilo Horn <tsdh@HIDDEN>, Eli Zaretskii <eliz@HIDDEN>, stefankangas@HIDDEN
Received: via spool by 53749-submit <at> debbugs.gnu.org id=B53749.171465690712747
          (code B ref 53749); Thu, 02 May 2024 13:36:01 +0000
Received: (at 53749) by debbugs.gnu.org; 2 May 2024 13:35:07 +0000
Received: from localhost ([127.0.0.1]:43852 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1s2WaY-0003JX-Mj
	for submit <at> debbugs.gnu.org; Thu, 02 May 2024 09:35:07 -0400
Received: from mail-pj1-x102d.google.com ([2607:f8b0:4864:20::102d]:45517)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <dfussner@HIDDEN>) id 1s2WaX-0003J1-D3
 for 53749 <at> debbugs.gnu.org; Thu, 02 May 2024 09:35:06 -0400
Received: by mail-pj1-x102d.google.com with SMTP id
 98e67ed59e1d1-2b2769f017aso2332090a91.3
 for <53749 <at> debbugs.gnu.org>; Thu, 02 May 2024 06:34:43 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=googlemail.com; s=20230601; t=1714656878; x=1715261678; darn=debbugs.gnu.org;
 h=cc:to:subject:message-id:date:from:in-reply-to:references
 :mime-version:from:to:cc:subject:date:message-id:reply-to;
 bh=NA76V/Oy3DWddy9aztETAssFfPneYE/G97RSxiYygCg=;
 b=JqiiecHicjYpa8z364pO1maJBx8PUGZbrO63fiyxIn63/tJ7frsdM0Ozqt9IIgSyCR
 DAUoC00ieuLBINSuLv5tuXZhFX4U/mCQfCO5ZHSnpomfuU0+q5f6IvGfo1uMHN4tLrLK
 TFunn7t+7TLQiuuFFS0koGyRIrJiQ71JqmrGmqRIIWZctFTFwSr5YcVwKLq/ouoissUS
 i2WPGB03KzWoUOd+o+GitOSK8Z2X0bGYvbpIbVJY5AbFNNVS92iPVL/pjxhXUL0apsA/
 AjbJuUc9eC4tAhQNvwsTppS68ssK7zaRrr9VcS8xYOGK4ADebCPev28Ik7lQ0560zTZa
 YFDA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20230601; t=1714656878; x=1715261678;
 h=cc: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=NA76V/Oy3DWddy9aztETAssFfPneYE/G97RSxiYygCg=;
 b=xIqj14bCoYjsBFPfwYThWC5Xfvo3spsa7oEXnD4/iAoqiCkvGqTuCwvnn5UpHN6sGo
 tYMUWDM8oWI3R4mXZXF+d40OAVZl72GYlSogG2CrDtuc/lDRM2+PaT9X6uZr9+t9Buma
 ChpXULfFNIYDfyRJf1VmQyJqUVyc/bJpB8mMlT2ripC3SuwsPN0hG61pgvkqbKpcTwD+
 HxLQl/P5cjtUYHXVaEDa9sAIibi9AxyNHNGgLWCl0k9xsUZhCzAvHHY7yLQ9VcZYHlbD
 GGYZbAckbU8OuBuRSpK8s68QrKcmXo/Gfvx6jTXFTOc0nZgY8jonqVGqpxNT698WhibT
 CIBw==
X-Forwarded-Encrypted: i=1;
 AJvYcCVmqlojXbnHauz2XJzprgjE4+yNRVQz7kU+q7bXAoCAEp+bPbeVMXrBVSBEkzpBhu+IKUSnR1hliBzuk0qL+sWY/kSqRSo=
X-Gm-Message-State: AOJu0Yy2bFDZn5VqLQiJP8/clA6LldZOFxEQVU2uhz5yoXPCv01Jv02u
 698hZtaDQizr1cd6NFgSBgJoE6r5mctlcXC6zmso6o7sH/K1Fm6dN+7bbFUxARtOtqzf1ebn2YH
 REvRZABM+YveZ5PpBJknk0iMi39o=
X-Google-Smtp-Source: AGHT+IHoUVyV+1xnw2NNYHKFhAWnxXUVXwrHoFXA3+F2A6ujQtvzP0WEDdzjmNXUaCw6GLuBm5ANMlXfCrSjZcX85NM=
X-Received: by 2002:a17:90a:2dc2:b0:2b3:53e1:db8 with SMTP id
 q2-20020a17090a2dc200b002b353e10db8mr3800463pjm.35.1714656877695; Thu, 02 May
 2024 06:34:37 -0700 (PDT)
MIME-Version: 1.0
References: <CADF+RtgWCLKQGwgdTNWmgesbcwq8iBxChoN8FqMOg95Ai3CYTA@HIDDEN>
 <1de34060-e93b-0a42-fff5-20e283abe0dc@HIDDEN> <87o7vq0zir.fsf@HIDDEN>
 <CADF+Rtjii7ZHkrfLzS63Yt1UiPPfnOrSsFZe2SMRetOS4w0vng@HIDDEN>
 <8735d20yvd.fsf@HIDDEN>
 <CADF+Rtgz5f6fcVuTLrv_N8oObRw+Uw-Je7bz54Gagb3pRgpR=g@HIDDEN>
 <CADwFkm=p8_Tbu+cXMDA8zEKovb+Ld7QFUJz_AhFnJebhik=JBg@HIDDEN>
 <CADF+RtjGfibN3Yg8mf4hVB9uPWtAwp0m6J2LRH7n0Z20S7+Yzg@HIDDEN>
 <CADwFkmkbMSXdjB6kF3a68_1vb4dv05_vMrKrvoX908nZJrpxOg@HIDDEN>
 <CADF+RtgxigxvgG0j6bbpYnrrFVF4YTKZ1Rs0JSCc8zuu5JNA2w@HIDDEN>
 <fcbc07cf-5ee9-131f-1a18-9cc28a5655f1@HIDDEN>
 <CADF+Rti2gSVvfksUVO04ptKQsXrNpwUXHQ_qFjC26D8NNh578A@HIDDEN>
 <2c5c8afa-b57e-3156-d21c-5523cacb4d87@HIDDEN> <831qf1mgjl.fsf@HIDDEN>
 <87cyyj9rpp.fsf@HIDDEN> <65793.1694843596@localhost>
 <CADF+RtikqxOW0XpwGTWWuGNTWjz3-MWMcO6U65Tta3PJjkRXqw@HIDDEN>
 <m24jbtim2p.fsf@HIDDEN>
 <CADF+RtiOECRmdoFD1qP=gRzS+P3tJqh_WNTnuW-1zPrY9g4VBw@HIDDEN>
 <m234r0ogla.fsf@HIDDEN>
In-Reply-To: <m234r0ogla.fsf@HIDDEN>
From: David Fussner <dfussner@HIDDEN>
Date: Thu, 2 May 2024 14:34:45 +0100
Message-ID: <CADF+RtibXjvu7wyhcpMPR34ZN219MmFCw0QT+aLkNniOFrG41A@HIDDEN>
Content-Type: text/plain; charset="UTF-8"
X-Spam-Score: 0.0 (/)
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: -1.0 (-)

Thanks for the review, Arash, and I'll make those changes.

Best, David.

On Thu, 2 May 2024 at 07:47, Arash Esbati <arash@HIDDEN> wrote:
>
> David Fussner <dfussner@HIDDEN> writes:
>
> > Here's my third attempt at a working xref backend for TeX. I'll try
> > quickly to summarize what's in it:
> >
> > 1. I've modified etags so that it creates findable tags for as many
> > different sorts of TeX construct as possible, including those written
> > in the new expl3 syntax. I've now removed the escape character from
> > the tag names, as this simplifies code all around.
>
> Hi David,
>
> Thanks.  I trust your code works, so I have 2 minor comments.
>
> > 5. Slightly unrelatedly, I've added new syntax-propertize-rules to
> > latex-mode so that expl3 constructs with the underscore aren't
> > fontified as subscripts, which makes such code unreadable. I'm happy
> > to split this off as another patch.
>
> I think this makes sense.  AFAIK, Stefan M. looks after tex-mode.el, so
> he can the review it.
>
> > @@ -5736,11 +5752,25 @@ Scheme_functions (FILE *inf)
> >  static linebuffer *TEX_toktab = NULL; /* Table with tag tokens */
> >
> >  /* Default set of control sequences to put into TEX_toktab.
> > -   The value of environment var TEXTAGS is prepended to this.  */
> > +   The value of environment var TEXTAGS is prepended to this.
> > +   (2024) Add variants of '\def', some additional LaTeX (and
> > +   former xparse) commands, common variants from the
> > +   'etoolbox' package, and the main expl3 commands. */
> >  static const char *TEX_defenv = "\
> > -:chapter:section:subsection:subsubsection:eqno:label:ref:cite:bibitem\
> > -:part:appendix:entry:index:def\
> > -:newcommand:renewcommand:newenvironment:renewenvironment";
> > +:label:ref:chapter:section:subsection:subsubsection:eqno:cite:bibitem\
>
> I suggest to add 'Ref' and 'footref' as well which are part of LaTeX
> kernel.
>
> > +(defvar tex-esc-and-group-chars '(?\\ ?{ ?})
>
> (defvar tex-esc-and-group-chars '(?\\ ?\{ ?\})
>
> > +  "The current TeX escape and grouping characters.
>
> Best, Arash




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#53749: 29.0.50; [PATCH] Xref backend for TeX buffers
Resent-From: Stefan Monnier <monnier@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Fri, 03 May 2024 13:44:01 +0000
Resent-Message-ID: <handler.53749.B53749.17147438085299 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 53749
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: pending patch
To: David Fussner <dfussner@HIDDEN>
Cc: 53749 <at> debbugs.gnu.org, Ikumi Keita <ikumi@HIDDEN>, Dmitry Gutov <dgutov@HIDDEN>, Arash Esbati <arash@HIDDEN>, stefankangas@HIDDEN, Tassilo Horn <tsdh@HIDDEN>, Eli Zaretskii <eliz@HIDDEN>
Received: via spool by 53749-submit <at> debbugs.gnu.org id=B53749.17147438085299
          (code B ref 53749); Fri, 03 May 2024 13:44:01 +0000
Received: (at 53749) by debbugs.gnu.org; 3 May 2024 13:43:28 +0000
Received: from localhost ([127.0.0.1]:46462 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1s2tCB-0001NP-HY
	for submit <at> debbugs.gnu.org; Fri, 03 May 2024 09:43:28 -0400
Received: from mailscanner.iro.umontreal.ca ([132.204.25.50]:27644)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <monnier@HIDDEN>) id 1s2tC5-0001ND-3h
 for 53749 <at> debbugs.gnu.org; Fri, 03 May 2024 09:43:25 -0400
Received: from pmg2.iro.umontreal.ca (localhost.localdomain [127.0.0.1])
 by pmg2.iro.umontreal.ca (Proxmox) with ESMTP id 24C5C80C63;
 Fri,  3 May 2024 09:42:52 -0400 (EDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=iro.umontreal.ca;
 s=mail; t=1714743771;
 bh=t48ZdDzlvoKMhUvEKBawGz0dGgjwoZ431rhnlwgmNTE=;
 h=From:To:Cc:Subject:In-Reply-To:References:Date:From;
 b=KOXWRxKuAaX/1V77xm+LkrHadtGycMY46RZLf283dNL+aJVWM4j3acdLnHC+gVm9a
 XHCbvVCldy03Wfh4iRZv6lC0nbTh+V3ucWjLQCC6iHE8f59HKRXTfl15PqWts6WU3r
 t+Gn6JSgnM3E6mM0oI7DFC8jGRo1UaxwbH/0dd7GBDCxYtIx97tFwrgO+6b2L9Qn7B
 Sl3nrB8GxyY2RhHp9YtS2AViNK4EijKQiEmF0PvoN0+X94aAyMBlGlx+yFsPekzq+Z
 auGlrYVlFSqF2dH6iBm/gtwe3U1h0KduUQo09ilc+cFmrAeWdYUQuC7bhlXgAol15g
 nIaiAGNARAsng==
Received: from mail01.iro.umontreal.ca (unknown [172.31.2.1])
 by pmg2.iro.umontreal.ca (Proxmox) with ESMTP id 1347380136;
 Fri,  3 May 2024 09:42:51 -0400 (EDT)
Received: from pastel (unknown [45.72.201.215])
 by mail01.iro.umontreal.ca (Postfix) with ESMTPSA id C358812046B;
 Fri,  3 May 2024 09:42:50 -0400 (EDT)
From: Stefan Monnier <monnier@HIDDEN>
In-Reply-To: <CADF+Rtif9uA3qgcSbxiFMTi01wyn5fSMgdTGu1Crsdb24XexDQ@HIDDEN>
 (David Fussner's message of "Thu, 2 May 2024 14:32:37 +0100")
Message-ID: <jwvh6ff9fqi.fsf-monnier+emacs@HIDDEN>
References: <CADF+RtgWCLKQGwgdTNWmgesbcwq8iBxChoN8FqMOg95Ai3CYTA@HIDDEN>
 <87o7vq0zir.fsf@HIDDEN>
 <CADF+Rtjii7ZHkrfLzS63Yt1UiPPfnOrSsFZe2SMRetOS4w0vng@HIDDEN>
 <8735d20yvd.fsf@HIDDEN>
 <CADF+Rtgz5f6fcVuTLrv_N8oObRw+Uw-Je7bz54Gagb3pRgpR=g@HIDDEN>
 <CADwFkm=p8_Tbu+cXMDA8zEKovb+Ld7QFUJz_AhFnJebhik=JBg@HIDDEN>
 <CADF+RtjGfibN3Yg8mf4hVB9uPWtAwp0m6J2LRH7n0Z20S7+Yzg@HIDDEN>
 <CADwFkmkbMSXdjB6kF3a68_1vb4dv05_vMrKrvoX908nZJrpxOg@HIDDEN>
 <CADF+RtgxigxvgG0j6bbpYnrrFVF4YTKZ1Rs0JSCc8zuu5JNA2w@HIDDEN>
 <fcbc07cf-5ee9-131f-1a18-9cc28a5655f1@HIDDEN>
 <CADF+Rti2gSVvfksUVO04ptKQsXrNpwUXHQ_qFjC26D8NNh578A@HIDDEN>
 <2c5c8afa-b57e-3156-d21c-5523cacb4d87@HIDDEN>
 <831qf1mgjl.fsf@HIDDEN> <87cyyj9rpp.fsf@HIDDEN>
 <65793.1694843596@localhost>
 <CADF+RtikqxOW0XpwGTWWuGNTWjz3-MWMcO6U65Tta3PJjkRXqw@HIDDEN>
 <m24jbtim2p.fsf@HIDDEN>
 <CADF+RtiOECRmdoFD1qP=gRzS+P3tJqh_WNTnuW-1zPrY9g4VBw@HIDDEN>
 <e5a6ba0d-ca4a-4e21-b44f-12043c59aa6b@HIDDEN>
 <CADF+Rtif9uA3qgcSbxiFMTi01wyn5fSMgdTGu1Crsdb24XexDQ@HIDDEN>
Date: Fri, 03 May 2024 09:42:42 -0400
User-Agent: Gnus/5.13 (Gnus v5.13)
MIME-Version: 1.0
Content-Type: text/plain
X-SPAM-INFO: Spam detection results:  0
 ALL_TRUSTED                -1 Passed through trusted hosts only via SMTP
 AWL -0.045 Adjusted score from AWL reputation of From: address
 BAYES_00                 -1.9 Bayes spam probability is 0 to 1%
 DKIM_SIGNED               0.1 Message has a DKIM or DK signature,
 not necessarily valid
 DKIM_VALID -0.1 Message has at least one valid DKIM or DK signature
 DKIM_VALID_AU -0.1 Message has a valid DKIM or DK signature from author's
 domain
 DKIM_VALID_EF -0.1 Message has a valid DKIM or DK signature from envelope-from
 domain
X-SPAM-LEVEL: 
X-Spam-Score: 0.0 (/)
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 (---)

> Thanks for looking over the patch. Here's the recipe for the purported
> bug in xref.el:

The problem stems from xref.el's constant abuse of
`inhibit-modification-hooks`.  Binding this var to t should be done only
in exceptional circumstances and should ideally be accompanied by a
comment explaining why it's necessary.


        Stefan





Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#53749: 29.0.50; [PATCH] Xref backend for TeX buffers
Resent-From: Stefan Monnier <monnier@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Fri, 03 May 2024 14:12:01 +0000
Resent-Message-ID: <handler.53749.B53749.17147454946777 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 53749
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: pending patch
To: David Fussner <dfussner@HIDDEN>
Cc: 53749 <at> debbugs.gnu.org, Ikumi Keita <ikumi@HIDDEN>, Tassilo Horn <tsdh@HIDDEN>, Arash Esbati <arash@HIDDEN>, stefankangas@HIDDEN, Dmitry Gutov <dgutov@HIDDEN>, Eli Zaretskii <eliz@HIDDEN>
Received: via spool by 53749-submit <at> debbugs.gnu.org id=B53749.17147454946777
          (code B ref 53749); Fri, 03 May 2024 14:12:01 +0000
Received: (at 53749) by debbugs.gnu.org; 3 May 2024 14:11:34 +0000
Received: from localhost ([127.0.0.1]:46542 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1s2tdO-0001lF-2h
	for submit <at> debbugs.gnu.org; Fri, 03 May 2024 10:11:34 -0400
Received: from mailscanner.iro.umontreal.ca ([132.204.25.50]:16816)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <monnier@HIDDEN>) id 1s2tdK-0001l6-0R
 for 53749 <at> debbugs.gnu.org; Fri, 03 May 2024 10:11:32 -0400
Received: from pmg3.iro.umontreal.ca (localhost [127.0.0.1])
 by pmg3.iro.umontreal.ca (Proxmox) with ESMTP id 20A4B4414B0;
 Fri,  3 May 2024 10:11:02 -0400 (EDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=iro.umontreal.ca;
 s=mail; t=1714745459;
 bh=Str7xwjWdC+z7r5d3a6xv+raptKl+7aQhuYFT4Hs1LA=;
 h=From:To:Cc:Subject:In-Reply-To:References:Date:From;
 b=nHODQCy5H9d+m+VG1GD7cAmj+KweDKAin7UirZx/B1fr8Kxl3ZhOWDDgvRpFox4hW
 JMJMATgOMEKpPXbOd2NsdoQUL+agupLciJN1b3CMZ6qGRnpK7rk4c3ukIXErlPcfxF
 DRXchAPxcQNgKJaTSFxQM9/MK4JuSSp3lmUkEAbMa8NzG6TX3E7If6DXUMANV7QVdQ
 u/92wba6FbXHw4tc5p7FTvFOkHYn3DMwx7QbdBTV27lsG/hmmbET51z3A/KMcIlHxV
 pMcPW+Ih3H9GqSFMQjC9A9sFksiiJoMmdkGuA+Pit1LBbxC+9MARUFOD9OvzXRWFrU
 sVaQB/kvVYF8w==
Received: from mail01.iro.umontreal.ca (unknown [172.31.2.1])
 by pmg3.iro.umontreal.ca (Proxmox) with ESMTP id A301544144D;
 Fri,  3 May 2024 10:10:59 -0400 (EDT)
Received: from pastel (unknown [45.72.201.215])
 by mail01.iro.umontreal.ca (Postfix) with ESMTPSA id 652FC12020E;
 Fri,  3 May 2024 10:10:59 -0400 (EDT)
From: Stefan Monnier <monnier@HIDDEN>
In-Reply-To: <CADF+RtiOECRmdoFD1qP=gRzS+P3tJqh_WNTnuW-1zPrY9g4VBw@HIDDEN>
 (David Fussner's message of "Mon, 29 Apr 2024 15:15:41 +0100")
Message-ID: <jwvmsp7afy2.fsf-monnier+emacs@HIDDEN>
References: <CADF+RtgWCLKQGwgdTNWmgesbcwq8iBxChoN8FqMOg95Ai3CYTA@HIDDEN>
 <1de34060-e93b-0a42-fff5-20e283abe0dc@HIDDEN>
 <87o7vq0zir.fsf@HIDDEN>
 <CADF+Rtjii7ZHkrfLzS63Yt1UiPPfnOrSsFZe2SMRetOS4w0vng@HIDDEN>
 <8735d20yvd.fsf@HIDDEN>
 <CADF+Rtgz5f6fcVuTLrv_N8oObRw+Uw-Je7bz54Gagb3pRgpR=g@HIDDEN>
 <CADwFkm=p8_Tbu+cXMDA8zEKovb+Ld7QFUJz_AhFnJebhik=JBg@HIDDEN>
 <CADF+RtjGfibN3Yg8mf4hVB9uPWtAwp0m6J2LRH7n0Z20S7+Yzg@HIDDEN>
 <CADwFkmkbMSXdjB6kF3a68_1vb4dv05_vMrKrvoX908nZJrpxOg@HIDDEN>
 <CADF+RtgxigxvgG0j6bbpYnrrFVF4YTKZ1Rs0JSCc8zuu5JNA2w@HIDDEN>
 <fcbc07cf-5ee9-131f-1a18-9cc28a5655f1@HIDDEN>
 <CADF+Rti2gSVvfksUVO04ptKQsXrNpwUXHQ_qFjC26D8NNh578A@HIDDEN>
 <2c5c8afa-b57e-3156-d21c-5523cacb4d87@HIDDEN>
 <831qf1mgjl.fsf@HIDDEN> <87cyyj9rpp.fsf@HIDDEN>
 <65793.1694843596@localhost>
 <CADF+RtikqxOW0XpwGTWWuGNTWjz3-MWMcO6U65Tta3PJjkRXqw@HIDDEN>
 <m24jbtim2p.fsf@HIDDEN>
 <CADF+RtiOECRmdoFD1qP=gRzS+P3tJqh_WNTnuW-1zPrY9g4VBw@HIDDEN>
Date: Fri, 03 May 2024 10:10:58 -0400
User-Agent: Gnus/5.13 (Gnus v5.13)
MIME-Version: 1.0
Content-Type: text/plain
X-SPAM-INFO: Spam detection results:  0
 ALL_TRUSTED                -1 Passed through trusted hosts only via SMTP
 AWL -0.001 Adjusted score from AWL reputation of From: address
 BAYES_00                 -1.9 Bayes spam probability is 0 to 1%
 DKIM_SIGNED               0.1 Message has a DKIM or DK signature,
 not necessarily valid
 DKIM_VALID -0.1 Message has at least one valid DKIM or DK signature
 DKIM_VALID_AU -0.1 Message has a valid DKIM or DK signature from author's
 domain
 DKIM_VALID_EF -0.1 Message has a valid DKIM or DK signature from envelope-from
 domain
X-SPAM-LEVEL: 
X-Spam-Score: -2.3 (--)
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 (---)

Hi,

Apparently I'm the `tex-mode.el` guy, so I tried to take a look.

> diff --git a/lisp/textmodes/tex-mode.el b/lisp/textmodes/tex-mode.el
> index 97c950267c6..d990a2dbfa9 100644
> --- a/lisp/textmodes/tex-mode.el
> +++ b/lisp/textmodes/tex-mode.el
> @@ -695,7 +696,25 @@ tex-verbatim-environments
>       ("\\\\\\(?:end\\|begin\\) *\\({[^\n{}]*}\\)"
>        (1 (ignore
>            (tex-env-mark (match-beginning 0)
> -                        (match-beginning 1) (match-end 1))))))))
> +                        (match-beginning 1) (match-end 1)))))
> +     ;; The next two rules change the syntax of `:' and `_' in expl3
> +     ;; constructs, so that `tex-font-lock-suscript' can fontify them
> +     ;; more accurately.
> +     ((concat "\\(\\(?:[\\\\[:space:]{]_\\|"
> +              "[\\\\{[:space:]][^][_[:space:][:cntrl:][:digit:]\\\\{}()/=]+\\)"
> +              "\\(?:_+\\(?:[^][[:space:][:cntrl:][:digit:]:\\\\{}()/#_=]+\\|"
> +              "#+[1-9]\\)\\)+\\)\\([:_]?\\)")

Can you add in the comment some URL pointing to some relevant expl3
documentation which "explains" why the above regexp makes sense?
Also I don't clearly see how the above regexp distinguishes expl3 code
from "normal" LaTeX code, so the comment should say something about it.

Side note: I'd avoid [:space:] whose exact meaning is rarely quite what
we need.
Side note: backslash doesn't need to be backslashed in [...].

> +      (1 (ignore
> +          (let* ((expr (buffer-substring-no-properties (match-beginning 1)
> +                                                       (match-end 1)))
> +                 (list (seq-positions expr ?_)))
> +            (dolist (pos list)
> +              (put-text-property (+ pos (match-beginning 1))
> +                                 (1+ (+ pos (match-beginning 1)))
> +                                 'syntax-table (string-to-syntax "_"))))))
> +      (2 "_"))
> +     ("\\\\[[:alpha:]]+\\(:\\)[[:alpha:][:space:]\n]"
> +      (1 "_")))))

Currently we "skip" inappropriate underscores via
`tex-font-lock-match-suscript` and/or by adding a particular `face` text
property rather than via `syntax-table/propertize`.

For algorithmic reasons, it's better to minimize the work done in
`syntax-propertize-function` as much as possible (font-lock is more lazy
than `syntax-propertize`), so I recommend you try and moving the above
to font-lock rules.

> +(defvar tex-esc-and-group-chars '(?\\ ?{ ?})
> +  "The current TeX escape and grouping characters.

I recommend you backslash escape the { and } above (although it's not
indispensable, `emacs-lisp-mode` will parse the code better).
More importantly, the docstring doesn't explain what this list
means/does.  E.g. does the order matter?  Can it be longer than 3 elements?

From the current docstring I can't guess what would be the consequence
of adding/removing elements to/from this list.

> +;; Populate `semantic-symref-filepattern-alist' for the in-tree modes;
> +;; AUCTeX is doing the same for its modes.
> +(defvar semantic-symref-filepattern-alist)
> +(with-eval-after-load 'semantic/symref/grep
> +  (push '(latex-mode "*.[tT]e[xX]" "*.ltx" "*.sty" "*.cl[so]"
> +                     "*.bbl" "*.drv" "*.hva")
> +        semantic-symref-filepattern-alist)
> +  (push '(plain-tex-mode "*.[tT]e[xX]" "*.ins")
> +        semantic-symref-filepattern-alist)
> +  (push '(doctex-mode "*.dtx") semantic-symref-filepattern-alist))

We know `semantic-symref-filepattern-alist` will exist when
`semantic/symref/grep` is loaded, but not before, so I'd put the
`defvar` inside the `with-eval-after-load`.

> +;; Setup AUCTeX modes (for testing purposes only).
> +
> +(add-hook 'TeX-mode-hook #'tex-set-auctex-xref-backend)
> +
> +(defun tex-set-auctex-xref-backend ()
> +  (add-hook 'xref-backend-functions #'tex--xref-backend nil t))

I assume this will be sent to AUCTeX and is not meant to be in
`tex-mode.el`, right?

> +;; `xref-find-references' currently may need this when called from a
> +;; latex-mode buffer in order to search files or buffers with a .tex
> +;; suffix (including the buffer from which it has been called).  We
> +;; append it to `auto-mode-alist' so as not to interfere with the usual
> +;; mode-setting apparatus.  Changes here and in AUCTeX should soon
> +;; render it unnecessary.
> +(add-to-list 'auto-mode-alist '("\\.[tT]e[xX]\\'" . latex-mode) t)

Maybe I have not followed the whole discussion closely enough, but at
least to me the above "soon" is very unclear.
I'll assume that this code will be removed before we install the patch.
If not, please explain in the comment why this specific hack is needed
and how it works.

> +(cl-defmethod xref-backend-references ((_backend (eql 'tex-etags)) identifier)
> +  "Find references of IDENTIFIER in TeX buffers and files."
> +  (require 'semantic/symref/grep)
> +  (let (bufs texbufs
> +             (mode major-mode))
> +    (dolist (buf (buffer-list))
> +      (if (eq (buffer-local-value 'major-mode buf) mode)
> +          (push buf bufs)
> +        (when (string-match-p ".*\\.[tT]e[xX]" (buffer-name buf))
> +          (push buf texbufs))))
> +    (unless (seq-set-equal-p tex--buffers-list bufs)
> +      (let* ((amalist (tex--collect-file-extensions))
> +	     (extlist (alist-get mode semantic-symref-filepattern-alist))
> +	     (extlist-new (seq-uniq
> +                           (seq-union amalist extlist #'string-match-p))))

After sinking the `defvar` above, you'll need to add a new `defvar` for
`semantic-symref-filepattern-alist` just after the `require`.

> +                (setq-local syntax-propertize-function
> +                            (eval
> +                             `(tex-xref-syntax-function
> +                               ,identifier ,beg ,end)))

Why do we need to change `syntax-propertize-function` and why do we need
`eval`?

> +                (setq syntax-propertize--done 0)

This is not sufficient.  You want to `syntax-ppss-flush-cache`.


        Stefan





Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#53749: 29.0.50; [PATCH] Xref backend for TeX buffers
Resent-From: David Fussner <dfussner@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Sat, 04 May 2024 08:27:01 +0000
Resent-Message-ID: <handler.53749.B53749.171481119629574 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 53749
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: pending patch
To: Stefan Monnier <monnier@HIDDEN>
Cc: 53749 <at> debbugs.gnu.org, Ikumi Keita <ikumi@HIDDEN>, Tassilo Horn <tsdh@HIDDEN>, Arash Esbati <arash@HIDDEN>, stefankangas@HIDDEN, Dmitry Gutov <dgutov@HIDDEN>, Eli Zaretskii <eliz@HIDDEN>
Received: via spool by 53749-submit <at> debbugs.gnu.org id=B53749.171481119629574
          (code B ref 53749); Sat, 04 May 2024 08:27:01 +0000
Received: (at 53749) by debbugs.gnu.org; 4 May 2024 08:26:36 +0000
Received: from localhost ([127.0.0.1]:52009 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1s3Aj5-0007gv-Bo
	for submit <at> debbugs.gnu.org; Sat, 04 May 2024 04:26:35 -0400
Received: from mail-pj1-x1036.google.com ([2607:f8b0:4864:20::1036]:61594)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <dfussner@HIDDEN>) id 1s3Aj3-0007gp-Hf
 for 53749 <at> debbugs.gnu.org; Sat, 04 May 2024 04:26:34 -0400
Received: by mail-pj1-x1036.google.com with SMTP id
 98e67ed59e1d1-2b3646494a8so316362a91.2
 for <53749 <at> debbugs.gnu.org>; Sat, 04 May 2024 01:26:10 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=googlemail.com; s=20230601; t=1714811165; x=1715415965; darn=debbugs.gnu.org;
 h=cc:to:subject:message-id:date:from:in-reply-to:references
 :mime-version:from:to:cc:subject:date:message-id:reply-to;
 bh=G3S5R1qBYja9gJpciuTPB9dnqpU0SWe9jcPOBp28xEc=;
 b=QZ2cot935rEUVBWJG0TKbL8a2C5nIGT7Vu6B5er7/bh2UK/0bASu/3VQTxTZ4S9dlK
 Ay//EzV2pbE/CbVBWFUYxLUbNm+ehcX4RMpUwYqJMTgKNXRpXxvdU0BQk9Pwboyv8vEJ
 a9k//+43gnxwo1O0R4gIC+Ixp7hIZSen4khJ2PNOzHRka4ELqS3bV3bhMcNufRr1rl3H
 Rr87azR3Z2NoMwEbRzYuH4vbf6/A+3AvVgI0SLGnslb8ujszR7YLEaWOfmAmZGWiMrHB
 Uc0HnQVtx5wYegw0oZ8Dk9VyeMwExj0SNFQvJLsnpndl5O2Llv7KxG+loP/GC+kDlhrm
 iGRw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20230601; t=1714811165; x=1715415965;
 h=cc: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=G3S5R1qBYja9gJpciuTPB9dnqpU0SWe9jcPOBp28xEc=;
 b=KaxdLWMEFT4s9PogC2ArpuKLBBZskfOwF/ch6/0febea8Fbz56SVF83SwsGLt+h8ql
 E/jZcydVrPDVsDMl1MoZlYWNHMVosJruwvBsSUT1nsXmkGD90U1lG4NekpWKz/mwQpkH
 VRB6Rn9hA8sbGGGB0+v1iOi54R9OayqqfqlVNz8Slh4Nx3te6KTFP4EHlNOnxouRyQqC
 0pTUJmLya2c9jp4L0xSr/Ad0y1CeYnZ04yZKEANA/44iK3mEeZy7S8gpeGuGI3KleyTA
 X9yk2El47h12U2QwZlj/VPiCSXsnI7ZnKrPK7Kjem5W2eEYujUP5e01A6OfKl34zV8E8
 OkNw==
X-Forwarded-Encrypted: i=1;
 AJvYcCW1jSDf0SJ24byFHKhVlul9Uhcu5bLMsJGJh+7q+0T7Qk5Cz6canro/3IjRkKvSjO21TZYmZpMt7wyORgQoUB1mavf7KgU=
X-Gm-Message-State: AOJu0YxzCKcj/Zbml1UfkyRUJFjl22glRMMTUF6rUBtOxrDEAl2GoZBt
 jkgyG5INJ7KL95lWoobkqPdj3Gb5R87ZRr6PWWW8qQBIO/PKuynpr5s4/GFBa3HencfOwABOH9J
 Pcfud/Y0LPsh+0w/xLvpRuy1bXo4=
X-Google-Smtp-Source: AGHT+IGasvNpAFKWAUmLBnI6l43dvoApcGakRFDE34PIpn9q2QWbTKu65LgRtgv5qpd96zQPuE8q1zIrbekitq7AyX8=
X-Received: by 2002:a17:90a:e60f:b0:2ae:9176:f928 with SMTP id
 j15-20020a17090ae60f00b002ae9176f928mr4734204pjy.15.1714811164451; Sat, 04
 May 2024 01:26:04 -0700 (PDT)
MIME-Version: 1.0
References: <CADF+RtgWCLKQGwgdTNWmgesbcwq8iBxChoN8FqMOg95Ai3CYTA@HIDDEN>
 <1de34060-e93b-0a42-fff5-20e283abe0dc@HIDDEN> <87o7vq0zir.fsf@HIDDEN>
 <CADF+Rtjii7ZHkrfLzS63Yt1UiPPfnOrSsFZe2SMRetOS4w0vng@HIDDEN>
 <8735d20yvd.fsf@HIDDEN>
 <CADF+Rtgz5f6fcVuTLrv_N8oObRw+Uw-Je7bz54Gagb3pRgpR=g@HIDDEN>
 <CADwFkm=p8_Tbu+cXMDA8zEKovb+Ld7QFUJz_AhFnJebhik=JBg@HIDDEN>
 <CADF+RtjGfibN3Yg8mf4hVB9uPWtAwp0m6J2LRH7n0Z20S7+Yzg@HIDDEN>
 <CADwFkmkbMSXdjB6kF3a68_1vb4dv05_vMrKrvoX908nZJrpxOg@HIDDEN>
 <CADF+RtgxigxvgG0j6bbpYnrrFVF4YTKZ1Rs0JSCc8zuu5JNA2w@HIDDEN>
 <fcbc07cf-5ee9-131f-1a18-9cc28a5655f1@HIDDEN>
 <CADF+Rti2gSVvfksUVO04ptKQsXrNpwUXHQ_qFjC26D8NNh578A@HIDDEN>
 <2c5c8afa-b57e-3156-d21c-5523cacb4d87@HIDDEN> <831qf1mgjl.fsf@HIDDEN>
 <87cyyj9rpp.fsf@HIDDEN> <65793.1694843596@localhost>
 <CADF+RtikqxOW0XpwGTWWuGNTWjz3-MWMcO6U65Tta3PJjkRXqw@HIDDEN>
 <m24jbtim2p.fsf@HIDDEN>
 <CADF+RtiOECRmdoFD1qP=gRzS+P3tJqh_WNTnuW-1zPrY9g4VBw@HIDDEN>
 <jwvmsp7afy2.fsf-monnier+emacs@HIDDEN>
In-Reply-To: <jwvmsp7afy2.fsf-monnier+emacs@HIDDEN>
From: David Fussner <dfussner@HIDDEN>
Date: Sat, 4 May 2024 09:26:12 +0100
Message-ID: <CADF+RtjLqBXPWZunZJvMEUPKjO2T0-HbpWERGK9gNWte5AfihQ@HIDDEN>
Content-Type: text/plain; charset="UTF-8"
X-Spam-Score: 0.0 (/)
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: -1.0 (-)

Thank you very much, Stefan, for taking the time to review the patch.
In short, it plainly needs some work, but I'm rather short of time
this weekend so will respond properly and I hope more coherently
Monday or Tuesday.

Best, David.

On Fri, 3 May 2024 at 15:11, Stefan Monnier <monnier@HIDDEN> wrote:
>
> Hi,
>
> Apparently I'm the `tex-mode.el` guy, so I tried to take a look.
>
> > diff --git a/lisp/textmodes/tex-mode.el b/lisp/textmodes/tex-mode.el
> > index 97c950267c6..d990a2dbfa9 100644
> > --- a/lisp/textmodes/tex-mode.el
> > +++ b/lisp/textmodes/tex-mode.el
> > @@ -695,7 +696,25 @@ tex-verbatim-environments
> >       ("\\\\\\(?:end\\|begin\\) *\\({[^\n{}]*}\\)"
> >        (1 (ignore
> >            (tex-env-mark (match-beginning 0)
> > -                        (match-beginning 1) (match-end 1))))))))
> > +                        (match-beginning 1) (match-end 1)))))
> > +     ;; The next two rules change the syntax of `:' and `_' in expl3
> > +     ;; constructs, so that `tex-font-lock-suscript' can fontify them
> > +     ;; more accurately.
> > +     ((concat "\\(\\(?:[\\\\[:space:]{]_\\|"
> > +              "[\\\\{[:space:]][^][_[:space:][:cntrl:][:digit:]\\\\{}()/=]+\\)"
> > +              "\\(?:_+\\(?:[^][[:space:][:cntrl:][:digit:]:\\\\{}()/#_=]+\\|"
> > +              "#+[1-9]\\)\\)+\\)\\([:_]?\\)")
>
> Can you add in the comment some URL pointing to some relevant expl3
> documentation which "explains" why the above regexp makes sense?
> Also I don't clearly see how the above regexp distinguishes expl3 code
> from "normal" LaTeX code, so the comment should say something about it.
>
> Side note: I'd avoid [:space:] whose exact meaning is rarely quite what
> we need.
> Side note: backslash doesn't need to be backslashed in [...].
>
> > +      (1 (ignore
> > +          (let* ((expr (buffer-substring-no-properties (match-beginning 1)
> > +                                                       (match-end 1)))
> > +                 (list (seq-positions expr ?_)))
> > +            (dolist (pos list)
> > +              (put-text-property (+ pos (match-beginning 1))
> > +                                 (1+ (+ pos (match-beginning 1)))
> > +                                 'syntax-table (string-to-syntax "_"))))))
> > +      (2 "_"))
> > +     ("\\\\[[:alpha:]]+\\(:\\)[[:alpha:][:space:]\n]"
> > +      (1 "_")))))
>
> Currently we "skip" inappropriate underscores via
> `tex-font-lock-match-suscript` and/or by adding a particular `face` text
> property rather than via `syntax-table/propertize`.
>
> For algorithmic reasons, it's better to minimize the work done in
> `syntax-propertize-function` as much as possible (font-lock is more lazy
> than `syntax-propertize`), so I recommend you try and moving the above
> to font-lock rules.
>
> > +(defvar tex-esc-and-group-chars '(?\\ ?{ ?})
> > +  "The current TeX escape and grouping characters.
>
> I recommend you backslash escape the { and } above (although it's not
> indispensable, `emacs-lisp-mode` will parse the code better).
> More importantly, the docstring doesn't explain what this list
> means/does.  E.g. does the order matter?  Can it be longer than 3 elements?
>
> From the current docstring I can't guess what would be the consequence
> of adding/removing elements to/from this list.
>
> > +;; Populate `semantic-symref-filepattern-alist' for the in-tree modes;
> > +;; AUCTeX is doing the same for its modes.
> > +(defvar semantic-symref-filepattern-alist)
> > +(with-eval-after-load 'semantic/symref/grep
> > +  (push '(latex-mode "*.[tT]e[xX]" "*.ltx" "*.sty" "*.cl[so]"
> > +                     "*.bbl" "*.drv" "*.hva")
> > +        semantic-symref-filepattern-alist)
> > +  (push '(plain-tex-mode "*.[tT]e[xX]" "*.ins")
> > +        semantic-symref-filepattern-alist)
> > +  (push '(doctex-mode "*.dtx") semantic-symref-filepattern-alist))
>
> We know `semantic-symref-filepattern-alist` will exist when
> `semantic/symref/grep` is loaded, but not before, so I'd put the
> `defvar` inside the `with-eval-after-load`.
>
> > +;; Setup AUCTeX modes (for testing purposes only).
> > +
> > +(add-hook 'TeX-mode-hook #'tex-set-auctex-xref-backend)
> > +
> > +(defun tex-set-auctex-xref-backend ()
> > +  (add-hook 'xref-backend-functions #'tex--xref-backend nil t))
>
> I assume this will be sent to AUCTeX and is not meant to be in
> `tex-mode.el`, right?
>
> > +;; `xref-find-references' currently may need this when called from a
> > +;; latex-mode buffer in order to search files or buffers with a .tex
> > +;; suffix (including the buffer from which it has been called).  We
> > +;; append it to `auto-mode-alist' so as not to interfere with the usual
> > +;; mode-setting apparatus.  Changes here and in AUCTeX should soon
> > +;; render it unnecessary.
> > +(add-to-list 'auto-mode-alist '("\\.[tT]e[xX]\\'" . latex-mode) t)
>
> Maybe I have not followed the whole discussion closely enough, but at
> least to me the above "soon" is very unclear.
> I'll assume that this code will be removed before we install the patch.
> If not, please explain in the comment why this specific hack is needed
> and how it works.
>
> > +(cl-defmethod xref-backend-references ((_backend (eql 'tex-etags)) identifier)
> > +  "Find references of IDENTIFIER in TeX buffers and files."
> > +  (require 'semantic/symref/grep)
> > +  (let (bufs texbufs
> > +             (mode major-mode))
> > +    (dolist (buf (buffer-list))
> > +      (if (eq (buffer-local-value 'major-mode buf) mode)
> > +          (push buf bufs)
> > +        (when (string-match-p ".*\\.[tT]e[xX]" (buffer-name buf))
> > +          (push buf texbufs))))
> > +    (unless (seq-set-equal-p tex--buffers-list bufs)
> > +      (let* ((amalist (tex--collect-file-extensions))
> > +          (extlist (alist-get mode semantic-symref-filepattern-alist))
> > +          (extlist-new (seq-uniq
> > +                           (seq-union amalist extlist #'string-match-p))))
>
> After sinking the `defvar` above, you'll need to add a new `defvar` for
> `semantic-symref-filepattern-alist` just after the `require`.
>
> > +                (setq-local syntax-propertize-function
> > +                            (eval
> > +                             `(tex-xref-syntax-function
> > +                               ,identifier ,beg ,end)))
>
> Why do we need to change `syntax-propertize-function` and why do we need
> `eval`?
>
> > +                (setq syntax-propertize--done 0)
>
> This is not sufficient.  You want to `syntax-ppss-flush-cache`.
>
>
>         Stefan
>




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#53749: 29.0.50; [PATCH] Xref backend for TeX buffers
Resent-From: Arash Esbati <arash@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Sat, 04 May 2024 14:34:01 +0000
Resent-Message-ID: <handler.53749.B53749.17148331855635 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 53749
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: pending patch
To: Stefan Monnier <monnier@HIDDEN>
Cc: 53749 <at> debbugs.gnu.org, Ikumi Keita <ikumi@HIDDEN>, Dmitry Gutov <dgutov@HIDDEN>, David Fussner <dfussner@HIDDEN>, stefankangas@HIDDEN, Tassilo Horn <tsdh@HIDDEN>, Eli Zaretskii <eliz@HIDDEN>
Received: via spool by 53749-submit <at> debbugs.gnu.org id=B53749.17148331855635
          (code B ref 53749); Sat, 04 May 2024 14:34:01 +0000
Received: (at 53749) by debbugs.gnu.org; 4 May 2024 14:33:05 +0000
Received: from localhost ([127.0.0.1]:54022 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1s3GRl-0001Sp-20
	for submit <at> debbugs.gnu.org; Sat, 04 May 2024 10:33:05 -0400
Received: from eggs.gnu.org ([2001:470:142:3::10]:41876)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <arash@HIDDEN>) id 1s3GRi-0001SO-RU
 for 53749 <at> debbugs.gnu.org; Sat, 04 May 2024 10:33:03 -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 <arash@HIDDEN>)
 id 1s3GRC-0003SP-IU; Sat, 04 May 2024 10:32:30 -0400
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org;
 s=fencepost-gnu-org; h=MIME-Version:Date:References:In-Reply-To:Subject:To:
 From; bh=44lUBGbyFmM2WnNYYvX94KwpOGMbnkd8I4mlbnV8wkA=; b=gdCTjMXccj/wngWRfqZA
 aJB0CltNYwwfhjYw/Rf11OdzbMkhQoj3CxHFWHaCUPU8P3MtWxHLjdYToB43LwVi99j92Z9ZO9yhm
 6zeL3gNnmnHWmC3Vn/fDF6znQBV9LeJqWhdQgKIMrDYmzJ1BalvD1Yu2YxFVLBfbO2ycGRv67OUza
 QL4wCQF1q8s+xb7Wr6PajDNbiMSYmPKT4hIHQuYzoPlBPr5+0yyHSin7wA4pk4fOtBhy3vCveBfXz
 l3s3E4+TgcZM5n6zH0kHfd/6ZnAPCZaRVW8aJAOLj7GBFpgwV5+j1tAVsMqxQ2B4/bvkB2nt4h3BO
 F4bX0vPnEU+PJg==;
From: Arash Esbati <arash@HIDDEN>
In-Reply-To: <jwvmsp7afy2.fsf-monnier+emacs@HIDDEN> (Stefan Monnier's message
 of "Fri, 03 May 2024 10:10:58 -0400")
References: <CADF+RtgWCLKQGwgdTNWmgesbcwq8iBxChoN8FqMOg95Ai3CYTA@HIDDEN>
 <1de34060-e93b-0a42-fff5-20e283abe0dc@HIDDEN>
 <87o7vq0zir.fsf@HIDDEN>
 <CADF+Rtjii7ZHkrfLzS63Yt1UiPPfnOrSsFZe2SMRetOS4w0vng@HIDDEN>
 <8735d20yvd.fsf@HIDDEN>
 <CADF+Rtgz5f6fcVuTLrv_N8oObRw+Uw-Je7bz54Gagb3pRgpR=g@HIDDEN>
 <CADwFkm=p8_Tbu+cXMDA8zEKovb+Ld7QFUJz_AhFnJebhik=JBg@HIDDEN>
 <CADF+RtjGfibN3Yg8mf4hVB9uPWtAwp0m6J2LRH7n0Z20S7+Yzg@HIDDEN>
 <CADwFkmkbMSXdjB6kF3a68_1vb4dv05_vMrKrvoX908nZJrpxOg@HIDDEN>
 <CADF+RtgxigxvgG0j6bbpYnrrFVF4YTKZ1Rs0JSCc8zuu5JNA2w@HIDDEN>
 <fcbc07cf-5ee9-131f-1a18-9cc28a5655f1@HIDDEN>
 <CADF+Rti2gSVvfksUVO04ptKQsXrNpwUXHQ_qFjC26D8NNh578A@HIDDEN>
 <2c5c8afa-b57e-3156-d21c-5523cacb4d87@HIDDEN>
 <831qf1mgjl.fsf@HIDDEN> <87cyyj9rpp.fsf@HIDDEN>
 <65793.1694843596@localhost>
 <CADF+RtikqxOW0XpwGTWWuGNTWjz3-MWMcO6U65Tta3PJjkRXqw@HIDDEN>
 <m24jbtim2p.fsf@HIDDEN>
 <CADF+RtiOECRmdoFD1qP=gRzS+P3tJqh_WNTnuW-1zPrY9g4VBw@HIDDEN>
 <jwvmsp7afy2.fsf-monnier+emacs@HIDDEN>
Date: Sat, 04 May 2024 16:32:25 +0200
Message-ID: <m24jbd7ime.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13)
MIME-Version: 1.0
Content-Type: text/plain
X-Spam-Score: -2.3 (--)
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 (---)

Stefan Monnier <monnier@HIDDEN> writes:

>> diff --git a/lisp/textmodes/tex-mode.el b/lisp/textmodes/tex-mode.el
>> index 97c950267c6..d990a2dbfa9 100644
>> --- a/lisp/textmodes/tex-mode.el
>> +++ b/lisp/textmodes/tex-mode.el
>> @@ -695,7 +696,25 @@ tex-verbatim-environments
>>       ("\\\\\\(?:end\\|begin\\) *\\({[^\n{}]*}\\)"
>>        (1 (ignore
>>            (tex-env-mark (match-beginning 0)
>> -                        (match-beginning 1) (match-end 1))))))))
>> +                        (match-beginning 1) (match-end 1)))))
>> +     ;; The next two rules change the syntax of `:' and `_' in expl3
>> +     ;; constructs, so that `tex-font-lock-suscript' can fontify them
>> +     ;; more accurately.
>> +     ((concat "\\(\\(?:[\\\\[:space:]{]_\\|"
>> +              "[\\\\{[:space:]][^][_[:space:][:cntrl:][:digit:]\\\\{}()/=]+\\)"
>> +              "\\(?:_+\\(?:[^][[:space:][:cntrl:][:digit:]:\\\\{}()/#_=]+\\|"
>> +              "#+[1-9]\\)\\)+\\)\\([:_]?\\)")
>
> Can you add in the comment some URL pointing to some relevant expl3
> documentation which "explains" why the above regexp makes sense?
> Also I don't clearly see how the above regexp distinguishes expl3 code
> from "normal" LaTeX code, so the comment should say something about
> it.

FWIW, I'm not sure if there is an URL for that, but in interface3.pdf,
chap.1, you'll find:

    1.1 Naming functions and variables

    LATEX3 does not use @ as a "letter"" for defining internal macros.
    Instead, the symbols _ and : are used in internal macro names to provide
    structure. The name of each function is divided into logical units using
    _, while : separates the name of the function from the argument
    specifier ("arg-spec"). This describes the arguments expected by the
    function. In most cases, each argument is represented by a single
    letter. The complete list of arg-spec letters for a function is referred
    to as the signature of the function.

So expect things like this:

    \tl_set:Nn \l_mya_tl { A }
    \tl_set:Nn \l_myb_tl { B }
    \tl_set:Nf \l_mya_tl { \l_mya_tl \l_myb_tl }

>> +;; Setup AUCTeX modes (for testing purposes only).
>> +
>> +(add-hook 'TeX-mode-hook #'tex-set-auctex-xref-backend)
>> +
>> +(defun tex-set-auctex-xref-backend ()
>> +  (add-hook 'xref-backend-functions #'tex--xref-backend nil t))
>
> I assume this will be sent to AUCTeX and is not meant to be in
> `tex-mode.el`, right?

That would have been a question from my side, but I saw that "testing
purposes only" and skipped it for this round.

Best, Arash




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#53749: 29.0.50; [PATCH] Xref backend for TeX buffers
Resent-From: Stefan Monnier <monnier@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Sat, 04 May 2024 14:56:02 +0000
Resent-Message-ID: <handler.53749.B53749.17148345296488 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 53749
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: pending patch
To: Arash Esbati <arash@HIDDEN>
Cc: 53749 <at> debbugs.gnu.org, Ikumi Keita <ikumi@HIDDEN>, Dmitry Gutov <dgutov@HIDDEN>, David Fussner <dfussner@HIDDEN>, stefankangas@HIDDEN, Tassilo Horn <tsdh@HIDDEN>, Eli Zaretskii <eliz@HIDDEN>
Received: via spool by 53749-submit <at> debbugs.gnu.org id=B53749.17148345296488
          (code B ref 53749); Sat, 04 May 2024 14:56:02 +0000
Received: (at 53749) by debbugs.gnu.org; 4 May 2024 14:55:29 +0000
Received: from localhost ([127.0.0.1]:54123 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1s3GnP-0001gX-KV
	for submit <at> debbugs.gnu.org; Sat, 04 May 2024 10:55:29 -0400
Received: from mailscanner.iro.umontreal.ca ([132.204.25.50]:41135)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <monnier@HIDDEN>) id 1s3GnJ-0001gL-OS
 for 53749 <at> debbugs.gnu.org; Sat, 04 May 2024 10:55:25 -0400
Received: from pmg2.iro.umontreal.ca (localhost.localdomain [127.0.0.1])
 by pmg2.iro.umontreal.ca (Proxmox) with ESMTP id 42F15801BF;
 Sat,  4 May 2024 10:54:53 -0400 (EDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=iro.umontreal.ca;
 s=mail; t=1714834488;
 bh=Uq+FyXGXhteHHYWoyS4EXgwM36pKM1XIsRQklMho/Qo=;
 h=From:To:Cc:Subject:In-Reply-To:References:Date:From;
 b=F3u7F3vJX8R3szNPzKALpYNqxGb6OAn4Oi0XYd5h0Shodivi4eyFdJtBNV3K8XDXh
 1vZtIT3wRb81aMyffAQreltVKAp9cRP+xeqiNOLunRN1akcHzf6NkWqxJrWAmJvPx7
 sYqMYxkO166CCS/er4rVSrCbd3rfSeOi5Lx/fnDcMO0ahZtbk1oGNo8ev6U3cV0Sue
 kIN0+lrgd+PfumkbpGBHe7gpO2IuzgPuMOzUfqc8ig+OWWC4bfr4pNlEwZ5OUmK9+9
 OIyq8jSzBv6GP+i8S0iIu7yUGIpOyDISV63+M814+5Mblns5CG5qQEzRjlch0ijewf
 9CeEoQnn+higw==
Received: from mail01.iro.umontreal.ca (unknown [172.31.2.1])
 by pmg2.iro.umontreal.ca (Proxmox) with ESMTP id EF94780013;
 Sat,  4 May 2024 10:54:47 -0400 (EDT)
Received: from pastel (unknown [45.72.201.215])
 by mail01.iro.umontreal.ca (Postfix) with ESMTPSA id AD2D0120352;
 Sat,  4 May 2024 10:54:47 -0400 (EDT)
From: Stefan Monnier <monnier@HIDDEN>
In-Reply-To: <m24jbd7ime.fsf@HIDDEN> (Arash Esbati's message of
 "Sat, 04 May 2024 16:32:25 +0200")
Message-ID: <jwv4jbd8wal.fsf-monnier+emacs@HIDDEN>
References: <CADF+RtgWCLKQGwgdTNWmgesbcwq8iBxChoN8FqMOg95Ai3CYTA@HIDDEN>
 <1de34060-e93b-0a42-fff5-20e283abe0dc@HIDDEN>
 <87o7vq0zir.fsf@HIDDEN>
 <CADF+Rtjii7ZHkrfLzS63Yt1UiPPfnOrSsFZe2SMRetOS4w0vng@HIDDEN>
 <8735d20yvd.fsf@HIDDEN>
 <CADF+Rtgz5f6fcVuTLrv_N8oObRw+Uw-Je7bz54Gagb3pRgpR=g@HIDDEN>
 <CADwFkm=p8_Tbu+cXMDA8zEKovb+Ld7QFUJz_AhFnJebhik=JBg@HIDDEN>
 <CADF+RtjGfibN3Yg8mf4hVB9uPWtAwp0m6J2LRH7n0Z20S7+Yzg@HIDDEN>
 <CADwFkmkbMSXdjB6kF3a68_1vb4dv05_vMrKrvoX908nZJrpxOg@HIDDEN>
 <CADF+RtgxigxvgG0j6bbpYnrrFVF4YTKZ1Rs0JSCc8zuu5JNA2w@HIDDEN>
 <fcbc07cf-5ee9-131f-1a18-9cc28a5655f1@HIDDEN>
 <CADF+Rti2gSVvfksUVO04ptKQsXrNpwUXHQ_qFjC26D8NNh578A@HIDDEN>
 <2c5c8afa-b57e-3156-d21c-5523cacb4d87@HIDDEN>
 <831qf1mgjl.fsf@HIDDEN> <87cyyj9rpp.fsf@HIDDEN>
 <65793.1694843596@localhost>
 <CADF+RtikqxOW0XpwGTWWuGNTWjz3-MWMcO6U65Tta3PJjkRXqw@HIDDEN>
 <m24jbtim2p.fsf@HIDDEN>
 <CADF+RtiOECRmdoFD1qP=gRzS+P3tJqh_WNTnuW-1zPrY9g4VBw@HIDDEN>
 <jwvmsp7afy2.fsf-monnier+emacs@HIDDEN>
 <m24jbd7ime.fsf@HIDDEN>
Date: Sat, 04 May 2024 10:54:46 -0400
User-Agent: Gnus/5.13 (Gnus v5.13)
MIME-Version: 1.0
Content-Type: text/plain
X-SPAM-INFO: Spam detection results:  0
 ALL_TRUSTED                -1 Passed through trusted hosts only via SMTP
 AWL -0.044 Adjusted score from AWL reputation of From: address
 BAYES_00                 -1.9 Bayes spam probability is 0 to 1%
 DKIM_SIGNED               0.1 Message has a DKIM or DK signature,
 not necessarily valid
 DKIM_VALID -0.1 Message has at least one valid DKIM or DK signature
 DKIM_VALID_AU -0.1 Message has a valid DKIM or DK signature from author's
 domain
 DKIM_VALID_EF -0.1 Message has a valid DKIM or DK signature from envelope-from
 domain
X-SPAM-LEVEL: 
X-Spam-Score: -2.3 (--)
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 (---)

> FWIW, I'm not sure if there is an URL for that, but in interface3.pdf,
> chap.1, you'll find:
[...]
> So expect things like this:
>
>     \tl_set:Nn \l_mya_tl { A }
>     \tl_set:Nn \l_myb_tl { B }
>     \tl_set:Nf \l_mya_tl { \l_mya_tl \l_myb_tl }

But that is *also* valid LaTeX, with a different meaning (i.e. where
`_` has its subscript meaning).  So we need some other info in order to
know which of the two we're dealing with.

Maybe that info is simply "assume LaTeX3 if the _ is followed by several
letters" or some such heuristic, but the comment should say so.


        Stefan





Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#53749: 29.0.50; [PATCH] Xref backend for TeX buffers
Resent-From: Arash Esbati <arash@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Sat, 04 May 2024 21:17:02 +0000
Resent-Message-ID: <handler.53749.B53749.171485739712593 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 53749
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: pending patch
To: Stefan Monnier <monnier@HIDDEN>
Cc: 53749 <at> debbugs.gnu.org, Ikumi Keita <ikumi@HIDDEN>, Dmitry Gutov <dgutov@HIDDEN>, David Fussner <dfussner@HIDDEN>, stefankangas@HIDDEN, Tassilo Horn <tsdh@HIDDEN>, Eli Zaretskii <eliz@HIDDEN>
Received: via spool by 53749-submit <at> debbugs.gnu.org id=B53749.171485739712593
          (code B ref 53749); Sat, 04 May 2024 21:17:02 +0000
Received: (at 53749) by debbugs.gnu.org; 4 May 2024 21:16:37 +0000
Received: from localhost ([127.0.0.1]:55806 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1s3MkH-0003H3-Cf
	for submit <at> debbugs.gnu.org; Sat, 04 May 2024 17:16:37 -0400
Received: from eggs.gnu.org ([2001:470:142:3::10]:50444)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <arash@HIDDEN>) id 1s3MkC-0003Gv-7E
 for 53749 <at> debbugs.gnu.org; Sat, 04 May 2024 17:16:35 -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 <arash@HIDDEN>)
 id 1s3Mjg-0004pK-5v; Sat, 04 May 2024 17:16:00 -0400
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org;
 s=fencepost-gnu-org; h=MIME-Version:Date:References:In-Reply-To:Subject:To:
 From; bh=Ccgcv6mp9vXh2fds/uX/gY1o8zc4teDcnzkuhQyfzic=; b=KY2KbR8hwSbpb1/cKGxa
 1EcHWR9x/Ki6dj7vzevbI7GVlVD6ox2QXSN+xb/73cz8egppi94YjKRGzRrROCaIS0zO9NL0JABqT
 tmmPtstV+kvm+3Y4hnpbBHu0jtW7s6KOJcAvrQmuOcZkTJU7AgyAy+95RQzPDOhUEaw+2QpORWK3Y
 bMdtGINZ2aZWYQmsbxGWP55ui0Olgr0IDkJuPb9ig9QjpUn4c4LCe7Z6+UCgD0z4Va58d5QH3nv4P
 EkEuKiw7LJaJP8goeU0btl+WE6wwCv7E9vX+Db7TSxspUBPUkPKMqX0o2WPN41LcqxbLJEPkvD36I
 l8a5TZwqSq9NeQ==;
From: Arash Esbati <arash@HIDDEN>
In-Reply-To: <jwv4jbd8wal.fsf-monnier+emacs@HIDDEN> (Stefan Monnier's message
 of "Sat, 04 May 2024 10:54:46 -0400")
References: <CADF+RtgWCLKQGwgdTNWmgesbcwq8iBxChoN8FqMOg95Ai3CYTA@HIDDEN>
 <87o7vq0zir.fsf@HIDDEN>
 <CADF+Rtjii7ZHkrfLzS63Yt1UiPPfnOrSsFZe2SMRetOS4w0vng@HIDDEN>
 <8735d20yvd.fsf@HIDDEN>
 <CADF+Rtgz5f6fcVuTLrv_N8oObRw+Uw-Je7bz54Gagb3pRgpR=g@HIDDEN>
 <CADwFkm=p8_Tbu+cXMDA8zEKovb+Ld7QFUJz_AhFnJebhik=JBg@HIDDEN>
 <CADF+RtjGfibN3Yg8mf4hVB9uPWtAwp0m6J2LRH7n0Z20S7+Yzg@HIDDEN>
 <CADwFkmkbMSXdjB6kF3a68_1vb4dv05_vMrKrvoX908nZJrpxOg@HIDDEN>
 <CADF+RtgxigxvgG0j6bbpYnrrFVF4YTKZ1Rs0JSCc8zuu5JNA2w@HIDDEN>
 <fcbc07cf-5ee9-131f-1a18-9cc28a5655f1@HIDDEN>
 <CADF+Rti2gSVvfksUVO04ptKQsXrNpwUXHQ_qFjC26D8NNh578A@HIDDEN>
 <2c5c8afa-b57e-3156-d21c-5523cacb4d87@HIDDEN>
 <831qf1mgjl.fsf@HIDDEN> <87cyyj9rpp.fsf@HIDDEN>
 <65793.1694843596@localhost>
 <CADF+RtikqxOW0XpwGTWWuGNTWjz3-MWMcO6U65Tta3PJjkRXqw@HIDDEN>
 <m24jbtim2p.fsf@HIDDEN>
 <CADF+RtiOECRmdoFD1qP=gRzS+P3tJqh_WNTnuW-1zPrY9g4VBw@HIDDEN>
 <jwvmsp7afy2.fsf-monnier+emacs@HIDDEN>
 <m24jbd7ime.fsf@HIDDEN>
 <jwv4jbd8wal.fsf-monnier+emacs@HIDDEN>
Date: Sat, 04 May 2024 23:15:55 +0200
Message-ID: <m2r0eh6zxw.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13)
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-Spam-Score: -2.3 (--)
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 (---)

Stefan Monnier <monnier@HIDDEN> writes:

> But that is *also* valid LaTeX, with a different meaning (i.e. where
> `_` has its subscript meaning).  So we need some other info in order to
> know which of the two we're dealing with.

That's true.  AFAIK, one has to deal with:

  =E2=80=A2 \_ in ordinary text like foo\_bar
  =E2=80=A2 _ in math mode like $a_b$
  =E2=80=A2 expl3 macros like \tl_set:Nn
  =E2=80=A2 expl3 macros like \__kernel_kern:n

> Maybe that info is simply "assume LaTeX3 if the _ is followed by several
> letters" or some such heuristic, but the comment should say so.

Last time I looked at this, my conclusion was: Deal with \_ and _ in
usual .tex files and expect expl3 macros in .dtx file only.

Best, Arash




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#53749: 29.0.50; [PATCH] Xref backend for TeX buffers
Resent-From: Dmitry Gutov <dgutov@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Tue, 07 May 2024 02:08:01 +0000
Resent-Message-ID: <handler.53749.B53749.17150476388508 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 53749
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: pending patch
To: David Fussner <dfussner@HIDDEN>
Cc: 53749 <at> debbugs.gnu.org, Ikumi Keita <ikumi@HIDDEN>, Arash Esbati <arash@HIDDEN>, Stefan Monnier <monnier@HIDDEN>, Tassilo Horn <tsdh@HIDDEN>, Eli Zaretskii <eliz@HIDDEN>, stefankangas@HIDDEN
Received: via spool by 53749-submit <at> debbugs.gnu.org id=B53749.17150476388508
          (code B ref 53749); Tue, 07 May 2024 02:08:01 +0000
Received: (at 53749) by debbugs.gnu.org; 7 May 2024 02:07:18 +0000
Received: from localhost ([127.0.0.1]:41459 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1s4AEg-0002DA-3x
	for submit <at> debbugs.gnu.org; Mon, 06 May 2024 22:07:18 -0400
Received: from forward502b.mail.yandex.net ([178.154.239.146]:38460)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <dgutov@HIDDEN>) id 1s4AEc-0002D4-Fm
 for 53749 <at> debbugs.gnu.org; Mon, 06 May 2024 22:07:16 -0400
Received: from mail-nwsmtp-smtp-production-main-90.myt.yp-c.yandex.net
 (mail-nwsmtp-smtp-production-main-90.myt.yp-c.yandex.net
 [IPv6:2a02:6b8:c12:2512:0:640:eb83:0])
 by forward502b.mail.yandex.net (Yandex) with ESMTPS id EAF0E5E6C7;
 Tue,  7 May 2024 05:06:46 +0300 (MSK)
Received: by mail-nwsmtp-smtp-production-main-90.myt.yp-c.yandex.net
 (smtp/Yandex) with ESMTPSA id g6Nj1t5d4W20-lb5rIuPB; 
 Tue, 07 May 2024 05:06:46 +0300
X-Yandex-Fwd: 1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex.ru; s=mail;
 t=1715047606; bh=9Ksac0fKc2s3Wn7rFf6ZVRcdfI5TVWhd6VhFtWeLdkc=;
 h=In-Reply-To:From:Subject:Message-ID:Cc:References:Date:To;
 b=YetryuFLTtI+wFtEHgcaFqREXpnFQXDtbfLwfkNKFM+hX5TNLMSuhyYRD3MaWWj1l
 FJcc/aJ9YqUTy46YPHYWD8stpSGM4dB+JoYq2AP3cONJgEJVH22AwCHyFOxmJ/VOoS
 gsT+naGFLD8gR+L0oH3g5kfVnWMrpRhPDVAAT8Ns=
Authentication-Results: mail-nwsmtp-smtp-production-main-90.myt.yp-c.yandex.net;
 dkim=pass header.i=@yandex.ru
Received: from compute7.internal (compute7.nyi.internal [10.202.2.48])
 by mailfauth.nyi.internal (Postfix) with ESMTP id 1D88F1200032;
 Mon,  6 May 2024 22:06:41 -0400 (EDT)
Received: from mailfrontend1 ([10.202.2.162])
 by compute7.internal (MEProxy); Mon, 06 May 2024 22:06:42 -0400
X-ME-Sender: <xms:sYw5ZrAMAGGU-HhMbevVrGJpNui8H2NgjZOvujLmcGM_u8gaBFQCEQ>
 <xme:sYw5ZhijofJ2SpSW6iWezjAnwmGhMF_qloghnxrObNVlja9PX3flrdfC7jnjty07k
 aSL5sLmQk_7aoi5ENw>
X-ME-Received: <xmr:sYw5ZmlZ2qhhNz9M3HrWaeP2TLQ5ZXouRam3k0EG9SGOKasNkAhikbzZ4ywo1bz8CJEn>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvledrvddvjedgheejucetufdoteggodetrfdotf
 fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen
 uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne
 cujfgurhepkfffgggfuffvvehfhfgjtgfgsehtjeertddtvdejnecuhfhrohhmpeffmhhi
 thhrhicuifhuthhovhcuoegughhuthhovheshigrnhguvgigrdhruheqnecuggftrfgrth
 htvghrnhepiefhjeeuveetffffvdefteffffekhfeuudejieehheeiudelgfehgffffedu
 ffdunecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepug
 hguhhtohhvodhmvghsmhhtphgruhhthhhpvghrshhonhgrlhhithihqddufeeffeelleeh
 hedvqddvleegjeejjeejiedqughguhhtohhvpeephigrnhguvgigrdhruhesfhgrshhtmh
 grihhlrdgtohhm
X-ME-Proxy: <xmx:sYw5ZtzT-9BaFU-hOovHh7QjlaMPT4cGH-THvItOQ70Hlzo2v5fLmg>
 <xmx:sYw5ZgShpI43rS8U7K7ug9WURDqK_s9Oh0wi8yMK8a1KxkfQraIfnw>
 <xmx:sYw5ZgbDWA3mWrNOQ52g8uYp1iQR6AVElV-EUiTetxXt_vKmO1pZpA>
 <xmx:sYw5ZhT_J94zc6-MkAl8i4zXq0PJ8DAfmGXdX4sXqyk9ERH-9MJwRQ>
 <xmx:sYw5ZmBgVA1NX7Jfo30ArGlL1DtNgtgpQzd62HVBkTiQdN9LhpgvHKbQ>
Feedback-ID: ib1d9465d:Fastmail
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Mon,
 6 May 2024 22:06:39 -0400 (EDT)
Message-ID: <175a4316-bb92-424a-8cca-07ffa6de8aba@HIDDEN>
Date: Tue, 7 May 2024 05:06:36 +0300
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
References: <CADF+RtgWCLKQGwgdTNWmgesbcwq8iBxChoN8FqMOg95Ai3CYTA@HIDDEN>
 <8735d20yvd.fsf@HIDDEN>
 <CADF+Rtgz5f6fcVuTLrv_N8oObRw+Uw-Je7bz54Gagb3pRgpR=g@HIDDEN>
 <CADwFkm=p8_Tbu+cXMDA8zEKovb+Ld7QFUJz_AhFnJebhik=JBg@HIDDEN>
 <CADF+RtjGfibN3Yg8mf4hVB9uPWtAwp0m6J2LRH7n0Z20S7+Yzg@HIDDEN>
 <CADwFkmkbMSXdjB6kF3a68_1vb4dv05_vMrKrvoX908nZJrpxOg@HIDDEN>
 <CADF+RtgxigxvgG0j6bbpYnrrFVF4YTKZ1Rs0JSCc8zuu5JNA2w@HIDDEN>
 <fcbc07cf-5ee9-131f-1a18-9cc28a5655f1@HIDDEN>
 <CADF+Rti2gSVvfksUVO04ptKQsXrNpwUXHQ_qFjC26D8NNh578A@HIDDEN>
 <2c5c8afa-b57e-3156-d21c-5523cacb4d87@HIDDEN>
 <831qf1mgjl.fsf@HIDDEN> <87cyyj9rpp.fsf@HIDDEN>
 <65793.1694843596@localhost>
 <CADF+RtikqxOW0XpwGTWWuGNTWjz3-MWMcO6U65Tta3PJjkRXqw@HIDDEN>
 <m24jbtim2p.fsf@HIDDEN>
 <CADF+RtiOECRmdoFD1qP=gRzS+P3tJqh_WNTnuW-1zPrY9g4VBw@HIDDEN>
 <e5a6ba0d-ca4a-4e21-b44f-12043c59aa6b@HIDDEN>
 <CADF+Rtif9uA3qgcSbxiFMTi01wyn5fSMgdTGu1Crsdb24XexDQ@HIDDEN>
Content-Language: en-US
From: Dmitry Gutov <dgutov@HIDDEN>
In-Reply-To: <CADF+Rtif9uA3qgcSbxiFMTi01wyn5fSMgdTGu1Crsdb24XexDQ@HIDDEN>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-Spam-Score: 0.0 (/)
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: -1.0 (-)

On 02/05/2024 16:32, David Fussner via Bug reports for GNU Emacs, the 
Swiss army knife of text editors wrote:
> Hi Dmitry,
> 
> Thanks for looking over the patch. Here's the recipe for the purported
> bug in xref.el:
> 
> 1. Please apply my patch to tex-mode.el (and xref.el).
> 
> 2. I've attached xref-bug.zip, which contains a directory with 4
> identical LaTeX files and one LaTeX file with a single additional
> character. Please extract it.
> 
> 3. emacs -Q
> 
> 4. C-x C-f xref-bug/mwea.ltx, and please don't visit the other 4
> files.
> 
> 5. Put point on \__hook_debug:n in line 6.
> 
> 6. M-?, RTN, ... RTN, RTN.
> 
> The xref buffer should offer 5 hits, one from each file in the
> directory.
> 
> 7. Comment out the the line I added to xref--collect-matches,
> byte-compile and load the file.
> 
> 8. With point in the same place, M-?, RTN, ... RTN, RTN.
> 
> The xref buffer should offer 3 hits. The first is from the
> file-visiting buffer (where I also set syntax-propertize--done to 0,
> because in my testing there could be some issues here, too). The
> second hit is from the first file opened in *xref-temp. Here,
> syntax-propertize runs to line-end, and all is well. The next two
> files are missed, because syntax-propertize--done is set to line-end
> and they have exactly the same line length as file two, and therefore
> syntax-propertize thinks that's good enough and doesn't actually
> change anything. The fifth file has an additional character in line 6,
> so syntax-propertize decides it needs to work on this line because
> line-end > syntax-propertize--done.
> 
> You can put point on, say, \documentclass, and you'll get all 5 hits,
> because this string doesn't begin or end with a non-word, non-symbol
> character, and syntax-propertize doesn't need to run. You can make the
> search string "\documentclass" and you'll get 2 hits, as line 1 has
> the same length in all 5 files. (It's worth trying "\usepackage" as
> the search string, too.)
> 
> That's my diagnosis anyway. Does it make sense?

Thank you, David, for the thorough scenario. I see the problem now.




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#53749: 29.0.50; [PATCH] Xref backend for TeX buffers
Resent-From: Dmitry Gutov <dgutov@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Tue, 07 May 2024 02:28:02 +0000
Resent-Message-ID: <handler.53749.B53749.17150488779369 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 53749
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: pending patch
To: Stefan Monnier <monnier@HIDDEN>, David Fussner <dfussner@HIDDEN>
Cc: 53749 <at> debbugs.gnu.org, Ikumi Keita <ikumi@HIDDEN>, Arash Esbati <arash@HIDDEN>, stefankangas@HIDDEN, Tassilo Horn <tsdh@HIDDEN>, Eli Zaretskii <eliz@HIDDEN>
Received: via spool by 53749-submit <at> debbugs.gnu.org id=B53749.17150488779369
          (code B ref 53749); Tue, 07 May 2024 02:28:02 +0000
Received: (at 53749) by debbugs.gnu.org; 7 May 2024 02:27:57 +0000
Received: from localhost ([127.0.0.1]:41549 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1s4AYf-0002R3-5j
	for submit <at> debbugs.gnu.org; Mon, 06 May 2024 22:27:57 -0400
Received: from forward500c.mail.yandex.net
 ([2a02:6b8:c03:500:1:45:d181:d500]:45106)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <dgutov@HIDDEN>) id 1s4AYd-0002Qv-Eh
 for 53749 <at> debbugs.gnu.org; Mon, 06 May 2024 22:27:56 -0400
Received: from mail-nwsmtp-smtp-production-main-44.sas.yp-c.yandex.net
 (mail-nwsmtp-smtp-production-main-44.sas.yp-c.yandex.net
 [IPv6:2a02:6b8:c24:a33:0:640:d837:0])
 by forward500c.mail.yandex.net (Yandex) with ESMTPS id 8436F60E46;
 Tue,  7 May 2024 05:27:23 +0300 (MSK)
Received: by mail-nwsmtp-smtp-production-main-44.sas.yp-c.yandex.net
 (smtp/Yandex) with ESMTPSA id IRNiAUGmFmI0-NGNjqMW7; 
 Tue, 07 May 2024 05:27:22 +0300
X-Yandex-Fwd: 1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex.ru; s=mail;
 t=1715048842; bh=7QePmLdLH9IzEey+MJrYO14uvacfm2qSLhMar6lTCqk=;
 h=In-Reply-To:From:Subject:Message-ID:Cc:References:Date:To;
 b=QPcpdv2htzt/OJntg3iN1NbUbtexvLRCCjWbgczWDbZr14fbz3StkiwQCUWrN6+CI
 dfmHiBJ+1exOke9JUJKLCjb9FoZm8K3RxGjnWtUX3r4QSkz6AqJ/0pfcUrb3rHXMrt
 UPMOxa+x4BTD45oHsz9tvRxao9uFzMbB3T+2xh4k=
Authentication-Results: mail-nwsmtp-smtp-production-main-44.sas.yp-c.yandex.net;
 dkim=pass header.i=@yandex.ru
Received: from compute7.internal (compute7.nyi.internal [10.202.2.48])
 by mailfauth.nyi.internal (Postfix) with ESMTP id 1C9BF120006B;
 Mon,  6 May 2024 22:27:17 -0400 (EDT)
Received: from mailfrontend1 ([10.202.2.162])
 by compute7.internal (MEProxy); Mon, 06 May 2024 22:27:18 -0400
X-ME-Sender: <xms:hZE5ZrGTD_m-ZEK4-0TZIwlCYVLhp44rMRcDpRr3KiUMgg1XxP15Zw>
 <xme:hZE5ZoUEdfcsRvTYRf4C1eQNy5S2kwUeclwPW6y0eQsRny-13A1NowVSvXMog3kPi
 Np8IdjBYIES8X9T8gI>
X-ME-Received: <xmr:hZE5ZtLC3vZTcCwZq2DDYvnsp3Tl4aDK2s8cIOevaii9aJb9ulFQkFRLTsw_lm9aJeZ->
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvledrvddvjedgieduucetufdoteggodetrfdotf
 fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen
 uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne
 cujfgurhepkfffgggfuffvvehfhfgjtgfgsehtjeertddtvdejnecuhfhrohhmpeffmhhi
 thhrhicuifhuthhovhcuoegughhuthhovheshigrnhguvgigrdhruheqnecuggftrfgrth
 htvghrnhepiefhjeeuveetffffvdefteffffekhfeuudejieehheeiudelgfehgffffedu
 ffdunecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepug
 hguhhtohhvodhmvghsmhhtphgruhhthhhpvghrshhonhgrlhhithihqddufeeffeelleeh
 hedvqddvleegjeejjeejiedqughguhhtohhvpeephigrnhguvgigrdhruhesfhgrshhtmh
 grihhlrdgtohhm
X-ME-Proxy: <xmx:hZE5ZpELXTrg2z66pDZHY3ac5gv1h4vEMHCWezmuUQkDN3VbkqoE9w>
 <xmx:hZE5ZhX38RWqfOxNg4cWIiF1TnLvPGoUWHYN4WZd2v9EraCerYEAEg>
 <xmx:hZE5ZkOuRTotYHWPFnhHRYTotgfUoz9JIQWKvGYF8znRpTh5gxgkjQ>
 <xmx:hZE5Zg32nJzJIrf5buck29SaQgypX_BnwvMQJiyalquW7Ck6sR9IBQ>
 <xmx:hZE5ZmU-kdYHtEqDsNoUQuXpPYj-2giXEHRoZt_zKdMWNohbPwuqNBby>
Feedback-ID: ib1d9465d:Fastmail
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Mon,
 6 May 2024 22:27:15 -0400 (EDT)
Message-ID: <eb177a28-d1b3-481a-afad-97bfb9e8d851@HIDDEN>
Date: Tue, 7 May 2024 05:27:14 +0300
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
References: <CADF+RtgWCLKQGwgdTNWmgesbcwq8iBxChoN8FqMOg95Ai3CYTA@HIDDEN>
 <CADwFkm=p8_Tbu+cXMDA8zEKovb+Ld7QFUJz_AhFnJebhik=JBg@HIDDEN>
 <CADF+RtjGfibN3Yg8mf4hVB9uPWtAwp0m6J2LRH7n0Z20S7+Yzg@HIDDEN>
 <CADwFkmkbMSXdjB6kF3a68_1vb4dv05_vMrKrvoX908nZJrpxOg@HIDDEN>
 <CADF+RtgxigxvgG0j6bbpYnrrFVF4YTKZ1Rs0JSCc8zuu5JNA2w@HIDDEN>
 <fcbc07cf-5ee9-131f-1a18-9cc28a5655f1@HIDDEN>
 <CADF+Rti2gSVvfksUVO04ptKQsXrNpwUXHQ_qFjC26D8NNh578A@HIDDEN>
 <2c5c8afa-b57e-3156-d21c-5523cacb4d87@HIDDEN> <831qf1mgjl.fsf@HIDDEN>
 <87cyyj9rpp.fsf@HIDDEN> <65793.1694843596@localhost>
 <CADF+RtikqxOW0XpwGTWWuGNTWjz3-MWMcO6U65Tta3PJjkRXqw@HIDDEN>
 <m24jbtim2p.fsf@HIDDEN>
 <CADF+RtiOECRmdoFD1qP=gRzS+P3tJqh_WNTnuW-1zPrY9g4VBw@HIDDEN>
 <e5a6ba0d-ca4a-4e21-b44f-12043c59aa6b@HIDDEN>
 <CADF+Rtif9uA3qgcSbxiFMTi01wyn5fSMgdTGu1Crsdb24XexDQ@HIDDEN>
 <jwvh6ff9fqi.fsf-monnier+emacs@HIDDEN>
Content-Language: en-US
From: Dmitry Gutov <dgutov@HIDDEN>
In-Reply-To: <jwvh6ff9fqi.fsf-monnier+emacs@HIDDEN>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-Spam-Score: -0.7 (/)
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: -1.7 (-)

On 03/05/2024 16:42, Stefan Monnier via Bug reports for GNU Emacs, the 
Swiss army knife of text editors wrote:
>> Thanks for looking over the patch. Here's the recipe for the purported
>> bug in xref.el:
> The problem stems from xref.el's constant abuse of
> `inhibit-modification-hooks`.  Binding this var to t should be done only
> in exceptional circumstances and should ideally be accompanied by a
> comment explaining why it's necessary.

Well, the reason is performance: I've tried to wring out the most out of 
it, given that we have to parse the buffer for syntax in Elisp, and 
that'll always have a certain overhead.

The difference between inhibiting and not could be up to 20% of runtime.

David's fix makes things slower (just due to having us do the necessary 
work), but still has an edge over having no inhibit-modification-hooks.

That remaining improvement is around 4-7% in my testing, though, so 
maybe it's the point where we should prioritize simplicity.




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#53749: 29.0.50; [PATCH] Xref backend for TeX buffers
Resent-From: David Fussner <dfussner@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Tue, 07 May 2024 13:16:01 +0000
Resent-Message-ID: <handler.53749.B53749.171508776117257 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 53749
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: pending patch
To: Stefan Monnier <monnier@HIDDEN>
Cc: 53749 <at> debbugs.gnu.org, Ikumi Keita <ikumi@HIDDEN>, Tassilo Horn <tsdh@HIDDEN>, Arash Esbati <arash@HIDDEN>, stefankangas@HIDDEN, Dmitry Gutov <dgutov@HIDDEN>, Eli Zaretskii <eliz@HIDDEN>
Received: via spool by 53749-submit <at> debbugs.gnu.org id=B53749.171508776117257
          (code B ref 53749); Tue, 07 May 2024 13:16:01 +0000
Received: (at 53749) by debbugs.gnu.org; 7 May 2024 13:16:01 +0000
Received: from localhost ([127.0.0.1]:42652 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1s4Kfn-0004UH-Tr
	for submit <at> debbugs.gnu.org; Tue, 07 May 2024 09:16:00 -0400
Received: from mail-pl1-x631.google.com ([2607:f8b0:4864:20::631]:59613)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <dfussner@HIDDEN>) id 1s4Kfk-0004U9-GJ
 for 53749 <at> debbugs.gnu.org; Tue, 07 May 2024 09:15:57 -0400
Received: by mail-pl1-x631.google.com with SMTP id
 d9443c01a7336-1ecddf96313so26750015ad.2
 for <53749 <at> debbugs.gnu.org>; Tue, 07 May 2024 06:15:31 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=googlemail.com; s=20230601; t=1715087726; x=1715692526; darn=debbugs.gnu.org;
 h=cc:to:subject:message-id:date:from:in-reply-to:references
 :mime-version:from:to:cc:subject:date:message-id:reply-to;
 bh=Gh5YrPgBnl8LygP/+wg28snfCrtXdUCs4LqxlcUXS1o=;
 b=dPcoqpOapFz/6HIb6omWIw86nyXD2qC7bOpALmPtB0Oqq78/Ra2Kuu+JJ4tWUDYjRr
 DNzkU1GyWgpVSFdALOgsT5/F6hs8qo80DNgZF9hmf2zRkQPSG30BzH3KuKi/heKhzpXH
 BIJPcwrK4HSh4GMVdr6/lsdjEC+Sca/9dC2QBQRE7RRMKqRsgz1IUGbzwdfN2nMtlEUJ
 1i87dETHMU+cjwFfxz3QJ0PPTiJ8UoMsphD2cA0U6cuMnftsixT/HMxxzV4p5a+vFq/p
 ZAnV3jdXS65g8T/aFN0ehP1lnIB/RwfF90ZmbWsjwWE2E35a5lX/eZdloUe3p89Ljrbt
 BLZA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20230601; t=1715087726; x=1715692526;
 h=cc: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=Gh5YrPgBnl8LygP/+wg28snfCrtXdUCs4LqxlcUXS1o=;
 b=WYmwF645d0COEGalxhj7/72dlOk3kUr61vBNamcWewH6sKR/LGd2r7zm4XdllDVxHG
 +ODcONckl2nSiMtEBBOFHR6mb9Bc7VkF2jnOy4LZtzKus1Lgs3ijgwXfZ62QMzLXTB7r
 koLvOlsnzKDLH7eNDForEQI92t6J2BFrBSzQwfoZkb7FO10JZdkNHgzUfQRmHUbJJ2Qo
 QGgY+aIyQat3t06Wa+A1BTnrk+DUyyuzfHgFCxkfnZ3rId7baknJNdExIAZbPgk6W4xp
 qG2m3flDDmU5e/suYd9qvXG8jwBE75VNwItWQoNDS+3SwdPcxFLkTQhlv4WTpcjzIpAj
 Ogvw==
X-Forwarded-Encrypted: i=1;
 AJvYcCWDxJs13fEl+Ij1uaDeVszRf/cF6KfVg6nmOk4D0m0n+UI35udpbuYXhdkgxSHJ3lQRO0bmUgDQGmhv6/3PO+usbgX0Djk=
X-Gm-Message-State: AOJu0Yz2KSH9r63KGL97Rut66pKEEe7cVZlCuI94segK3EYEwdBYBMgF
 UV3JG9uUar+RxzaqN+jas9KzTYvHV2TY/n9aP3k4m3828kSfAIxBB+jry0QnltvARgE9TO17CjW
 jsCk7sTADc1NVQ8HHF0bTq3fX+LwO+I9M8yQ=
X-Google-Smtp-Source: AGHT+IGYe4ERX3/pMPSnOxc+wtxOX82121gR3afT85/lMqxfvUSyibjxOrq3Ca+5CnrFp17xYAtOrzxB29wZROhq75k=
X-Received: by 2002:a17:90b:684:b0:2b4:329e:e373 with SMTP id
 m4-20020a17090b068400b002b4329ee373mr13854095pjz.6.1715087725517; Tue, 07 May
 2024 06:15:25 -0700 (PDT)
MIME-Version: 1.0
References: <CADF+RtgWCLKQGwgdTNWmgesbcwq8iBxChoN8FqMOg95Ai3CYTA@HIDDEN>
 <1de34060-e93b-0a42-fff5-20e283abe0dc@HIDDEN> <87o7vq0zir.fsf@HIDDEN>
 <CADF+Rtjii7ZHkrfLzS63Yt1UiPPfnOrSsFZe2SMRetOS4w0vng@HIDDEN>
 <8735d20yvd.fsf@HIDDEN>
 <CADF+Rtgz5f6fcVuTLrv_N8oObRw+Uw-Je7bz54Gagb3pRgpR=g@HIDDEN>
 <CADwFkm=p8_Tbu+cXMDA8zEKovb+Ld7QFUJz_AhFnJebhik=JBg@HIDDEN>
 <CADF+RtjGfibN3Yg8mf4hVB9uPWtAwp0m6J2LRH7n0Z20S7+Yzg@HIDDEN>
 <CADwFkmkbMSXdjB6kF3a68_1vb4dv05_vMrKrvoX908nZJrpxOg@HIDDEN>
 <CADF+RtgxigxvgG0j6bbpYnrrFVF4YTKZ1Rs0JSCc8zuu5JNA2w@HIDDEN>
 <fcbc07cf-5ee9-131f-1a18-9cc28a5655f1@HIDDEN>
 <CADF+Rti2gSVvfksUVO04ptKQsXrNpwUXHQ_qFjC26D8NNh578A@HIDDEN>
 <2c5c8afa-b57e-3156-d21c-5523cacb4d87@HIDDEN> <831qf1mgjl.fsf@HIDDEN>
 <87cyyj9rpp.fsf@HIDDEN> <65793.1694843596@localhost>
 <CADF+RtikqxOW0XpwGTWWuGNTWjz3-MWMcO6U65Tta3PJjkRXqw@HIDDEN>
 <m24jbtim2p.fsf@HIDDEN>
 <CADF+RtiOECRmdoFD1qP=gRzS+P3tJqh_WNTnuW-1zPrY9g4VBw@HIDDEN>
 <jwvmsp7afy2.fsf-monnier+emacs@HIDDEN>
In-Reply-To: <jwvmsp7afy2.fsf-monnier+emacs@HIDDEN>
From: David Fussner <dfussner@HIDDEN>
Date: Tue, 7 May 2024 14:15:33 +0100
Message-ID: <CADF+Rtg=7ZPV-ito8R-0s1=K-wsHMCC7Tocze4EW8S7dV5_h7Q@HIDDEN>
Content-Type: multipart/mixed; boundary="000000000000a3763c0617dcfada"
X-Spam-Score: 0.0 (/)
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: -1.0 (-)

--000000000000a3763c0617dcfada
Content-Type: text/plain; charset="UTF-8"

Hi Stefan,

I apologize in advance if my reply gets lengthy.

> Also I don't clearly see how the above regexp distinguishes expl3 code
> from "normal" LaTeX code, so the comment should say something about it.

You are quite right that the regexp can (and does) match "normal"
LaTeX code, and I can see that this isn't acceptable as it stands. The
only way to be sure about ":" and "_" is to determine whether they're
inside a matched pair of \ExplSyntaxOn \ExplSyntaxOff macros (or in a
file which does something like \ProvidesExpl[File|Class]). The file
case can, I think, be sorted by modifying the syntax table as part of
setting up the relevant major modes. The temporary toggling of
ExplSyntax is trickier, but I have some proof-of-concept code that
adds a function to the `syntax-propertize-extend-region-functions'
hook that creates a list (`tex-expl-region-list`) of the start and end
of all such regions in a buffer and updates it whenever
`syntax-propertize` runs. In the `syntax-propertize-function` we test
whether hits are inside one of these regions and only change the
syntax when they are. (A very lightly-tested and incomplete patch on
top of my earlier patch is attached. It only applies to the "_" now,
but would need extending to the other sub-matches, too.)

> Currently we "skip" inappropriate underscores via
> `tex-font-lock-match-suscript` and/or by adding a particular `face` text
> property rather than via `syntax-table/propertize`.
>
> For algorithmic reasons, it's better to minimize the work done in
> `syntax-propertize-function` as much as possible (font-lock is more lazy
> than `syntax-propertize`), so I recommend you try and moving the above
> to font-lock rules.

The reason I've been using `syntax-propertize` rather than `font-lock`
is because the former may confer advantages when using
`xref-find-references`, but that in turn depends on how we decide to
define that function in the `tex-etags` backend. Please see below. In
any case, I think I can easily use `tex-expl-region-list` in a test
for how to fontify "_", so if you don't object to the addition of
`tex-expl-region-set` to the
`syntax-propertize-extend-region-functions' hook then we should be
able to get pretty close to a rigorous demarcation between "normal"
LaTeX and expl3 code in this context.

> > +                (setq-local syntax-propertize-function
> > +                            (eval
> > +                             `(tex-xref-syntax-function
> > +                               ,identifier ,beg ,end)))
>
> Why do we need to change `syntax-propertize-function` and why do we need
> `eval`?
>
> > +                (setq syntax-propertize--done 0)
>
> This is not sufficient.  You want to `syntax-ppss-flush-cache`.

We only need `eval` because I'm confused about the handling of macros
-- I have some code in progress to fix this. As for why we need to
change `syntax-propertize-function`, that's the core of the issue with
`xref-find-references`. In the current patch, the wrapper for the
standard `xref-backend-references` gathers file extensions and also
tests whether the search string begins and/or ends with a non-word,
non-symbol character. In `xref-references-in-directory` the only hits
offered to the user match (format "\\_<%s\\_>" ...), so I create a
bespoke `syntax-propertize-function` to ensure that the search string
matches that format. (Actually, I would need to improve that to cope
with searches for "\command" in code that looks like
"\let\command\othercommand" -- even when the "\" has the right syntax
the search fails because the "t" in "let" doesn't.)

My mental model for `syntax-propertize` was/is insufficient, as you
point out, so your improvement ensures that buffers return to the
status quo ante after the search is complete, but it's still an open
question whether we want to do this at all. I see at least 3 options:

1. The maximalist approach, which tries to ensure that any TeX symbol
may be searched for successfully, even if the syntax of its components
is inconvenient. My patch is a (faulty) attempt at this.

2. The minimalist approach, providing no bespoke
`syntax-propertize-function`, and accepting failure when searching
some strings, especially strings which aren't offered up by
default. (In the above example, "command" would be the default offered
up, so manual intervention is needed to search for "\command".) In
this case I'd be very keen to have the expl3 "_" and ":" code actually
in `syntax-propertize`, because then searches for expl3 constructs
(without the "\") would work. (I'd also be very keen on having
something similar in AUCTeX, though their current method works fine in
most files.)

3. The non-standard approach, the `tex-etags` backend calling a
variant of `project-find-regexp` instead of `xref-backend-references`
when someone presses M-?. We could supply file extensions to search,
as now, and allow the choice of projects and/or directories, as now,
but the output will always be very non-standard, more like
`xref-backend-apropos` than `xref-backend-references`. The syntax of
the search string won't matter, and the problem will be "too many
hits" rather than "too few or none".

If you have any thoughts on the matter I'd be all ears.

> > +(add-to-list 'auto-mode-alist '("\\.[tT]e[xX]\\'" . latex-mode) t)
>
> Maybe I have not followed the whole discussion closely enough, but at
> least to me the above "soon" is very unclear.
> I'll assume that this code will be removed before we install the patch.
> If not, please explain in the comment why this specific hack is needed
> and how it works.

As soon as AUCTeX has "*.[tT]e[xX]" in its contributions to
`semantic-symref-filepattern-alist` this will be redundant. As it
stands, not searching *.tex files for symbols in LaTeX-mode buffers
is kind of terrible.

> > +;; Setup AUCTeX modes (for testing purposes only).
> > +
> > +(add-hook 'TeX-mode-hook #'tex-set-auctex-xref-backend)
> > +
> > +(defun tex-set-auctex-xref-backend ()
> > +  (add-hook 'xref-backend-functions #'tex--xref-backend nil t))
>
> I assume this will be sent to AUCTeX and is not meant to be in
> `tex-mode.el`, right?

Yes.

Please assume I agree with all of your other corrections and
clarifications, and that I'll modify the patch accordingly. Once
again, thank you for the careful review, and my apologies for
occupying too much of your time.

Best, David.

On Fri, 3 May 2024 at 15:11, Stefan Monnier <monnier@HIDDEN> wrote:
>
> Hi,
>
> Apparently I'm the `tex-mode.el` guy, so I tried to take a look.
>
> > diff --git a/lisp/textmodes/tex-mode.el b/lisp/textmodes/tex-mode.el
> > index 97c950267c6..d990a2dbfa9 100644
> > --- a/lisp/textmodes/tex-mode.el
> > +++ b/lisp/textmodes/tex-mode.el
> > @@ -695,7 +696,25 @@ tex-verbatim-environments
> >       ("\\\\\\(?:end\\|begin\\) *\\({[^\n{}]*}\\)"
> >        (1 (ignore
> >            (tex-env-mark (match-beginning 0)
> > -                        (match-beginning 1) (match-end 1))))))))
> > +                        (match-beginning 1) (match-end 1)))))
> > +     ;; The next two rules change the syntax of `:' and `_' in expl3
> > +     ;; constructs, so that `tex-font-lock-suscript' can fontify them
> > +     ;; more accurately.
> > +     ((concat "\\(\\(?:[\\\\[:space:]{]_\\|"
> > +              "[\\\\{[:space:]][^][_[:space:][:cntrl:][:digit:]\\\\{}()/=]+\\)"
> > +              "\\(?:_+\\(?:[^][[:space:][:cntrl:][:digit:]:\\\\{}()/#_=]+\\|"
> > +              "#+[1-9]\\)\\)+\\)\\([:_]?\\)")
>
> Can you add in the comment some URL pointing to some relevant expl3
> documentation which "explains" why the above regexp makes sense?
> Also I don't clearly see how the above regexp distinguishes expl3 code
> from "normal" LaTeX code, so the comment should say something about it.
>
> Side note: I'd avoid [:space:] whose exact meaning is rarely quite what
> we need.
> Side note: backslash doesn't need to be backslashed in [...].
>
> > +      (1 (ignore
> > +          (let* ((expr (buffer-substring-no-properties (match-beginning 1)
> > +                                                       (match-end 1)))
> > +                 (list (seq-positions expr ?_)))
> > +            (dolist (pos list)
> > +              (put-text-property (+ pos (match-beginning 1))
> > +                                 (1+ (+ pos (match-beginning 1)))
> > +                                 'syntax-table (string-to-syntax "_"))))))
> > +      (2 "_"))
> > +     ("\\\\[[:alpha:]]+\\(:\\)[[:alpha:][:space:]\n]"
> > +      (1 "_")))))
>
> Currently we "skip" inappropriate underscores via
> `tex-font-lock-match-suscript` and/or by adding a particular `face` text
> property rather than via `syntax-table/propertize`.
>
> For algorithmic reasons, it's better to minimize the work done in
> `syntax-propertize-function` as much as possible (font-lock is more lazy
> than `syntax-propertize`), so I recommend you try and moving the above
> to font-lock rules.
>
> > +(defvar tex-esc-and-group-chars '(?\\ ?{ ?})
> > +  "The current TeX escape and grouping characters.
>
> I recommend you backslash escape the { and } above (although it's not
> indispensable, `emacs-lisp-mode` will parse the code better).
> More importantly, the docstring doesn't explain what this list
> means/does.  E.g. does the order matter?  Can it be longer than 3 elements?
>
> From the current docstring I can't guess what would be the consequence
> of adding/removing elements to/from this list.
>
> > +;; Populate `semantic-symref-filepattern-alist' for the in-tree modes;
> > +;; AUCTeX is doing the same for its modes.
> > +(defvar semantic-symref-filepattern-alist)
> > +(with-eval-after-load 'semantic/symref/grep
> > +  (push '(latex-mode "*.[tT]e[xX]" "*.ltx" "*.sty" "*.cl[so]"
> > +                     "*.bbl" "*.drv" "*.hva")
> > +        semantic-symref-filepattern-alist)
> > +  (push '(plain-tex-mode "*.[tT]e[xX]" "*.ins")
> > +        semantic-symref-filepattern-alist)
> > +  (push '(doctex-mode "*.dtx") semantic-symref-filepattern-alist))
>
> We know `semantic-symref-filepattern-alist` will exist when
> `semantic/symref/grep` is loaded, but not before, so I'd put the
> `defvar` inside the `with-eval-after-load`.
>
> > +;; Setup AUCTeX modes (for testing purposes only).
> > +
> > +(add-hook 'TeX-mode-hook #'tex-set-auctex-xref-backend)
> > +
> > +(defun tex-set-auctex-xref-backend ()
> > +  (add-hook 'xref-backend-functions #'tex--xref-backend nil t))
>
> I assume this will be sent to AUCTeX and is not meant to be in
> `tex-mode.el`, right?
>
> > +;; `xref-find-references' currently may need this when called from a
> > +;; latex-mode buffer in order to search files or buffers with a .tex
> > +;; suffix (including the buffer from which it has been called).  We
> > +;; append it to `auto-mode-alist' so as not to interfere with the usual
> > +;; mode-setting apparatus.  Changes here and in AUCTeX should soon
> > +;; render it unnecessary.
> > +(add-to-list 'auto-mode-alist '("\\.[tT]e[xX]\\'" . latex-mode) t)
>
> Maybe I have not followed the whole discussion closely enough, but at
> least to me the above "soon" is very unclear.
> I'll assume that this code will be removed before we install the patch.
> If not, please explain in the comment why this specific hack is needed
> and how it works.
>
> > +(cl-defmethod xref-backend-references ((_backend (eql 'tex-etags)) identifier)
> > +  "Find references of IDENTIFIER in TeX buffers and files."
> > +  (require 'semantic/symref/grep)
> > +  (let (bufs texbufs
> > +             (mode major-mode))
> > +    (dolist (buf (buffer-list))
> > +      (if (eq (buffer-local-value 'major-mode buf) mode)
> > +          (push buf bufs)
> > +        (when (string-match-p ".*\\.[tT]e[xX]" (buffer-name buf))
> > +          (push buf texbufs))))
> > +    (unless (seq-set-equal-p tex--buffers-list bufs)
> > +      (let* ((amalist (tex--collect-file-extensions))
> > +          (extlist (alist-get mode semantic-symref-filepattern-alist))
> > +          (extlist-new (seq-uniq
> > +                           (seq-union amalist extlist #'string-match-p))))
>
> After sinking the `defvar` above, you'll need to add a new `defvar` for
> `semantic-symref-filepattern-alist` just after the `require`.
>
> > +                (setq-local syntax-propertize-function
> > +                            (eval
> > +                             `(tex-xref-syntax-function
> > +                               ,identifier ,beg ,end)))
>
> Why do we need to change `syntax-propertize-function` and why do we need
> `eval`?
>
> > +                (setq syntax-propertize--done 0)
>
> This is not sufficient.  You want to `syntax-ppss-flush-cache`.
>
>
>         Stefan
>

--000000000000a3763c0617dcfada
Content-Type: text/x-patch; charset="US-ASCII"; name="0001-expl-region.patch"
Content-Disposition: attachment; filename="0001-expl-region.patch"
Content-Transfer-Encoding: base64
Content-ID: <f_lvwecdhu0>
X-Attachment-Id: f_lvwecdhu0

ZGlmZiAtLWdpdCBhL2xpc3AvdGV4dG1vZGVzL3RleC1tb2RlLmVsIGIvbGlzcC90ZXh0bW9kZXMv
dGV4LW1vZGUuZWwKaW5kZXggZDk5MGEyZGJmYTkuLmIyYTY0MTZmMzc5IDEwMDY0NAotLS0gYS9s
aXNwL3RleHRtb2Rlcy90ZXgtbW9kZS5lbAorKysgYi9saXNwL3RleHRtb2Rlcy90ZXgtbW9kZS5l
bApAQCAtNzA1LDE3ICs3MDUsMzYgQEAgdGV4LXZlcmJhdGltLWVudmlyb25tZW50cwogICAgICAg
ICAgICAgICAiXFwoPzpfK1xcKD86W15dW1s6c3BhY2U6XVs6Y250cmw6XVs6ZGlnaXQ6XTpcXFxc
e30oKS8jXz1dK1xcfCIKICAgICAgICAgICAgICAgIiMrWzEtOV1cXClcXCkrXFwpXFwoWzpfXT9c
XCkiKQogICAgICAgKDEgKGlnbm9yZQotICAgICAgICAgIChsZXQqICgoZXhwciAoYnVmZmVyLXN1
YnN0cmluZy1uby1wcm9wZXJ0aWVzIChtYXRjaC1iZWdpbm5pbmcgMSkKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2gtZW5kIDEpKSkK
LSAgICAgICAgICAgICAgICAgKGxpc3QgKHNlcS1wb3NpdGlvbnMgZXhwciA/XykpKQotICAgICAg
ICAgICAgKGRvbGlzdCAocG9zIGxpc3QpCi0gICAgICAgICAgICAgIChwdXQtdGV4dC1wcm9wZXJ0
eSAoKyBwb3MgKG1hdGNoLWJlZ2lubmluZyAxKSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICgxKyAoKyBwb3MgKG1hdGNoLWJlZ2lubmluZyAxKSkpCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAnc3ludGF4LXRhYmxlIChzdHJpbmctdG8tc3ludGF4ICJfIikpKSkp
KQorICAgICAgICAgICh3aGVuIHRleC1leHBsLXJlZ2lvbi1saXN0CisgICAgICAgICAgICAobGV0
ICgobWF0Y2ggKG1hdGNoLWJlZ2lubmluZyAxKSkpCisgICAgICAgICAgICAgIChjYXRjaCAncmVz
dWx0CisJICAgICAgICAoZG9saXN0IChyYW5nZSB0ZXgtZXhwbC1yZWdpb24tbGlzdCkKKwkgICAg
ICAgICAgKGFuZCAoPiBtYXRjaCAoY2FyIHJhbmdlKSkKKwkgICAgICAgICAgICAgICAoPCBtYXRj
aCAoY2RyIHJhbmdlKSkKKyAgICAgICAgICAgICAgICAgICAgICAgKGxldCogKChleHByIChidWZm
ZXItc3Vic3RyaW5nLW5vLXByb3BlcnRpZXMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAobWF0Y2gtYmVnaW5uaW5nIDEpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKG1hdGNoLWVuZCAxKSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo
bGlzdCAoc2VxLXBvc2l0aW9ucyBleHByID9fKSkpCisgICAgICAgICAgICAgICAgICAgICAgICAg
KGRvbGlzdCAocG9zIGxpc3QpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAocHV0LXRleHQt
cHJvcGVydHkgKCsgcG9zIChtYXRjaC1iZWdpbm5pbmcgMSkpCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgKDErICgrIHBvcyAobWF0Y2gtYmVnaW5uaW5nIDEp
KSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc3ludGF4
LXRhYmxlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHN0
cmluZy10by1zeW50YXggIl8iKSkpKQorICAgICAgICAgICAgICAgICAgICAgICAodGhyb3cgJ3Jl
c3VsdCB0KSkpKSkpKSkKICAgICAgICgyICJfIikpCiAgICAgICgiXFxcXFtbOmFscGhhOl1dK1xc
KDpcXClbWzphbHBoYTpdWzpzcGFjZTpdXG5dIgogICAgICAgKDEgIl8iKSkpKSkKIAorKGRlZnZh
ci1sb2NhbCB0ZXgtZXhwbC1yZWdpb24tbGlzdCBuaWwpCisKKyhkZWZ1biB0ZXgtZXhwbC1yZWdp
b24tc2V0IChfYmVnIF9lbmQpCisgIChzZXRxIHRleC1leHBsLXJlZ2lvbi1saXN0IG5pbCkKKyAg
KGdvdG8tY2hhciAocG9pbnQtbWluKSkKKyAgKHdoaWxlIChyZS1zZWFyY2gtZm9yd2FyZCAiXFxF
eHBsU3ludGF4T24iIG5pbCB0KQorICAgIChsZXQgKChuZXctYmVnIChwb2ludCkpCisgICAgICAg
ICAgKG5ldy1lbmQgKHJlLXNlYXJjaC1mb3J3YXJkICJcXEV4cGxTeW50YXhPZmYiIG5pbCB0KSkp
CisgICAgICAoYWRkLXRvLWxpc3QgJ3RleC1leHBsLXJlZ2lvbi1saXN0IChjb25zIG5ldy1iZWcg
bmV3LWVuZCkgdCkpKSkKKwogKGRlZnVuIHRleC1lbnYtbWFyayAoY21kIHN0YXJ0IGVuZCkKICAg
KHdoZW4gKD0gY21kIChsaW5lLWJlZ2lubmluZy1wb3NpdGlvbikpCiAgICAgKGxldCAoKGFyZyAo
YnVmZmVyLXN1YnN0cmluZy1uby1wcm9wZXJ0aWVzICgxKyBzdGFydCkgKDEtIGVuZCkpKSkKQEAg
LTEzMDgsNiArMTMyNyw4IEBAIHRleC1jb21tb24taW5pdGlhbGl6YXRpb24KICAgICAgICAgICAg
ICAgICAjJ3RleC0tcHJldHRpZnktc3ltYm9scy1jb21wb3NlLXApCiAgIChzZXRxLWxvY2FsIHN5
bnRheC1wcm9wZXJ0aXplLWZ1bmN0aW9uCiAJICAgICAgKHN5bnRheC1wcm9wZXJ0aXplLXJ1bGVz
IGxhdGV4LXN5bnRheC1wcm9wZXJ0aXplLXJ1bGVzKSkKKyAgKGFkZC1ob29rICdzeW50YXgtcHJv
cGVydGl6ZS1leHRlbmQtcmVnaW9uLWZ1bmN0aW9ucworICAgICAgICAgICAgICAgICAgIyd0ZXgt
ZXhwbC1yZWdpb24tc2V0IG5pbCB0KQogICA7OyBUQUJzIGluIHZlcmJhdGltIGVudmlyb25tZW50
cyBkb24ndCBkbyB3aGF0IHlvdSB0aGluay4KICAgKHNldHEtbG9jYWwgaW5kZW50LXRhYnMtbW9k
ZSBuaWwpCiAgIDs7IFNldCB1cCB4cmVmIGJhY2tlbmQgaW4gVGVYIGJ1ZmZlcnMuCg==
--000000000000a3763c0617dcfada--




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#53749: 29.0.50; [PATCH] Xref backend for TeX buffers
Resent-From: Dmitry Gutov <dgutov@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Thu, 09 May 2024 03:01:02 +0000
Resent-Message-ID: <handler.53749.B53749.171522364426799 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 53749
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: pending patch
To: Stefan Monnier <monnier@HIDDEN>, David Fussner <dfussner@HIDDEN>
Cc: 53749 <at> debbugs.gnu.org, Ikumi Keita <ikumi@HIDDEN>, Arash Esbati <arash@HIDDEN>, stefankangas@HIDDEN, Tassilo Horn <tsdh@HIDDEN>, Eli Zaretskii <eliz@HIDDEN>
Received: via spool by 53749-submit <at> debbugs.gnu.org id=B53749.171522364426799
          (code B ref 53749); Thu, 09 May 2024 03:01:02 +0000
Received: (at 53749) by debbugs.gnu.org; 9 May 2024 03:00:44 +0000
Received: from localhost ([127.0.0.1]:52333 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1s4u1U-0006yB-7Y
	for submit <at> debbugs.gnu.org; Wed, 08 May 2024 23:00:44 -0400
Received: from forward502c.mail.yandex.net ([178.154.239.210]:33302)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <dgutov@HIDDEN>) id 1s4u1P-0006y5-1A
 for 53749 <at> debbugs.gnu.org; Wed, 08 May 2024 23:00:43 -0400
Received: from mail-nwsmtp-smtp-production-main-37.myt.yp-c.yandex.net
 (mail-nwsmtp-smtp-production-main-37.myt.yp-c.yandex.net
 [IPv6:2a02:6b8:c12:3c20:0:640:1ff8:0])
 by forward502c.mail.yandex.net (Yandex) with ESMTPS id 8EEA961652;
 Thu,  9 May 2024 06:00:11 +0300 (MSK)
Received: by mail-nwsmtp-smtp-production-main-37.myt.yp-c.yandex.net
 (smtp/Yandex) with ESMTPSA id 60QdZpUVsGk0-BjCDg0aQ; 
 Thu, 09 May 2024 06:00:10 +0300
X-Yandex-Fwd: 1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex.ru; s=mail;
 t=1715223610; bh=n12zuaHY1mysXW7pejM0G/Fz6YvCU/QPAJjGccrIUIU=;
 h=In-Reply-To:From:Subject:Message-ID:Cc:References:Date:To;
 b=Kb5KgkMUFwjqOjjcoITXnfkwqvsAnK2yHtNrDAXtb/gLoyKEEtcpuvKoY+rAtthqW
 mp0r9YXle4hAdFwIQSBwtYBxQ9qQOgPppxEPAHuiWh2G2K8q9OMcN/CDiS9T1k64+P
 U98j+94JtNUMc3arQRS3drR7+dYb8R/fBzyifToY=
Authentication-Results: mail-nwsmtp-smtp-production-main-37.myt.yp-c.yandex.net;
 dkim=pass header.i=@yandex.ru
Received: from compute6.internal (compute6.nyi.internal [10.202.2.47])
 by mailfauth.nyi.internal (Postfix) with ESMTP id 3C4C51200032;
 Wed,  8 May 2024 23:00:06 -0400 (EDT)
Received: from mailfrontend1 ([10.202.2.162])
 by compute6.internal (MEProxy); Wed, 08 May 2024 23:00:06 -0400
X-ME-Sender: <xms:NTw8ZsoxZniCUD9frCBxCSukcme4pHUkbCbqK1Kwztgyouj-J9uwXg>
 <xme:NTw8ZirLbG5thAj9zwDP-0jweg0x0akPCJ3gVvqe3D6_LKdRvmKn6qMVtJ71Z1nAW
 8vzDUBHEcCkikjVgLc>
X-ME-Received: <xmr:NTw8ZhOV8nAff99QXAAio4KF40wb0PRul6WxTg-YDKbJ2nyHqL76GjDwFEs5K_r2LOHU>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvledrvdefuddgiedvucetufdoteggodetrfdotf
 fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen
 uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne
 cujfgurhepkfffgggfuffhvfevfhgjtgfgsehtkeertddtvdejnecuhfhrohhmpeffmhhi
 thhrhicuifhuthhovhcuoegughhuthhovheshigrnhguvgigrdhruheqnecuggftrfgrth
 htvghrnheptdejgfffheetgfevieefffdujeektefgvedvhedtffehveffvdehleetuefg
 udelnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepug
 hguhhtohhvodhmvghsmhhtphgruhhthhhpvghrshhonhgrlhhithihqddufeeffeelleeh
 hedvqddvleegjeejjeejiedqughguhhtohhvpeephigrnhguvgigrdhruhesfhgrshhtmh
 grihhlrdgtohhm
X-ME-Proxy: <xmx:NTw8Zj73nzUq7lxqYV85XdVgXdFQD3UjvEJAbX--DIb02ZBxWQ8nXA>
 <xmx:NTw8Zr69qXq-Si2eLaKsiV2ufJvMFr9s3KnteoHtZxZeGzNfgeUAAQ>
 <xmx:NTw8Zjgazep_uaik6D6FR4mtxjUlVkY4cPrVLmjIkoor0fDBAfEAPQ>
 <xmx:NTw8Zl4LIG1LyySTDfLf3ty-wPaVeWC0dAFE-PayGMpqQFPiAe6JwQ>
 <xmx:NTw8ZuIXNEgtE2-TB6q4_kewyCFwT01NaFKOBJKCk-5ZWAFdgo8SS6rn>
Feedback-ID: ib1d9465d:Fastmail
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Wed,
 8 May 2024 23:00:03 -0400 (EDT)
Message-ID: <83ba27b7-4d28-4a3f-b803-4bc49f62986c@HIDDEN>
Date: Thu, 9 May 2024 06:00:02 +0300
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
From: Dmitry Gutov <dgutov@HIDDEN>
References: <CADF+RtgWCLKQGwgdTNWmgesbcwq8iBxChoN8FqMOg95Ai3CYTA@HIDDEN>
 <CADwFkm=p8_Tbu+cXMDA8zEKovb+Ld7QFUJz_AhFnJebhik=JBg@HIDDEN>
 <CADF+RtjGfibN3Yg8mf4hVB9uPWtAwp0m6J2LRH7n0Z20S7+Yzg@HIDDEN>
 <CADwFkmkbMSXdjB6kF3a68_1vb4dv05_vMrKrvoX908nZJrpxOg@HIDDEN>
 <CADF+RtgxigxvgG0j6bbpYnrrFVF4YTKZ1Rs0JSCc8zuu5JNA2w@HIDDEN>
 <fcbc07cf-5ee9-131f-1a18-9cc28a5655f1@HIDDEN>
 <CADF+Rti2gSVvfksUVO04ptKQsXrNpwUXHQ_qFjC26D8NNh578A@HIDDEN>
 <2c5c8afa-b57e-3156-d21c-5523cacb4d87@HIDDEN>
 <831qf1mgjl.fsf@HIDDEN> <87cyyj9rpp.fsf@HIDDEN>
 <65793.1694843596@localhost>
 <CADF+RtikqxOW0XpwGTWWuGNTWjz3-MWMcO6U65Tta3PJjkRXqw@HIDDEN>
 <m24jbtim2p.fsf@HIDDEN>
 <CADF+RtiOECRmdoFD1qP=gRzS+P3tJqh_WNTnuW-1zPrY9g4VBw@HIDDEN>
 <e5a6ba0d-ca4a-4e21-b44f-12043c59aa6b@HIDDEN>
 <CADF+Rtif9uA3qgcSbxiFMTi01wyn5fSMgdTGu1Crsdb24XexDQ@HIDDEN>
 <jwvh6ff9fqi.fsf-monnier+emacs@HIDDEN>
 <eb177a28-d1b3-481a-afad-97bfb9e8d851@HIDDEN>
Content-Language: en-US
In-Reply-To: <eb177a28-d1b3-481a-afad-97bfb9e8d851@HIDDEN>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-Spam-Score: 0.0 (/)
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: -1.0 (-)

On 07/05/2024 05:27, Dmitry Gutov wrote:
> On 03/05/2024 16:42, Stefan Monnier via Bug reports for GNU Emacs, the 
> Swiss army knife of text editors wrote:
>>> Thanks for looking over the patch. Here's the recipe for the purported
>>> bug in xref.el:
>> The problem stems from xref.el's constant abuse of
>> `inhibit-modification-hooks`.  Binding this var to t should be done only
>> in exceptional circumstances and should ideally be accompanied by a
>> comment explaining why it's necessary.
> 
> Well, the reason is performance: I've tried to wring out the most out of 
> it, given that we have to parse the buffer for syntax in Elisp, and 
> that'll always have a certain overhead.
> 
> The difference between inhibiting and not could be up to 20% of runtime.
> 
> David's fix makes things slower (just due to having us do the necessary 
> work), but still has an edge over having no inhibit-modification-hooks.
> 
> That remaining improvement is around 4-7% in my testing, though, so 
> maybe it's the point where we should prioritize simplicity.

For now, I've pushed a fix in 86187d43e2d which seems to handle David's 
scenario and address your review comment as well.




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#53749: 29.0.50; [PATCH] Xref backend for TeX buffers
Resent-From: David Fussner <dfussner@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Thu, 09 May 2024 06:40:01 +0000
Resent-Message-ID: <handler.53749.B53749.171523674914936 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 53749
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: pending patch
To: Dmitry Gutov <dgutov@HIDDEN>
Cc: 53749 <at> debbugs.gnu.org, Ikumi Keita <ikumi@HIDDEN>, Arash Esbati <arash@HIDDEN>, Stefan Kangas <stefankangas@HIDDEN>, Tassilo Horn <tsdh@HIDDEN>, Eli Zaretskii <eliz@HIDDEN>, Stefan Monnier <monnier@HIDDEN>
Received: via spool by 53749-submit <at> debbugs.gnu.org id=B53749.171523674914936
          (code B ref 53749); Thu, 09 May 2024 06:40:01 +0000
Received: (at 53749) by debbugs.gnu.org; 9 May 2024 06:39:09 +0000
Received: from localhost ([127.0.0.1]:53381 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1s4xQq-0003sq-MZ
	for submit <at> debbugs.gnu.org; Thu, 09 May 2024 02:39:09 -0400
Received: from mail-pl1-x62d.google.com ([2607:f8b0:4864:20::62d]:61553)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <dfussner@HIDDEN>) id 1s4xQo-0003sP-4C
 for 53749 <at> debbugs.gnu.org; Thu, 09 May 2024 02:39:07 -0400
Received: by mail-pl1-x62d.google.com with SMTP id
 d9443c01a7336-1ed904c2280so2917865ad.2
 for <53749 <at> debbugs.gnu.org>; Wed, 08 May 2024 23:38:40 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=googlemail.com; s=20230601; t=1715236714; x=1715841514; darn=debbugs.gnu.org;
 h=cc:to:subject:message-id:date:from:in-reply-to:references
 :mime-version:from:to:cc:subject:date:message-id:reply-to;
 bh=Xf5HSIsrmJ8f17pLsVSc85UxUAYMSIOZiVBmLoDAIxY=;
 b=jQ9aEHs2QEw0xEkqwIL8DJg1xa3R2g/7JZImpP0n95ji/sqSvB5v1yCCPI/wVNOOHu
 BGJugXZw7nrEoZnuaI9Z1aSxkDJ6KfqYr37ldI2HxMsaOpwtCpUWPC0xdhC8Yq8exVWt
 5E8tKLWivglSQJKYnHFhMDryj/r6BUyVaAvkSdmk1LYA5DZolBP7aPKr46o8wSmiHNfH
 wWocpPpsX9hSPUgAr+E60MCVUzbRltEzF3uhJzMEFWoQrNdczvFittXoGvAhJnErjyge
 ++gB2gpLafK3ynDPUUhNiuZ6qf/mx+kGx7M6VNmBPtOEDIHCZTLqSNcoSzE/pcZ4DsAs
 z8vQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20230601; t=1715236714; x=1715841514;
 h=cc: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=Xf5HSIsrmJ8f17pLsVSc85UxUAYMSIOZiVBmLoDAIxY=;
 b=HTzhiTf5GlPe3zwsiNxMeCs8adjkl72iI53rxHNR9nswPHUpOm3eRZvCXMczJ29882
 4fPlnfOkNnxhAi7+G+bdWw8SK7Ye+grDRmIpUfFCFaFC4lsprcf1Zyo9TPTAsoNE8mNZ
 sBQBweT2wcUSz4B3SaOToqKZtT6C1Xc2nDhSEOeow0jL7pyjFajMHROi2oXGyLRdhRX0
 /P0zC7k3PkoVevqUmWZ5T1DsNmsrN7pxYg/mF3aUuoiOuOZCuyuw8nuzixpAtbFg2eXj
 b8oWOd4jo1Sz5VPaPWCMLafRWpBxiuWxXHtZyIZpL/0+SgExTW2BKAeqPfKHUtWLGSWI
 ZBpQ==
X-Forwarded-Encrypted: i=1;
 AJvYcCXhhxzoTdlD5l7Ib/4jm+ep3SCIa/swHu3kk9jYOkkpOZBMvVPhs3zbyrgdAXHYcyAJCKtT3SGAXVWT6UI74v7gVBmZLKo=
X-Gm-Message-State: AOJu0YxNBzWYvJfeDcnctTumj8Tx8xFrCDns9DZ7u8/E5K5YCS4rd1TE
 ZT0rxA0dpBxfiuJbffSBADcB0+bfjuuJJB7sEKxkJk5mBQNuSyOe9Ueosr40IbG4lrzWvnKohXK
 hYkAMPfl22+Cu3ZRhoz5P6fVpMTk=
X-Google-Smtp-Source: AGHT+IG3MuPIbTvypdFVQOn57jIgaoYrY4xSr22XWiq0nM9kNBqHZXcjawJ08konXyH6rQTBJp90acoFUlZP375zMCc=
X-Received: by 2002:a17:902:f681:b0:1ed:867:9ea0 with SMTP id
 d9443c01a7336-1eeb09959b0mr48124135ad.57.1715236714278; Wed, 08 May 2024
 23:38:34 -0700 (PDT)
MIME-Version: 1.0
References: <CADF+RtgWCLKQGwgdTNWmgesbcwq8iBxChoN8FqMOg95Ai3CYTA@HIDDEN>
 <CADwFkm=p8_Tbu+cXMDA8zEKovb+Ld7QFUJz_AhFnJebhik=JBg@HIDDEN>
 <CADF+RtjGfibN3Yg8mf4hVB9uPWtAwp0m6J2LRH7n0Z20S7+Yzg@HIDDEN>
 <CADwFkmkbMSXdjB6kF3a68_1vb4dv05_vMrKrvoX908nZJrpxOg@HIDDEN>
 <CADF+RtgxigxvgG0j6bbpYnrrFVF4YTKZ1Rs0JSCc8zuu5JNA2w@HIDDEN>
 <fcbc07cf-5ee9-131f-1a18-9cc28a5655f1@HIDDEN>
 <CADF+Rti2gSVvfksUVO04ptKQsXrNpwUXHQ_qFjC26D8NNh578A@HIDDEN>
 <2c5c8afa-b57e-3156-d21c-5523cacb4d87@HIDDEN> <831qf1mgjl.fsf@HIDDEN>
 <87cyyj9rpp.fsf@HIDDEN> <65793.1694843596@localhost>
 <CADF+RtikqxOW0XpwGTWWuGNTWjz3-MWMcO6U65Tta3PJjkRXqw@HIDDEN>
 <m24jbtim2p.fsf@HIDDEN>
 <CADF+RtiOECRmdoFD1qP=gRzS+P3tJqh_WNTnuW-1zPrY9g4VBw@HIDDEN>
 <e5a6ba0d-ca4a-4e21-b44f-12043c59aa6b@HIDDEN>
 <CADF+Rtif9uA3qgcSbxiFMTi01wyn5fSMgdTGu1Crsdb24XexDQ@HIDDEN>
 <jwvh6ff9fqi.fsf-monnier+emacs@HIDDEN>
 <eb177a28-d1b3-481a-afad-97bfb9e8d851@HIDDEN>
 <83ba27b7-4d28-4a3f-b803-4bc49f62986c@HIDDEN>
In-Reply-To: <83ba27b7-4d28-4a3f-b803-4bc49f62986c@HIDDEN>
From: David Fussner <dfussner@HIDDEN>
Date: Thu, 9 May 2024 07:38:22 +0100
Message-ID: <CADF+RthtwhU3eZEx8gfjix1PEyP6Kn-H-sNAAW_EbQiCM2+5Rw@HIDDEN>
Content-Type: multipart/alternative; boundary="0000000000000f79e30617ffabba"
X-Spam-Score: 0.0 (/)
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: -1.0 (-)

--0000000000000f79e30617ffabba
Content-Type: text/plain; charset="UTF-8"

Thank you, Dmitry! I'll run tests later today and get back to you.

David.

On Thu, 9 May 2024, 04:00 Dmitry Gutov, <dgutov@HIDDEN> wrote:

> On 07/05/2024 05:27, Dmitry Gutov wrote:
> > On 03/05/2024 16:42, Stefan Monnier via Bug reports for GNU Emacs, the
> > Swiss army knife of text editors wrote:
> >>> Thanks for looking over the patch. Here's the recipe for the purported
> >>> bug in xref.el:
> >> The problem stems from xref.el's constant abuse of
> >> `inhibit-modification-hooks`.  Binding this var to t should be done only
> >> in exceptional circumstances and should ideally be accompanied by a
> >> comment explaining why it's necessary.
> >
> > Well, the reason is performance: I've tried to wring out the most out of
> > it, given that we have to parse the buffer for syntax in Elisp, and
> > that'll always have a certain overhead.
> >
> > The difference between inhibiting and not could be up to 20% of runtime.
> >
> > David's fix makes things slower (just due to having us do the necessary
> > work), but still has an edge over having no inhibit-modification-hooks.
> >
> > That remaining improvement is around 4-7% in my testing, though, so
> > maybe it's the point where we should prioritize simplicity.
>
> For now, I've pushed a fix in 86187d43e2d which seems to handle David's
> scenario and address your review comment as well.
>

--0000000000000f79e30617ffabba
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"auto">Thank you, Dmitry! I&#39;ll run tests later today and get=
 back to you.<div dir=3D"auto"><br></div><div dir=3D"auto">David.=C2=A0</di=
v></div><br><div class=3D"gmail_quote"><div dir=3D"ltr" class=3D"gmail_attr=
">On Thu, 9 May 2024, 04:00 Dmitry Gutov, &lt;<a href=3D"mailto:dgutov@yand=
ex.ru">dgutov@HIDDEN</a>&gt; wrote:<br></div><blockquote class=3D"gmail_=
quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1=
ex">On 07/05/2024 05:27, Dmitry Gutov wrote:<br>
&gt; On 03/05/2024 16:42, Stefan Monnier via Bug reports for GNU Emacs, the=
 <br>
&gt; Swiss army knife of text editors wrote:<br>
&gt;&gt;&gt; Thanks for looking over the patch. Here&#39;s the recipe for t=
he purported<br>
&gt;&gt;&gt; bug in xref.el:<br>
&gt;&gt; The problem stems from xref.el&#39;s constant abuse of<br>
&gt;&gt; `inhibit-modification-hooks`.=C2=A0 Binding this var to t should b=
e done only<br>
&gt;&gt; in exceptional circumstances and should ideally be accompanied by =
a<br>
&gt;&gt; comment explaining why it&#39;s necessary.<br>
&gt; <br>
&gt; Well, the reason is performance: I&#39;ve tried to wring out the most =
out of <br>
&gt; it, given that we have to parse the buffer for syntax in Elisp, and <b=
r>
&gt; that&#39;ll always have a certain overhead.<br>
&gt; <br>
&gt; The difference between inhibiting and not could be up to 20% of runtim=
e.<br>
&gt; <br>
&gt; David&#39;s fix makes things slower (just due to having us do the nece=
ssary <br>
&gt; work), but still has an edge over having no inhibit-modification-hooks=
.<br>
&gt; <br>
&gt; That remaining improvement is around 4-7% in my testing, though, so <b=
r>
&gt; maybe it&#39;s the point where we should prioritize simplicity.<br>
<br>
For now, I&#39;ve pushed a fix in 86187d43e2d which seems to handle David&#=
39;s <br>
scenario and address your review comment as well.<br>
</blockquote></div>

--0000000000000f79e30617ffabba--




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#53749: 29.0.50; [PATCH] Xref backend for TeX buffers
Resent-From: David Fussner <dfussner@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Thu, 09 May 2024 10:51:02 +0000
Resent-Message-ID: <handler.53749.B53749.171525180824778 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 53749
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: pending patch
To: Dmitry Gutov <dgutov@HIDDEN>
Cc: 53749 <at> debbugs.gnu.org, Ikumi Keita <ikumi@HIDDEN>, Arash Esbati <arash@HIDDEN>, stefankangas@HIDDEN, Tassilo Horn <tsdh@HIDDEN>, Eli Zaretskii <eliz@HIDDEN>, Stefan Monnier <monnier@HIDDEN>
Received: via spool by 53749-submit <at> debbugs.gnu.org id=B53749.171525180824778
          (code B ref 53749); Thu, 09 May 2024 10:51:02 +0000
Received: (at 53749) by debbugs.gnu.org; 9 May 2024 10:50:08 +0000
Received: from localhost ([127.0.0.1]:54586 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1s51Lg-0006Ra-HI
	for submit <at> debbugs.gnu.org; Thu, 09 May 2024 06:50:08 -0400
Received: from mail-pf1-x42a.google.com ([2607:f8b0:4864:20::42a]:60527)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <dfussner@HIDDEN>) id 1s51Lc-0006R8-0d
 for 53749 <at> debbugs.gnu.org; Thu, 09 May 2024 06:50:03 -0400
Received: by mail-pf1-x42a.google.com with SMTP id
 d2e1a72fcca58-6ed3cafd766so705938b3a.0
 for <53749 <at> debbugs.gnu.org>; Thu, 09 May 2024 03:49:33 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=googlemail.com; s=20230601; t=1715251768; x=1715856568; darn=debbugs.gnu.org;
 h=cc:to:subject:message-id:date:from:in-reply-to:references
 :mime-version:from:to:cc:subject:date:message-id:reply-to;
 bh=WNAmcjmVJIqoI9BVWGA1fNYnTic5H8WSLVxJWWKmm6Y=;
 b=Y7tQdy39dK4+lNEcztfW8X+IQViOXeg2mEXWt2nHohAYCYOw1njD/cv+W7GKxx4Cpi
 TgP4LxOTNcEBDmGKjqH+lCAMytdxzDElAuWleRWAUES1jTH062KhlA8V3WdEB56OLpDR
 zLN/sYPb7rjugLjntvNvIf//dhALeHqEmM4JzW8MzmbqRQoUD2cxzgFashmgspeyh+op
 eCNX2UMJE+GQDlYzIcJhYZowQ9jj/wmOyujL4z+/p+iXNlPw0iEbBfbeUYKtw9zJvGBN
 d7frA3TCBj4QY/FJXP/AUkVJoPaDjoJ+UBhtR/l0I381qLvYDr8ROkzoaQ3gLu2Az8Rs
 u4ZQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20230601; t=1715251768; x=1715856568;
 h=cc: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=WNAmcjmVJIqoI9BVWGA1fNYnTic5H8WSLVxJWWKmm6Y=;
 b=D8Kz8I1v9ZtJxVehUUq2wmsSadIk0Da4yu4l7UKvToIr1cDuwr+76zyfUJnXQJBv+e
 XAYLnUTYi69PZj8t8F5WVdY+vV+VMcSf+Ohoq0+baczQesK943DQBX1fyRs5FwfQkKJ3
 xuKC/SQ0C4NM6rJzB3mvgZdgzDIqLHP7Igt8+IDCjyXSyfkt/065sKGGaJR2Pc40OaNW
 mRACA0UDMTYLmjNek395qrPEAOltJCGAz5Uc3zXiphhXNbSySOeKUIbovE9+tXyCpgPf
 jQCE8oxrkSLo6RjePJ9XOjT6N9u2LBfsHF5e5ws8bQxGRP0tLgAeT2B310O2a6yGdv6Z
 6EAQ==
X-Forwarded-Encrypted: i=1;
 AJvYcCVqqudIn14smGoeNHXwl0AWp/pNRkLtR0tvFZ7nX+lYkTYEJb0DdpuAAFck6ipvVZkzz85zYXUzIWJ8mbPEaSbMy6DJ4V8=
X-Gm-Message-State: AOJu0Yx+1NLbAyCuo/eoO/P4HoLg5/2KUFPp4qP5PixQAAywLf2epyJS
 7jg0IhGuGZRaVMt4IBdA2VK6o0tVHBnqJtSQrTnU44i/QSN8iIntnHkOnhY+gI4GrtXEE7EqbKE
 AGNQ3lYjvB7CxsRvGa64rBwzr9sA=
X-Google-Smtp-Source: AGHT+IE9F2FUGMz10umrKpnHymx2Hv0GwoxlICFRBHu27Ht1ec5OomVfUacRIShCHoT+SV+o0XKEcHOtoSEGUcrcc+Q=
X-Received: by 2002:a05:6a21:c91:b0:1a7:aabc:24ae with SMTP id
 adf61e73a8af0-1afc8d763efmr5544592637.18.1715251768288; Thu, 09 May 2024
 03:49:28 -0700 (PDT)
MIME-Version: 1.0
References: <CADF+RtgWCLKQGwgdTNWmgesbcwq8iBxChoN8FqMOg95Ai3CYTA@HIDDEN>
 <CADwFkm=p8_Tbu+cXMDA8zEKovb+Ld7QFUJz_AhFnJebhik=JBg@HIDDEN>
 <CADF+RtjGfibN3Yg8mf4hVB9uPWtAwp0m6J2LRH7n0Z20S7+Yzg@HIDDEN>
 <CADwFkmkbMSXdjB6kF3a68_1vb4dv05_vMrKrvoX908nZJrpxOg@HIDDEN>
 <CADF+RtgxigxvgG0j6bbpYnrrFVF4YTKZ1Rs0JSCc8zuu5JNA2w@HIDDEN>
 <fcbc07cf-5ee9-131f-1a18-9cc28a5655f1@HIDDEN>
 <CADF+Rti2gSVvfksUVO04ptKQsXrNpwUXHQ_qFjC26D8NNh578A@HIDDEN>
 <2c5c8afa-b57e-3156-d21c-5523cacb4d87@HIDDEN> <831qf1mgjl.fsf@HIDDEN>
 <87cyyj9rpp.fsf@HIDDEN> <65793.1694843596@localhost>
 <CADF+RtikqxOW0XpwGTWWuGNTWjz3-MWMcO6U65Tta3PJjkRXqw@HIDDEN>
 <m24jbtim2p.fsf@HIDDEN>
 <CADF+RtiOECRmdoFD1qP=gRzS+P3tJqh_WNTnuW-1zPrY9g4VBw@HIDDEN>
 <e5a6ba0d-ca4a-4e21-b44f-12043c59aa6b@HIDDEN>
 <CADF+Rtif9uA3qgcSbxiFMTi01wyn5fSMgdTGu1Crsdb24XexDQ@HIDDEN>
 <jwvh6ff9fqi.fsf-monnier+emacs@HIDDEN>
 <eb177a28-d1b3-481a-afad-97bfb9e8d851@HIDDEN>
 <83ba27b7-4d28-4a3f-b803-4bc49f62986c@HIDDEN>
In-Reply-To: <83ba27b7-4d28-4a3f-b803-4bc49f62986c@HIDDEN>
From: David Fussner <dfussner@HIDDEN>
Date: Thu, 9 May 2024 11:49:37 +0100
Message-ID: <CADF+RtikU=oUavqFQKfy+_tjZ+DoXN3j48-7gWpg575a+xQBeA@HIDDEN>
Content-Type: text/plain; charset="UTF-8"
X-Spam-Score: 0.0 (/)
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: -1.0 (-)

Hi Dmitry,

All of my tests work well now, thank you.

Best, David.

On Thu, 9 May 2024 at 04:00, Dmitry Gutov <dgutov@HIDDEN> wrote:
>
> On 07/05/2024 05:27, Dmitry Gutov wrote:
> > On 03/05/2024 16:42, Stefan Monnier via Bug reports for GNU Emacs, the
> > Swiss army knife of text editors wrote:
> >>> Thanks for looking over the patch. Here's the recipe for the purported
> >>> bug in xref.el:
> >> The problem stems from xref.el's constant abuse of
> >> `inhibit-modification-hooks`.  Binding this var to t should be done only
> >> in exceptional circumstances and should ideally be accompanied by a
> >> comment explaining why it's necessary.
> >
> > Well, the reason is performance: I've tried to wring out the most out of
> > it, given that we have to parse the buffer for syntax in Elisp, and
> > that'll always have a certain overhead.
> >
> > The difference between inhibiting and not could be up to 20% of runtime.
> >
> > David's fix makes things slower (just due to having us do the necessary
> > work), but still has an edge over having no inhibit-modification-hooks.
> >
> > That remaining improvement is around 4-7% in my testing, though, so
> > maybe it's the point where we should prioritize simplicity.
>
> For now, I've pushed a fix in 86187d43e2d which seems to handle David's
> scenario and address your review comment as well.




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#53749: 29.0.50; [PATCH] Xref backend for TeX buffers
Resent-From: Stefan Monnier <monnier@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Mon, 13 May 2024 20:55:02 +0000
Resent-Message-ID: <handler.53749.B53749.17156336843049 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 53749
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: pending patch
To: Dmitry Gutov <dgutov@HIDDEN>
Cc: 53749 <at> debbugs.gnu.org, Ikumi Keita <ikumi@HIDDEN>, David Fussner <dfussner@HIDDEN>, Arash Esbati <arash@HIDDEN>, stefankangas@HIDDEN, Tassilo Horn <tsdh@HIDDEN>, Eli Zaretskii <eliz@HIDDEN>
Received: via spool by 53749-submit <at> debbugs.gnu.org id=B53749.17156336843049
          (code B ref 53749); Mon, 13 May 2024 20:55:02 +0000
Received: (at 53749) by debbugs.gnu.org; 13 May 2024 20:54:44 +0000
Received: from localhost ([127.0.0.1]:34920 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1s6ch1-0000n7-Op
	for submit <at> debbugs.gnu.org; Mon, 13 May 2024 16:54:44 -0400
Received: from mailscanner.iro.umontreal.ca ([132.204.25.50]:27377)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <monnier@HIDDEN>) id 1s6cgz-0000n1-OX
 for 53749 <at> debbugs.gnu.org; Mon, 13 May 2024 16:54:42 -0400
Received: from pmg3.iro.umontreal.ca (localhost [127.0.0.1])
 by pmg3.iro.umontreal.ca (Proxmox) with ESMTP id 2B81B4406AB;
 Mon, 13 May 2024 16:54:35 -0400 (EDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=iro.umontreal.ca;
 s=mail; t=1715633673;
 bh=ZWMWsjI2JLV1tc9Thg3P51foBc998uoEt1i252E81oY=;
 h=From:To:Cc:Subject:In-Reply-To:References:Date:From;
 b=N9sQ9ABi6Dn5le1CUh2GmBmSoTQbeSnxr82RFvGJ/rW5hmheYz6bnMbYNh1jupVIB
 bruZ1rit/VfyoICM6qpUCm61376lEeFNwF+uWOi8Mn7FEkZA9ikDWCU+eUgJX+SCqH
 MNkMaG6Xg1qiMER0+iTwPAVg/P7pdGv9wqpwnY5QZs9KdVLsw4IPHKXyKZHQ5HL8IM
 I8kNIJPD9YVfUnOC1e4To13fdpW0O80NeCt2lN+wV+YM6+Q1dXJ4FgVvaLRXWmfOil
 aJWZkF+TI7GyujiiwJOG+9K1RnD8i0JnWi2lgq8/1eUteE8jo4fKGgAHOyUNMo3rU/
 y1jPETlML3gOw==
Received: from mail01.iro.umontreal.ca (unknown [172.31.2.1])
 by pmg3.iro.umontreal.ca (Proxmox) with ESMTP id 8039C44444A;
 Mon, 13 May 2024 16:54:33 -0400 (EDT)
Received: from alfajor (bras-base-mtrlpq0776w-grc-16-65-93-169-175.dsl.bell.ca
 [65.93.169.175])
 by mail01.iro.umontreal.ca (Postfix) with ESMTPSA id 598D212024C;
 Mon, 13 May 2024 16:54:33 -0400 (EDT)
From: Stefan Monnier <monnier@HIDDEN>
In-Reply-To: <83ba27b7-4d28-4a3f-b803-4bc49f62986c@HIDDEN> (Dmitry Gutov's
 message of "Thu, 9 May 2024 06:00:02 +0300")
Message-ID: <jwv7cfxihg2.fsf-monnier+emacs@HIDDEN>
References: <CADF+RtgWCLKQGwgdTNWmgesbcwq8iBxChoN8FqMOg95Ai3CYTA@HIDDEN>
 <CADwFkm=p8_Tbu+cXMDA8zEKovb+Ld7QFUJz_AhFnJebhik=JBg@HIDDEN>
 <CADF+RtjGfibN3Yg8mf4hVB9uPWtAwp0m6J2LRH7n0Z20S7+Yzg@HIDDEN>
 <CADwFkmkbMSXdjB6kF3a68_1vb4dv05_vMrKrvoX908nZJrpxOg@HIDDEN>
 <CADF+RtgxigxvgG0j6bbpYnrrFVF4YTKZ1Rs0JSCc8zuu5JNA2w@HIDDEN>
 <fcbc07cf-5ee9-131f-1a18-9cc28a5655f1@HIDDEN>
 <CADF+Rti2gSVvfksUVO04ptKQsXrNpwUXHQ_qFjC26D8NNh578A@HIDDEN>
 <2c5c8afa-b57e-3156-d21c-5523cacb4d87@HIDDEN>
 <831qf1mgjl.fsf@HIDDEN> <87cyyj9rpp.fsf@HIDDEN>
 <65793.1694843596@localhost>
 <CADF+RtikqxOW0XpwGTWWuGNTWjz3-MWMcO6U65Tta3PJjkRXqw@HIDDEN>
 <m24jbtim2p.fsf@HIDDEN>
 <CADF+RtiOECRmdoFD1qP=gRzS+P3tJqh_WNTnuW-1zPrY9g4VBw@HIDDEN>
 <e5a6ba0d-ca4a-4e21-b44f-12043c59aa6b@HIDDEN>
 <CADF+Rtif9uA3qgcSbxiFMTi01wyn5fSMgdTGu1Crsdb24XexDQ@HIDDEN>
 <jwvh6ff9fqi.fsf-monnier+emacs@HIDDEN>
 <eb177a28-d1b3-481a-afad-97bfb9e8d851@HIDDEN>
 <83ba27b7-4d28-4a3f-b803-4bc49f62986c@HIDDEN>
Date: Mon, 13 May 2024 16:54:32 -0400
User-Agent: Gnus/5.13 (Gnus v5.13)
MIME-Version: 1.0
Content-Type: text/plain
X-SPAM-INFO: Spam detection results:  0
 ALL_TRUSTED                -1 Passed through trusted hosts only via SMTP
 BAYES_00                 -1.9 Bayes spam probability is 0 to 1%
 DKIM_SIGNED               0.1 Message has a DKIM or DK signature,
 not necessarily valid
 DKIM_VALID -0.1 Message has at least one valid DKIM or DK signature
 DKIM_VALID_AU -0.1 Message has a valid DKIM or DK signature from author's
 domain
 DKIM_VALID_EF -0.1 Message has a valid DKIM or DK signature from envelope-from
 domain
X-SPAM-LEVEL: 
X-Spam-Score: -2.3 (--)
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 (---)

> For now, I've pushed a fix in 86187d43e2d which seems to handle David's
> scenario and address your review comment as well.

The let-binding is done outside of `with-current-buffer`, so it relies
on the fact (itself problematic) that `inhibit-modification-hooks` is
not buffer-local.

Would it be OK to use a patch like the one below?

IIUC, in the `syntax-needed` case, the let-binding of
`inhibit-modification-hooks` is just not useful very (4-7% is not worth
the trouble), so its purpose is to speed up the other case.
Did I understand it right?

Also, what about the other two bindings of `inhibit-modification-hooks`?


        Stefan


diff --git a/lisp/progmodes/xref.el b/lisp/progmodes/xref.el
index f9faec1b474..214e9cb6c09 100644
--- a/lisp/progmodes/xref.el
+++ b/lisp/progmodes/xref.el
@@ -1282,7 +1282,7 @@ xref--show-common-initialize
     (erase-buffer)
     (setq overlay-arrow-position nil)
     (xref--insert-xrefs xref-alist)
-    (add-hook 'post-command-hook 'xref--apply-truncation nil t)
+    (add-hook 'post-command-hook #'xref--apply-truncation nil t)
     (goto-char (point-min))
     (setq xref--original-window (assoc-default 'window alist)
           xref--original-window-intent (assoc-default 'display-action alist))
@@ -2112,10 +2112,7 @@ xref--convert-hits
 (defun xref--collect-matches (hit regexp tmp-buffer syntax-needed)
   (pcase-let* ((`(,line ,file ,text) hit)
                (file (and file (concat xref--hits-remote-id file)))
-               (buf (xref--find-file-buffer file))
-               ;; This is fairly dangerouns, but improves performance
-               ;; for large lists, see https://debbugs.gnu.org/53749#227
-               (inhibit-modification-hooks t))
+               (buf (xref--find-file-buffer file)))
     (if buf
         (with-current-buffer buf
           (save-excursion
@@ -2130,6 +2130,9 @@
       ;; Using the temporary buffer is both a performance and a buffer
       ;; management optimization.
       (with-current-buffer tmp-buffer
+        ;; This let is fairly dangerouns, but improves performance
+        ;; for large lists, see https://debbugs.gnu.org/53749#227
+        (let ((inhibit-modification-hooks t))
         (erase-buffer)
         (when (and syntax-needed
                    (not (equal file xref--temp-buffer-file-name)))
@@ -2144,7 +2147,7 @@
           (setq-local xref--temp-buffer-file-name file)
           (setq-local inhibit-read-only t)
           (erase-buffer))
-        (insert text)
+          (insert text))
         (goto-char (point-min))
         (when syntax-needed
           (syntax-ppss-flush-cache (point)))





Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#53749: 29.0.50; [PATCH] Xref backend for TeX buffers
Resent-From: Dmitry Gutov <dgutov@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Tue, 14 May 2024 21:26:01 +0000
Resent-Message-ID: <handler.53749.B53749.171572191121098 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 53749
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: pending patch
To: Stefan Monnier <monnier@HIDDEN>
Cc: 53749 <at> debbugs.gnu.org, Ikumi Keita <ikumi@HIDDEN>, David Fussner <dfussner@HIDDEN>, Arash Esbati <arash@HIDDEN>, stefankangas@HIDDEN, Tassilo Horn <tsdh@HIDDEN>, Eli Zaretskii <eliz@HIDDEN>
Received: via spool by 53749-submit <at> debbugs.gnu.org id=B53749.171572191121098
          (code B ref 53749); Tue, 14 May 2024 21:26:01 +0000
Received: (at 53749) by debbugs.gnu.org; 14 May 2024 21:25:11 +0000
Received: from localhost ([127.0.0.1]:41479 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1s6ze2-0005UE-R1
	for submit <at> debbugs.gnu.org; Tue, 14 May 2024 17:25:11 -0400
Received: from forward501c.mail.yandex.net ([178.154.239.209]:44302)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <dgutov@HIDDEN>) id 1s6zdz-0005U7-2B
 for 53749 <at> debbugs.gnu.org; Tue, 14 May 2024 17:25:09 -0400
Received: from mail-nwsmtp-smtp-production-main-85.iva.yp-c.yandex.net
 (mail-nwsmtp-smtp-production-main-85.iva.yp-c.yandex.net
 [IPv6:2a02:6b8:c0c:b1a0:0:640:e983:0])
 by forward501c.mail.yandex.net (Yandex) with ESMTPS id AFBB461424;
 Wed, 15 May 2024 00:24:34 +0300 (MSK)
Received: by mail-nwsmtp-smtp-production-main-85.iva.yp-c.yandex.net
 (smtp/Yandex) with ESMTPSA id TOnPHUBCZa60-ub8Hks1u; 
 Wed, 15 May 2024 00:24:33 +0300
X-Yandex-Fwd: 1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex.ru; s=mail;
 t=1715721873; bh=npKb8gXDgTKlxOOUWnPSoA4Xqz7JZyfV9PZP59i2DFs=;
 h=In-Reply-To:From:Subject:Message-ID:Cc:References:Date:To;
 b=FyMU2wrsLornY5Jg6N70A4afp4cydLaQi8vLJiEu/b6RoMOBJ5tdjOdSXzxl9X7rS
 bFhCgDa8fTjixrK+aLXZF/y29iyg2MUZHiEQbs2+bSRCQfvEQgEtuDnrW9SBUTA9EL
 e2qJY2LWqbYcJxbh6Anzc+uWylckXkrQI1medGoU=
Authentication-Results: mail-nwsmtp-smtp-production-main-85.iva.yp-c.yandex.net;
 dkim=pass header.i=@yandex.ru
Received: from compute1.internal (compute1.nyi.internal [10.202.2.41])
 by mailfauth.nyi.internal (Postfix) with ESMTP id 543DB1200032;
 Tue, 14 May 2024 17:24:29 -0400 (EDT)
Received: from mailfrontend1 ([10.202.2.162])
 by compute1.internal (MEProxy); Tue, 14 May 2024 17:24:29 -0400
X-ME-Sender: <xms:jNZDZmWJwwD95tfGWQPw8IwVqmEeu9_EGWBafb5Tlx-knarUxUOnoA>
 <xme:jNZDZilaxIdBB0-p03QOpU2syZsWbnqlFbgJkNkWEs6SSBzw9Df0if3shbmeCKiBM
 5PJsHcz-RUn_7bfpYQ>
X-ME-Received: <xmr:jNZDZqaRx9oRjnfXkZfGW6AK9M0VsfNMT5ySO4KdTc3nHLDjyRwMcqLIFQzl-gxMuGbU>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvledrvdegiedgudehlecutefuodetggdotefrod
 ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfgh
 necuuegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmd
 enucfjughrpefkffggfgfuvfevfhfhjggtgfesthejredttddvjeenucfhrhhomhepffhm
 ihhtrhihucfiuhhtohhvuceoughguhhtohhvseihrghnuggvgidrrhhuqeenucggtffrrg
 htthgvrhhnpeefleffhfejhfeghedtfeehtdeiheekheetteefleejkefhgeetiedvhefg
 jeeuveenucffohhmrghinhepghhnuhdrohhrghenucevlhhushhtvghrufhiiigvpedtne
 curfgrrhgrmhepmhgrihhlfhhrohhmpegughhuthhovhdomhgvshhmthhprghuthhhphgv
 rhhsohhnrghlihhthidqudeffeefleelheehvddqvdelgeejjeejjeeiqdgughhuthhovh
 eppeihrghnuggvgidrrhhusehfrghsthhmrghilhdrtghomh
X-ME-Proxy: <xmx:jdZDZtWTv_Ehhb_wTtwihflaPUN1rrP8VKvZ9VZlDlNKjSJkT4m0Ig>
 <xmx:jdZDZgkUA0hrqqVVgTqUE21lXVhUzNwAglsI4ubrcrPQEKL9ffKIsA>
 <xmx:jdZDZic6gjRxphzawA6D3yAOQdrSFXQVwbXjpiSDdhcdfVyPh63vXA>
 <xmx:jdZDZiFeQzxFspDQ51eTF-oM4BXAhTs5rMw9cWkYuY2Dj20YypKp8Q>
 <xmx:jdZDZumGXZyny1b2-jshcA1QD-iiVy_oG-TR6j92e9x46DuegKPH9eCZ>
Feedback-ID: ib1d9465d:Fastmail
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Tue,
 14 May 2024 17:24:26 -0400 (EDT)
Message-ID: <82993b86-0f34-4adb-a392-c74db5176d14@HIDDEN>
Date: Wed, 15 May 2024 00:24:24 +0300
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
References: <CADF+RtgWCLKQGwgdTNWmgesbcwq8iBxChoN8FqMOg95Ai3CYTA@HIDDEN>
 <CADwFkmkbMSXdjB6kF3a68_1vb4dv05_vMrKrvoX908nZJrpxOg@HIDDEN>
 <CADF+RtgxigxvgG0j6bbpYnrrFVF4YTKZ1Rs0JSCc8zuu5JNA2w@HIDDEN>
 <fcbc07cf-5ee9-131f-1a18-9cc28a5655f1@HIDDEN>
 <CADF+Rti2gSVvfksUVO04ptKQsXrNpwUXHQ_qFjC26D8NNh578A@HIDDEN>
 <2c5c8afa-b57e-3156-d21c-5523cacb4d87@HIDDEN> <831qf1mgjl.fsf@HIDDEN>
 <87cyyj9rpp.fsf@HIDDEN> <65793.1694843596@localhost>
 <CADF+RtikqxOW0XpwGTWWuGNTWjz3-MWMcO6U65Tta3PJjkRXqw@HIDDEN>
 <m24jbtim2p.fsf@HIDDEN>
 <CADF+RtiOECRmdoFD1qP=gRzS+P3tJqh_WNTnuW-1zPrY9g4VBw@HIDDEN>
 <e5a6ba0d-ca4a-4e21-b44f-12043c59aa6b@HIDDEN>
 <CADF+Rtif9uA3qgcSbxiFMTi01wyn5fSMgdTGu1Crsdb24XexDQ@HIDDEN>
 <jwvh6ff9fqi.fsf-monnier+emacs@HIDDEN>
 <eb177a28-d1b3-481a-afad-97bfb9e8d851@HIDDEN>
 <83ba27b7-4d28-4a3f-b803-4bc49f62986c@HIDDEN>
 <jwv7cfxihg2.fsf-monnier+emacs@HIDDEN>
Content-Language: en-US
From: Dmitry Gutov <dgutov@HIDDEN>
In-Reply-To: <jwv7cfxihg2.fsf-monnier+emacs@HIDDEN>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-Spam-Score: 0.0 (/)
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: -1.0 (-)

On 13/05/2024 23:54, Stefan Monnier via Bug reports for GNU Emacs, the 
Swiss army knife of text editors wrote:
>> For now, I've pushed a fix in 86187d43e2d which seems to handle David's
>> scenario and address your review comment as well.
> 
> The let-binding is done outside of `with-current-buffer`, so it relies
> on the fact (itself problematic) that `inhibit-modification-hooks` is
> not buffer-local.

Good point.

> Would it be OK to use a patch like the one below?

Sure, thank you. Pushed.

> IIUC, in the `syntax-needed` case, the let-binding of
> `inhibit-modification-hooks` is just not useful very (4-7% is not worth
> the trouble), so its purpose is to speed up the other case.

4-10% is the improvement for both cases (the "syntax needed" and not).

I could be on the fence whether it's "not useful" - on the one hand 4% 
might not sound like much - on the other we already have this bit of 
improvement which has no known bugs. And when you combine a few of such 
performance hacks, the difference gets more noticeable.

Also, I'm eyeing another performance improvement (simplifying file type 
detection) - the call to set-auto-mode is not fast. Simply commenting 
this call out improves the performance by 4x or so - but we'll need a 
simpler version of it instead, of course.

And with the above change (commenting out the set-auto-mode call), the 
difference that the inhibit-modification-hooks hack makes is amplified: 
it can get up to 20%. Ultimately it'll be somewhere in between, but this 
sounds better, right?

> Also, what about the other two bindings of `inhibit-modification-hooks`?

The other two are used while the contents of the Xref buffer are printed 
(or re-printed), so there's none of the syntax-ppss complications there. 
The performance difference is 8.5% in my last measurement.

> 
>          Stefan
> 
> 
> diff --git a/lisp/progmodes/xref.el b/lisp/progmodes/xref.el
> index f9faec1b474..214e9cb6c09 100644
> --- a/lisp/progmodes/xref.el
> +++ b/lisp/progmodes/xref.el
> @@ -1282,7 +1282,7 @@ xref--show-common-initialize
>       (erase-buffer)
>       (setq overlay-arrow-position nil)
>       (xref--insert-xrefs xref-alist)
> -    (add-hook 'post-command-hook 'xref--apply-truncation nil t)
> +    (add-hook 'post-command-hook #'xref--apply-truncation nil t)
>       (goto-char (point-min))
>       (setq xref--original-window (assoc-default 'window alist)
>             xref--original-window-intent (assoc-default 'display-action alist))
> @@ -2112,10 +2112,7 @@ xref--convert-hits
>   (defun xref--collect-matches (hit regexp tmp-buffer syntax-needed)
>     (pcase-let* ((`(,line ,file ,text) hit)
>                  (file (and file (concat xref--hits-remote-id file)))
> -               (buf (xref--find-file-buffer file))
> -               ;; This is fairly dangerouns, but improves performance
> -               ;; for large lists, see https://debbugs.gnu.org/53749#227
> -               (inhibit-modification-hooks t))
> +               (buf (xref--find-file-buffer file)))
>       (if buf
>           (with-current-buffer buf
>             (save-excursion
> @@ -2130,6 +2130,9 @@
>         ;; Using the temporary buffer is both a performance and a buffer
>         ;; management optimization.
>         (with-current-buffer tmp-buffer
> +        ;; This let is fairly dangerouns, but improves performance
> +        ;; for large lists, see https://debbugs.gnu.org/53749#227
> +        (let ((inhibit-modification-hooks t))
>           (erase-buffer)
>           (when (and syntax-needed
>                      (not (equal file xref--temp-buffer-file-name)))
> @@ -2144,7 +2147,7 @@
>             (setq-local xref--temp-buffer-file-name file)
>             (setq-local inhibit-read-only t)
>             (erase-buffer))
> -        (insert text)
> +          (insert text))
>           (goto-char (point-min))
>           (when syntax-needed
>             (syntax-ppss-flush-cache (point)))
> 
> 
> 
> 





Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#53749: 29.0.50; [PATCH] Xref backend for TeX buffers
Resent-From: David Fussner <dfussner@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Wed, 15 May 2024 15:49:01 +0000
Resent-Message-ID: <handler.53749.B53749.171578812913249 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 53749
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: pending patch
To: Stefan Monnier <monnier@HIDDEN>
Cc: 53749 <at> debbugs.gnu.org, Ikumi Keita <ikumi@HIDDEN>, Tassilo Horn <tsdh@HIDDEN>, Arash Esbati <arash@HIDDEN>, stefankangas@HIDDEN, Dmitry Gutov <dgutov@HIDDEN>, Eli Zaretskii <eliz@HIDDEN>
Received: via spool by 53749-submit <at> debbugs.gnu.org id=B53749.171578812913249
          (code B ref 53749); Wed, 15 May 2024 15:49:01 +0000
Received: (at 53749) by debbugs.gnu.org; 15 May 2024 15:48:49 +0000
Received: from localhost ([127.0.0.1]:42790 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1s7Gs2-0003Rb-UZ
	for submit <at> debbugs.gnu.org; Wed, 15 May 2024 11:48:49 -0400
Received: from mail-pf1-f181.google.com ([209.85.210.181]:43228)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <dfussner@HIDDEN>) id 1s7Grz-0003RT-5L
 for 53749 <at> debbugs.gnu.org; Wed, 15 May 2024 11:48:45 -0400
Received: by mail-pf1-f181.google.com with SMTP id
 d2e1a72fcca58-6f457853950so5291754b3a.0
 for <53749 <at> debbugs.gnu.org>; Wed, 15 May 2024 08:48:41 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=googlemail.com; s=20230601; t=1715788055; x=1716392855; darn=debbugs.gnu.org;
 h=cc:to:subject:message-id:date:from:in-reply-to:references
 :mime-version:from:to:cc:subject:date:message-id:reply-to;
 bh=wG28VNEHsmBOfD7gbh6Js0uuuI5QZYQmtwXx8QNFuEQ=;
 b=GiRaRbM5YevgsU+PAwU1o4RgPyGlu9Ejw0pi7uI5EPf0Awi3eIVLgmnZmK3RBwCjfq
 hcaovSKP5uScHGx2a9Hi6oZabrNfQcmcHoa0YCrZ/wK7c81rNKyReUDoP9EWGlZ+CfcG
 CYrf2MHXzDr/EGikCp1akSdmTrx0drYUM1u4V8g2gOP770sTfbWSPVk3MZ8mMe2DUesK
 u6VSRrnxDgiUyUA3iUz6YEK3gu10gcbDASK55wWpKuEOBI62960OP05i1PqO+3OocwpW
 pXSRYWu0r4iVEdoEQGtGDsmJd0hz+4rO/voQUkokeaUcq+M/l/GXu6STNoWBhlmbu5ZX
 9l8g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20230601; t=1715788055; x=1716392855;
 h=cc: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=wG28VNEHsmBOfD7gbh6Js0uuuI5QZYQmtwXx8QNFuEQ=;
 b=kGs1ujmhUDFOOl7XKxLfZBoICSGSq6Oe3NpJlfWo+CDxjHxR+uNA/K6U5kuTGVf9Ef
 KU1vqVuESmjT788nW6a6wr1qSPv6gveAvQQyLHvuSnmaseSGwCwPkKD0GkWVckicDHa8
 umkyLYoXic6uyI/FU61hqjsnYRhwFwLB6h2zeVUMVneety7ZT7i+ZrDWrb8pzCBL9OOj
 alaJjWA9W7x/ou3eKPRrO5OayrMh+CzANALeovvpE/H82qyfTJwAqgaoJCQsrGFUUcek
 Nd7F5nheIcfjTLH6jRqWHW5dGYUfGrUZBbnzfS9I27EpNBqAlGpTgtWmX0fcrFm20hLs
 8vVg==
X-Forwarded-Encrypted: i=1;
 AJvYcCXspdrr5+bLwok69lc6lnXngtyJg/RWz+tD9ED8o+xxjSAFzrA74pdRT2K92ArNYozUHeVDvkpxy8UO6cXYpZBQaLIUu6o=
X-Gm-Message-State: AOJu0YywF6B+0Il9CmNpmETo+1e+koJp4BHok4s9Bq1YDKyy1I3HSSYd
 VSmjCi0wCBpQyKLaqJHmCQ3NJMzjgEZaVqtB1Ghwnz1E5p/NYuW5azpUppIxFZ+4JAmHz+p00mO
 slyQanld1Z2XTNvysUkPr6GLSN58=
X-Google-Smtp-Source: AGHT+IGnwhPLnCUZWy65ZvMBqck5gOzZXq/aBodpiRX8T9dv3a7Cz1b1TYfZKDJgQE/8h17i4e2G788/Par0JzZYo/Y=
X-Received: by 2002:a17:90b:4f8d:b0:2a2:fec9:1bbd with SMTP id
 98e67ed59e1d1-2b65fe214c7mr28090302a91.17.1715788055297; Wed, 15 May 2024
 08:47:35 -0700 (PDT)
MIME-Version: 1.0
References: <CADF+RtgWCLKQGwgdTNWmgesbcwq8iBxChoN8FqMOg95Ai3CYTA@HIDDEN>
 <1de34060-e93b-0a42-fff5-20e283abe0dc@HIDDEN> <87o7vq0zir.fsf@HIDDEN>
 <CADF+Rtjii7ZHkrfLzS63Yt1UiPPfnOrSsFZe2SMRetOS4w0vng@HIDDEN>
 <8735d20yvd.fsf@HIDDEN>
 <CADF+Rtgz5f6fcVuTLrv_N8oObRw+Uw-Je7bz54Gagb3pRgpR=g@HIDDEN>
 <CADwFkm=p8_Tbu+cXMDA8zEKovb+Ld7QFUJz_AhFnJebhik=JBg@HIDDEN>
 <CADF+RtjGfibN3Yg8mf4hVB9uPWtAwp0m6J2LRH7n0Z20S7+Yzg@HIDDEN>
 <CADwFkmkbMSXdjB6kF3a68_1vb4dv05_vMrKrvoX908nZJrpxOg@HIDDEN>
 <CADF+RtgxigxvgG0j6bbpYnrrFVF4YTKZ1Rs0JSCc8zuu5JNA2w@HIDDEN>
 <fcbc07cf-5ee9-131f-1a18-9cc28a5655f1@HIDDEN>
 <CADF+Rti2gSVvfksUVO04ptKQsXrNpwUXHQ_qFjC26D8NNh578A@HIDDEN>
 <2c5c8afa-b57e-3156-d21c-5523cacb4d87@HIDDEN> <831qf1mgjl.fsf@HIDDEN>
 <87cyyj9rpp.fsf@HIDDEN> <65793.1694843596@localhost>
 <CADF+RtikqxOW0XpwGTWWuGNTWjz3-MWMcO6U65Tta3PJjkRXqw@HIDDEN>
 <m24jbtim2p.fsf@HIDDEN>
 <CADF+RtiOECRmdoFD1qP=gRzS+P3tJqh_WNTnuW-1zPrY9g4VBw@HIDDEN>
 <jwvmsp7afy2.fsf-monnier+emacs@HIDDEN>
In-Reply-To: <jwvmsp7afy2.fsf-monnier+emacs@HIDDEN>
From: David Fussner <dfussner@HIDDEN>
Date: Wed, 15 May 2024 16:47:46 +0100
Message-ID: <CADF+RtisRw=2rKS+Kx_dFFObGktbbSvD+vqp2n-TuXhgX=8XFQ@HIDDEN>
Content-Type: multipart/mixed; boundary="0000000000008be4640618800951"
X-Spam-Score: 0.0 (/)
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: -1.0 (-)

--0000000000008be4640618800951
Content-Type: text/plain; charset="UTF-8"

Hi Stefan,

I attach an updated patch for tex-mode and etags, in which I've
attempted to include all of your recommendations.  A few notes:

1. I changed the name as well as the doc string of the variable
holding the TeX escape and grouping chars (now
`tex-thingatpt-exclude-chars`).  I hope this makes it clearer.

2. I removed the regexp for detecting expl3 constructs, and now rely
on the mechanism I outlined in my previous work-in-progress patch:

(a) Test for expl3 class or package, set `tex-expl-file-p` to t.

(b) If not (a), add `tex-expl-region-set` to the
    `syntax-propertize-extend-region-functions` hook to list all
    regions between \ExplSyntaxOn and \ExplSyntaxOff
    (`tex-expl-region-list`).

(c) Add test in `tex-font-lock-suscript` for (a) then (b), don't
    subscript after the underscore when either is t.

3. I tried benchmarking `syntax-ppss-flush-cache` and
   `font-lock-flush` before and after the changes.  The former had a
   maximum slowdown of 0.5% (usually less) and the latter a maximum of
   0.2%, but if you want to see my methodology or suggest something to
   try please let me know.

4. I left the bespoke `syntax-propertize-function` in the
   `xref-backend-references` method uncompiled, as simple benchmarking
   suggested no perceptible gain from byte compiling it.  Using
   `syntax-ppss-flush-cache` to restore the status quo ante in each
   file-visiting buffer streamlined the code and made it do what it
   was supposed to do.

Thanks again for your advice, and please let me know what still needs
work.

Best, David.

On Fri, 3 May 2024 at 15:11, Stefan Monnier <monnier@HIDDEN> wrote:
>
> Hi,
>
> Apparently I'm the `tex-mode.el` guy, so I tried to take a look.
>
> > diff --git a/lisp/textmodes/tex-mode.el b/lisp/textmodes/tex-mode.el
> > index 97c950267c6..d990a2dbfa9 100644
> > --- a/lisp/textmodes/tex-mode.el
> > +++ b/lisp/textmodes/tex-mode.el
> > @@ -695,7 +696,25 @@ tex-verbatim-environments
> >       ("\\\\\\(?:end\\|begin\\) *\\({[^\n{}]*}\\)"
> >        (1 (ignore
> >            (tex-env-mark (match-beginning 0)
> > -                        (match-beginning 1) (match-end 1))))))))
> > +                        (match-beginning 1) (match-end 1)))))
> > +     ;; The next two rules change the syntax of `:' and `_' in expl3
> > +     ;; constructs, so that `tex-font-lock-suscript' can fontify them
> > +     ;; more accurately.
> > +     ((concat "\\(\\(?:[\\\\[:space:]{]_\\|"
> > +              "[\\\\{[:space:]][^][_[:space:][:cntrl:][:digit:]\\\\{}()/=]+\\)"
> > +              "\\(?:_+\\(?:[^][[:space:][:cntrl:][:digit:]:\\\\{}()/#_=]+\\|"
> > +              "#+[1-9]\\)\\)+\\)\\([:_]?\\)")
>
> Can you add in the comment some URL pointing to some relevant expl3
> documentation which "explains" why the above regexp makes sense?
> Also I don't clearly see how the above regexp distinguishes expl3 code
> from "normal" LaTeX code, so the comment should say something about it.
>
> Side note: I'd avoid [:space:] whose exact meaning is rarely quite what
> we need.
> Side note: backslash doesn't need to be backslashed in [...].
>
> > +      (1 (ignore
> > +          (let* ((expr (buffer-substring-no-properties (match-beginning 1)
> > +                                                       (match-end 1)))
> > +                 (list (seq-positions expr ?_)))
> > +            (dolist (pos list)
> > +              (put-text-property (+ pos (match-beginning 1))
> > +                                 (1+ (+ pos (match-beginning 1)))
> > +                                 'syntax-table (string-to-syntax "_"))))))
> > +      (2 "_"))
> > +     ("\\\\[[:alpha:]]+\\(:\\)[[:alpha:][:space:]\n]"
> > +      (1 "_")))))
>
> Currently we "skip" inappropriate underscores via
> `tex-font-lock-match-suscript` and/or by adding a particular `face` text
> property rather than via `syntax-table/propertize`.
>
> For algorithmic reasons, it's better to minimize the work done in
> `syntax-propertize-function` as much as possible (font-lock is more lazy
> than `syntax-propertize`), so I recommend you try and moving the above
> to font-lock rules.
>
> > +(defvar tex-esc-and-group-chars '(?\\ ?{ ?})
> > +  "The current TeX escape and grouping characters.
>
> I recommend you backslash escape the { and } above (although it's not
> indispensable, `emacs-lisp-mode` will parse the code better).
> More importantly, the docstring doesn't explain what this list
> means/does.  E.g. does the order matter?  Can it be longer than 3 elements?
>
> From the current docstring I can't guess what would be the consequence
> of adding/removing elements to/from this list.
>
> > +;; Populate `semantic-symref-filepattern-alist' for the in-tree modes;
> > +;; AUCTeX is doing the same for its modes.
> > +(defvar semantic-symref-filepattern-alist)
> > +(with-eval-after-load 'semantic/symref/grep
> > +  (push '(latex-mode "*.[tT]e[xX]" "*.ltx" "*.sty" "*.cl[so]"
> > +                     "*.bbl" "*.drv" "*.hva")
> > +        semantic-symref-filepattern-alist)
> > +  (push '(plain-tex-mode "*.[tT]e[xX]" "*.ins")
> > +        semantic-symref-filepattern-alist)
> > +  (push '(doctex-mode "*.dtx") semantic-symref-filepattern-alist))
>
> We know `semantic-symref-filepattern-alist` will exist when
> `semantic/symref/grep` is loaded, but not before, so I'd put the
> `defvar` inside the `with-eval-after-load`.
>
> > +;; Setup AUCTeX modes (for testing purposes only).
> > +
> > +(add-hook 'TeX-mode-hook #'tex-set-auctex-xref-backend)
> > +
> > +(defun tex-set-auctex-xref-backend ()
> > +  (add-hook 'xref-backend-functions #'tex--xref-backend nil t))
>
> I assume this will be sent to AUCTeX and is not meant to be in
> `tex-mode.el`, right?
>
> > +;; `xref-find-references' currently may need this when called from a
> > +;; latex-mode buffer in order to search files or buffers with a .tex
> > +;; suffix (including the buffer from which it has been called).  We
> > +;; append it to `auto-mode-alist' so as not to interfere with the usual
> > +;; mode-setting apparatus.  Changes here and in AUCTeX should soon
> > +;; render it unnecessary.
> > +(add-to-list 'auto-mode-alist '("\\.[tT]e[xX]\\'" . latex-mode) t)
>
> Maybe I have not followed the whole discussion closely enough, but at
> least to me the above "soon" is very unclear.
> I'll assume that this code will be removed before we install the patch.
> If not, please explain in the comment why this specific hack is needed
> and how it works.
>
> > +(cl-defmethod xref-backend-references ((_backend (eql 'tex-etags)) identifier)
> > +  "Find references of IDENTIFIER in TeX buffers and files."
> > +  (require 'semantic/symref/grep)
> > +  (let (bufs texbufs
> > +             (mode major-mode))
> > +    (dolist (buf (buffer-list))
> > +      (if (eq (buffer-local-value 'major-mode buf) mode)
> > +          (push buf bufs)
> > +        (when (string-match-p ".*\\.[tT]e[xX]" (buffer-name buf))
> > +          (push buf texbufs))))
> > +    (unless (seq-set-equal-p tex--buffers-list bufs)
> > +      (let* ((amalist (tex--collect-file-extensions))
> > +          (extlist (alist-get mode semantic-symref-filepattern-alist))
> > +          (extlist-new (seq-uniq
> > +                           (seq-union amalist extlist #'string-match-p))))
>
> After sinking the `defvar` above, you'll need to add a new `defvar` for
> `semantic-symref-filepattern-alist` just after the `require`.
>
> > +                (setq-local syntax-propertize-function
> > +                            (eval
> > +                             `(tex-xref-syntax-function
> > +                               ,identifier ,beg ,end)))
>
> Why do we need to change `syntax-propertize-function` and why do we need
> `eval`?
>
> > +                (setq syntax-propertize--done 0)
>
> This is not sufficient.  You want to `syntax-ppss-flush-cache`.
>
>
>         Stefan
>

--0000000000008be4640618800951
Content-Type: text/x-patch; charset="US-ASCII"; 
	name="0002-Provide-a-modified-xref-backend-for-TeX-buffers.patch"
Content-Disposition: attachment; 
	filename="0002-Provide-a-modified-xref-backend-for-TeX-buffers.patch"
Content-Transfer-Encoding: base64
Content-ID: <f_lw7zw08w0>
X-Attachment-Id: f_lw7zw08w0

RnJvbSA4N2Q4Mzc3OGNlOGMzNTM2NTkzNzMyMjE4M2QxMDFiZTIzNGFjODgyIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBEYXZpZCBGdXNzbmVyIDxkZnVzc25lckBnb29nbGVtYWlsLmNv
bT4KRGF0ZTogV2VkLCAxNSBNYXkgMjAyNCAxNjozNjoxNSArMDEwMApTdWJqZWN0OiBbUEFUQ0hd
IFByb3ZpZGUgYSBtb2RpZmllZCB4cmVmIGJhY2tlbmQgZm9yIFRlWCBidWZmZXJzCgoqIGxpYi1z
cmMvZXRhZ3MuYyAoVGVYX2NvbW1hbmRzKTogSW1wcm92ZSBwYXJzaW5nIG9mIGNvbW1hbmRzIGlu
IFRlWApidWZmZXJzLgooVEVYX2RlZmVudik6IEV4cGFuZCBsaXN0IG9mIGNvbW1hbmRzIHRvIHRh
ZyBieSBkZWZhdWx0IGluIFRlWApidWZmZXJzLgooVGVYX2hlbHApOgoqIGRvYy9lbWFjcy9tYWlu
dGFpbmluZy50ZXhpIChUYWcgU3ludGF4KTogRG9jdW1lbnQgbmV3IHRhZ2dlZApjb21tYW5kcy4K
KElkZW50aWZpZXIgU2VhcmNoKTogQWRkIG5vdGUgYWJvdXQgc2VtYW50aWMtc3ltcmVmLWZpbGVw
YXR0ZXJuLWFsaXN0LAphdXRvLW1vZGUtYWxpc3QsIGFuZCB4cmVmLWZpbmQtcmVmZXJlbmNlcy4K
CiogbGlzcC90ZXh0bW9kZXMvdGV4LW1vZGUuZWwgKHRleC1mb250LWxvY2stc3VzY3JpcHQpOiBU
ZXN0IGZvcgp1bmRlcnNjb3JlIGluIGV4cGwzIGZpbGVzIGFuZCByZWdpb25zLCBkaXNhYmxlIHN1
YnNjcmlwdCBmYWNlIHRoZXJlLgoodGV4LWNvbW1vbi1pbml0aWFsaXphdGlvbik6IFNldCB1cCB4
cmVmIGJhY2tlbmQgZm9yIGluLXRyZWUgVGVYCm1vZGVzLiBEZXRlY3QgZXhwbDMgZmlsZXMsIGFu
ZCBpbiBvdGhlcnMgc2V0IHVwIGEgbGlzdCBvZiBleHBsMwpyZWdpb25zLgoodGV4LWV4cGwtYnVm
ZmVyLXBhcnNlKTogTmV3IGZ1bmN0aW9uIGNhbGxlZCBpbiBwcmV2aW91cy4KKHRleC1leHBsLWJ1
ZmZlci1wKTogTmV3IHZhciB0byBob2xkIHRoZSByZXN1bHQgb2YgcHJldmlvdXMuCih0ZXgtZXhw
bC1yZWdpb24tc2V0KTogTmV3IGZ1bmN0aW9uIGFkZGVkIHRvCidzeW50YXgtcHJvcGVydGl6ZS1l
eHRlbmQtcmVnaW9uLWZ1bmN0aW9ucycgaG9vay4KKHRleC1leHBsLXJlZ2lvbi1saXN0KTogTmV3
IHZhciB0byBob2xkIHRoZSByZXN1bHQgb2YgcHJldmlvdXMuCih0ZXgtLXRoaW5nLWF0LXBvaW50
LCB0ZXgtdGhpbmdhdHB0LS1iZWdpbm5pbmctb2Ytc3ltYm9sKQoodGV4LXRoaW5nYXRwdC0tZW5k
LW9mLXN5bWJvbCwgdGV4LS1ib3VuZHMtb2Ytc3ltYm9sLWF0LXBvaW50KToKTmV3IGZ1bmN0aW9u
cyB0byByZXR1cm4gJ3RoaW5nLWF0LXBvaW50JyBmb3IgeHJlZiBiYWNrZW5kLgoodGV4LXRoaW5n
YXRwdC1leGNsdWRlLWNoYXJzKTogTmV3IHZhciB0byBkbyB0aGUgc2FtZS4KKHhyZWYtYmFja2Vu
ZC1pZGVudGlmaWVyLWF0LXBvaW50KTogTmV3IFRlWCBiYWNrZW5kIG1ldGhvZCB0byBwcm92aWRl
CnN5bWJvbHMgZm9yIHByb2Nlc3NpbmcgYnkgeHJlZi4KKHhyZWYtYmFja2VuZC1pZGVudGlmaWVy
LWNvbXBsZXRpb24tdGFibGUpCih4cmVmLWJhY2tlbmQtaWRlbnRpZmllci1jb21wbGV0aW9uLWln
bm9yZS1jYXNlKQooeHJlZi1iYWNrZW5kLWRlZmluaXRpb25zLCB4cmVmLWJhY2tlbmQtYXByb3Bv
cyk6IFBsYWNlaG9sZGVycyB0bwpjYWxsIHRoZSBzdGFuZGFyZCAnZXRhZ3MnIHhyZWYgYmFja2Vu
ZCBtZXRob2RzLgooeHJlZi1iYWNrZW5kLXJlZmVyZW5jZXMpOiBXcmFwcGVyIHRvIGNhbGwgdGhl
IGRlZmF1bHQgeHJlZiBiYWNrZW5kCm1ldGhvZCwgZmluZGluZyBhcyBtYW55IHJlbGV2YW50IGZp
bGVzIGFzIHBvc3NpYmxlIGFuZCB1c2luZyBhIGJlc3Bva2UKc3ludGF4LXByb3BlcnRpemUtZnVu
Y3Rpb24gd2hlbiByZXF1aXJlZC4KKHRleC0tY29sbGVjdC1maWxlLWV4dGVuc2lvbnMsIHRleC14
cmVmLXN5bnRheC1mdW5jdGlvbik6IEhlbHBlcgpmdW5jdGlvbnMgZm9yIHByZXZpb3VzLgoodGV4
LWZpbmQtcmVmZXJlbmNlcy1zeW50YXgtdGFibGUsIHRleC0tYnVmZmVycy1saXN0KQoodGV4LS14
cmVmLXN5bnRheC1mdW4sIHRleC0tb2xkLXN5bnRheC1mdW5jdGlvbik6IE5ldyB2YXJzIGZvciBz
YW1lLgotLS0KIGRvYy9lbWFjcy9tYWludGFpbmluZy50ZXhpIHwgIDM5ICsrKy0KIGxpYi1zcmMv
ZXRhZ3MuYyAgICAgICAgICAgIHwgMTg5ICsrKysrKysrKysrKysrKysrLS0KIGxpc3AvdGV4dG1v
ZGVzL3RleC1tb2RlLmVsIHwgMzcyICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr
Ky0KIDMgZmlsZXMgY2hhbmdlZCwgNTc5IGluc2VydGlvbnMoKyksIDIxIGRlbGV0aW9ucygtKQoK
ZGlmZiAtLWdpdCBhL2RvYy9lbWFjcy9tYWludGFpbmluZy50ZXhpIGIvZG9jL2VtYWNzL21haW50
YWluaW5nLnRleGkKaW5kZXggNTc5MDk4YzgxYjEuLmEwNjQxMDNhYTI1IDEwMDY0NAotLS0gYS9k
b2MvZW1hY3MvbWFpbnRhaW5pbmcudGV4aQorKysgYi9kb2MvZW1hY3MvbWFpbnRhaW5pbmcudGV4
aQpAQCAtMjUyOSw2ICsyNTI5LDE1IEBAIElkZW50aWZpZXIgU2VhcmNoCiByZWZlcmVuY2VkLiAg
VGhlIFhSRUYgbW9kZSBjb21tYW5kcyBhcmUgYXZhaWxhYmxlIGluIHRoaXMgYnVmZmVyLCBzZWUK
IEByZWZ7WHJlZiBDb21tYW5kc30uCiAKK1doZW4gaW52b2tlZCBpbiBhIGJ1ZmZlciB3aG9zZSBt
YWpvciBtb2RlIHVzZXMgdGhlIEBjb2Rle2V0YWdzfSBiYWNrZW5kLAorQGtiZHtNLT99IHNlYXJj
aGVzIGZpbGVzIGFuZCBidWZmZXJzIHdob3NlIG1ham9yIG1vZGUgbWF0Y2hlcyB0aGF0IG9mCit0
aGUgb3JpZ2luYWwgYnVmZmVyLiAgSXQgZ3Vlc3NlcyB0aGF0IG1vZGUgZnJvbSBmaWxlIGV4dGVu
c2lvbnMsIHNvIGlmCitAa2Jke00tP30gc2VlbXMgdG8gYmUgc2tpcHBpbmcgcmVsZXZhbnQgYnVm
ZmVycyBvciBmaWxlcywgdHJ5CitjdXN0b21pemluZyBlaXRoZXIgdGhlIHZhcmlhYmxlIEBjb2Rl
e3NlbWFudGljLXN5bXJlZi1maWxlcGF0dGVybi1hbGlzdH0KKyhpZiB5b3VyIGJ1ZmZlcidzIG1h
am9yIG1vZGUgYWxyZWFkeSBoYXMgYW4gZW50cnkgaW4gaXQpLCBvcgorQGNvZGV7YXV0by1tb2Rl
LWFsaXN0fSAoaWYgbm90KSwgdGhlcmVieSBpbmZvcm1pbmcgQGNvZGV7eHJlZn0gb2YgdGhlCitt
aXNzaW5nIGV4dGVuc2lvbnMgKEBweHJlZntDaG9vc2luZyBNb2Rlc30pLgorCiBAdmluZGV4IHhy
ZWYtYXV0by1qdW1wLXRvLWZpcnN0LXhyZWYKICAgSWYgdGhlIHZhbHVlIG9mIHRoZSB2YXJpYWJs
ZSBAY29kZXt4cmVmLWF1dG8tanVtcC10by1maXJzdC14cmVmfSBpcwogQGNvZGV7dH0sIEBjb2Rl
e3hyZWYtZmluZC1yZWZlcmVuY2VzfSBhdXRvbWF0aWNhbGx5IGp1bXBzIHRvIHRoZSBmaXJzdApA
QCAtMjc0NywxMCArMjc1NiwzMiBAQCBUYWcgU3ludGF4CiBAaXRlbQogSW4gQExhVGVYe30gZG9j
dW1lbnRzLCB0aGUgYXJndW1lbnRzIGZvciBAY29kZXtcY2hhcHRlcn0sCiBAY29kZXtcc2VjdGlv
bn0sIEBjb2Rle1xzdWJzZWN0aW9ufSwgQGNvZGV7XHN1YnN1YnNlY3Rpb259LAotQGNvZGV7XGVx
bm99LCBAY29kZXtcbGFiZWx9LCBAY29kZXtccmVmfSwgQGNvZGV7XGNpdGV9LAotQGNvZGV7XGJp
Yml0ZW19LCBAY29kZXtccGFydH0sIEBjb2Rle1xhcHBlbmRpeH0sIEBjb2Rle1xlbnRyeX0sCi1A
Y29kZXtcaW5kZXh9LCBAY29kZXtcZGVmfSwgQGNvZGV7XG5ld2NvbW1hbmR9LCBAY29kZXtccmVu
ZXdjb21tYW5kfSwKLUBjb2Rle1xuZXdlbnZpcm9ubWVudH0gYW5kIEBjb2Rle1xyZW5ld2Vudmly
b25tZW50fSBhcmUgdGFncy4KK0Bjb2Rle1xlcW5vfSwgQGNvZGV7XGxhYmVsfSwgQGNvZGV7XHJl
Zn0sIEBjb2Rle1xSZWZ9LCBAY29kZXtcZm9vdHJlZn0sCitAY29kZXtcY2l0ZX0sIEBjb2Rle1xi
aWJpdGVtfSwgQGNvZGV7XHBhcnR9LCBAY29kZXtcYXBwZW5kaXh9LAorQGNvZGV7XGVudHJ5fSwg
QGNvZGV7XGluZGV4fSwgQGNvZGV7XGRlZn0sIEBjb2Rle1xlZGVmfSwgQGNvZGV7XGdkZWZ9LAor
QGNvZGV7XHhkZWZ9LCBAY29kZXtcbmV3Y29tbWFuZH0sIEBjb2Rle1xyZW5ld2NvbW1hbmR9LAor
QGNvZGV7XG5ld2Vudmlyb25tZW50fSwgQGNvZGV7XHJlbmV3ZW52aXJvbm1lbnR9LAorQGNvZGV7
XERlY2xhcmVSb2J1c3RDb21tYW5kfSwgQGNvZGV7XG5ld3JvYnVzdGNtZH0sCitAY29kZXtccmVu
ZXdyb2J1c3RjbWR9LCBAY29kZXtccHJvdmlkZWNvbW1hbmR9LAorQGNvZGV7XHByb3ZpZGVyb2J1
c3RjbWR9LCBAY29kZXtcTmV3RG9jdW1lbnRDb21tYW5kfSwKK0Bjb2Rle1xSZW5ld0RvY3VtZW50
Q29tbWFuZH0sIEBjb2Rle1xQcm92aWRlRG9jdW1lbnRDb21tYW5kfSwKK0Bjb2Rle1xEZWNsYXJl
RG9jdW1lbnRDb21tYW5kfSwgQGNvZGV7XE5ld0V4cGFuZGFibGVEb2N1bWVudENvbW1hbmR9LAor
QGNvZGV7XFJlbmV3RXhwYW5kYWJsZURvY3VtZW50Q29tbWFuZH0sCitAY29kZXtcUHJvdmlkZUV4
cGFuZGFibGVEb2N1bWVudENvbW1hbmR9LAorQGNvZGV7XERlY2xhcmVFeHBhbmRhYmxlRG9jdW1l
bnRDb21tYW5kfSwKK0Bjb2Rle1xOZXdEb2N1bWVudEVudmlyb25tZW50fSwgQGNvZGV7XFJlbmV3
RG9jdW1lbnRFbnZpcm9ubWVudH0sCitAY29kZXtcUHJvdmlkZURvY3VtZW50RW52aXJvbm1lbnR9
LCBAY29kZXtcRGVjbGFyZURvY3VtZW50RW52aXJvbm1lbnR9LAorQGNvZGV7XGNzZGVmfSwgQGNv
ZGV7XGNzZWRlZn0sIEBjb2Rle1xjc2dkZWZ9LCBAY29kZXtcY3N4ZGVmfSwKK0Bjb2Rle1xjc2xl
dGNzfSwgQGNvZGV7XGNzbGV0fSwgQGNvZGV7XGxldGNzfSwgQGNvZGV7XGxldH0sCitAY29kZXtc
Y3NfbmV3X3Byb3RlY3RlZF9ub3Bhcn0sIEBjb2Rle1xjc19uZXdfcHJvdGVjdGVkfSwKK0Bjb2Rl
e1xjc19uZXdfbm9wYXJ9LCBAY29kZXtcY3NfbmV3X2VxfSwgQGNvZGV7XGNzX25ld30sCitAY29k
ZXtcY3Nfc2V0X3Byb3RlY3RlZF9ub3Bhcn0sIEBjb2Rle1xjc19zZXRfcHJvdGVjdGVkfSwKK0Bj
b2Rle1xjc19zZXRfbm9wYXJ9LCBAY29kZXtcY3Nfc2V0X2VxfSwgQGNvZGV7XGNzX3NldH0sCitA
Y29kZXtcY3NfZ3NldF9wcm90ZWN0ZWRfbm9wYXJ9LCBAY29kZXtcY3NfZ3NldF9wcm90ZWN0ZWR9
LAorQGNvZGV7XGNzX2dzZXRfbm9wYXJ9LCBAY29kZXtcY3NfZ3NldF9lcX0sIEBjb2Rle1xjc19n
c2V0fSwKK0Bjb2Rle1xjc19nZW5lcmF0ZV9mcm9tX2FyZ19jb3VudH0sIGFuZCBAY29kZXtcY3Nf
Z2VuZXJhdGVfdmFyaWFudH0gYXJlCit0YWdzLiAgU28gdG9vIGFyZSB0aGUgYXJndW1lbnRzIG9m
IGFueSBzdGFycmVkIHZhcmlhbnRzIG9mIHRoZXNlCitjb21tYW5kcy4KIAogT3RoZXIgY29tbWFu
ZHMgY2FuIG1ha2UgdGFncyBhcyB3ZWxsLCBpZiB5b3Ugc3BlY2lmeSB0aGVtIGluIHRoZQogZW52
aXJvbm1lbnQgdmFyaWFibGUgQGVudntURVhUQUdTfSBiZWZvcmUgaW52b2tpbmcgQGNvbW1hbmR7
ZXRhZ3N9LiAgVGhlCmRpZmYgLS1naXQgYS9saWItc3JjL2V0YWdzLmMgYi9saWItc3JjL2V0YWdz
LmMKaW5kZXggMDNiYzU1ZGUwM2QuLjExZmRkYzE4N2MyIDEwMDY0NAotLS0gYS9saWItc3JjL2V0
YWdzLmMKKysrIGIvbGliLXNyYy9ldGFncy5jCkBAIC03OTMsMTEgKzc5MywyNyBAQCAjZGVmaW5l
IFNURElOIDB4MTAwMQkJLyogcmV0dXJuZWQgYnkgZ2V0b3B0X2xvbmcgb24gLS1wYXJzZS1zdGRp
biAqLwogc3RhdGljIGNvbnN0IGNoYXIgKlRlWF9zdWZmaXhlcyBbXSA9CiAgIHsgImJpYiIsICJj
bG8iLCAiY2xzIiwgImx0eCIsICJzdHkiLCAiVGVYIiwgInRleCIsIE5VTEwgfTsKIHN0YXRpYyBj
b25zdCBjaGFyIFRlWF9oZWxwIFtdID0KLSJJbiBMYVRlWCB0ZXh0LCB0aGUgYXJndW1lbnQgb2Yg
YW55IG9mIHRoZSBjb21tYW5kcyAnXFxjaGFwdGVyJyxcblwKLSdcXHNlY3Rpb24nLCAnXFxzdWJz
ZWN0aW9uJywgJ1xcc3Vic3Vic2VjdGlvbicsICdcXGVxbm8nLCAnXFxsYWJlbCcsXG5cCi0nXFxy
ZWYnLCAnXFxjaXRlJywgJ1xcYmliaXRlbScsICdcXHBhcnQnLCAnXFxhcHBlbmRpeCcsICdcXGVu
dHJ5JyxcblwKLSdcXGluZGV4JywgJ1xcZGVmJywgJ1xcbmV3Y29tbWFuZCcsICdcXHJlbmV3Y29t
bWFuZCcsXG5cCi0nXFxuZXdlbnZpcm9ubWVudCcgb3IgJ1xccmVuZXdlbnZpcm9ubWVudCcgaXMg
YSB0YWcuXG5cCisiSW4gTGFUZVggdGV4dCwgdGhlIGFyZ3VtZW50IG9mIHRoZSBjb21tYW5kcyAn
XFxjaGFwdGVyJywgJ1xcc2VjdGlvbicsXG5cCisnXFxzdWJzZWN0aW9uJywgJ1xcc3Vic3Vic2Vj
dGlvbicsICdcXGVxbm8nLCAnXFxsYWJlbCcsICdcXHJlZicsXG5cCisnXFxSZWYnLCAnXFxmb290
cmVmJywgJ1xcY2l0ZScsICdcXGJpYml0ZW0nLCAnXFxwYXJ0JywgJ1xcYXBwZW5kaXgnLFxuXAor
J1xcZW50cnknLCAnXFxpbmRleCcsICdcXGRlZicsICdcXGVkZWYnLCAnXFxnZGVmJywgJ1xceGRl
ZicsXG5cCisnXFxuZXdjb21tYW5kJywgJ1xccmVuZXdjb21tYW5kJywgJ1xcbmV3cm9idXN0Y21k
JywgJ1xccmVuZXdyb2J1c3RjbWQnLFxuXAorJ1xcbmV3ZW52aXJvbm1lbnQnLCAnXFxyZW5ld2Vu
dmlyb25tZW50JywgJ1xcRGVjbGFyZVJvYnVzdENvbW1hbmQnLFxuXAorJ1xccHJvdmlkZWNvbW1h
bmQnLCAnXFxwcm92aWRlcm9idXN0Y21kJywgJ1xcTmV3RG9jdW1lbnRDb21tYW5kJyxcblwKKydc
XFJlbmV3RG9jdW1lbnRDb21tYW5kJywgJ1xcUHJvdmlkZURvY3VtZW50Q29tbWFuZCcsXG5cCisn
XFxEZWNsYXJlRG9jdW1lbnRDb21tYW5kJywgJ1xcTmV3RXhwYW5kYWJsZURvY3VtZW50Q29tbWFu
ZCcsXG5cCisnXFxSZW5ld0V4cGFuZGFibGVEb2N1bWVudENvbW1hbmQnLCAnXFxQcm92aWRlRXhw
YW5kYWJsZURvY3VtZW50Q29tbWFuZCcsXG5cCisnXFxEZWNsYXJlRXhwYW5kYWJsZURvY3VtZW50
Q29tbWFuZCcsICdcXE5ld0RvY3VtZW50RW52aXJvbm1lbnQnLFxuXAorJ1xcUmVuZXdEb2N1bWVu
dEVudmlyb25tZW50JywgJ1xcUHJvdmlkZURvY3VtZW50RW52aXJvbm1lbnQnLFxuXAorJ1xcRGVj
bGFyZURvY3VtZW50RW52aXJvbm1lbnQnLCdcXGNzZGVmJywgJ1xcY3NlZGVmJywgJ1xcY3NnZGVm
JyxcblwKKydcXGNzeGRlZicsICdcXGNzbGV0Y3MnLCAnXFxjc2xldCcsICdcXGxldGNzJywgJ1xc
bGV0JyxcblwKKydcXGNzX25ld19wcm90ZWN0ZWRfbm9wYXInLCAnXFxjc19uZXdfcHJvdGVjdGVk
JywgJ1xcY3NfbmV3X25vcGFyJyxcblwKKydcXGNzX25ld19lcScsICdcXGNzX25ldycsICdcXGNz
X3NldF9wcm90ZWN0ZWRfbm9wYXInLFxuXAorJ1xcY3Nfc2V0X3Byb3RlY3RlZCcsICdcXGNzX3Nl
dF9ub3BhcicsICdcXGNzX3NldF9lcScsICdcXGNzX3NldCcsXG5cCisnXFxjc19nc2V0X3Byb3Rl
Y3RlZF9ub3BhcicsICdcXGNzX2dzZXRfcHJvdGVjdGVkJywgJ1xcY3NfZ3NldF9ub3BhcicsXG5c
CisnXFxjc19nc2V0X2VxJywgJ1xcY3NfZ3NldCcsICdcXGNzX2dlbmVyYXRlX2Zyb21fYXJnX2Nv
dW50Jywgb3JcblwKKydcXGNzX2dlbmVyYXRlX3ZhcmlhbnQnIGlzIGEgdGFnLiAgU28gaXMgdGhl
IGFyZ3VtZW50IG9mIGFueSBzdGFycmVkXG5cCit2YXJpYW50IG9mIHRoZXNlIGNvbW1hbmRzLlxu
XAogXG5cCiBPdGhlciBjb21tYW5kcyBjYW4gYmUgc3BlY2lmaWVkIGJ5IHNldHRpbmcgdGhlIGVu
dmlyb25tZW50IHZhcmlhYmxlXG5cCiAnVEVYVEFHUycgdG8gYSBjb2xvbi1zZXBhcmF0ZWQgbGlz
dCBsaWtlLCBmb3IgZXhhbXBsZSxcblwKQEAgLTU3NDAsMTEgKzU3NTYsMjUgQEAgU2NoZW1lX2Z1
bmN0aW9ucyAoRklMRSAqaW5mKQogc3RhdGljIGxpbmVidWZmZXIgKlRFWF90b2t0YWIgPSBOVUxM
OyAvKiBUYWJsZSB3aXRoIHRhZyB0b2tlbnMgKi8KIAogLyogRGVmYXVsdCBzZXQgb2YgY29udHJv
bCBzZXF1ZW5jZXMgdG8gcHV0IGludG8gVEVYX3Rva3RhYi4KLSAgIFRoZSB2YWx1ZSBvZiBlbnZp
cm9ubWVudCB2YXIgVEVYVEFHUyBpcyBwcmVwZW5kZWQgdG8gdGhpcy4gICovCisgICBUaGUgdmFs
dWUgb2YgZW52aXJvbm1lbnQgdmFyIFRFWFRBR1MgaXMgcHJlcGVuZGVkIHRvIHRoaXMuCisgICAo
MjAyNCkgQWRkIHZhcmlhbnRzIG9mICdcZGVmJywgc29tZSBhZGRpdGlvbmFsIExhVGVYIChhbmQK
KyAgIGZvcm1lciB4cGFyc2UpIGNvbW1hbmRzLCBjb21tb24gdmFyaWFudHMgZnJvbSB0aGUKKyAg
ICdldG9vbGJveCcgcGFja2FnZSwgYW5kIHRoZSBtYWluIGV4cGwzIGNvbW1hbmRzLiAqLwogc3Rh
dGljIGNvbnN0IGNoYXIgKlRFWF9kZWZlbnYgPSAiXAotOmNoYXB0ZXI6c2VjdGlvbjpzdWJzZWN0
aW9uOnN1YnN1YnNlY3Rpb246ZXFubzpsYWJlbDpyZWY6Y2l0ZTpiaWJpdGVtXAotOnBhcnQ6YXBw
ZW5kaXg6ZW50cnk6aW5kZXg6ZGVmXAotOm5ld2NvbW1hbmQ6cmVuZXdjb21tYW5kOm5ld2Vudmly
b25tZW50OnJlbmV3ZW52aXJvbm1lbnQiOworOmxhYmVsOnJlZjpSZWY6Zm9vdHJlZjpjaGFwdGVy
OnNlY3Rpb246c3Vic2VjdGlvbjpzdWJzdWJzZWN0aW9uOmVxbm86Y2l0ZVwKKzpiaWJpdGVtOnBh
cnQ6YXBwZW5kaXg6ZW50cnk6aW5kZXg6ZGVmOmVkZWY6Z2RlZjp4ZGVmOm5ld2NvbW1hbmQ6cmVu
ZXdjb21tYW5kXAorOm5ld2Vudmlyb25tZW50OnJlbmV3ZW52aXJvbm1lbnQ6RGVjbGFyZVJvYnVz
dENvbW1hbmQ6cmVuZXdyb2J1c3RjbWRcCis6bmV3cm9idXN0Y21kOnByb3ZpZGVjb21tYW5kOnBy
b3ZpZGVyb2J1c3RjbWQ6TmV3RG9jdW1lbnRDb21tYW5kXAorOlJlbmV3RG9jdW1lbnRDb21tYW5k
OlByb3ZpZGVEb2N1bWVudENvbW1hbmQ6RGVjbGFyZURvY3VtZW50Q29tbWFuZFwKKzpOZXdFeHBh
bmRhYmxlRG9jdW1lbnRDb21tYW5kOlJlbmV3RXhwYW5kYWJsZURvY3VtZW50Q29tbWFuZFwKKzpQ
cm92aWRlRXhwYW5kYWJsZURvY3VtZW50Q29tbWFuZDpEZWNsYXJlRXhwYW5kYWJsZURvY3VtZW50
Q29tbWFuZFwKKzpOZXdEb2N1bWVudEVudmlyb25tZW50OlJlbmV3RG9jdW1lbnRFbnZpcm9ubWVu
dFwKKzpQcm92aWRlRG9jdW1lbnRFbnZpcm9ubWVudDpEZWNsYXJlRG9jdW1lbnRFbnZpcm9ubWVu
dDpjc2RlZlwKKzpjc2VkZWY6Y3NnZGVmOmNzeGRlZjpjc2xldGNzOmNzbGV0OmxldGNzOmxldDpj
c19uZXdfcHJvdGVjdGVkX25vcGFyXAorOmNzX25ld19wcm90ZWN0ZWQ6Y3NfbmV3X25vcGFyOmNz
X25ld19lcTpjc19uZXc6Y3Nfc2V0X3Byb3RlY3RlZF9ub3BhclwKKzpjc19zZXRfcHJvdGVjdGVk
OmNzX3NldF9ub3Bhcjpjc19zZXRfZXE6Y3Nfc2V0OmNzX2dzZXRfcHJvdGVjdGVkX25vcGFyXAor
OmNzX2dzZXRfcHJvdGVjdGVkOmNzX2dzZXRfbm9wYXI6Y3NfZ3NldF9lcTpjc19nc2V0XAorOmNz
X2dlbmVyYXRlX2Zyb21fYXJnX2NvdW50OmNzX2dlbmVyYXRlX3ZhcmlhbnQiOwogCiBzdGF0aWMg
dm9pZCBURVhfZGVjb2RlX2VudiAoY29uc3QgY2hhciAqLCBjb25zdCBjaGFyICopOwogCkBAIC01
ODAzLDE5ICs1ODMzLDEzNyBAQCBUZVhfY29tbWFuZHMgKEZJTEUgKmluZikKIAkgICAgICB7CiAJ
CWNoYXIgKnA7CiAJCXB0cmRpZmZfdCBuYW1lbGVuLCBsaW5lbGVuOwotCQlib29sIG9wZ3JwID0g
ZmFsc2U7CisJCWJvb2wgb3BncnAgPSBmYWxzZSwgb25lX2VzYyA9IGZhbHNlLCBpc19leHBsdGhy
ZWUgPSBmYWxzZTsKIAogCQljcCA9IHNraXBfc3BhY2VzIChjcCArIGtleS0+bGVuKTsKKworCQkv
KiAxLiBUaGUgY2Fub25pY2FsIGV4cGwzIHN5bnRheCBsb29rcyBzb21ldGhpbmcgbGlrZSB0aGlz
OgorCQkgICBcY3NfbmV3Ok5wbiBcX19ob29rX3RsX2dwdXQ6Tm4geyBcRVJST1IgfS4gIEZpcnN0
LCBpZiB3ZQorCQkgICB3YW50IHRvIHRhZyBhbnkgc3VjaCBjb21tYW5kcywgd2UgaW5jbHVkZSBv
bmx5IHRoZSBwYXJ0CisJCSAgIGJlZm9yZSB0aGUgY29sb24gKGNzX25ldykgaW4gVEVYX2RlZmVu
diBvciBURVhUQUdTLiAgU2Vjb25kLAorCQkgICBldGFncyBza2lwcyB0aGUgYXJndW1lbnQgc3Bl
Y2lmaWVyIChpbmNsdWRpbmcgdGhlIGNvbG9uKQorCQkgICBhZnRlciB0aGUgdGFnIHRva2VuLCBz
byB0aGF0IGl0IGRvZXNuJ3QgYmVjb21lIHRoZSB0YWcgbmFtZS4KKwkJICAgVGhpcmQsIHdlIHNl
dCB0aGUgYm9vbGVhbiAnaXNfZXhwbHRocmVlJyB0byB0cnVlIHNvIHRoYXQgd2UKKwkJICAgY2Fu
IHJlbW92ZSB0aGUgYXJndW1lbnQgc3BlY2lmaWVyIGZyb20gdGhlIGFjdHVhbCB0YWcgbmFtZQor
CQkgICAoX19ob29rX3RsX2dwdXQpLiAgVGhpcyBhbGwgYWxsb3dzIHVzIHRvIGluY2x1ZGUgZXhw
bDMKKwkJICAgY29uc3RydWN0cyBpbiBURVhfZGVmZW52IG9yIGluIHRoZSBlbnZpcm9ubWVudCB2
YXJpYWJsZQorCQkgICBURVhUQUdTIHdpdGhvdXQgcmVxdWlyaW5nIGEgY2hhbmdlIG9mIHNlcGFy
YXRvciwgYW5kIGl0IGFsc28KKwkJICAgYWxsb3dzIHVzIHRvIGZpbmQgdGhlIGRlZmluaXRpb24g
b2YgdmFyaWFudCBjb21tYW5kcyAod2l0aAorCQkgICBkaWZmZXJlbnQgYXJndW1lbnQgc3BlY2lm
aWVycykgZGVmaW5lZCB1c2luZywgZm9yIGV4YW1wbGUsCisJCSAgIFxjc19nZW5lcmF0ZV92YXJp
YW50Ok5uLiAgUGxlYXNlIG5vdGUgdGhhdCB0aGUgZXhwbDMgc3BlYworCQkgICByZXF1aXJlcyBl
dGFncyB0byBwYXkgbW9yZSBhdHRlbnRpb24gdG8gd2hpdGVzcGFjZSBpbiB0aGUKKwkJICAgY29k
ZS4KKworCQkgICAyLiBXZSBhbHNvIGF1dG9tYXRpY2FsbHkgcmVtb3ZlIHRoZSBhc3RlcmlzayBm
cm9tIHN0YXJyZWQKKwkJICAgdmFyaWFudHMgb2YgYWxsIGNvbW1hbmRzLCB3aXRob3V0IHRoZSBu
ZWVkIHRvIGluY2x1ZGUgdGhlCisJCSAgIHN0YXJyZWQgY29tbWFuZHMgZXhwbGljaXRseSBpbiBU
RVhfZGVmZW52IG9yIFRFWFRBR1MuICovCisJCWlmICgqY3AgPT0gJzonKQorCQkgIHsKKwkJICAg
IHdoaWxlICghY19pc3NwYWNlICgqY3ApICYmICpjcCAhPSBURVhfb3BncnApCisJCSAgICAgIGNw
Kys7CisJCSAgICBjcCA9IHNraXBfc3BhY2VzIChjcCk7CisJCSAgICBpc19leHBsdGhyZWUgPSB0
cnVlOworCQkgIH0KKwkJZWxzZSBpZiAoKmNwID09ICcqJykKKwkJICBjcCsrOworCisJCS8qIFNr
aXAgdGhlIG9wdGlvbmFsIGFyZ3VtZW50cyB0byBjb21tYW5kcyBpbiB0aGUgdGFncyBsaXN0IHNv
CisJCSAgIHRoYXQgdGhlc2UgYXJndW1lbnRzIGRvbid0IGVuZCB1cCBhcyB0aGUgbmFtZSBvZiB0
aGUgdGFnLgorCQkgICBUaGUgbmFtZSB3aWxsIGluc3RlYWQgY29tZSBmcm9tIHRoZSBhcmd1bWVu
dCBpbiBjdXJseSBicmFjZXMKKwkJICAgdGhhdCBmb2xsb3dzIHRoZSBvcHRpb25hbCBvbmVzLiAq
LworCQl3aGlsZSAoKmNwICE9ICdcMCcgJiYgKmNwICE9ICclJykKKwkJICB7CisJCSAgICBpZiAo
KmNwID09ICdbJykKKwkJICAgICAgeworCQkJd2hpbGUgKCpjcCAhPSAnXScgJiYgKmNwICE9ICdc
MCcgJiYgKmNwICE9ICclJykKKwkJCSAgY3ArKzsKKwkJICAgICAgfQorCQkgICAgZWxzZSBpZiAo
KmNwID09ICcoJykKKwkJICAgICAgeworCQkJd2hpbGUgKCpjcCAhPSAnKScgJiYgKmNwICE9ICdc
MCcgJiYgKmNwICE9ICclJykKKwkJCSAgY3ArKzsKKwkJICAgICAgfQorCQkgICAgZWxzZSBpZiAo
KmNwID09ICddJyB8fCAqY3AgPT0gJyknKQorCQkgICAgICBjcCsrOworCQkgICAgZWxzZQorCQkg
ICAgICBicmVhazsKKwkJICB9CiAJCWlmICgqY3AgPT0gVEVYX29wZ3JwKQogCQkgIHsKIAkJICAg
IG9wZ3JwID0gdHJ1ZTsKIAkJICAgIGNwKys7CisJCSAgICBjcCA9IHNraXBfc3BhY2VzIChjcCk7
IC8qIEZvciBleHBsMyBjb2RlLiAqLwogCQkgIH0KKworCQkvKiBSZW1vdmluZyB0aGUgVGVYIGVz
Y2FwZSBjaGFyYWN0ZXIgZnJvbSB0YWcgbmFtZXMgc2ltcGxpZmllcworCQkgICB0aGluZ3MgZm9y
IGVkaXRvcnMgZmluZGluZyB0YWdnZWQgY29tbWFuZHMgaW4gVGVYIGJ1ZmZlcnMuCisJCSAgIFRo
aXMgYXBwbGllcyB0byBFbWFjcyBidXQgYWxzbyB0byB0aGUgdGFnLWZpbmRpbmcgYmVoYXZpb3IK
KwkJICAgb2YgYXQgbGVhc3Qgc29tZSBvZiB0aGUgZWRpdG9ycyB0aGF0IHVzZSBjdGFncywgdGhv
dWdoIGluCisJCSAgIHRoZSBsYXR0ZXIgY2FzZSB0aGlzIHdpbGwgcmVtYWluIHN1Ym9wdGltYWwu
ICBUaGUKKwkJICAgdW5kb2N1bWVudGVkIGN0YWdzIG9wdGlvbiAnLS1uby1kdXBsaWNhdGVzJyBt
YXkgaGVscC4gKi8KKwkJaWYgKCpjcCA9PSBURVhfZXNjKQorCQkgIHsKKwkJICAgIGNwKys7CisJ
CSAgICBvbmVfZXNjID0gdHJ1ZTsKKwkJICB9CisKKwkJLyogVGVzdGluZyAhY19pc3NwYWNlICYm
ICFjX2lzcHVuY3QgaXMgc2ltcGxlciwgYnV0IGhhbHRzCisJCSAgIHByb2Nlc3NpbmcgYXQgdG9v
IG1hbnkgcGxhY2VzLiAgVGhlIGxpc3QgYXMgaXQgc3RhbmRzIHRyaWVzCisJCSAgIGJvdGggdG8g
ZW5zdXJlIHRoYXQgdGFnIG5hbWVzIHdpbGwgZGVyaXZlIGZyb20gbWFjcm8gbmFtZXMKKwkJICAg
cmF0aGVyIHRoYW4gZnJvbSBvcHRpb25hbCBwYXJhbWV0ZXJzIHRvIHRob3NlIG1hY3JvcywgYW5k
CisJCSAgIGFsc28gdG8gcmV0dXJuIGZpbmRhYmxlIG5hbWVzIHdoaWxlIHN0aWxsIGFsbG93aW5n
IGZvcgorCQkgICB1bm9ydGhvZG94IGNvbnN0cnVjdHMuICovCiAJCWZvciAocCA9IGNwOwotCQkg
ICAgICghY19pc3NwYWNlICgqcCkgJiYgKnAgIT0gJyMnICYmCi0JCSAgICAgICpwICE9IFRFWF9v
cGdycCAmJiAqcCAhPSBURVhfY2xncnApOworCQkgICAgICghY19pc3NwYWNlICgqcCkgJiYgKnAg
IT0gJyMnICYmICpwICE9ICc9JyAmJgorCQkgICAgICAqcCAhPSAnWycgJiYgKnAgIT0gJygnICYm
ICpwICE9IFRFWF9vcGdycCAmJgorCQkgICAgICAqcCAhPSBURVhfY2xncnAgJiYgKnAgIT0gJyIn
ICYmICpwICE9ICdcJycgJiYKKwkJICAgICAgKnAgIT0gJyUnICYmICpwICE9ICcsJyAmJiAqcCAh
PSAnfCcgJiYgKnAgIT0gJyQnKTsKIAkJICAgICBwKyspCi0JCSAgY29udGludWU7CisJCSAgLyog
SW4gZXhwbDMgY29kZSB3ZSByZW1vdmUgdGhlIGFyZ3VtZW50IHNwZWNpZmljYXRpb24gZnJvbQor
CQkgICAgIHRoZSB0YWcgbmFtZS4gIE1vcmUgZ2VuZXJhbGx5IHdlIGFsbG93IG9ubHkgb25lIChk
ZWxldGVkKQorCQkgICAgIGVzY2FwZSBjaGFyIGluIGEgdGFnIG5hbWUsIHdoaWNoIChwcmltYXJp
bHkpIGVuYWJsZXMKKwkJICAgICB0YWdnaW5nIGEgVGVYIGNvbW1hbmQncyBkaWZmZXJlbnQsIHBv
c3NpYmx5IHRlbXBvcmFyeSwKKwkJICAgICAnXGxldCcgYmluZGluZ3MuICovCisJCSAgaWYgKGlz
X2V4cGx0aHJlZSAmJiAqcCA9PSAnOicpCisJCSAgICBicmVhazsKKwkJICBlbHNlIGlmICgqcCA9
PSBURVhfZXNjKQorCQkgICAgeyAvKiBTZWNvbmQgcGFydCBvZiB0ZXN0IGlzIGZvciwgZS5nLiwg
XGNzbGV0LiAqLworCQkgICAgICBpZiAoIW9uZV9lc2MgJiYgIW9wZ3JwKQorCQkJeworCQkJICBv
bmVfZXNjID0gdHJ1ZTsKKwkJCSAgY29udGludWU7CisJCQl9CisJCSAgICAgIGVsc2UKKwkJCWJy
ZWFrOworCQkgICAgfQorCQkgIGVsc2UKKwkJICAgIGNvbnRpbnVlOworCQkvKiBGb3IgVGVYIGZp
bGVzLCB0YWdzIHdpdGhvdXQgYSBuYW1lIGFyZSBiYXNpY2FsbHkgY3J1ZnQsIGFuZAorCQkgICBp
biBzb21lIHNpdHVhdGlvbnMgdGhleSBjYW4gcHJvZHVjZSBzcHVyaW91cyBhbmQgY29uZnVzaW5n
CisJCSAgIG1hdGNoZXMuICBUcnkgdG8gY2F0Y2ggYXMgbWFueSBjYXNlcyBhcyBwb3NzaWJsZSB3
aGVyZSBhCisJCSAgIGNvbW1hbmQgbmFtZSBpcyBvZiB0aGUgZm9ybSAnXCgnLCBidXQgYXZvaWQs
IGFzIGZhciBhcworCQkgICBwb3NzaWJsZSwgdGhlIHNwdXJpb3VzIG1hdGNoZXMuICovCisJCWlm
IChwID09IGNwKQorCQkgIHsKKwkJICAgIHN3aXRjaCAoKnApCisJCSAgICAgIHsgLyogSW5jbHVk
ZSA9PyAqLworCQkgICAgICBjYXNlICcoJzogY2FzZSAnWyc6IGNhc2UgJyInOiBjYXNlICdcJyc6
CisJCSAgICAgIGNhc2UgJ1xcJzogY2FzZSAnISc6IGNhc2UgJz0nOiBjYXNlICcsJzoKKwkJICAg
ICAgY2FzZSAnfCc6IGNhc2UgJyQnOgorCQkJcCsrOworCQkJYnJlYWs7CisJCSAgICAgIGNhc2Ug
J3snOiBjYXNlICd9JzogY2FzZSAnPCc6IGNhc2UgJz4nOgorCQkJaWYgKCFvcGdycCkKKwkJCSAg
eworCQkJICAgICAgcCsrOworCQkJICAgICAgaWYgKCpwID09ICdcMCcgfHwgKnAgPT0gJyUnKQor
CQkJCWdvdG8gdGV4X25leHRfbGluZTsKKwkJCSAgfQorCQkJYnJlYWs7CisJCSAgICAgIGRlZmF1
bHQ6CisJCQlicmVhazsKKwkJICAgICAgfQorCQkgIH0KIAkJbmFtZWxlbiA9IHAgLSBjcDsKIAkJ
bGluZWxlbiA9IGxiLmxlbjsKIAkJaWYgKCFvcGdycCB8fCAqcCA9PSBURVhfY2xncnApCkBAIC01
ODI0LDkgKzU5NzIsMTggQEAgVGVYX2NvbW1hbmRzIChGSUxFICppbmYpCiAJCSAgICAgIHArKzsK
IAkJICAgIGxpbmVsZW4gPSBwIC0gbGIuYnVmZmVyICsgMTsKIAkJICB9Ci0JCW1ha2VfdGFnIChj
cCwgbmFtZWxlbiwgdHJ1ZSwKLQkJCSAgbGIuYnVmZmVyLCBsaW5lbGVuLCBsaW5lbm8sIGxpbmVj
aGFybm8pOwotCQlnb3RvIHRleF9uZXh0X2xpbmU7IC8qIFdlIG9ubHkgdGFnIGEgbGluZSBvbmNl
ICovCisJCWlmIChuYW1lbGVuKQorCQkgIG1ha2VfdGFnIChjcCwgbmFtZWxlbiwgdHJ1ZSwKKwkJ
CSAgICBsYi5idWZmZXIsIGxpbmVsZW4sIGxpbmVubywgbGluZWNoYXJubyk7CisJCS8qIExpbmVz
IHdpdGggbW9yZSB0aGFuIG9uZSBcZGVmIG9yIFxsZXQgYXJlIHN1cnByaXNpbmdseQorCQkgICBj
b21tb24gaW4gVGVYIGZpbGVzLCBlc3BlY2lhbGx5IGluIHRoZSBzeXN0ZW0gZmlsZXMgdGhhdAor
CQkgICBmb3JtIHRoZSBiYXNpcyBvZiB0aGUgdmFyaW91cyBUZVggZm9ybWF0cy4gIFRoaXMgdGFn
cyB0aGVtCisJCSAgIGFsbC4gKi8KKwkJLyogZ290byB0ZXhfbmV4dF9saW5lOyAvXCogV2Ugb25s
eSB0YWcgYSBsaW5lIG9uY2UgKlwvICovCisJCXdoaWxlICgqY3AgIT0gJ1wwJyAmJiAqY3AgIT0g
JyUnICYmICpjcCAhPSBURVhfZXNjKQorCQkgIGNwKys7CisJCWlmICgqY3AgIT0gVEVYX2VzYykK
KwkJICBnb3RvIHRleF9uZXh0X2xpbmU7CiAJICAgICAgfQogCX0KICAgICB0ZXhfbmV4dF9saW5l
OgpkaWZmIC0tZ2l0IGEvbGlzcC90ZXh0bW9kZXMvdGV4LW1vZGUuZWwgYi9saXNwL3RleHRtb2Rl
cy90ZXgtbW9kZS5lbAppbmRleCA5N2M5NTAyNjdjNi4uMjI0OTMwZDY4YWUgMTAwNjQ0Ci0tLSBh
L2xpc3AvdGV4dG1vZGVzL3RleC1tb2RlLmVsCisrKyBiL2xpc3AvdGV4dG1vZGVzL3RleC1tb2Rl
LmVsCkBAIC02MzYsNiArNjM2LDE0IEBAIHRleC1mb250LWxvY2sta2V5d29yZHMtMgogCSAgICAg
IDMgJyh0ZXgtZm9udC1sb2NrLWFwcGVuZC1wcm9wICdib2xkKSAnYXBwZW5kKSkpKSkKICAgICJH
YXVkeSBleHByZXNzaW9ucyB0byBoaWdobGlnaHQgaW4gVGVYIG1vZGVzLiIpCiAKKyhkZWZ2YXIt
bG9jYWwgdGV4LWV4cGwtcmVnaW9uLWxpc3QgbmlsCisgICJMaXN0IG9mIHJlZ2lvbiBib3VuZGFy
aWVzIHdoZXJlIGV4cGwzIHN5bnRheCBpcyBhY3RpdmUuCitJdCB3aWxsIGJlIG5pbCBpbiBidWZm
ZXJzIHdoZXJlIGV4cGwzIHN5bnRheCBpcyBhbHdheXMgYWN0aXZlLCBlLmcuLAorZXhwbDMgY2xh
c3NlcyBvciBwYWNrYWdlcy4iKQorCisoZGVmdmFyLWxvY2FsIHRleC1leHBsLWJ1ZmZlci1wIG5p
bAorICAiTm9uLW5pbCBpbiBidWZmZXJzIHdoZXJlIGV4cGwzIHN5bnRheCBpcyBhbHdheXMgYWN0
aXZlLiIpCisKIChkZWZ1biB0ZXgtZm9udC1sb2NrLXN1c2NyaXB0IChwb3MpCiAgICh1bmxlc3Mg
KG9yIChtZW1xIChnZXQtdGV4dC1wcm9wZXJ0eSBwb3MgJ2ZhY2UpCiAJCSAgICAnKGZvbnQtbG9j
ay1jb25zdGFudC1mYWNlIGZvbnQtbG9jay1idWlsdGluLWZhY2UKQEAgLTY0NSw3ICs2NTMsMTcg
QEAgdGV4LWZvbnQtbG9jay1zdXNjcmlwdAogCQkgICAgKHBvcyBwb3MpKQogCQkod2hpbGUgKGVx
IChjaGFyLWJlZm9yZSBwb3MpID9cXCkKIAkJICAoc2V0cSBwb3MgKDEtIHBvcykgb2RkIChub3Qg
b2RkKSkpCi0JCW9kZCkpCisJCW9kZCkKKyAgICAgICAgICAgICAgOzsgQ2hlY2sgaWYgUE9TIGlz
IGluIGFuIGV4cGwzIHN5bnRheCByZWdpb24gb3IgYW4gZXhwbDMgYnVmZmVyCisgICAgICAgICAg
ICAgICh3aGVuIChlcSAoY2hhci1hZnRlciBwb3MpID9fKQorICAgICAgICAgICAgICAgIChvciB0
ZXgtZXhwbC1idWZmZXItcAorICAgICAgICAgICAgICAgICAgICAoYW5kCisgICAgICAgICAgICAg
ICAgICAgICB0ZXgtZXhwbC1yZWdpb24tbGlzdAorICAgICAgICAgICAgICAgICAgICAgKGNhdGNo
ICdyZXN1bHQKKwkgICAgICAgICAgICAgICAoZG9saXN0IChyYW5nZSB0ZXgtZXhwbC1yZWdpb24t
bGlzdCkKKwkgICAgICAgICAgICAgICAgIChhbmQgKD4gcG9zIChjYXIgcmFuZ2UpKQorCSAgICAg
ICAgICAgICAgICAgICAgICAoPCBwb3MgKGNkciByYW5nZSkpCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAodGhyb3cgJ3Jlc3VsdCB0KSkpKSkpKSkKICAgICAoaWYgKGVxIChjaGFyLWFm
dGVyIHBvcykgP18pCiAJYChmYWNlIHN1YnNjcmlwdCBkaXNwbGF5IChyYWlzZSAsKGNhciB0ZXgt
Zm9udC1zY3JpcHQtZGlzcGxheSkpKQogICAgICAgYChmYWNlIHN1cGVyc2NyaXB0IGRpc3BsYXkg
KHJhaXNlICwoY2FkciB0ZXgtZm9udC1zY3JpcHQtZGlzcGxheSkpKSkpKQpAQCAtMTI4OSw4ICsx
MzA3LDE2IEBAIHRleC1jb21tb24taW5pdGlhbGl6YXRpb24KICAgICAgICAgICAgICAgICAjJ3Rl
eC0tcHJldHRpZnktc3ltYm9scy1jb21wb3NlLXApCiAgIChzZXRxLWxvY2FsIHN5bnRheC1wcm9w
ZXJ0aXplLWZ1bmN0aW9uCiAJICAgICAgKHN5bnRheC1wcm9wZXJ0aXplLXJ1bGVzIGxhdGV4LXN5
bnRheC1wcm9wZXJ0aXplLXJ1bGVzKSkKKyAgOzsgRG9uJ3QgYWRkIGV4dHJhIHByb2Nlc3Npbmcg
dG8gYHN5bnRheC1wcm9wZXJ0aXplJyBpbiBmaWxlcyB3aGVyZQorICA7OyBleHBsMyBzeW50YXgg
aXMgYWx3YXlzIGFjdGl2ZS4KKyAgOmFmdGVyLWhvb2sgKHByb2duICh0ZXgtZXhwbC1idWZmZXIt
cGFyc2UpCisgICAgICAgICAgICAgICAgICAgICAodW5sZXNzIHRleC1leHBsLWJ1ZmZlci1wCisg
ICAgICAgICAgICAgICAgICAgICAgIChhZGQtaG9vayAnc3ludGF4LXByb3BlcnRpemUtZXh0ZW5k
LXJlZ2lvbi1mdW5jdGlvbnMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMndGV4
LWV4cGwtcmVnaW9uLXNldCBuaWwgdCkpKQogICA7OyBUQUJzIGluIHZlcmJhdGltIGVudmlyb25t
ZW50cyBkb24ndCBkbyB3aGF0IHlvdSB0aGluay4KICAgKHNldHEtbG9jYWwgaW5kZW50LXRhYnMt
bW9kZSBuaWwpCisgIDs7IFNldCB1cCB4cmVmIGJhY2tlbmQgaW4gVGVYIGJ1ZmZlcnMuCisgIChh
ZGQtaG9vayAneHJlZi1iYWNrZW5kLWZ1bmN0aW9ucyAjJ3RleC0teHJlZi1iYWNrZW5kIG5pbCB0
KQogICA7OyBPdGhlciB2YXJzIHRoYXQgc2hvdWxkIGJlIGJ1ZmZlci1sb2NhbC4KICAgKG1ha2Ut
bG9jYWwtdmFyaWFibGUgJ3RleC1jb21tYW5kKQogICAobWFrZS1sb2NhbC12YXJpYWJsZSAndGV4
LXN0YXJ0LW9mLWhlYWRlcikKQEAgLTE5MzYsNiArMTk2MiwzNSBAQCB0ZXgtY291bnQtd29yZHMK
IAkJKGZvcndhcmQtc2V4cCAxKSkpKSkpCiAgICAgICAobWVzc2FnZSAiJXMgd29yZHMiIGNvdW50
KSkpKQogCisoZGVmdW4gdGV4LWV4cGwtYnVmZmVyLXBhcnNlICgpCisgICJJZGVudGlmeSBidWZm
ZXJzIHdoZXJlIGV4cGwzIHN5bnRheCBpcyBhbHdheXMgYWN0aXZlLiIKKyAgKHNhdmUtZXhjdXJz
aW9uCisgICAgKGdvdG8tY2hhciAocG9pbnQtbWluKSkKKyAgICAod2hlbiAodGV4LXNlYXJjaC1u
b25jb21tZW50CisJICAgKHJlLXNlYXJjaC1mb3J3YXJkCisJICAgICJcXCg/OlxcXFxcXCg/OkV4
cGxGaWxlXFx8UHJvdmlkZXNFeHBsXFx8X194cGFyc2VfZmlsZVxcKVxcKSIKKwkgICAgbmlsIHQp
KQorICAgICAgKHNldHEgdGV4LWV4cGwtYnVmZmVyLXAgdCkpKSkKKworKGRlZnVuIHRleC1leHBs
LXJlZ2lvbi1zZXQgKF9iZWcgX2VuZCkKKyAgIkNyZWF0ZSBhIGxpc3Qgb2YgcmVnaW9ucyB3aGVy
ZSBleHBsMyBzeW50YXggaXMgYWN0aXZlLgorVGhpcyBmdW5jdGlvbiB1cGRhdGVzIHRoZSBsaXN0
IHdoZW5ldmVyIGBzeW50YXgtcHJvcGVydGl6ZScgcnVucywgYW5kCitzdG9yZXMgaXQgaW4gdGhl
IGJ1ZmZlci1sb2NhbCB2YXJpYWJsZSBgdGV4LWV4cGwtcmVnaW9uLWxpc3QnLiAgVGhlCitsaXN0
IHdpbGwgYWx3YXlzIGJlIG5pbCB3aGVuIHRoZSBidWZmZXIgdmlzaXRzIGFuIGV4cGwzIGZpbGUs
IGUuZy4sIGFuCitleHBsMyBjbGFzcyBvciBwYWNrYWdlLCB3aGVyZSBleHBsMyBzeW50YXggaXMg
YWx3YXlzIGFjdGl2ZS4iCisgICh1bmxlc3Mgc3ludGF4LXBwc3MtLXVwZGF0ZWQtY2FjaGU7OyBT
dG9wIGZvcndhcmQgc2VhcmNoIHJ1bm5pbmcgdHdpY2UuCisgICAgKHNldHEgdGV4LWV4cGwtcmVn
aW9uLWxpc3QgbmlsKQorICAgIDs7IExlYXZpbmcgdGhpcyB0ZXN0IGhlcmUgYWxsb3dzIHVzZXJz
IHRvIHNldCBgdGV4LWV4cGwtYnVmZmVyLXAnCisgICAgOzsgaW5kZXBlbmRlbnRseSBvZiB0aGUg
bW9kZSdzIGF1dG9tYXRpYyBkZXRlY3Rpb24gb2YgYW4gZXhwbDMgZmlsZS4KKyAgICAodW5sZXNz
IHRleC1leHBsLWJ1ZmZlci1wCisgICAgICAoZ290by1jaGFyIChwb2ludC1taW4pKQorICAgICAg
KHdoaWxlICh0ZXgtc2VhcmNoLW5vbmNvbW1lbnQKKyAgICAgICAgICAgICAgKHJlLXNlYXJjaC1m
b3J3YXJkICJcXEV4cGxTeW50YXhPbiIgbmlsIHQpKQorICAgICAgICAobGV0ICgobmV3LWJlZyAo
cG9pbnQpKQorICAgICAgICAgICAgICAobmV3LWVuZCAob3IgKHRleC1zZWFyY2gtbm9uY29tbWVu
dAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIChyZS1zZWFyY2gtZm9yd2FyZCAiXFxFeHBs
U3ludGF4T2ZmIiBuaWwgdCkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAocG9pbnQtbWF4
KSkpKQorICAgICAgICAgIChwdXNoIChjb25zIG5ldy1iZWcgbmV3LWVuZCkgdGV4LWV4cGwtcmVn
aW9uLWxpc3QpKSkpKSkKIAogDAogOzs7IEludm9raW5nIFRlWCBpbiBhbiBpbmZlcmlvciBzaGVs
bC4KQEAgLTM3NDIsNiArMzc5NywzMjEgQEAgdGV4LWNoa3RleAogICAgICAgKHByb2Nlc3Mtc2Vu
ZC1yZWdpb24gdGV4LWNoa3RleC0tcHJvY2VzcyAocG9pbnQtbWluKSAocG9pbnQtbWF4KSkKICAg
ICAgIChwcm9jZXNzLXNlbmQtZW9mIHRleC1jaGt0ZXgtLXByb2Nlc3MpKSkpCiAKKwwKKzs7OyBY
cmVmIGJhY2tlbmQKKworOzsgSGVyZSB3ZSBsaWdodGx5IGFkYXB0IHRoZSBkZWZhdWx0IGV0YWdz
IGJhY2tlbmQgZm9yIHhyZWYgc28gdGhhdAorOzsgdGhlIG1haW4geHJlZiB1c2VyIGNvbW1hbmRz
IChpbmNsdWRpbmcgYHhyZWYtZmluZC1kZWZpbml0aW9ucycsCis7OyBgeHJlZi1maW5kLWFwcm9w
b3MnLCBhbmQgYHhyZWYtZmluZC1yZWZlcmVuY2VzJyBbb24gTS0uLCBDLU0tLiwgYW5kCis7OyBN
LT8sIHJlc3BlY3RpdmVseV0pIHdvcmsgaW4gVGVYIGJ1ZmZlcnMuICBUaGUgb25seSBtZXRob2Rz
IHdlCis7OyBhY3R1YWxseSBtb2RpZnkgYXJlIGB4cmVmLWJhY2tlbmQtaWRlbnRpZmllci1hdC1w
b2ludCcgYW5kCis7OyBgeHJlZi1iYWNrZW5kLXJlZmVyZW5jZXMnLiAgTWFueSBvZiB0aGUgY29t
cGxpY2F0aW9ucyBoZXJlLCBhbmQgaW4KKzs7IGBldGFncycgaXRzZWxmLCBhcmUgZHVlIHRvIHRo
ZSBuZWNlc3NpdHkgb2YgcGFyc2luZyBib3RoIHRoZSBvbGQKKzs7IFRlWCBzeW50YXggYW5kIHRo
ZSBuZXcgZXhwbDMgc3ludGF4LCB3aGljaCB3aWxsIGNvbnRpbnVlIHRvIGFwcGVhcgorOzsgdG9n
ZXRoZXIgaW4gZG9jdW1lbnRzIGZvciB0aGUgZm9yZXNlZWFibGUgZnV0dXJlLiAgU3luY2hyb25p
emluZworOzsgRW1hY3MgYW5kIGBldGFncycgdGhpcyB3YXkgYWltcyB0byBpbXByb3ZlIHRoZSB1
c2VyIGV4cGVyaWVuY2UgIm91dAorOzsgb2YgdGhlIGJveC4iCisKKyhkZWZ2YXIgdGV4LXRoaW5n
YXRwdC1leGNsdWRlLWNoYXJzICcoP1xcID9ceyA/XH0pCisgICJFeGNsdWRlIHRoZXNlIGNoYXJz
IGJ5IGRlZmF1bHQgZnJvbSBUZVggdGhpbmctYXQtcG9pbnQuCisKK1RoZSBUZVggYHhyZWYtYmFj
a2VuZC1pZGVudGlmaWVyLWF0LXBvaW50JyBtZXRob2QgdXNlcyB0aGUgY2hhcmFjdGVycworbGlz
dGVkIGluIHRoaXMgdmFyaWFibGUgdG8gZGVjaWRlIG9uIHRoZSBkZWZhdWx0IHNlYXJjaCBzdHJp
bmcgdG8KK3ByZXNlbnQgdG8gdGhlIHVzZXIgd2hvIGNhbGxzIGFuIGB4cmVmJyBjb21tYW5kLiAg
VGhlc2UgY2hhcmFjdGVycworYmVjb21lIHBhcnQgb2YgYSByZWdleHAgd2hpY2ggYWx3YXlzIGV4
Y2x1ZGVzIHRoZW0gZnJvbSB0aGF0IGRlZmF1bHQKK3N0cmluZy4gIEZvciB0aGUgYHhyZWYnIGNv
bW1hbmRzIHRvIGZ1bmN0aW9uIHByb3Blcmx5IGluIFRlWCBidWZmZXJzLCBhdAorbGVhc3QgdGhl
IFRlWCBlc2NhcGUgYW5kIHRoZSB0d28gVGVYIGdyb3VwaW5nIGNoYXJhY3RlcnMgc2hvdWxkIGJl
CitsaXN0ZWQgaGVyZS4gIFNob3VsZCB5b3VyIFRlWCBkb2N1bWVudHMgY29udGFpbiBvdGhlciBj
aGFyYWN0ZXJzIHdoaWNoCit5b3Ugd2FudCB0byBleGNsdWRlIGJ5IGRlZmF1bHQsIHRoZW4geW91
IGNhbiBhZGQgdGhlbSB0byB0aGUgbGlzdCwKK3Rob3VnaCB5b3UgbWF5IHdpc2ggdG8gY29uc3Vs
dCB0aGUgZnVuY3Rpb25zCitgdGV4LXRoaW5nYXRwdC0tYmVnaW5uaW5nLW9mLXN5bWJvbCcgYW5k
IGB0ZXgtdGhpbmdhdHB0LS1lbmQtb2Ytc3ltYm9sJwordG8gc2VlIHdoYXQgdGhlIHJlZ2V4cCBh
bHJlYWR5IGNvbnRhaW5zLiAgSWYgeW91ciBkb2N1bWVudHMgY29udGFpbgorbm9uLXN0YW5kYXJk
IGVzY2FwZSBhbmQgZ3JvdXBpbmcgY2hhcmFjdGVycywgdGhlbiB5b3UgY2FuIHJlcGxhY2UgdGhl
Cit0aHJlZSBsaXN0ZWQgaGVyZSB3aXRoIHlvdXIgb3duLCB0aGVyZWJ5IGFsbG93aW5nIHRoZSB0
aHJlZSBzdGFuZGFyZAorY2hhcmFjdGVycyB0byBhcHBlYXIgYnkgZGVmYXVsdCBpbiBzZWFyY2gg
c3RyaW5ncy4gIFBsZWFzZSBiZSBhd2FyZSwKK2hvd2V2ZXIsIHRoYXQgdGhlIGBldGFncycgcHJv
Z3JhbSBvbmx5IHJlY29nbml6ZXMgYFxcJyAoOTIpIGFuZCBgIScgKDMzKQorYXMgZXNjYXBlIGNo
YXJhY3RlcnMgaW4gVGVYIGRvY3VtZW50cywgYW5kIGlmIGl0IGRldGVjdHMgdGhlIGxhdHRlciBp
dAorYWxzbyB1c2VzIGA8PicgYXMgdGhlIFRlWCBncm91cGluZyBjb25zdHJ1Y3QgcmF0aGVyIHRo
YW4gYHt9Jy4gIFNldHRpbmcKK3RoZSBlc2NhcGUgYW5kIGdyb3VwaW5nIGNoYXJzIHRvIGFueXRo
aW5nIG90aGVyIHRoYW4gYFxcPVxce30nIG9yIGAhPD4nCit3aWxsIG5vdCBiZSB1c2VmdWwgd2l0
aG91dCBjaGFuZ2VzIHRvIGBldGFncycsIGF0IGxlYXN0IGZvciBjb21tYW5kcwordGhhdCBzZWFy
Y2ggdGFncyB0YWJsZXMsIHN1Y2ggYXMgXFxbeHJlZi1maW5kLWRlZmluaXRpb25zXSBhbmQgXAor
XFxbeHJlZi1maW5kLWFwcm9wb3NdLgorCitTaG91bGQgeW91IHdpc2ggdG8gY2hhbmdlIHRoZSBk
ZWZhdWx0cywgcGxlYXNlIGFsc28gYmUgYXdhcmUgdGhhdCwKK3dpdGhvdXQgZnVydGhlciBtb2Rp
ZmljYXRpb25zIHRvIHRleC1tb2RlLmVsLCB0aGUgdXN1YWwgdGV4dC1wYXJzaW5nCityb3V0aW5l
cyBmb3IgYGZvbnQtbG9jaycgYW5kIHRoZSBsaWtlIHdvbid0IHdvcmsgY29ycmVjdGx5LCBhcyB0
aGUKK2RlZmF1bHQgZXNjYXBlIGFuZCBncm91cGluZyBjaGFyYWN0ZXJzIGFyZSBjdXJyZW50bHkg
aGFyZCBjb2RlZCBpbiBtYW55CitwbGFjZXMuIikKKworOzsgUG9wdWxhdGUgYHNlbWFudGljLXN5
bXJlZi1maWxlcGF0dGVybi1hbGlzdCcgZm9yIHRoZSBpbi10cmVlIG1vZGVzOworOzsgQVVDVGVY
IGlzIGRvaW5nIHRoZSBzYW1lIGZvciBpdHMgbW9kZXMuCisod2l0aC1ldmFsLWFmdGVyLWxvYWQg
J3NlbWFudGljL3N5bXJlZi9ncmVwCisgIChkZWZ2YXIgc2VtYW50aWMtc3ltcmVmLWZpbGVwYXR0
ZXJuLWFsaXN0KQorICAocHVzaCAnKGxhdGV4LW1vZGUgIiouW3RUXWVbeFhdIiAiKi5sdHgiICIq
LnN0eSIgIiouY2xbc29dIgorICAgICAgICAgICAgICAgICAgICAgIiouYmJsIiAiKi5kcnYiICIq
Lmh2YSIpCisgICAgICAgIHNlbWFudGljLXN5bXJlZi1maWxlcGF0dGVybi1hbGlzdCkKKyAgKHB1
c2ggJyhwbGFpbi10ZXgtbW9kZSAiKi5bdFRdZVt4WF0iICIqLmlucyIpCisgICAgICAgIHNlbWFu
dGljLXN5bXJlZi1maWxlcGF0dGVybi1hbGlzdCkKKyAgKHB1c2ggJyhkb2N0ZXgtbW9kZSAiKi5k
dHgiKSBzZW1hbnRpYy1zeW1yZWYtZmlsZXBhdHRlcm4tYWxpc3QpKQorCisoZGVmdW4gdGV4LS14
cmVmLWJhY2tlbmQgKCkgJ3RleC1ldGFncykKKworOzsgU2V0dXAgQVVDVGVYIG1vZGVzIChmb3Ig
dGVzdGluZyBwdXJwb3NlcyBvbmx5KS4KKworKGFkZC1ob29rICdUZVgtbW9kZS1ob29rICMndGV4
LXNldC1hdWN0ZXgteHJlZi1iYWNrZW5kKQorCisoZGVmdW4gdGV4LXNldC1hdWN0ZXgteHJlZi1i
YWNrZW5kICgpCisgIChhZGQtaG9vayAneHJlZi1iYWNrZW5kLWZ1bmN0aW9ucyAjJ3RleC0teHJl
Zi1iYWNrZW5kIG5pbCB0KSkKKworOzsgYHhyZWYtZmluZC1yZWZlcmVuY2VzJyBjdXJyZW50bHkg
bWF5IG5lZWQgdGhpcyB3aGVuIGNhbGxlZCBmcm9tIGEKKzs7IGxhdGV4LW1vZGUgYnVmZmVyIGlu
IG9yZGVyIHRvIHNlYXJjaCBmaWxlcyBvciBidWZmZXJzIHdpdGggYSAudGV4Cis7OyBzdWZmaXgg
KGluY2x1ZGluZyB0aGUgYnVmZmVyIGZyb20gd2hpY2ggaXQgaGFzIGJlZW4gY2FsbGVkKS4gIFdl
Cis7OyBhcHBlbmQgaXQgdG8gYGF1dG8tbW9kZS1hbGlzdCcgc28gYXMgbm90IHRvIGludGVyZmVy
ZSB3aXRoIHRoZSB1c3VhbAorOzsgbW9kZS1zZXR0aW5nIGFwcGFyYXR1cy4gIENoYW5nZXMgaGVy
ZSBhbmQgaW4gQVVDVGVYIHNob3VsZCBzb29uCis7OyByZW5kZXIgaXQgdW5uZWNlc3NhcnkuCiso
YWRkLXRvLWxpc3QgJ2F1dG8tbW9kZS1hbGlzdCAnKCJcXC5bdFRdZVt4WF1cXCciIC4gbGF0ZXgt
bW9kZSkgdCkKKworKGNsLWRlZm1ldGhvZCB4cmVmLWJhY2tlbmQtaWRlbnRpZmllci1hdC1wb2lu
dCAoKF9iYWNrZW5kIChlcWwgJ3RleC1ldGFncykpKQorICAocmVxdWlyZSAnZXRhZ3MpCisgICh0
ZXgtLXRoaW5nLWF0LXBvaW50KSkKKworOzsgVGhlIGRldGVjdGlvbiBvZiBgXycgYW5kIGA6JyBp
cyBhIHByaW1pdGl2ZSBtZXRob2QgZm9yIGRldGVybWluaW5nCis7OyB3aGV0aGVyIHBvaW50IGlz
IG9uIGFuIGV4cGwzIGNvbnN0cnVjdC4gIEl0IG1heSBmYWlsIGluIHNvbWUKKzs7IGluc3RhbmNl
cy4KKyhkZWZ1biB0ZXgtLXRoaW5nLWF0LXBvaW50ICgpCisgICJEZW1hcmNhdGUgYHRoaW5nLWF0
LXBvaW50JyBmb3IgdGhlIFRlWCBgeHJlZicgYmFja2VuZC4iCisgIChsZXQgKChib3VuZHMgKHRl
eC0tYm91bmRzLW9mLXN5bWJvbC1hdC1wb2ludCkpKQorICAgICh3aGVuIGJvdW5kcworICAgICAg
KGxldCAoKHRleHN5bSAoYnVmZmVyLXN1YnN0cmluZy1uby1wcm9wZXJ0aWVzIChjYXIgYm91bmRz
KSAoY2RyIGJvdW5kcykpKSkKKyAgICAgICAgKGlmIChhbmQgKG5vdCAoc3RyaW5nLW1hdGNoLXAg
InJlZmVyZW5jZSIgKHN5bWJvbC1uYW1lIHRoaXMtY29tbWFuZCkpKQorICAgICAgICAgICAgICAg
ICAoc2VxLWNvbnRhaW5zLXAgdGV4c3ltID9fKQorICAgICAgICAgICAgICAgICAoc2VxLWNvbnRh
aW5zLXAgdGV4c3ltID86KSkKKyAgICAgICAgICAgIChzZXEtdGFrZSB0ZXhzeW0gKHNlcS1wb3Np
dGlvbiB0ZXhzeW0gPzopKQorICAgICAgICAgIHRleHN5bSkpKSkpCisKKyhkZWZ1biB0ZXgtdGhp
bmdhdHB0LS1iZWdpbm5pbmctb2Ytc3ltYm9sICgpCisgIChhbmQKKyAgIChyZS1zZWFyY2gtYmFj
a3dhcmQgKGNvbmNhdCAiW11bIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXBj
b25jYXQgIydyZWdleHAtcXVvdGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIChtYXBjYXIgIydjaGFyLXRvLXN0cmluZworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXgtdGhpbmdhdHB0LWV4Y2x1ZGUtY2hhcnMpKQor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcIipgJyM9JigpJSx8JFs6Y250cmw6XVs6
Ymxhbms6XV0iKSkKKyAgIChmb3J3YXJkLWNoYXIpKSkKKworKGRlZnVuIHRleC10aGluZ2F0cHQt
LWVuZC1vZi1zeW1ib2wgKCkKKyAgKGFuZAorICAgKHJlLXNlYXJjaC1mb3J3YXJkIChjb25jYXQg
IltdWyIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXBjb25jYXQgIydyZWdleHAt
cXVvdGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXBjYXIg
IydjaGFyLXRvLXN0cmluZworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB0ZXgtdGhpbmdhdHB0LWV4Y2x1ZGUtY2hhcnMpKQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIlwiKmAnIz0mKCklLHwkWzpjbnRybDpdWzpibGFuazpdXSIpKQorICAg
KGJhY2t3YXJkLWNoYXIpKSkKKworKGRlZnVuIHRleC0tYm91bmRzLW9mLXN5bWJvbC1hdC1wb2lu
dCAoKQorICAiU2ltcGxpZnkgYGJvdW5kcy1vZi10aGluZy1hdC1wb2ludCcgZm9yIFRlWCBgeHJl
ZicgYmFja2VuZC4iCisgIChsZXQgKChvcmlnIChwb2ludCkpKQorICAgIChpZ25vcmUtZXJyb3Jz
CisgICAgICAoc2F2ZS1leGN1cnNpb24KKwkodGV4LXRoaW5nYXRwdC0tZW5kLW9mLXN5bWJvbCkK
KwkodGV4LXRoaW5nYXRwdC0tYmVnaW5uaW5nLW9mLXN5bWJvbCkKKwkobGV0ICgoYmVnIChwb2lu
dCkpKQorCSAgKGlmICg8PSBiZWcgb3JpZykKKwkgICAgICAobGV0ICgocmVhbC1lbmQKKwkJICAg
ICAocHJvZ24KKwkJICAgICAgICh0ZXgtdGhpbmdhdHB0LS1lbmQtb2Ytc3ltYm9sKQorCQkgICAg
ICAgKHBvaW50KSkpKQorCQkoY29uZCAoKGFuZCAoPD0gb3JpZyByZWFsLWVuZCkgKDwgYmVnIHJl
YWwtZW5kKSkKKwkJICAgICAgIChjb25zIGJlZyByZWFsLWVuZCkpCisgICAgICAgICAgICAgICAg
ICAgICAgKChhbmQgKD0gb3JpZyByZWFsLWVuZCkgKD0gYmVnIHJlYWwtZW5kKSkKKwkJICAgICAg
IChjb25zIGJlZyAoMSsgYmVnKSkpKSkpKSkpKSk7OyBGb3IgMS1jaGFyIFRlWCBjb21tYW5kcy4K
KworKGNsLWRlZm1ldGhvZCB4cmVmLWJhY2tlbmQtaWRlbnRpZmllci1jb21wbGV0aW9uLXRhYmxl
ICgoX2JhY2tlbmQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIChlcWwgJ3RleC1ldGFncykpKQorICAoeHJlZi1iYWNrZW5kLWlkZW50aWZp
ZXItY29tcGxldGlvbi10YWJsZSAnZXRhZ3MpKQorCisoY2wtZGVmbWV0aG9kIHhyZWYtYmFja2Vu
ZC1pZGVudGlmaWVyLWNvbXBsZXRpb24taWdub3JlLWNhc2UgKChfYmFja2VuZAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVx
bAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICd0ZXgtZXRhZ3MpKSkKKyAgKHhyZWYtYmFja2VuZC1pZGVudGlmaWVyLWNvbXBs
ZXRpb24taWdub3JlLWNhc2UgJ2V0YWdzKSkKKworKGNsLWRlZm1ldGhvZCB4cmVmLWJhY2tlbmQt
ZGVmaW5pdGlvbnMgKChfYmFja2VuZCAoZXFsICd0ZXgtZXRhZ3MpKSBzeW1ib2wpCisgICh4cmVm
LWJhY2tlbmQtZGVmaW5pdGlvbnMgJ2V0YWdzIHN5bWJvbCkpCisKKyhjbC1kZWZtZXRob2QgeHJl
Zi1iYWNrZW5kLWFwcm9wb3MgKChfYmFja2VuZCAoZXFsICd0ZXgtZXRhZ3MpKSBwYXR0ZXJuKQor
ICAoeHJlZi1iYWNrZW5kLWFwcm9wb3MgJ2V0YWdzIHBhdHRlcm4pKQorCis7OyBUaGUgYHhyZWYt
YmFja2VuZC1yZWZlcmVuY2VzJyBtZXRob2QgcmVxdWlyZXMgbW9yZSBjb2RlIHRoYW4gdGhlCis7
OyBvdGhlcnMgZm9yIGF0IGxlYXN0IHR3byBtYWluIHJlYXNvbnM6IFRlWCBhdXRob3JzIGhhdmUg
dHlwaWNhbGx5IGJlZW4KKzs7IGZyZWUgaW4gdGhlaXIgaW52ZW50aW9uIG9mIG5ldyBmaWxlIHR5
cGVzIHdpdGggbmV3IHN1ZmZpeGVzLCBhbmQgdGhleQorOzsgaGF2ZSBhbHNvIHRlbmRlZCBzb21l
dGltZXMgdG8gaW5jbHVkZSBub24tc3ltYm9sIGNoYXJhY3RlcnMgaW4KKzs7IGNvbW1hbmQgbmFt
ZXMuICBXaGVuIGNvbWJpbmVkIHdpdGggdGhlIGRlZmF1bHQgU2VtYW50aWMgU3ltYm9sCis7OyBS
ZWZlcmVuY2UgQVBJLCB0aGVzZSB0d28gY2hhcmFjdGVyaXN0aWNzIG9mIFRlWCBjb2RlIG1lYW4g
dGhhdCBhCis7OyBjb21tYW5kIGxpa2UgYHhyZWYtZmluZC1yZWZlcmVuY2VzJyB3b3VsZCBvZnRl
biBmYWlsIHRvIGZpbmQgYW55IGhpdHMKKzs7IGZvciBhIHN5bWJvbCBhdCBwb2ludCwgaW5jbHVk
aW5nIHRoZSBvbmUgdW5kZXIgcG9pbnQgaW4gdGhlIGN1cnJlbnQKKzs7IGJ1ZmZlciwgb3IgaXQg
d291bGQgZmluZCBvbmx5IHNvbWUgaW5zdGFuY2VzIGFuZCBza2lwIG90aGVycy4KKworKGRlZnVu
IHRleC1maW5kLXJlZmVyZW5jZXMtc3ludGF4LXRhYmxlICgpCisgIChsZXQgKChzdCAoaWYgKGJv
dW5kcCAnVGVYLW1vZGUtc3ludGF4LXRhYmxlKQorICAgICAgICAgICAgICAgICAobWFrZS1zeW50
YXgtdGFibGUgVGVYLW1vZGUtc3ludGF4LXRhYmxlKQorICAgICAgICAgICAgICAgKG1ha2Utc3lu
dGF4LXRhYmxlIHRleC1tb2RlLXN5bnRheC10YWJsZSkpKSkKKyAgICBzdCkpCisKKyhkZWZ2YXIg
dGV4LS14cmVmLXN5bnRheC1mdW4gbmlsKQorCisoZGVmdW4gdGV4LXhyZWYtc3ludGF4LWZ1bmN0
aW9uIChzdHIgYmVnIGVuZCkKKyAgIlByb3ZpZGUgYSBiZXNwb2tlIGBzeW50YXgtcHJvcGVydGl6
ZS1mdW5jdGlvbicgZm9yIFxcW3hyZWYtZmluZC1yZWZlcmVuY2VzXS4iCisgIChsZXQqIChncnBi
IHRlbXBzdHIKKyAgICAgICAgICAgICAgKHNocnRzdHIgKGlmIGVuZAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgKHByb2duCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzZXRxIHRl
bXBzdHIgKHNlcS10YWtlIHN0ciAoMS0gKGxlbmd0aCBzdHIpKSkpCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIChpZiBiZWcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChz
ZXRxIHRlbXBzdHIgKHNlcS1kcm9wIHRlbXBzdHIgMSkpCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgdGVtcHN0cikpCisgICAgICAgICAgICAgICAgICAgICAgICAgKHNlcS1kcm9wIHN0
ciAxKSkpCisgICAgICAgICAgICAgIChncnBhIChpZiAoYW5kIGJlZyBlbmQpCisgICAgICAgICAg
ICAgICAgICAgICAgICAocHJvZzEKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGlzdCAx
ICJfIikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKHNldHEgZ3JwYiAobGlzdCAyICJfIikp
KQorICAgICAgICAgICAgICAgICAgICAgIChsaXN0IDEgIl8iKSkpCisgICAgICAgICAgICAgIChy
ZSAoY29uY2F0IGJlZyAocmVnZXhwLXF1b3RlIHNocnRzdHIpIGVuZCkpCisgICAgICAgICAgICAg
ICh0ZW1wLXJ1bGUgKGlmIGdycGIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpc3Qg
cmUgZ3JwYSBncnBiKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpc3QgcmUgZ3JwYSkp
KSkKKyAgICA7OyBTaW1wbGUgYmVuY2htYXJrcyBzdWdnZXN0ZWQgdGhhdCB0aGUgc3BlZWQtdXAg
ZnJvbSBjb21waWxpbmcgdGhpcworICAgIDs7IGZ1bmN0aW9uIHdhcyBuZWFybHkgbmlsLCBzbyBg
ZXZhbCcgYW5kIGl0cyBub24tYnl0ZS1jb21waWxlZAorICAgIDs7IGZ1bmN0aW9uIHJlbWFpbi4K
KyAgICAoc2V0cSB0ZXgtLXhyZWYtc3ludGF4LWZ1biAoZXZhbAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBgKHN5bnRheC1wcm9wZXJ0aXplLXJ1bGVzICx0ZW1wLXJ1bGUpKSkpKQor
CisoZGVmdW4gdGV4LS1jb2xsZWN0LWZpbGUtZXh0ZW5zaW9ucyAoKQorICAiR2F0aGVyIFRlWCBm
aWxlIGV4dGVuc2lvbnMgZnJvbSBgYXV0by1tb2RlLWFsaXN0Jy4iCisgIChsZXQqICgobWxpc3Qg
KHdoZW4gKHJhc3NxIG1ham9yLW1vZGUgYXV0by1tb2RlLWFsaXN0KQorCQkgIChzZXEtZmlsdGVy
CisJCSAgIChsYW1iZGEgKGVsdCkKKwkJICAgICAoZXEgKGNkciBlbHQpIG1ham9yLW1vZGUpKQor
CQkgICBhdXRvLW1vZGUtYWxpc3QpKSkKKwkgKGxjc3ltIChpbnRlcm4tc29mdCAoZG93bmNhc2Ug
KHN5bWJvbC1uYW1lIG1ham9yLW1vZGUpKSkpCisJIChsY2xpc3QgKGFuZCBsY3N5bQorCQkgICAg
ICAobm90IChlcSBsY3N5bSBtYWpvci1tb2RlKSkKKwkJICAgICAgKHJhc3NxIGxjc3ltIGF1dG8t
bW9kZS1hbGlzdCkKKwkJICAgICAgKHNlcS1maWx0ZXIKKwkJICAgICAgIChsYW1iZGEgKGVsdCkK
KwkJCSAoZXEgKGNkciBlbHQpIGxjc3ltKSkKKwkJICAgICAgIGF1dG8tbW9kZS1hbGlzdCkpKQor
CSAoc2hvcnRzeW0gKHdoZW4gKHN0cmluZ3AgbW9kZS1uYW1lKQorCQkgICAgIChpbnRlcm4tc29m
dCAoY29uY2F0IChzdHJpbmctdHJpbS1yaWdodCBtb2RlLW5hbWUgIi8uKiIpCisJCQkJCSAgIi1t
b2RlIikpKSkKKwkgKGxjc2hvcnRzeW0gKHdoZW4gKHN0cmluZ3AgbW9kZS1uYW1lKQorCQkgICAg
ICAgKGludGVybi1zb2Z0IChkb3duY2FzZQorCQkJCSAgICAgKGNvbmNhdAorCQkJCSAgICAgIChz
dHJpbmctdHJpbS1yaWdodCBtb2RlLW5hbWUgIi8uKiIpCisJCQkJICAgICAgIi1tb2RlIikpKSkp
CisJIChzaGxpc3QgKGFuZCBzaG9ydHN5bQorCQkgICAgICAobm90IChlcSBzaG9ydHN5bSBtYWpv
ci1tb2RlKSkKKwkJICAgICAgKG5vdCAoZXEgc2hvcnRzeW0gbGNzeW0pKQorCQkgICAgICAocmFz
c3Egc2hvcnRzeW0gYXV0by1tb2RlLWFsaXN0KQorCQkgICAgICAoc2VxLWZpbHRlcgorCQkgICAg
ICAgKGxhbWJkYSAoZWx0KQorCQkJIChlcSAoY2RyIGVsdCkgc2hvcnRzeW0pKQorCQkgICAgICAg
YXV0by1tb2RlLWFsaXN0KSkpCisJIChsY3NobGlzdCAoYW5kIGxjc2hvcnRzeW0KKwkJCShub3Qg
KGVxIGxjc2hvcnRzeW0gbWFqb3ItbW9kZSkpCisJCQkobm90IChlcSBsY3Nob3J0c3ltIGxjc3lt
KSkKKwkJCShyYXNzcSBsY3Nob3J0c3ltIGF1dG8tbW9kZS1hbGlzdCkKKwkJCShzZXEtZmlsdGVy
CisJCQkgKGxhbWJkYSAoZWx0KQorCQkJICAgKGVxIChjZHIgZWx0KSBsY3Nob3J0c3ltKSkKKwkJ
CSBhdXRvLW1vZGUtYWxpc3QpKSkKKwkgKGV4dHMgKHdoZW4gKG9yIG1saXN0IGxjbGlzdCBzaGxp
c3QgbGNzaGxpc3QpCisJCSAoc2VxLXVuaW9uIChzZXEtbWFwICMnY2FyIGxjbGlzdCkKKwkJCSAg
ICAoc2VxLXVuaW9uIChzZXEtbWFwICMnY2FyIG1saXN0KQorCQkJCSAgICAgICAoc2VxLXVuaW9u
IChzZXEtbWFwICMnY2FyIGxjc2hsaXN0KQorCQkJCQkJICAoc2VxLW1hcCAjJ2NhciBzaGxpc3Qp
KSkpKSkKKwkgKGVkLWV4dHMgKHdoZW4gZXh0cworCQkgICAgKHNlcS1tYXAKKwkJICAgICAobGFt
YmRhIChlbHQpCisJCSAgICAgICAoY29uY2F0ICIqIiAoc3RyaW5nLXRyaW0gIGVsdCAiXFxcXCIg
IlxcXFwnIikpKQorCQkgICAgIGV4dHMpKSkpCisgICAgZWQtZXh0cykpCisKKyhkZWZ2YXIgdGV4
LS1idWZmZXJzLWxpc3QgbmlsKQorKGRlZnZhci1sb2NhbCB0ZXgtLW9sZC1zeW50YXgtZnVuY3Rp
b24gbmlsKQorCisoY2wtZGVmbWV0aG9kIHhyZWYtYmFja2VuZC1yZWZlcmVuY2VzICgoX2JhY2tl
bmQgKGVxbCAndGV4LWV0YWdzKSkgaWRlbnRpZmllcikKKyAgIkZpbmQgcmVmZXJlbmNlcyBvZiBJ
REVOVElGSUVSIGluIFRlWCBidWZmZXJzIGFuZCBmaWxlcy4iCisgIChyZXF1aXJlICdzZW1hbnRp
Yy9zeW1yZWYvZ3JlcCkKKyAgKGRlZnZhciBzZW1hbnRpYy1zeW1yZWYtZmlsZXBhdHRlcm4tYWxp
c3QpCisgIChsZXQgKGJ1ZnMgdGV4YnVmcworICAgICAgICAgICAgIChtb2RlIG1ham9yLW1vZGUp
KQorICAgIChkb2xpc3QgKGJ1ZiAoYnVmZmVyLWxpc3QpKQorICAgICAgKGlmIChlcSAoYnVmZmVy
LWxvY2FsLXZhbHVlICdtYWpvci1tb2RlIGJ1ZikgbW9kZSkKKyAgICAgICAgICAocHVzaCBidWYg
YnVmcykKKyAgICAgICAgKHdoZW4gKHN0cmluZy1tYXRjaC1wICIuKlxcLlt0VF1lW3hYXSIgKGJ1
ZmZlci1uYW1lIGJ1ZikpCisgICAgICAgICAgKHB1c2ggYnVmIHRleGJ1ZnMpKSkpCisgICAgKHVu
bGVzcyAoc2VxLXNldC1lcXVhbC1wIHRleC0tYnVmZmVycy1saXN0IGJ1ZnMpCisgICAgICAobGV0
KiAoKGFtYWxpc3QgKHRleC0tY29sbGVjdC1maWxlLWV4dGVuc2lvbnMpKQorCSAgICAgKGV4dGxp
c3QgKGFsaXN0LWdldCBtb2RlIHNlbWFudGljLXN5bXJlZi1maWxlcGF0dGVybi1hbGlzdCkpCisJ
ICAgICAoZXh0bGlzdC1uZXcgKHNlcS11bmlxCisgICAgICAgICAgICAgICAgICAgICAgICAgICAo
c2VxLXVuaW9uIGFtYWxpc3QgZXh0bGlzdCAjJ3N0cmluZy1tYXRjaC1wKSkpKQorCShzZXRxIHRl
eC0tYnVmZmVycy1saXN0IGJ1ZnMpCisJKGRvbGlzdCAoYnVmIGJ1ZnMpCisJICAod2hlbi1sZXQg
KChmYnVmIChidWZmZXItZmlsZS1uYW1lIGJ1ZikpCisJCSAgICAgKGV4dCAoZmlsZS1uYW1lLWV4
dGVuc2lvbiBmYnVmKSkKKwkJICAgICAoZmluZXh0IChjb25jYXQgIiouIiBleHQpKQorCQkgICAg
ICgobm90IChzZXEtZmluZCAobGFtYmRhIChlbHQpIChzdHJpbmctbWF0Y2gtcCBlbHQgZmluZXh0
KSkKKwkJCQkgICAgIGV4dGxpc3QtbmV3KSkpCisJCSAgICAgKChwdXNoIGZpbmV4dCBleHRsaXN0
LW5ldykpKSkpCisJKHVubGVzcyAoc2VxLXNldC1lcXVhbC1wIGV4dGxpc3QtbmV3IGV4dGxpc3Qp
CisJICAoc2V0ZiAoYWxpc3QtZ2V0IG1vZGUgc2VtYW50aWMtc3ltcmVmLWZpbGVwYXR0ZXJuLWFs
aXN0KQorICAgICAgICAgICAgICAgIGV4dGxpc3QtbmV3KSkpKQorICAgIChsZXQqIChzZXRzeW50
YXgKKyAgICAgICAgICAgKHB1bmN0ICh3aXRoLXN5bnRheC10YWJsZSAodGV4LWZpbmQtcmVmZXJl
bmNlcy1zeW50YXgtdGFibGUpCisgICAgICAgICAgICAgICAgICAgIChzZXEtcG9zaXRpb25zIGlk
ZW50aWZpZXIgKGxpc3QgP3cgP18pCisJCQkgICAgICAgICAgIChsYW1iZGEgKGVsdCBzeWNvZGUp
CisJCQkgICAgICAgICAgICAgKG5vdCAobWVtcSAoY2hhci1zeW50YXggZWx0KSBzeWNvZGUpKSkp
KSkKKyAgICAgICAgICAgKGVuZCAoYW5kIHB1bmN0CisgICAgICAgICAgICAgICAgICAgICAobWVt
cSAoMS0gKGxlbmd0aCBpZGVudGlmaWVyKSkgcHVuY3QpCisgICAgICAgICAgICAgICAgICAgICAo
PiAobGVuZ3RoIGlkZW50aWZpZXIpIDEpCisgICAgICAgICAgICAgICAgICAgICAoY29uY2F0ICJc
XCgiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChyZWdleHAtcXVvdGUKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIChzdHJpbmcgKGVsdCBpZGVudGlmaWVyCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEtIChsZW5ndGggaWRlbnRpZmllcikp
KSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcXCkiKSkpCisgICAgICAgICAgIChi
ZWcgKGFuZCBwdW5jdAorICAgICAgICAgICAgICAgICAgICAgKG1lbXEgMCBwdW5jdCkKKyAgICAg
ICAgICAgICAgICAgICAgIChjb25jYXQgIlxcKCIKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgKHJlZ2V4cC1xdW90ZSAoc3RyaW5nIChlbHQgaWRlbnRpZmllciAwKSkpCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICJcXCkiKSkpCisgICAgICAgICAgICh0ZXh0LW1vZGUtaG9vawor
ICAgICAgICAgICAgKGlmIChvciBlbmQgYmVnKQorICAgICAgICAgICAgICAgIChwcm9nbgorICAg
ICAgICAgICAgICAgICAgKHRleC14cmVmLXN5bnRheC1mdW5jdGlvbiBpZGVudGlmaWVyIGJlZyBl
bmQpCisgICAgICAgICAgICAgICAgICAoc2V0cSBzZXRzeW50YXggKGxhbWJkYSAoKQorCQkgICAg
ICAgICAgICAgICAgICAgIChzZXRxLWxvY2FsIHN5bnRheC1wcm9wZXJ0aXplLWZ1bmN0aW9uCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXgtLXhyZWYt
c3ludGF4LWZ1bikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzZXRxLWxv
Y2FsIFRlWC1zdHlsZS1ob29rLWFwcGxpZWQtcCB0KSkpCisgICAgICAgICAgICAgICAgICAoY29u
cyBzZXRzeW50YXggdGV4dC1tb2RlLWhvb2spKQorICAgICAgICAgICAgICB0ZXh0LW1vZGUtaG9v
aykpKQorICAgICAgKHVubGVzcyAobWVtcSAnZG9jdGV4LW1vZGUgKGRlcml2ZWQtbW9kZS1hbGwt
cGFyZW50cyBtb2RlKSkKKyAgICAgICAgKHNldHEgYnVmcyAoYXBwZW5kIHRleGJ1ZnMgYnVmcykp
KQorICAgICAgKHdoZW4gKG9yIGVuZCBiZWcpCisgICAgICAgIChkb2xpc3QgKGJ1ZiBidWZzKQor
ICAgICAgICAgICh3aXRoLWN1cnJlbnQtYnVmZmVyIGJ1ZgorICAgICAgICAgICAgKHVubGVzcyAo
bG9jYWwtdmFyaWFibGUtcCAndGV4LS1vbGQtc3ludGF4LWZ1bmN0aW9uKQorICAgICAgICAgICAg
ICAoc2V0cSB0ZXgtLW9sZC1zeW50YXgtZnVuY3Rpb24gc3ludGF4LXByb3BlcnRpemUtZnVuY3Rp
b24pKQorICAgICAgICAgICAgKHNldHEtbG9jYWwgc3ludGF4LXByb3BlcnRpemUtZnVuY3Rpb24K
KyAgICAgICAgICAgICAgICAgICAgICAgIHRleC0teHJlZi1zeW50YXgtZnVuKQorICAgICAgICAg
ICAgKHN5bnRheC1wcHNzLWZsdXNoLWNhY2hlIChwb2ludC1taW4pKSkpKQorICAgICAgKHVud2lu
ZC1wcm90ZWN0CisgICAgICAgICAgKHhyZWYtYmFja2VuZC1yZWZlcmVuY2VzIG5pbCBpZGVudGlm
aWVyKQorICAgICAgICAod2hlbiAob3IgZW5kIGJlZykKKyAgICAgICAgICAoZG9saXN0IChidWYg
YnVmcykKKyAgICAgICAgICAgICh3aXRoLWN1cnJlbnQtYnVmZmVyIGJ1ZgorICAgICAgICAgICAg
ICAod2hlbiBidWZmZXItZmlsZS10cnVlbmFtZQorICAgICAgICAgICAgICAgIChzZXRxLWxvY2Fs
IHN5bnRheC1wcm9wZXJ0aXplLWZ1bmN0aW9uCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
dGV4LS1vbGQtc3ludGF4LWZ1bmN0aW9uKQorICAgICAgICAgICAgICAgIChzeW50YXgtcHBzcy1m
bHVzaC1jYWNoZSAocG9pbnQtbWluKSkpKSkpKSkpKQorCiAobWFrZS1vYnNvbGV0ZS12YXJpYWJs
ZSAndGV4LW1vZGUtbG9hZC1ob29rCiAgICAgICAgICAgICAgICAgICAgICAgICAidXNlIGB3aXRo
LWV2YWwtYWZ0ZXItbG9hZCcgaW5zdGVhZC4iICIyOC4xIikKIChydW4taG9va3MgJ3RleC1tb2Rl
LWxvYWQtaG9vaykKLS0gCjIuMzUuOAoK
--0000000000008be4640618800951--




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#53749: 29.0.50; [PATCH] Xref backend for TeX buffers
Resent-From: Arash Esbati <arash@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Thu, 16 May 2024 07:57:01 +0000
Resent-Message-ID: <handler.53749.B53749.171584619129574 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 53749
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: pending patch
To: David Fussner <dfussner@HIDDEN>
Cc: 53749 <at> debbugs.gnu.org, Ikumi Keita <ikumi@HIDDEN>, Dmitry Gutov <dgutov@HIDDEN>, Stefan Monnier <monnier@HIDDEN>, Tassilo Horn <tsdh@HIDDEN>, Eli Zaretskii <eliz@HIDDEN>, stefankangas@HIDDEN
Received: via spool by 53749-submit <at> debbugs.gnu.org id=B53749.171584619129574
          (code B ref 53749); Thu, 16 May 2024 07:57:01 +0000
Received: (at 53749) by debbugs.gnu.org; 16 May 2024 07:56:31 +0000
Received: from localhost ([127.0.0.1]:47270 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1s7VyZ-0007gw-6i
	for submit <at> debbugs.gnu.org; Thu, 16 May 2024 03:56:31 -0400
Received: from eggs.gnu.org ([209.51.188.92]:40342)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <arash@HIDDEN>) id 1s7VyX-0007gq-LB
 for 53749 <at> debbugs.gnu.org; Thu, 16 May 2024 03:56:30 -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 <arash@HIDDEN>)
 id 1s7VwG-0006dN-CO; Thu, 16 May 2024 03:54:08 -0400
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org;
 s=fencepost-gnu-org; h=MIME-Version:Date:References:In-Reply-To:Subject:To:
 From; bh=10MNOxlh0bACDO/SMICNgQIN4kU5DBR9acpu1mW1ZpI=; b=PHyIXq4VKlrmjXPTRmif
 k0e3b6f0i+9b2lTQfkzNZbxWzGjZJCQiGT8C00msODWwJRu9COQpwM8pGoun+z2XBHlRBzNcaK92B
 T278JnTDCNLE8fzrcKPYBhGVTPCryx25H28GVMtQIjbVxEY/P02eFbOJS33bUPF3PPL9b60kymztZ
 FMI/NHdIO/Tznyf1nozOGKbVDwWEOnhJA2Xym/phBrIYzoD08/8KvBXsmw+0fx2lNJp5GSXRKqepx
 1Zug6WPkR0jSA7IvcnmdQmwolP748aRWV72kcdqteVnL9PY2yDAbdUvWhNvjQq1aGjmKHurJl07Fo
 m4TYhINviuBLSA==;
From: Arash Esbati <arash@HIDDEN>
In-Reply-To: <CADF+RtisRw=2rKS+Kx_dFFObGktbbSvD+vqp2n-TuXhgX=8XFQ@HIDDEN>
 (David Fussner's message of "Wed, 15 May 2024 16:47:46 +0100")
References: <CADF+RtgWCLKQGwgdTNWmgesbcwq8iBxChoN8FqMOg95Ai3CYTA@HIDDEN>
 <1de34060-e93b-0a42-fff5-20e283abe0dc@HIDDEN>
 <87o7vq0zir.fsf@HIDDEN>
 <CADF+Rtjii7ZHkrfLzS63Yt1UiPPfnOrSsFZe2SMRetOS4w0vng@HIDDEN>
 <8735d20yvd.fsf@HIDDEN>
 <CADF+Rtgz5f6fcVuTLrv_N8oObRw+Uw-Je7bz54Gagb3pRgpR=g@HIDDEN>
 <CADwFkm=p8_Tbu+cXMDA8zEKovb+Ld7QFUJz_AhFnJebhik=JBg@HIDDEN>
 <CADF+RtjGfibN3Yg8mf4hVB9uPWtAwp0m6J2LRH7n0Z20S7+Yzg@HIDDEN>
 <CADwFkmkbMSXdjB6kF3a68_1vb4dv05_vMrKrvoX908nZJrpxOg@HIDDEN>
 <CADF+RtgxigxvgG0j6bbpYnrrFVF4YTKZ1Rs0JSCc8zuu5JNA2w@HIDDEN>
 <fcbc07cf-5ee9-131f-1a18-9cc28a5655f1@HIDDEN>
 <CADF+Rti2gSVvfksUVO04ptKQsXrNpwUXHQ_qFjC26D8NNh578A@HIDDEN>
 <2c5c8afa-b57e-3156-d21c-5523cacb4d87@HIDDEN>
 <831qf1mgjl.fsf@HIDDEN> <87cyyj9rpp.fsf@HIDDEN>
 <65793.1694843596@localhost>
 <CADF+RtikqxOW0XpwGTWWuGNTWjz3-MWMcO6U65Tta3PJjkRXqw@HIDDEN>
 <m24jbtim2p.fsf@HIDDEN>
 <CADF+RtiOECRmdoFD1qP=gRzS+P3tJqh_WNTnuW-1zPrY9g4VBw@HIDDEN>
 <jwvmsp7afy2.fsf-monnier+emacs@HIDDEN>
 <CADF+RtisRw=2rKS+Kx_dFFObGktbbSvD+vqp2n-TuXhgX=8XFQ@HIDDEN>
Date: Thu, 16 May 2024 09:53:59 +0200
Message-ID: <m2v83eur8o.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13)
MIME-Version: 1.0
Content-Type: text/plain
X-Spam-Score: -2.3 (--)
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 (---)

David Fussner <dfussner@HIDDEN> writes:
  
> +(defun tex-expl-buffer-parse ()
> +  "Identify buffers where expl3 syntax is always active."
> +  (save-excursion
> +    (goto-char (point-min))
> +    (when (tex-search-noncomment
> +	   (re-search-forward
> +	    "\\(?:\\\\\\(?:ExplFile\\|ProvidesExpl\\|__xparse_file\\)\\)"

Is the outer grouping necessary?  Why not just:

"\\\\\\(?:ExplFile\\|ProvidesExpl\\|__xparse_file\\)"

> +	    nil t))
> +      (setq tex-expl-buffer-p t))))
> +
> +(defun tex-expl-region-set (_beg _end)
> +  "Create a list of regions where expl3 syntax is active.
> +This function updates the list whenever `syntax-propertize' runs, and
> +stores it in the buffer-local variable `tex-expl-region-list'.  The
> +list will always be nil when the buffer visits an expl3 file, e.g., an
> +expl3 class or package, where expl3 syntax is always active."
> +  (unless syntax-ppss--updated-cache;; Stop forward search running twice.
> +    (setq tex-expl-region-list nil)
> +    ;; Leaving this test here allows users to set `tex-expl-buffer-p'
> +    ;; independently of the mode's automatic detection of an expl3 file.
> +    (unless tex-expl-buffer-p
> +      (goto-char (point-min))
> +      (while (tex-search-noncomment
> +              (re-search-forward "\\ExplSyntaxOn" nil t))

This looks wrong, I think you want `search-forward'.

> +        (let ((new-beg (point))
> +              (new-end (or (tex-search-noncomment
> +                            (re-search-forward "\\ExplSyntaxOff" nil t))

Same here.

> +                           (point-max))))
> +          (push (cons new-beg new-end) tex-expl-region-list))))))

Best, Arash




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#53749: 29.0.50; [PATCH] Xref backend for TeX buffers
Resent-From: David Fussner <dfussner@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Thu, 16 May 2024 12:58:02 +0000
Resent-Message-ID: <handler.53749.B53749.171586428122792 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 53749
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: pending patch
To: Arash Esbati <arash@HIDDEN>
Cc: 53749 <at> debbugs.gnu.org, Ikumi Keita <ikumi@HIDDEN>, Dmitry Gutov <dgutov@HIDDEN>, Stefan Monnier <monnier@HIDDEN>, Tassilo Horn <tsdh@HIDDEN>, Eli Zaretskii <eliz@HIDDEN>, stefankangas@HIDDEN
Received: via spool by 53749-submit <at> debbugs.gnu.org id=B53749.171586428122792
          (code B ref 53749); Thu, 16 May 2024 12:58:02 +0000
Received: (at 53749) by debbugs.gnu.org; 16 May 2024 12:58:01 +0000
Received: from localhost ([127.0.0.1]:48630 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1s7agJ-0005vW-Hm
	for submit <at> debbugs.gnu.org; Thu, 16 May 2024 08:58:01 -0400
Received: from mail-pg1-f171.google.com ([209.85.215.171]:49208)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <dfussner@HIDDEN>) id 1s7agD-0005vK-PS
 for 53749 <at> debbugs.gnu.org; Thu, 16 May 2024 08:57:57 -0400
Received: by mail-pg1-f171.google.com with SMTP id
 41be03b00d2f7-5e4f79007ffso112862a12.2
 for <53749 <at> debbugs.gnu.org>; Thu, 16 May 2024 05:57:51 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=googlemail.com; s=20230601; t=1715864205; x=1716469005; darn=debbugs.gnu.org;
 h=cc:to:subject:message-id:date:from:in-reply-to:references
 :mime-version:from:to:cc:subject:date:message-id:reply-to;
 bh=1J+/msAhJaP0ARxmPxGBOl1H1iGmOhUcxwtRZhtcTwM=;
 b=PWhcVNK/GReNRxqsd0Ak/7/e5MVWnwwuTEd8ARX+gNCWhNpbPiPA2uAsODwxa+FJFD
 wYy273+bdo2MNTA70IB7tH/oeRzMurYMnT1SA7Hjer0Bd65EyHsKWyZpb3FdBFAcA+8k
 KBxy/m0LToOqhWm1qgJtw9V3NbatyHutpwusmVhSFM/YCp9nWah4ZpHU0zJF84GJCwjl
 +No8u3d0DdHd1+vAHTPkwdE5LrmqZPqaLPxbc4pVvS+1WQGT+1aPhmLop/QTUiNrr0rP
 KdMazW9nDFIMilAYOZkm2goXV8YaMkb9Z4UqsgkBqH8g/MmeYByvTBgajLF6MrSXv9nJ
 jSxg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20230601; t=1715864205; x=1716469005;
 h=cc: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=1J+/msAhJaP0ARxmPxGBOl1H1iGmOhUcxwtRZhtcTwM=;
 b=FNs2gPWFmK8re8Q+15wo4YYjvjhEIY0WF9EOkhBbLq9In6mZ/aqSjQd2rPiY83SQQC
 GpViKL1gSYnO1zBWYRSZVgbP1OfrZrfAddIuRif0vh7Xis9sOXvYeK+XqjAdmufSu/h7
 uA6SBk4QuWTxXws4xIjL0jON8o31FaOaJ/rzAc9DQYplb81RM7Z/Fl6x/vhBGdNl0cYs
 spe65ZBZOQfqUX78yViYmTqaYMHwBngblLp6Q+ajazOrosEWLfMAl33EbGAa5ooLKp77
 N1ovzExnDhZAwNjLw9lp4xasMDvcZGuAnA0RE2AgO+somOxRrNvPKgGEksPmu3UzhpEI
 e10g==
X-Forwarded-Encrypted: i=1;
 AJvYcCVOQHpv7ZhttdRELVuLc/Aa126r+NVbKa5jsiIC1/uSLGz7/lAj4Zr8WKd5oruw2q+MUwrI58uJM1jzkWDP/Sd9JofTEHg=
X-Gm-Message-State: AOJu0Yz1mqKy8GK+rbw1WPBTEc6lc9jQfNYGUpOi2KQgKS9ZsuzXUZEw
 ZFyth+c6qWDP2yXEFNYHgSZYLjbok/IiogzjfK6yBYlK8s6zMAC1Fs9R3VWMS9TH/3AqDr+a2Kq
 6RgmXjxtkhtVrBNGGZ+ZrEZb24IE=
X-Google-Smtp-Source: AGHT+IGi8hW8+E7rJj/a/QeBXqimx1uBG8ETfzuhQ7o17VmCM3o8aAaoG0EHOTiCoaBY40A89pV4NECIHoGkWSK8BUI=
X-Received: by 2002:a17:90a:d251:b0:2ae:72a3:2ed4 with SMTP id
 98e67ed59e1d1-2b6cc453391mr17311889a91.15.1715864205325; Thu, 16 May 2024
 05:56:45 -0700 (PDT)
MIME-Version: 1.0
References: <CADF+RtgWCLKQGwgdTNWmgesbcwq8iBxChoN8FqMOg95Ai3CYTA@HIDDEN>
 <1de34060-e93b-0a42-fff5-20e283abe0dc@HIDDEN> <87o7vq0zir.fsf@HIDDEN>
 <CADF+Rtjii7ZHkrfLzS63Yt1UiPPfnOrSsFZe2SMRetOS4w0vng@HIDDEN>
 <8735d20yvd.fsf@HIDDEN>
 <CADF+Rtgz5f6fcVuTLrv_N8oObRw+Uw-Je7bz54Gagb3pRgpR=g@HIDDEN>
 <CADwFkm=p8_Tbu+cXMDA8zEKovb+Ld7QFUJz_AhFnJebhik=JBg@HIDDEN>
 <CADF+RtjGfibN3Yg8mf4hVB9uPWtAwp0m6J2LRH7n0Z20S7+Yzg@HIDDEN>
 <CADwFkmkbMSXdjB6kF3a68_1vb4dv05_vMrKrvoX908nZJrpxOg@HIDDEN>
 <CADF+RtgxigxvgG0j6bbpYnrrFVF4YTKZ1Rs0JSCc8zuu5JNA2w@HIDDEN>
 <fcbc07cf-5ee9-131f-1a18-9cc28a5655f1@HIDDEN>
 <CADF+Rti2gSVvfksUVO04ptKQsXrNpwUXHQ_qFjC26D8NNh578A@HIDDEN>
 <2c5c8afa-b57e-3156-d21c-5523cacb4d87@HIDDEN> <831qf1mgjl.fsf@HIDDEN>
 <87cyyj9rpp.fsf@HIDDEN> <65793.1694843596@localhost>
 <CADF+RtikqxOW0XpwGTWWuGNTWjz3-MWMcO6U65Tta3PJjkRXqw@HIDDEN>
 <m24jbtim2p.fsf@HIDDEN>
 <CADF+RtiOECRmdoFD1qP=gRzS+P3tJqh_WNTnuW-1zPrY9g4VBw@HIDDEN>
 <jwvmsp7afy2.fsf-monnier+emacs@HIDDEN>
 <CADF+RtisRw=2rKS+Kx_dFFObGktbbSvD+vqp2n-TuXhgX=8XFQ@HIDDEN>
 <m2v83eur8o.fsf@HIDDEN>
In-Reply-To: <m2v83eur8o.fsf@HIDDEN>
From: David Fussner <dfussner@HIDDEN>
Date: Thu, 16 May 2024 13:56:56 +0100
Message-ID: <CADF+RthKH96e0Vrkfw3kGikTX-edOx2Phdj-vihMfzg5qt=tUg@HIDDEN>
Content-Type: multipart/mixed; boundary="00000000000071180b061891c40c"
X-Spam-Score: 0.0 (/)
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: -1.0 (-)

--00000000000071180b061891c40c
Content-Type: text/plain; charset="UTF-8"

Thanks, Arash. Agreed, on all counts. Revised patch attached.

Best, David.

On Thu, 16 May 2024 at 08:54, Arash Esbati <arash@HIDDEN> wrote:
>
> David Fussner <dfussner@HIDDEN> writes:
>
> > +(defun tex-expl-buffer-parse ()
> > +  "Identify buffers where expl3 syntax is always active."
> > +  (save-excursion
> > +    (goto-char (point-min))
> > +    (when (tex-search-noncomment
> > +        (re-search-forward
> > +         "\\(?:\\\\\\(?:ExplFile\\|ProvidesExpl\\|__xparse_file\\)\\)"
>
> Is the outer grouping necessary?  Why not just:
>
> "\\\\\\(?:ExplFile\\|ProvidesExpl\\|__xparse_file\\)"
>
> > +         nil t))
> > +      (setq tex-expl-buffer-p t))))
> > +
> > +(defun tex-expl-region-set (_beg _end)
> > +  "Create a list of regions where expl3 syntax is active.
> > +This function updates the list whenever `syntax-propertize' runs, and
> > +stores it in the buffer-local variable `tex-expl-region-list'.  The
> > +list will always be nil when the buffer visits an expl3 file, e.g., an
> > +expl3 class or package, where expl3 syntax is always active."
> > +  (unless syntax-ppss--updated-cache;; Stop forward search running twice.
> > +    (setq tex-expl-region-list nil)
> > +    ;; Leaving this test here allows users to set `tex-expl-buffer-p'
> > +    ;; independently of the mode's automatic detection of an expl3 file.
> > +    (unless tex-expl-buffer-p
> > +      (goto-char (point-min))
> > +      (while (tex-search-noncomment
> > +              (re-search-forward "\\ExplSyntaxOn" nil t))
>
> This looks wrong, I think you want `search-forward'.
>
> > +        (let ((new-beg (point))
> > +              (new-end (or (tex-search-noncomment
> > +                            (re-search-forward "\\ExplSyntaxOff" nil t))
>
> Same here.
>
> > +                           (point-max))))
> > +          (push (cons new-beg new-end) tex-expl-region-list))))))
>
> Best, Arash

--00000000000071180b061891c40c
Content-Type: text/x-patch; charset="US-ASCII"; 
	name="0003-Provide-a-modified-xref-backend-for-TeX-buffers.patch"
Content-Disposition: attachment; 
	filename="0003-Provide-a-modified-xref-backend-for-TeX-buffers.patch"
Content-Transfer-Encoding: base64
Content-ID: <f_lw998l1b0>
X-Attachment-Id: f_lw998l1b0

RnJvbSAyODM5Y2JlMTVmOTFhMTI5MmQyNmU5MjA4ZDIxY2U0NzI3MGZkNzJlIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBEYXZpZCBGdXNzbmVyIDxkZnVzc25lckBnb29nbGVtYWlsLmNv
bT4KRGF0ZTogVGh1LCAxNiBNYXkgMjAyNCAxMzo1MToxMiArMDEwMApTdWJqZWN0OiBbUEFUQ0hd
IFByb3ZpZGUgYSBtb2RpZmllZCB4cmVmIGJhY2tlbmQgZm9yIFRlWCBidWZmZXJzCgoqIGxpYi1z
cmMvZXRhZ3MuYyAoVGVYX2NvbW1hbmRzKTogSW1wcm92ZSBwYXJzaW5nIG9mIGNvbW1hbmRzIGlu
IFRlWApidWZmZXJzLgooVEVYX2RlZmVudik6IEV4cGFuZCBsaXN0IG9mIGNvbW1hbmRzIHRvIHRh
ZyBieSBkZWZhdWx0IGluIFRlWApidWZmZXJzLgooVGVYX2hlbHApOgoqIGRvYy9lbWFjcy9tYWlu
dGFpbmluZy50ZXhpIChUYWcgU3ludGF4KTogRG9jdW1lbnQgbmV3IHRhZ2dlZApjb21tYW5kcy4K
KElkZW50aWZpZXIgU2VhcmNoKTogQWRkIG5vdGUgYWJvdXQgc2VtYW50aWMtc3ltcmVmLWZpbGVw
YXR0ZXJuLWFsaXN0LAphdXRvLW1vZGUtYWxpc3QsIGFuZCB4cmVmLWZpbmQtcmVmZXJlbmNlcy4K
CiogbGlzcC90ZXh0bW9kZXMvdGV4LW1vZGUuZWwgKHRleC1mb250LWxvY2stc3VzY3JpcHQpOiBU
ZXN0IGZvcgp1bmRlcnNjb3JlIGluIGV4cGwzIGZpbGVzIGFuZCByZWdpb25zLCBkaXNhYmxlIHN1
YnNjcmlwdCBmYWNlIHRoZXJlLgoodGV4LWNvbW1vbi1pbml0aWFsaXphdGlvbik6IFNldCB1cCB4
cmVmIGJhY2tlbmQgZm9yIGluLXRyZWUgVGVYCm1vZGVzLiBEZXRlY3QgZXhwbDMgZmlsZXMsIGFu
ZCBpbiBvdGhlcnMgc2V0IHVwIGEgbGlzdCBvZiBleHBsMwpyZWdpb25zLgoodGV4LWV4cGwtYnVm
ZmVyLXBhcnNlKTogTmV3IGZ1bmN0aW9uIGNhbGxlZCBpbiBwcmV2aW91cy4KKHRleC1leHBsLWJ1
ZmZlci1wKTogTmV3IHZhciB0byBob2xkIHRoZSByZXN1bHQgb2YgcHJldmlvdXMuCih0ZXgtZXhw
bC1yZWdpb24tc2V0KTogTmV3IGZ1bmN0aW9uIGFkZGVkIHRvCidzeW50YXgtcHJvcGVydGl6ZS1l
eHRlbmQtcmVnaW9uLWZ1bmN0aW9ucycgaG9vay4KKHRleC1leHBsLXJlZ2lvbi1saXN0KTogTmV3
IHZhciB0byBob2xkIHRoZSByZXN1bHQgb2YgcHJldmlvdXMuCih0ZXgtLXRoaW5nLWF0LXBvaW50
LCB0ZXgtdGhpbmdhdHB0LS1iZWdpbm5pbmctb2Ytc3ltYm9sKQoodGV4LXRoaW5nYXRwdC0tZW5k
LW9mLXN5bWJvbCwgdGV4LS1ib3VuZHMtb2Ytc3ltYm9sLWF0LXBvaW50KToKTmV3IGZ1bmN0aW9u
cyB0byByZXR1cm4gJ3RoaW5nLWF0LXBvaW50JyBmb3IgeHJlZiBiYWNrZW5kLgoodGV4LXRoaW5n
YXRwdC1leGNsdWRlLWNoYXJzKTogTmV3IHZhciB0byBkbyB0aGUgc2FtZS4KKHhyZWYtYmFja2Vu
ZC1pZGVudGlmaWVyLWF0LXBvaW50KTogTmV3IFRlWCBiYWNrZW5kIG1ldGhvZCB0byBwcm92aWRl
CnN5bWJvbHMgZm9yIHByb2Nlc3NpbmcgYnkgeHJlZi4KKHhyZWYtYmFja2VuZC1pZGVudGlmaWVy
LWNvbXBsZXRpb24tdGFibGUpCih4cmVmLWJhY2tlbmQtaWRlbnRpZmllci1jb21wbGV0aW9uLWln
bm9yZS1jYXNlKQooeHJlZi1iYWNrZW5kLWRlZmluaXRpb25zLCB4cmVmLWJhY2tlbmQtYXByb3Bv
cyk6IFBsYWNlaG9sZGVycyB0bwpjYWxsIHRoZSBzdGFuZGFyZCAnZXRhZ3MnIHhyZWYgYmFja2Vu
ZCBtZXRob2RzLgooeHJlZi1iYWNrZW5kLXJlZmVyZW5jZXMpOiBXcmFwcGVyIHRvIGNhbGwgdGhl
IGRlZmF1bHQgeHJlZiBiYWNrZW5kCm1ldGhvZCwgZmluZGluZyBhcyBtYW55IHJlbGV2YW50IGZp
bGVzIGFzIHBvc3NpYmxlIGFuZCB1c2luZyBhIGJlc3Bva2UKc3ludGF4LXByb3BlcnRpemUtZnVu
Y3Rpb24gd2hlbiByZXF1aXJlZC4KKHRleC0tY29sbGVjdC1maWxlLWV4dGVuc2lvbnMsIHRleC14
cmVmLXN5bnRheC1mdW5jdGlvbik6IEhlbHBlcgpmdW5jdGlvbnMgZm9yIHByZXZpb3VzLgoodGV4
LWZpbmQtcmVmZXJlbmNlcy1zeW50YXgtdGFibGUsIHRleC0tYnVmZmVycy1saXN0KQoodGV4LS14
cmVmLXN5bnRheC1mdW4sIHRleC0tb2xkLXN5bnRheC1mdW5jdGlvbik6IE5ldyB2YXJzIGZvciBz
YW1lLgotLS0KIGRvYy9lbWFjcy9tYWludGFpbmluZy50ZXhpIHwgIDM5ICsrKy0KIGxpYi1zcmMv
ZXRhZ3MuYyAgICAgICAgICAgIHwgMTg5ICsrKysrKysrKysrKysrKysrLS0KIGxpc3AvdGV4dG1v
ZGVzL3RleC1tb2RlLmVsIHwgMzczICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr
Ky0KIDMgZmlsZXMgY2hhbmdlZCwgNTgwIGluc2VydGlvbnMoKyksIDIxIGRlbGV0aW9ucygtKQoK
ZGlmZiAtLWdpdCBhL2RvYy9lbWFjcy9tYWludGFpbmluZy50ZXhpIGIvZG9jL2VtYWNzL21haW50
YWluaW5nLnRleGkKaW5kZXggNTc5MDk4YzgxYjEuLmEwNjQxMDNhYTI1IDEwMDY0NAotLS0gYS9k
b2MvZW1hY3MvbWFpbnRhaW5pbmcudGV4aQorKysgYi9kb2MvZW1hY3MvbWFpbnRhaW5pbmcudGV4
aQpAQCAtMjUyOSw2ICsyNTI5LDE1IEBAIElkZW50aWZpZXIgU2VhcmNoCiByZWZlcmVuY2VkLiAg
VGhlIFhSRUYgbW9kZSBjb21tYW5kcyBhcmUgYXZhaWxhYmxlIGluIHRoaXMgYnVmZmVyLCBzZWUK
IEByZWZ7WHJlZiBDb21tYW5kc30uCiAKK1doZW4gaW52b2tlZCBpbiBhIGJ1ZmZlciB3aG9zZSBt
YWpvciBtb2RlIHVzZXMgdGhlIEBjb2Rle2V0YWdzfSBiYWNrZW5kLAorQGtiZHtNLT99IHNlYXJj
aGVzIGZpbGVzIGFuZCBidWZmZXJzIHdob3NlIG1ham9yIG1vZGUgbWF0Y2hlcyB0aGF0IG9mCit0
aGUgb3JpZ2luYWwgYnVmZmVyLiAgSXQgZ3Vlc3NlcyB0aGF0IG1vZGUgZnJvbSBmaWxlIGV4dGVu
c2lvbnMsIHNvIGlmCitAa2Jke00tP30gc2VlbXMgdG8gYmUgc2tpcHBpbmcgcmVsZXZhbnQgYnVm
ZmVycyBvciBmaWxlcywgdHJ5CitjdXN0b21pemluZyBlaXRoZXIgdGhlIHZhcmlhYmxlIEBjb2Rl
e3NlbWFudGljLXN5bXJlZi1maWxlcGF0dGVybi1hbGlzdH0KKyhpZiB5b3VyIGJ1ZmZlcidzIG1h
am9yIG1vZGUgYWxyZWFkeSBoYXMgYW4gZW50cnkgaW4gaXQpLCBvcgorQGNvZGV7YXV0by1tb2Rl
LWFsaXN0fSAoaWYgbm90KSwgdGhlcmVieSBpbmZvcm1pbmcgQGNvZGV7eHJlZn0gb2YgdGhlCitt
aXNzaW5nIGV4dGVuc2lvbnMgKEBweHJlZntDaG9vc2luZyBNb2Rlc30pLgorCiBAdmluZGV4IHhy
ZWYtYXV0by1qdW1wLXRvLWZpcnN0LXhyZWYKICAgSWYgdGhlIHZhbHVlIG9mIHRoZSB2YXJpYWJs
ZSBAY29kZXt4cmVmLWF1dG8tanVtcC10by1maXJzdC14cmVmfSBpcwogQGNvZGV7dH0sIEBjb2Rl
e3hyZWYtZmluZC1yZWZlcmVuY2VzfSBhdXRvbWF0aWNhbGx5IGp1bXBzIHRvIHRoZSBmaXJzdApA
QCAtMjc0NywxMCArMjc1NiwzMiBAQCBUYWcgU3ludGF4CiBAaXRlbQogSW4gQExhVGVYe30gZG9j
dW1lbnRzLCB0aGUgYXJndW1lbnRzIGZvciBAY29kZXtcY2hhcHRlcn0sCiBAY29kZXtcc2VjdGlv
bn0sIEBjb2Rle1xzdWJzZWN0aW9ufSwgQGNvZGV7XHN1YnN1YnNlY3Rpb259LAotQGNvZGV7XGVx
bm99LCBAY29kZXtcbGFiZWx9LCBAY29kZXtccmVmfSwgQGNvZGV7XGNpdGV9LAotQGNvZGV7XGJp
Yml0ZW19LCBAY29kZXtccGFydH0sIEBjb2Rle1xhcHBlbmRpeH0sIEBjb2Rle1xlbnRyeX0sCi1A
Y29kZXtcaW5kZXh9LCBAY29kZXtcZGVmfSwgQGNvZGV7XG5ld2NvbW1hbmR9LCBAY29kZXtccmVu
ZXdjb21tYW5kfSwKLUBjb2Rle1xuZXdlbnZpcm9ubWVudH0gYW5kIEBjb2Rle1xyZW5ld2Vudmly
b25tZW50fSBhcmUgdGFncy4KK0Bjb2Rle1xlcW5vfSwgQGNvZGV7XGxhYmVsfSwgQGNvZGV7XHJl
Zn0sIEBjb2Rle1xSZWZ9LCBAY29kZXtcZm9vdHJlZn0sCitAY29kZXtcY2l0ZX0sIEBjb2Rle1xi
aWJpdGVtfSwgQGNvZGV7XHBhcnR9LCBAY29kZXtcYXBwZW5kaXh9LAorQGNvZGV7XGVudHJ5fSwg
QGNvZGV7XGluZGV4fSwgQGNvZGV7XGRlZn0sIEBjb2Rle1xlZGVmfSwgQGNvZGV7XGdkZWZ9LAor
QGNvZGV7XHhkZWZ9LCBAY29kZXtcbmV3Y29tbWFuZH0sIEBjb2Rle1xyZW5ld2NvbW1hbmR9LAor
QGNvZGV7XG5ld2Vudmlyb25tZW50fSwgQGNvZGV7XHJlbmV3ZW52aXJvbm1lbnR9LAorQGNvZGV7
XERlY2xhcmVSb2J1c3RDb21tYW5kfSwgQGNvZGV7XG5ld3JvYnVzdGNtZH0sCitAY29kZXtccmVu
ZXdyb2J1c3RjbWR9LCBAY29kZXtccHJvdmlkZWNvbW1hbmR9LAorQGNvZGV7XHByb3ZpZGVyb2J1
c3RjbWR9LCBAY29kZXtcTmV3RG9jdW1lbnRDb21tYW5kfSwKK0Bjb2Rle1xSZW5ld0RvY3VtZW50
Q29tbWFuZH0sIEBjb2Rle1xQcm92aWRlRG9jdW1lbnRDb21tYW5kfSwKK0Bjb2Rle1xEZWNsYXJl
RG9jdW1lbnRDb21tYW5kfSwgQGNvZGV7XE5ld0V4cGFuZGFibGVEb2N1bWVudENvbW1hbmR9LAor
QGNvZGV7XFJlbmV3RXhwYW5kYWJsZURvY3VtZW50Q29tbWFuZH0sCitAY29kZXtcUHJvdmlkZUV4
cGFuZGFibGVEb2N1bWVudENvbW1hbmR9LAorQGNvZGV7XERlY2xhcmVFeHBhbmRhYmxlRG9jdW1l
bnRDb21tYW5kfSwKK0Bjb2Rle1xOZXdEb2N1bWVudEVudmlyb25tZW50fSwgQGNvZGV7XFJlbmV3
RG9jdW1lbnRFbnZpcm9ubWVudH0sCitAY29kZXtcUHJvdmlkZURvY3VtZW50RW52aXJvbm1lbnR9
LCBAY29kZXtcRGVjbGFyZURvY3VtZW50RW52aXJvbm1lbnR9LAorQGNvZGV7XGNzZGVmfSwgQGNv
ZGV7XGNzZWRlZn0sIEBjb2Rle1xjc2dkZWZ9LCBAY29kZXtcY3N4ZGVmfSwKK0Bjb2Rle1xjc2xl
dGNzfSwgQGNvZGV7XGNzbGV0fSwgQGNvZGV7XGxldGNzfSwgQGNvZGV7XGxldH0sCitAY29kZXtc
Y3NfbmV3X3Byb3RlY3RlZF9ub3Bhcn0sIEBjb2Rle1xjc19uZXdfcHJvdGVjdGVkfSwKK0Bjb2Rl
e1xjc19uZXdfbm9wYXJ9LCBAY29kZXtcY3NfbmV3X2VxfSwgQGNvZGV7XGNzX25ld30sCitAY29k
ZXtcY3Nfc2V0X3Byb3RlY3RlZF9ub3Bhcn0sIEBjb2Rle1xjc19zZXRfcHJvdGVjdGVkfSwKK0Bj
b2Rle1xjc19zZXRfbm9wYXJ9LCBAY29kZXtcY3Nfc2V0X2VxfSwgQGNvZGV7XGNzX3NldH0sCitA
Y29kZXtcY3NfZ3NldF9wcm90ZWN0ZWRfbm9wYXJ9LCBAY29kZXtcY3NfZ3NldF9wcm90ZWN0ZWR9
LAorQGNvZGV7XGNzX2dzZXRfbm9wYXJ9LCBAY29kZXtcY3NfZ3NldF9lcX0sIEBjb2Rle1xjc19n
c2V0fSwKK0Bjb2Rle1xjc19nZW5lcmF0ZV9mcm9tX2FyZ19jb3VudH0sIGFuZCBAY29kZXtcY3Nf
Z2VuZXJhdGVfdmFyaWFudH0gYXJlCit0YWdzLiAgU28gdG9vIGFyZSB0aGUgYXJndW1lbnRzIG9m
IGFueSBzdGFycmVkIHZhcmlhbnRzIG9mIHRoZXNlCitjb21tYW5kcy4KIAogT3RoZXIgY29tbWFu
ZHMgY2FuIG1ha2UgdGFncyBhcyB3ZWxsLCBpZiB5b3Ugc3BlY2lmeSB0aGVtIGluIHRoZQogZW52
aXJvbm1lbnQgdmFyaWFibGUgQGVudntURVhUQUdTfSBiZWZvcmUgaW52b2tpbmcgQGNvbW1hbmR7
ZXRhZ3N9LiAgVGhlCmRpZmYgLS1naXQgYS9saWItc3JjL2V0YWdzLmMgYi9saWItc3JjL2V0YWdz
LmMKaW5kZXggMDNiYzU1ZGUwM2QuLjExZmRkYzE4N2MyIDEwMDY0NAotLS0gYS9saWItc3JjL2V0
YWdzLmMKKysrIGIvbGliLXNyYy9ldGFncy5jCkBAIC03OTMsMTEgKzc5MywyNyBAQCAjZGVmaW5l
IFNURElOIDB4MTAwMQkJLyogcmV0dXJuZWQgYnkgZ2V0b3B0X2xvbmcgb24gLS1wYXJzZS1zdGRp
biAqLwogc3RhdGljIGNvbnN0IGNoYXIgKlRlWF9zdWZmaXhlcyBbXSA9CiAgIHsgImJpYiIsICJj
bG8iLCAiY2xzIiwgImx0eCIsICJzdHkiLCAiVGVYIiwgInRleCIsIE5VTEwgfTsKIHN0YXRpYyBj
b25zdCBjaGFyIFRlWF9oZWxwIFtdID0KLSJJbiBMYVRlWCB0ZXh0LCB0aGUgYXJndW1lbnQgb2Yg
YW55IG9mIHRoZSBjb21tYW5kcyAnXFxjaGFwdGVyJyxcblwKLSdcXHNlY3Rpb24nLCAnXFxzdWJz
ZWN0aW9uJywgJ1xcc3Vic3Vic2VjdGlvbicsICdcXGVxbm8nLCAnXFxsYWJlbCcsXG5cCi0nXFxy
ZWYnLCAnXFxjaXRlJywgJ1xcYmliaXRlbScsICdcXHBhcnQnLCAnXFxhcHBlbmRpeCcsICdcXGVu
dHJ5JyxcblwKLSdcXGluZGV4JywgJ1xcZGVmJywgJ1xcbmV3Y29tbWFuZCcsICdcXHJlbmV3Y29t
bWFuZCcsXG5cCi0nXFxuZXdlbnZpcm9ubWVudCcgb3IgJ1xccmVuZXdlbnZpcm9ubWVudCcgaXMg
YSB0YWcuXG5cCisiSW4gTGFUZVggdGV4dCwgdGhlIGFyZ3VtZW50IG9mIHRoZSBjb21tYW5kcyAn
XFxjaGFwdGVyJywgJ1xcc2VjdGlvbicsXG5cCisnXFxzdWJzZWN0aW9uJywgJ1xcc3Vic3Vic2Vj
dGlvbicsICdcXGVxbm8nLCAnXFxsYWJlbCcsICdcXHJlZicsXG5cCisnXFxSZWYnLCAnXFxmb290
cmVmJywgJ1xcY2l0ZScsICdcXGJpYml0ZW0nLCAnXFxwYXJ0JywgJ1xcYXBwZW5kaXgnLFxuXAor
J1xcZW50cnknLCAnXFxpbmRleCcsICdcXGRlZicsICdcXGVkZWYnLCAnXFxnZGVmJywgJ1xceGRl
ZicsXG5cCisnXFxuZXdjb21tYW5kJywgJ1xccmVuZXdjb21tYW5kJywgJ1xcbmV3cm9idXN0Y21k
JywgJ1xccmVuZXdyb2J1c3RjbWQnLFxuXAorJ1xcbmV3ZW52aXJvbm1lbnQnLCAnXFxyZW5ld2Vu
dmlyb25tZW50JywgJ1xcRGVjbGFyZVJvYnVzdENvbW1hbmQnLFxuXAorJ1xccHJvdmlkZWNvbW1h
bmQnLCAnXFxwcm92aWRlcm9idXN0Y21kJywgJ1xcTmV3RG9jdW1lbnRDb21tYW5kJyxcblwKKydc
XFJlbmV3RG9jdW1lbnRDb21tYW5kJywgJ1xcUHJvdmlkZURvY3VtZW50Q29tbWFuZCcsXG5cCisn
XFxEZWNsYXJlRG9jdW1lbnRDb21tYW5kJywgJ1xcTmV3RXhwYW5kYWJsZURvY3VtZW50Q29tbWFu
ZCcsXG5cCisnXFxSZW5ld0V4cGFuZGFibGVEb2N1bWVudENvbW1hbmQnLCAnXFxQcm92aWRlRXhw
YW5kYWJsZURvY3VtZW50Q29tbWFuZCcsXG5cCisnXFxEZWNsYXJlRXhwYW5kYWJsZURvY3VtZW50
Q29tbWFuZCcsICdcXE5ld0RvY3VtZW50RW52aXJvbm1lbnQnLFxuXAorJ1xcUmVuZXdEb2N1bWVu
dEVudmlyb25tZW50JywgJ1xcUHJvdmlkZURvY3VtZW50RW52aXJvbm1lbnQnLFxuXAorJ1xcRGVj
bGFyZURvY3VtZW50RW52aXJvbm1lbnQnLCdcXGNzZGVmJywgJ1xcY3NlZGVmJywgJ1xcY3NnZGVm
JyxcblwKKydcXGNzeGRlZicsICdcXGNzbGV0Y3MnLCAnXFxjc2xldCcsICdcXGxldGNzJywgJ1xc
bGV0JyxcblwKKydcXGNzX25ld19wcm90ZWN0ZWRfbm9wYXInLCAnXFxjc19uZXdfcHJvdGVjdGVk
JywgJ1xcY3NfbmV3X25vcGFyJyxcblwKKydcXGNzX25ld19lcScsICdcXGNzX25ldycsICdcXGNz
X3NldF9wcm90ZWN0ZWRfbm9wYXInLFxuXAorJ1xcY3Nfc2V0X3Byb3RlY3RlZCcsICdcXGNzX3Nl
dF9ub3BhcicsICdcXGNzX3NldF9lcScsICdcXGNzX3NldCcsXG5cCisnXFxjc19nc2V0X3Byb3Rl
Y3RlZF9ub3BhcicsICdcXGNzX2dzZXRfcHJvdGVjdGVkJywgJ1xcY3NfZ3NldF9ub3BhcicsXG5c
CisnXFxjc19nc2V0X2VxJywgJ1xcY3NfZ3NldCcsICdcXGNzX2dlbmVyYXRlX2Zyb21fYXJnX2Nv
dW50Jywgb3JcblwKKydcXGNzX2dlbmVyYXRlX3ZhcmlhbnQnIGlzIGEgdGFnLiAgU28gaXMgdGhl
IGFyZ3VtZW50IG9mIGFueSBzdGFycmVkXG5cCit2YXJpYW50IG9mIHRoZXNlIGNvbW1hbmRzLlxu
XAogXG5cCiBPdGhlciBjb21tYW5kcyBjYW4gYmUgc3BlY2lmaWVkIGJ5IHNldHRpbmcgdGhlIGVu
dmlyb25tZW50IHZhcmlhYmxlXG5cCiAnVEVYVEFHUycgdG8gYSBjb2xvbi1zZXBhcmF0ZWQgbGlz
dCBsaWtlLCBmb3IgZXhhbXBsZSxcblwKQEAgLTU3NDAsMTEgKzU3NTYsMjUgQEAgU2NoZW1lX2Z1
bmN0aW9ucyAoRklMRSAqaW5mKQogc3RhdGljIGxpbmVidWZmZXIgKlRFWF90b2t0YWIgPSBOVUxM
OyAvKiBUYWJsZSB3aXRoIHRhZyB0b2tlbnMgKi8KIAogLyogRGVmYXVsdCBzZXQgb2YgY29udHJv
bCBzZXF1ZW5jZXMgdG8gcHV0IGludG8gVEVYX3Rva3RhYi4KLSAgIFRoZSB2YWx1ZSBvZiBlbnZp
cm9ubWVudCB2YXIgVEVYVEFHUyBpcyBwcmVwZW5kZWQgdG8gdGhpcy4gICovCisgICBUaGUgdmFs
dWUgb2YgZW52aXJvbm1lbnQgdmFyIFRFWFRBR1MgaXMgcHJlcGVuZGVkIHRvIHRoaXMuCisgICAo
MjAyNCkgQWRkIHZhcmlhbnRzIG9mICdcZGVmJywgc29tZSBhZGRpdGlvbmFsIExhVGVYIChhbmQK
KyAgIGZvcm1lciB4cGFyc2UpIGNvbW1hbmRzLCBjb21tb24gdmFyaWFudHMgZnJvbSB0aGUKKyAg
ICdldG9vbGJveCcgcGFja2FnZSwgYW5kIHRoZSBtYWluIGV4cGwzIGNvbW1hbmRzLiAqLwogc3Rh
dGljIGNvbnN0IGNoYXIgKlRFWF9kZWZlbnYgPSAiXAotOmNoYXB0ZXI6c2VjdGlvbjpzdWJzZWN0
aW9uOnN1YnN1YnNlY3Rpb246ZXFubzpsYWJlbDpyZWY6Y2l0ZTpiaWJpdGVtXAotOnBhcnQ6YXBw
ZW5kaXg6ZW50cnk6aW5kZXg6ZGVmXAotOm5ld2NvbW1hbmQ6cmVuZXdjb21tYW5kOm5ld2Vudmly
b25tZW50OnJlbmV3ZW52aXJvbm1lbnQiOworOmxhYmVsOnJlZjpSZWY6Zm9vdHJlZjpjaGFwdGVy
OnNlY3Rpb246c3Vic2VjdGlvbjpzdWJzdWJzZWN0aW9uOmVxbm86Y2l0ZVwKKzpiaWJpdGVtOnBh
cnQ6YXBwZW5kaXg6ZW50cnk6aW5kZXg6ZGVmOmVkZWY6Z2RlZjp4ZGVmOm5ld2NvbW1hbmQ6cmVu
ZXdjb21tYW5kXAorOm5ld2Vudmlyb25tZW50OnJlbmV3ZW52aXJvbm1lbnQ6RGVjbGFyZVJvYnVz
dENvbW1hbmQ6cmVuZXdyb2J1c3RjbWRcCis6bmV3cm9idXN0Y21kOnByb3ZpZGVjb21tYW5kOnBy
b3ZpZGVyb2J1c3RjbWQ6TmV3RG9jdW1lbnRDb21tYW5kXAorOlJlbmV3RG9jdW1lbnRDb21tYW5k
OlByb3ZpZGVEb2N1bWVudENvbW1hbmQ6RGVjbGFyZURvY3VtZW50Q29tbWFuZFwKKzpOZXdFeHBh
bmRhYmxlRG9jdW1lbnRDb21tYW5kOlJlbmV3RXhwYW5kYWJsZURvY3VtZW50Q29tbWFuZFwKKzpQ
cm92aWRlRXhwYW5kYWJsZURvY3VtZW50Q29tbWFuZDpEZWNsYXJlRXhwYW5kYWJsZURvY3VtZW50
Q29tbWFuZFwKKzpOZXdEb2N1bWVudEVudmlyb25tZW50OlJlbmV3RG9jdW1lbnRFbnZpcm9ubWVu
dFwKKzpQcm92aWRlRG9jdW1lbnRFbnZpcm9ubWVudDpEZWNsYXJlRG9jdW1lbnRFbnZpcm9ubWVu
dDpjc2RlZlwKKzpjc2VkZWY6Y3NnZGVmOmNzeGRlZjpjc2xldGNzOmNzbGV0OmxldGNzOmxldDpj
c19uZXdfcHJvdGVjdGVkX25vcGFyXAorOmNzX25ld19wcm90ZWN0ZWQ6Y3NfbmV3X25vcGFyOmNz
X25ld19lcTpjc19uZXc6Y3Nfc2V0X3Byb3RlY3RlZF9ub3BhclwKKzpjc19zZXRfcHJvdGVjdGVk
OmNzX3NldF9ub3Bhcjpjc19zZXRfZXE6Y3Nfc2V0OmNzX2dzZXRfcHJvdGVjdGVkX25vcGFyXAor
OmNzX2dzZXRfcHJvdGVjdGVkOmNzX2dzZXRfbm9wYXI6Y3NfZ3NldF9lcTpjc19nc2V0XAorOmNz
X2dlbmVyYXRlX2Zyb21fYXJnX2NvdW50OmNzX2dlbmVyYXRlX3ZhcmlhbnQiOwogCiBzdGF0aWMg
dm9pZCBURVhfZGVjb2RlX2VudiAoY29uc3QgY2hhciAqLCBjb25zdCBjaGFyICopOwogCkBAIC01
ODAzLDE5ICs1ODMzLDEzNyBAQCBUZVhfY29tbWFuZHMgKEZJTEUgKmluZikKIAkgICAgICB7CiAJ
CWNoYXIgKnA7CiAJCXB0cmRpZmZfdCBuYW1lbGVuLCBsaW5lbGVuOwotCQlib29sIG9wZ3JwID0g
ZmFsc2U7CisJCWJvb2wgb3BncnAgPSBmYWxzZSwgb25lX2VzYyA9IGZhbHNlLCBpc19leHBsdGhy
ZWUgPSBmYWxzZTsKIAogCQljcCA9IHNraXBfc3BhY2VzIChjcCArIGtleS0+bGVuKTsKKworCQkv
KiAxLiBUaGUgY2Fub25pY2FsIGV4cGwzIHN5bnRheCBsb29rcyBzb21ldGhpbmcgbGlrZSB0aGlz
OgorCQkgICBcY3NfbmV3Ok5wbiBcX19ob29rX3RsX2dwdXQ6Tm4geyBcRVJST1IgfS4gIEZpcnN0
LCBpZiB3ZQorCQkgICB3YW50IHRvIHRhZyBhbnkgc3VjaCBjb21tYW5kcywgd2UgaW5jbHVkZSBv
bmx5IHRoZSBwYXJ0CisJCSAgIGJlZm9yZSB0aGUgY29sb24gKGNzX25ldykgaW4gVEVYX2RlZmVu
diBvciBURVhUQUdTLiAgU2Vjb25kLAorCQkgICBldGFncyBza2lwcyB0aGUgYXJndW1lbnQgc3Bl
Y2lmaWVyIChpbmNsdWRpbmcgdGhlIGNvbG9uKQorCQkgICBhZnRlciB0aGUgdGFnIHRva2VuLCBz
byB0aGF0IGl0IGRvZXNuJ3QgYmVjb21lIHRoZSB0YWcgbmFtZS4KKwkJICAgVGhpcmQsIHdlIHNl
dCB0aGUgYm9vbGVhbiAnaXNfZXhwbHRocmVlJyB0byB0cnVlIHNvIHRoYXQgd2UKKwkJICAgY2Fu
IHJlbW92ZSB0aGUgYXJndW1lbnQgc3BlY2lmaWVyIGZyb20gdGhlIGFjdHVhbCB0YWcgbmFtZQor
CQkgICAoX19ob29rX3RsX2dwdXQpLiAgVGhpcyBhbGwgYWxsb3dzIHVzIHRvIGluY2x1ZGUgZXhw
bDMKKwkJICAgY29uc3RydWN0cyBpbiBURVhfZGVmZW52IG9yIGluIHRoZSBlbnZpcm9ubWVudCB2
YXJpYWJsZQorCQkgICBURVhUQUdTIHdpdGhvdXQgcmVxdWlyaW5nIGEgY2hhbmdlIG9mIHNlcGFy
YXRvciwgYW5kIGl0IGFsc28KKwkJICAgYWxsb3dzIHVzIHRvIGZpbmQgdGhlIGRlZmluaXRpb24g
b2YgdmFyaWFudCBjb21tYW5kcyAod2l0aAorCQkgICBkaWZmZXJlbnQgYXJndW1lbnQgc3BlY2lm
aWVycykgZGVmaW5lZCB1c2luZywgZm9yIGV4YW1wbGUsCisJCSAgIFxjc19nZW5lcmF0ZV92YXJp
YW50Ok5uLiAgUGxlYXNlIG5vdGUgdGhhdCB0aGUgZXhwbDMgc3BlYworCQkgICByZXF1aXJlcyBl
dGFncyB0byBwYXkgbW9yZSBhdHRlbnRpb24gdG8gd2hpdGVzcGFjZSBpbiB0aGUKKwkJICAgY29k
ZS4KKworCQkgICAyLiBXZSBhbHNvIGF1dG9tYXRpY2FsbHkgcmVtb3ZlIHRoZSBhc3RlcmlzayBm
cm9tIHN0YXJyZWQKKwkJICAgdmFyaWFudHMgb2YgYWxsIGNvbW1hbmRzLCB3aXRob3V0IHRoZSBu
ZWVkIHRvIGluY2x1ZGUgdGhlCisJCSAgIHN0YXJyZWQgY29tbWFuZHMgZXhwbGljaXRseSBpbiBU
RVhfZGVmZW52IG9yIFRFWFRBR1MuICovCisJCWlmICgqY3AgPT0gJzonKQorCQkgIHsKKwkJICAg
IHdoaWxlICghY19pc3NwYWNlICgqY3ApICYmICpjcCAhPSBURVhfb3BncnApCisJCSAgICAgIGNw
Kys7CisJCSAgICBjcCA9IHNraXBfc3BhY2VzIChjcCk7CisJCSAgICBpc19leHBsdGhyZWUgPSB0
cnVlOworCQkgIH0KKwkJZWxzZSBpZiAoKmNwID09ICcqJykKKwkJICBjcCsrOworCisJCS8qIFNr
aXAgdGhlIG9wdGlvbmFsIGFyZ3VtZW50cyB0byBjb21tYW5kcyBpbiB0aGUgdGFncyBsaXN0IHNv
CisJCSAgIHRoYXQgdGhlc2UgYXJndW1lbnRzIGRvbid0IGVuZCB1cCBhcyB0aGUgbmFtZSBvZiB0
aGUgdGFnLgorCQkgICBUaGUgbmFtZSB3aWxsIGluc3RlYWQgY29tZSBmcm9tIHRoZSBhcmd1bWVu
dCBpbiBjdXJseSBicmFjZXMKKwkJICAgdGhhdCBmb2xsb3dzIHRoZSBvcHRpb25hbCBvbmVzLiAq
LworCQl3aGlsZSAoKmNwICE9ICdcMCcgJiYgKmNwICE9ICclJykKKwkJICB7CisJCSAgICBpZiAo
KmNwID09ICdbJykKKwkJICAgICAgeworCQkJd2hpbGUgKCpjcCAhPSAnXScgJiYgKmNwICE9ICdc
MCcgJiYgKmNwICE9ICclJykKKwkJCSAgY3ArKzsKKwkJICAgICAgfQorCQkgICAgZWxzZSBpZiAo
KmNwID09ICcoJykKKwkJICAgICAgeworCQkJd2hpbGUgKCpjcCAhPSAnKScgJiYgKmNwICE9ICdc
MCcgJiYgKmNwICE9ICclJykKKwkJCSAgY3ArKzsKKwkJICAgICAgfQorCQkgICAgZWxzZSBpZiAo
KmNwID09ICddJyB8fCAqY3AgPT0gJyknKQorCQkgICAgICBjcCsrOworCQkgICAgZWxzZQorCQkg
ICAgICBicmVhazsKKwkJICB9CiAJCWlmICgqY3AgPT0gVEVYX29wZ3JwKQogCQkgIHsKIAkJICAg
IG9wZ3JwID0gdHJ1ZTsKIAkJICAgIGNwKys7CisJCSAgICBjcCA9IHNraXBfc3BhY2VzIChjcCk7
IC8qIEZvciBleHBsMyBjb2RlLiAqLwogCQkgIH0KKworCQkvKiBSZW1vdmluZyB0aGUgVGVYIGVz
Y2FwZSBjaGFyYWN0ZXIgZnJvbSB0YWcgbmFtZXMgc2ltcGxpZmllcworCQkgICB0aGluZ3MgZm9y
IGVkaXRvcnMgZmluZGluZyB0YWdnZWQgY29tbWFuZHMgaW4gVGVYIGJ1ZmZlcnMuCisJCSAgIFRo
aXMgYXBwbGllcyB0byBFbWFjcyBidXQgYWxzbyB0byB0aGUgdGFnLWZpbmRpbmcgYmVoYXZpb3IK
KwkJICAgb2YgYXQgbGVhc3Qgc29tZSBvZiB0aGUgZWRpdG9ycyB0aGF0IHVzZSBjdGFncywgdGhv
dWdoIGluCisJCSAgIHRoZSBsYXR0ZXIgY2FzZSB0aGlzIHdpbGwgcmVtYWluIHN1Ym9wdGltYWwu
ICBUaGUKKwkJICAgdW5kb2N1bWVudGVkIGN0YWdzIG9wdGlvbiAnLS1uby1kdXBsaWNhdGVzJyBt
YXkgaGVscC4gKi8KKwkJaWYgKCpjcCA9PSBURVhfZXNjKQorCQkgIHsKKwkJICAgIGNwKys7CisJ
CSAgICBvbmVfZXNjID0gdHJ1ZTsKKwkJICB9CisKKwkJLyogVGVzdGluZyAhY19pc3NwYWNlICYm
ICFjX2lzcHVuY3QgaXMgc2ltcGxlciwgYnV0IGhhbHRzCisJCSAgIHByb2Nlc3NpbmcgYXQgdG9v
IG1hbnkgcGxhY2VzLiAgVGhlIGxpc3QgYXMgaXQgc3RhbmRzIHRyaWVzCisJCSAgIGJvdGggdG8g
ZW5zdXJlIHRoYXQgdGFnIG5hbWVzIHdpbGwgZGVyaXZlIGZyb20gbWFjcm8gbmFtZXMKKwkJICAg
cmF0aGVyIHRoYW4gZnJvbSBvcHRpb25hbCBwYXJhbWV0ZXJzIHRvIHRob3NlIG1hY3JvcywgYW5k
CisJCSAgIGFsc28gdG8gcmV0dXJuIGZpbmRhYmxlIG5hbWVzIHdoaWxlIHN0aWxsIGFsbG93aW5n
IGZvcgorCQkgICB1bm9ydGhvZG94IGNvbnN0cnVjdHMuICovCiAJCWZvciAocCA9IGNwOwotCQkg
ICAgICghY19pc3NwYWNlICgqcCkgJiYgKnAgIT0gJyMnICYmCi0JCSAgICAgICpwICE9IFRFWF9v
cGdycCAmJiAqcCAhPSBURVhfY2xncnApOworCQkgICAgICghY19pc3NwYWNlICgqcCkgJiYgKnAg
IT0gJyMnICYmICpwICE9ICc9JyAmJgorCQkgICAgICAqcCAhPSAnWycgJiYgKnAgIT0gJygnICYm
ICpwICE9IFRFWF9vcGdycCAmJgorCQkgICAgICAqcCAhPSBURVhfY2xncnAgJiYgKnAgIT0gJyIn
ICYmICpwICE9ICdcJycgJiYKKwkJICAgICAgKnAgIT0gJyUnICYmICpwICE9ICcsJyAmJiAqcCAh
PSAnfCcgJiYgKnAgIT0gJyQnKTsKIAkJICAgICBwKyspCi0JCSAgY29udGludWU7CisJCSAgLyog
SW4gZXhwbDMgY29kZSB3ZSByZW1vdmUgdGhlIGFyZ3VtZW50IHNwZWNpZmljYXRpb24gZnJvbQor
CQkgICAgIHRoZSB0YWcgbmFtZS4gIE1vcmUgZ2VuZXJhbGx5IHdlIGFsbG93IG9ubHkgb25lIChk
ZWxldGVkKQorCQkgICAgIGVzY2FwZSBjaGFyIGluIGEgdGFnIG5hbWUsIHdoaWNoIChwcmltYXJp
bHkpIGVuYWJsZXMKKwkJICAgICB0YWdnaW5nIGEgVGVYIGNvbW1hbmQncyBkaWZmZXJlbnQsIHBv
c3NpYmx5IHRlbXBvcmFyeSwKKwkJICAgICAnXGxldCcgYmluZGluZ3MuICovCisJCSAgaWYgKGlz
X2V4cGx0aHJlZSAmJiAqcCA9PSAnOicpCisJCSAgICBicmVhazsKKwkJICBlbHNlIGlmICgqcCA9
PSBURVhfZXNjKQorCQkgICAgeyAvKiBTZWNvbmQgcGFydCBvZiB0ZXN0IGlzIGZvciwgZS5nLiwg
XGNzbGV0LiAqLworCQkgICAgICBpZiAoIW9uZV9lc2MgJiYgIW9wZ3JwKQorCQkJeworCQkJICBv
bmVfZXNjID0gdHJ1ZTsKKwkJCSAgY29udGludWU7CisJCQl9CisJCSAgICAgIGVsc2UKKwkJCWJy
ZWFrOworCQkgICAgfQorCQkgIGVsc2UKKwkJICAgIGNvbnRpbnVlOworCQkvKiBGb3IgVGVYIGZp
bGVzLCB0YWdzIHdpdGhvdXQgYSBuYW1lIGFyZSBiYXNpY2FsbHkgY3J1ZnQsIGFuZAorCQkgICBp
biBzb21lIHNpdHVhdGlvbnMgdGhleSBjYW4gcHJvZHVjZSBzcHVyaW91cyBhbmQgY29uZnVzaW5n
CisJCSAgIG1hdGNoZXMuICBUcnkgdG8gY2F0Y2ggYXMgbWFueSBjYXNlcyBhcyBwb3NzaWJsZSB3
aGVyZSBhCisJCSAgIGNvbW1hbmQgbmFtZSBpcyBvZiB0aGUgZm9ybSAnXCgnLCBidXQgYXZvaWQs
IGFzIGZhciBhcworCQkgICBwb3NzaWJsZSwgdGhlIHNwdXJpb3VzIG1hdGNoZXMuICovCisJCWlm
IChwID09IGNwKQorCQkgIHsKKwkJICAgIHN3aXRjaCAoKnApCisJCSAgICAgIHsgLyogSW5jbHVk
ZSA9PyAqLworCQkgICAgICBjYXNlICcoJzogY2FzZSAnWyc6IGNhc2UgJyInOiBjYXNlICdcJyc6
CisJCSAgICAgIGNhc2UgJ1xcJzogY2FzZSAnISc6IGNhc2UgJz0nOiBjYXNlICcsJzoKKwkJICAg
ICAgY2FzZSAnfCc6IGNhc2UgJyQnOgorCQkJcCsrOworCQkJYnJlYWs7CisJCSAgICAgIGNhc2Ug
J3snOiBjYXNlICd9JzogY2FzZSAnPCc6IGNhc2UgJz4nOgorCQkJaWYgKCFvcGdycCkKKwkJCSAg
eworCQkJICAgICAgcCsrOworCQkJICAgICAgaWYgKCpwID09ICdcMCcgfHwgKnAgPT0gJyUnKQor
CQkJCWdvdG8gdGV4X25leHRfbGluZTsKKwkJCSAgfQorCQkJYnJlYWs7CisJCSAgICAgIGRlZmF1
bHQ6CisJCQlicmVhazsKKwkJICAgICAgfQorCQkgIH0KIAkJbmFtZWxlbiA9IHAgLSBjcDsKIAkJ
bGluZWxlbiA9IGxiLmxlbjsKIAkJaWYgKCFvcGdycCB8fCAqcCA9PSBURVhfY2xncnApCkBAIC01
ODI0LDkgKzU5NzIsMTggQEAgVGVYX2NvbW1hbmRzIChGSUxFICppbmYpCiAJCSAgICAgIHArKzsK
IAkJICAgIGxpbmVsZW4gPSBwIC0gbGIuYnVmZmVyICsgMTsKIAkJICB9Ci0JCW1ha2VfdGFnIChj
cCwgbmFtZWxlbiwgdHJ1ZSwKLQkJCSAgbGIuYnVmZmVyLCBsaW5lbGVuLCBsaW5lbm8sIGxpbmVj
aGFybm8pOwotCQlnb3RvIHRleF9uZXh0X2xpbmU7IC8qIFdlIG9ubHkgdGFnIGEgbGluZSBvbmNl
ICovCisJCWlmIChuYW1lbGVuKQorCQkgIG1ha2VfdGFnIChjcCwgbmFtZWxlbiwgdHJ1ZSwKKwkJ
CSAgICBsYi5idWZmZXIsIGxpbmVsZW4sIGxpbmVubywgbGluZWNoYXJubyk7CisJCS8qIExpbmVz
IHdpdGggbW9yZSB0aGFuIG9uZSBcZGVmIG9yIFxsZXQgYXJlIHN1cnByaXNpbmdseQorCQkgICBj
b21tb24gaW4gVGVYIGZpbGVzLCBlc3BlY2lhbGx5IGluIHRoZSBzeXN0ZW0gZmlsZXMgdGhhdAor
CQkgICBmb3JtIHRoZSBiYXNpcyBvZiB0aGUgdmFyaW91cyBUZVggZm9ybWF0cy4gIFRoaXMgdGFn
cyB0aGVtCisJCSAgIGFsbC4gKi8KKwkJLyogZ290byB0ZXhfbmV4dF9saW5lOyAvXCogV2Ugb25s
eSB0YWcgYSBsaW5lIG9uY2UgKlwvICovCisJCXdoaWxlICgqY3AgIT0gJ1wwJyAmJiAqY3AgIT0g
JyUnICYmICpjcCAhPSBURVhfZXNjKQorCQkgIGNwKys7CisJCWlmICgqY3AgIT0gVEVYX2VzYykK
KwkJICBnb3RvIHRleF9uZXh0X2xpbmU7CiAJICAgICAgfQogCX0KICAgICB0ZXhfbmV4dF9saW5l
OgpkaWZmIC0tZ2l0IGEvbGlzcC90ZXh0bW9kZXMvdGV4LW1vZGUuZWwgYi9saXNwL3RleHRtb2Rl
cy90ZXgtbW9kZS5lbAppbmRleCA5N2M5NTAyNjdjNi4uNGE1OTVhYTFlYTUgMTAwNjQ0Ci0tLSBh
L2xpc3AvdGV4dG1vZGVzL3RleC1tb2RlLmVsCisrKyBiL2xpc3AvdGV4dG1vZGVzL3RleC1tb2Rl
LmVsCkBAIC02MzYsNiArNjM2LDE0IEBAIHRleC1mb250LWxvY2sta2V5d29yZHMtMgogCSAgICAg
IDMgJyh0ZXgtZm9udC1sb2NrLWFwcGVuZC1wcm9wICdib2xkKSAnYXBwZW5kKSkpKSkKICAgICJH
YXVkeSBleHByZXNzaW9ucyB0byBoaWdobGlnaHQgaW4gVGVYIG1vZGVzLiIpCiAKKyhkZWZ2YXIt
bG9jYWwgdGV4LWV4cGwtcmVnaW9uLWxpc3QgbmlsCisgICJMaXN0IG9mIHJlZ2lvbiBib3VuZGFy
aWVzIHdoZXJlIGV4cGwzIHN5bnRheCBpcyBhY3RpdmUuCitJdCB3aWxsIGJlIG5pbCBpbiBidWZm
ZXJzIHdoZXJlIGV4cGwzIHN5bnRheCBpcyBhbHdheXMgYWN0aXZlLCBlLmcuLAorZXhwbDMgY2xh
c3NlcyBvciBwYWNrYWdlcy4iKQorCisoZGVmdmFyLWxvY2FsIHRleC1leHBsLWJ1ZmZlci1wIG5p
bAorICAiTm9uLW5pbCBpbiBidWZmZXJzIHdoZXJlIGV4cGwzIHN5bnRheCBpcyBhbHdheXMgYWN0
aXZlLiIpCisKIChkZWZ1biB0ZXgtZm9udC1sb2NrLXN1c2NyaXB0IChwb3MpCiAgICh1bmxlc3Mg
KG9yIChtZW1xIChnZXQtdGV4dC1wcm9wZXJ0eSBwb3MgJ2ZhY2UpCiAJCSAgICAnKGZvbnQtbG9j
ay1jb25zdGFudC1mYWNlIGZvbnQtbG9jay1idWlsdGluLWZhY2UKQEAgLTY0NSw3ICs2NTMsMTcg
QEAgdGV4LWZvbnQtbG9jay1zdXNjcmlwdAogCQkgICAgKHBvcyBwb3MpKQogCQkod2hpbGUgKGVx
IChjaGFyLWJlZm9yZSBwb3MpID9cXCkKIAkJICAoc2V0cSBwb3MgKDEtIHBvcykgb2RkIChub3Qg
b2RkKSkpCi0JCW9kZCkpCisJCW9kZCkKKyAgICAgICAgICAgICAgOzsgQ2hlY2sgaWYgUE9TIGlz
IGluIGFuIGV4cGwzIHN5bnRheCByZWdpb24gb3IgYW4gZXhwbDMgYnVmZmVyCisgICAgICAgICAg
ICAgICh3aGVuIChlcSAoY2hhci1hZnRlciBwb3MpID9fKQorICAgICAgICAgICAgICAgIChvciB0
ZXgtZXhwbC1idWZmZXItcAorICAgICAgICAgICAgICAgICAgICAoYW5kCisgICAgICAgICAgICAg
ICAgICAgICB0ZXgtZXhwbC1yZWdpb24tbGlzdAorICAgICAgICAgICAgICAgICAgICAgKGNhdGNo
ICdyZXN1bHQKKwkgICAgICAgICAgICAgICAoZG9saXN0IChyYW5nZSB0ZXgtZXhwbC1yZWdpb24t
bGlzdCkKKwkgICAgICAgICAgICAgICAgIChhbmQgKD4gcG9zIChjYXIgcmFuZ2UpKQorCSAgICAg
ICAgICAgICAgICAgICAgICAoPCBwb3MgKGNkciByYW5nZSkpCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAodGhyb3cgJ3Jlc3VsdCB0KSkpKSkpKSkKICAgICAoaWYgKGVxIChjaGFyLWFm
dGVyIHBvcykgP18pCiAJYChmYWNlIHN1YnNjcmlwdCBkaXNwbGF5IChyYWlzZSAsKGNhciB0ZXgt
Zm9udC1zY3JpcHQtZGlzcGxheSkpKQogICAgICAgYChmYWNlIHN1cGVyc2NyaXB0IGRpc3BsYXkg
KHJhaXNlICwoY2FkciB0ZXgtZm9udC1zY3JpcHQtZGlzcGxheSkpKSkpKQpAQCAtMTI4OSw4ICsx
MzA3LDE2IEBAIHRleC1jb21tb24taW5pdGlhbGl6YXRpb24KICAgICAgICAgICAgICAgICAjJ3Rl
eC0tcHJldHRpZnktc3ltYm9scy1jb21wb3NlLXApCiAgIChzZXRxLWxvY2FsIHN5bnRheC1wcm9w
ZXJ0aXplLWZ1bmN0aW9uCiAJICAgICAgKHN5bnRheC1wcm9wZXJ0aXplLXJ1bGVzIGxhdGV4LXN5
bnRheC1wcm9wZXJ0aXplLXJ1bGVzKSkKKyAgOzsgRG9uJ3QgYWRkIGV4dHJhIHByb2Nlc3Npbmcg
dG8gYHN5bnRheC1wcm9wZXJ0aXplJyBpbiBmaWxlcyB3aGVyZQorICA7OyBleHBsMyBzeW50YXgg
aXMgYWx3YXlzIGFjdGl2ZS4KKyAgOmFmdGVyLWhvb2sgKHByb2duICh0ZXgtZXhwbC1idWZmZXIt
cGFyc2UpCisgICAgICAgICAgICAgICAgICAgICAodW5sZXNzIHRleC1leHBsLWJ1ZmZlci1wCisg
ICAgICAgICAgICAgICAgICAgICAgIChhZGQtaG9vayAnc3ludGF4LXByb3BlcnRpemUtZXh0ZW5k
LXJlZ2lvbi1mdW5jdGlvbnMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMndGV4
LWV4cGwtcmVnaW9uLXNldCBuaWwgdCkpKQogICA7OyBUQUJzIGluIHZlcmJhdGltIGVudmlyb25t
ZW50cyBkb24ndCBkbyB3aGF0IHlvdSB0aGluay4KICAgKHNldHEtbG9jYWwgaW5kZW50LXRhYnMt
bW9kZSBuaWwpCisgIDs7IFNldCB1cCB4cmVmIGJhY2tlbmQgaW4gVGVYIGJ1ZmZlcnMuCisgIChh
ZGQtaG9vayAneHJlZi1iYWNrZW5kLWZ1bmN0aW9ucyAjJ3RleC0teHJlZi1iYWNrZW5kIG5pbCB0
KQogICA7OyBPdGhlciB2YXJzIHRoYXQgc2hvdWxkIGJlIGJ1ZmZlci1sb2NhbC4KICAgKG1ha2Ut
bG9jYWwtdmFyaWFibGUgJ3RleC1jb21tYW5kKQogICAobWFrZS1sb2NhbC12YXJpYWJsZSAndGV4
LXN0YXJ0LW9mLWhlYWRlcikKQEAgLTE5MzYsNiArMTk2MiwzNiBAQCB0ZXgtY291bnQtd29yZHMK
IAkJKGZvcndhcmQtc2V4cCAxKSkpKSkpCiAgICAgICAobWVzc2FnZSAiJXMgd29yZHMiIGNvdW50
KSkpKQogCisoZGVmdW4gdGV4LWV4cGwtYnVmZmVyLXBhcnNlICgpCisgICJJZGVudGlmeSBidWZm
ZXJzIHdoZXJlIGV4cGwzIHN5bnRheCBpcyBhbHdheXMgYWN0aXZlLiIKKyAgKHNhdmUtZXhjdXJz
aW9uCisgICAgKGdvdG8tY2hhciAocG9pbnQtbWluKSkKKyAgICAod2hlbiAodGV4LXNlYXJjaC1u
b25jb21tZW50CisJICAgKHJlLXNlYXJjaC1mb3J3YXJkCisJICAgICJcXFxcXFwoPzpFeHBsRmls
ZVxcfFByb3ZpZGVzRXhwbFxcfF9feHBhcnNlX2ZpbGVcXCkiCisJICAgIG5pbCB0KSkKKyAgICAg
IChzZXRxIHRleC1leHBsLWJ1ZmZlci1wIHQpKSkpCisKKyhkZWZ1biB0ZXgtZXhwbC1yZWdpb24t
c2V0IChfYmVnIF9lbmQpCisgICJDcmVhdGUgYSBsaXN0IG9mIHJlZ2lvbnMgd2hlcmUgZXhwbDMg
c3ludGF4IGlzIGFjdGl2ZS4KK1RoaXMgZnVuY3Rpb24gdXBkYXRlcyB0aGUgbGlzdCB3aGVuZXZl
ciBgc3ludGF4LXByb3BlcnRpemUnIHJ1bnMsIGFuZAorc3RvcmVzIGl0IGluIHRoZSBidWZmZXIt
bG9jYWwgdmFyaWFibGUgYHRleC1leHBsLXJlZ2lvbi1saXN0Jy4gIFRoZQorbGlzdCB3aWxsIGFs
d2F5cyBiZSBuaWwgd2hlbiB0aGUgYnVmZmVyIHZpc2l0cyBhbiBleHBsMyBmaWxlLCBlLmcuLCBh
bgorZXhwbDMgY2xhc3Mgb3IgcGFja2FnZSwgd2hlcmUgZXhwbDMgc3ludGF4IGlzIGFsd2F5cyBh
Y3RpdmUuIgorICAodW5sZXNzIHN5bnRheC1wcHNzLS11cGRhdGVkLWNhY2hlOzsgU3RvcCBmb3J3
YXJkIHNlYXJjaCBydW5uaW5nIHR3aWNlLgorICAgIChzZXRxIHRleC1leHBsLXJlZ2lvbi1saXN0
IG5pbCkKKyAgICA7OyBMZWF2aW5nIHRoaXMgdGVzdCBoZXJlIGFsbG93cyB1c2VycyB0byBzZXQg
YHRleC1leHBsLWJ1ZmZlci1wJworICAgIDs7IGluZGVwZW5kZW50bHkgb2YgdGhlIG1vZGUncyBh
dXRvbWF0aWMgZGV0ZWN0aW9uIG9mIGFuIGV4cGwzIGZpbGUuCisgICAgKHVubGVzcyB0ZXgtZXhw
bC1idWZmZXItcAorICAgICAgKGdvdG8tY2hhciAocG9pbnQtbWluKSkKKyAgICAgIChsZXQgKChj
YXNlLWZvbGQtc2VhcmNoIG5pbCkpCisgICAgICAgICh3aGlsZSAodGV4LXNlYXJjaC1ub25jb21t
ZW50CisgICAgICAgICAgICAgICAgKHNlYXJjaC1mb3J3YXJkICJcXEV4cGxTeW50YXhPbiIgbmls
IHQpKQorICAgICAgICAgIChsZXQgKChuZXctYmVnIChwb2ludCkpCisgICAgICAgICAgICAgICAg
KG5ldy1lbmQgKG9yICh0ZXgtc2VhcmNoLW5vbmNvbW1lbnQKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIChzZWFyY2gtZm9yd2FyZCAiXFxFeHBsU3ludGF4T2ZmIiBuaWwgdCkpCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIChwb2ludC1tYXgpKSkpCisgICAgICAgICAgICAocHVz
aCAoY29ucyBuZXctYmVnIG5ldy1lbmQpIHRleC1leHBsLXJlZ2lvbi1saXN0KSkpKSkpKQogCiAM
CiA7OzsgSW52b2tpbmcgVGVYIGluIGFuIGluZmVyaW9yIHNoZWxsLgpAQCAtMzc0Miw2ICszNzk4
LDMyMSBAQCB0ZXgtY2hrdGV4CiAgICAgICAocHJvY2Vzcy1zZW5kLXJlZ2lvbiB0ZXgtY2hrdGV4
LS1wcm9jZXNzIChwb2ludC1taW4pIChwb2ludC1tYXgpKQogICAgICAgKHByb2Nlc3Mtc2VuZC1l
b2YgdGV4LWNoa3RleC0tcHJvY2VzcykpKSkKIAorDAorOzs7IFhyZWYgYmFja2VuZAorCis7OyBI
ZXJlIHdlIGxpZ2h0bHkgYWRhcHQgdGhlIGRlZmF1bHQgZXRhZ3MgYmFja2VuZCBmb3IgeHJlZiBz
byB0aGF0Cis7OyB0aGUgbWFpbiB4cmVmIHVzZXIgY29tbWFuZHMgKGluY2x1ZGluZyBgeHJlZi1m
aW5kLWRlZmluaXRpb25zJywKKzs7IGB4cmVmLWZpbmQtYXByb3BvcycsIGFuZCBgeHJlZi1maW5k
LXJlZmVyZW5jZXMnIFtvbiBNLS4sIEMtTS0uLCBhbmQKKzs7IE0tPywgcmVzcGVjdGl2ZWx5XSkg
d29yayBpbiBUZVggYnVmZmVycy4gIFRoZSBvbmx5IG1ldGhvZHMgd2UKKzs7IGFjdHVhbGx5IG1v
ZGlmeSBhcmUgYHhyZWYtYmFja2VuZC1pZGVudGlmaWVyLWF0LXBvaW50JyBhbmQKKzs7IGB4cmVm
LWJhY2tlbmQtcmVmZXJlbmNlcycuICBNYW55IG9mIHRoZSBjb21wbGljYXRpb25zIGhlcmUsIGFu
ZCBpbgorOzsgYGV0YWdzJyBpdHNlbGYsIGFyZSBkdWUgdG8gdGhlIG5lY2Vzc2l0eSBvZiBwYXJz
aW5nIGJvdGggdGhlIG9sZAorOzsgVGVYIHN5bnRheCBhbmQgdGhlIG5ldyBleHBsMyBzeW50YXgs
IHdoaWNoIHdpbGwgY29udGludWUgdG8gYXBwZWFyCis7OyB0b2dldGhlciBpbiBkb2N1bWVudHMg
Zm9yIHRoZSBmb3Jlc2VlYWJsZSBmdXR1cmUuICBTeW5jaHJvbml6aW5nCis7OyBFbWFjcyBhbmQg
YGV0YWdzJyB0aGlzIHdheSBhaW1zIHRvIGltcHJvdmUgdGhlIHVzZXIgZXhwZXJpZW5jZSAib3V0
Cis7OyBvZiB0aGUgYm94LiIKKworKGRlZnZhciB0ZXgtdGhpbmdhdHB0LWV4Y2x1ZGUtY2hhcnMg
Jyg/XFwgP1x7ID9cfSkKKyAgIkV4Y2x1ZGUgdGhlc2UgY2hhcnMgYnkgZGVmYXVsdCBmcm9tIFRl
WCB0aGluZy1hdC1wb2ludC4KKworVGhlIFRlWCBgeHJlZi1iYWNrZW5kLWlkZW50aWZpZXItYXQt
cG9pbnQnIG1ldGhvZCB1c2VzIHRoZSBjaGFyYWN0ZXJzCitsaXN0ZWQgaW4gdGhpcyB2YXJpYWJs
ZSB0byBkZWNpZGUgb24gdGhlIGRlZmF1bHQgc2VhcmNoIHN0cmluZyB0bworcHJlc2VudCB0byB0
aGUgdXNlciB3aG8gY2FsbHMgYW4gYHhyZWYnIGNvbW1hbmQuICBUaGVzZSBjaGFyYWN0ZXJzCiti
ZWNvbWUgcGFydCBvZiBhIHJlZ2V4cCB3aGljaCBhbHdheXMgZXhjbHVkZXMgdGhlbSBmcm9tIHRo
YXQgZGVmYXVsdAorc3RyaW5nLiAgRm9yIHRoZSBgeHJlZicgY29tbWFuZHMgdG8gZnVuY3Rpb24g
cHJvcGVybHkgaW4gVGVYIGJ1ZmZlcnMsIGF0CitsZWFzdCB0aGUgVGVYIGVzY2FwZSBhbmQgdGhl
IHR3byBUZVggZ3JvdXBpbmcgY2hhcmFjdGVycyBzaG91bGQgYmUKK2xpc3RlZCBoZXJlLiAgU2hv
dWxkIHlvdXIgVGVYIGRvY3VtZW50cyBjb250YWluIG90aGVyIGNoYXJhY3RlcnMgd2hpY2gKK3lv
dSB3YW50IHRvIGV4Y2x1ZGUgYnkgZGVmYXVsdCwgdGhlbiB5b3UgY2FuIGFkZCB0aGVtIHRvIHRo
ZSBsaXN0LAordGhvdWdoIHlvdSBtYXkgd2lzaCB0byBjb25zdWx0IHRoZSBmdW5jdGlvbnMKK2B0
ZXgtdGhpbmdhdHB0LS1iZWdpbm5pbmctb2Ytc3ltYm9sJyBhbmQgYHRleC10aGluZ2F0cHQtLWVu
ZC1vZi1zeW1ib2wnCit0byBzZWUgd2hhdCB0aGUgcmVnZXhwIGFscmVhZHkgY29udGFpbnMuICBJ
ZiB5b3VyIGRvY3VtZW50cyBjb250YWluCitub24tc3RhbmRhcmQgZXNjYXBlIGFuZCBncm91cGlu
ZyBjaGFyYWN0ZXJzLCB0aGVuIHlvdSBjYW4gcmVwbGFjZSB0aGUKK3RocmVlIGxpc3RlZCBoZXJl
IHdpdGggeW91ciBvd24sIHRoZXJlYnkgYWxsb3dpbmcgdGhlIHRocmVlIHN0YW5kYXJkCitjaGFy
YWN0ZXJzIHRvIGFwcGVhciBieSBkZWZhdWx0IGluIHNlYXJjaCBzdHJpbmdzLiAgUGxlYXNlIGJl
IGF3YXJlLAoraG93ZXZlciwgdGhhdCB0aGUgYGV0YWdzJyBwcm9ncmFtIG9ubHkgcmVjb2duaXpl
cyBgXFwnICg5MikgYW5kIGAhJyAoMzMpCithcyBlc2NhcGUgY2hhcmFjdGVycyBpbiBUZVggZG9j
dW1lbnRzLCBhbmQgaWYgaXQgZGV0ZWN0cyB0aGUgbGF0dGVyIGl0CithbHNvIHVzZXMgYDw+JyBh
cyB0aGUgVGVYIGdyb3VwaW5nIGNvbnN0cnVjdCByYXRoZXIgdGhhbiBge30nLiAgU2V0dGluZwor
dGhlIGVzY2FwZSBhbmQgZ3JvdXBpbmcgY2hhcnMgdG8gYW55dGhpbmcgb3RoZXIgdGhhbiBgXFw9
XFx7fScgb3IgYCE8PicKK3dpbGwgbm90IGJlIHVzZWZ1bCB3aXRob3V0IGNoYW5nZXMgdG8gYGV0
YWdzJywgYXQgbGVhc3QgZm9yIGNvbW1hbmRzCit0aGF0IHNlYXJjaCB0YWdzIHRhYmxlcywgc3Vj
aCBhcyBcXFt4cmVmLWZpbmQtZGVmaW5pdGlvbnNdIGFuZCBcCitcXFt4cmVmLWZpbmQtYXByb3Bv
c10uCisKK1Nob3VsZCB5b3Ugd2lzaCB0byBjaGFuZ2UgdGhlIGRlZmF1bHRzLCBwbGVhc2UgYWxz
byBiZSBhd2FyZSB0aGF0LAord2l0aG91dCBmdXJ0aGVyIG1vZGlmaWNhdGlvbnMgdG8gdGV4LW1v
ZGUuZWwsIHRoZSB1c3VhbCB0ZXh0LXBhcnNpbmcKK3JvdXRpbmVzIGZvciBgZm9udC1sb2NrJyBh
bmQgdGhlIGxpa2Ugd29uJ3Qgd29yayBjb3JyZWN0bHksIGFzIHRoZQorZGVmYXVsdCBlc2NhcGUg
YW5kIGdyb3VwaW5nIGNoYXJhY3RlcnMgYXJlIGN1cnJlbnRseSBoYXJkIGNvZGVkIGluIG1hbnkK
K3BsYWNlcy4iKQorCis7OyBQb3B1bGF0ZSBgc2VtYW50aWMtc3ltcmVmLWZpbGVwYXR0ZXJuLWFs
aXN0JyBmb3IgdGhlIGluLXRyZWUgbW9kZXM7Cis7OyBBVUNUZVggaXMgZG9pbmcgdGhlIHNhbWUg
Zm9yIGl0cyBtb2Rlcy4KKyh3aXRoLWV2YWwtYWZ0ZXItbG9hZCAnc2VtYW50aWMvc3ltcmVmL2dy
ZXAKKyAgKGRlZnZhciBzZW1hbnRpYy1zeW1yZWYtZmlsZXBhdHRlcm4tYWxpc3QpCisgIChwdXNo
ICcobGF0ZXgtbW9kZSAiKi5bdFRdZVt4WF0iICIqLmx0eCIgIiouc3R5IiAiKi5jbFtzb10iCisg
ICAgICAgICAgICAgICAgICAgICAiKi5iYmwiICIqLmRydiIgIiouaHZhIikKKyAgICAgICAgc2Vt
YW50aWMtc3ltcmVmLWZpbGVwYXR0ZXJuLWFsaXN0KQorICAocHVzaCAnKHBsYWluLXRleC1tb2Rl
ICIqLlt0VF1lW3hYXSIgIiouaW5zIikKKyAgICAgICAgc2VtYW50aWMtc3ltcmVmLWZpbGVwYXR0
ZXJuLWFsaXN0KQorICAocHVzaCAnKGRvY3RleC1tb2RlICIqLmR0eCIpIHNlbWFudGljLXN5bXJl
Zi1maWxlcGF0dGVybi1hbGlzdCkpCisKKyhkZWZ1biB0ZXgtLXhyZWYtYmFja2VuZCAoKSAndGV4
LWV0YWdzKQorCis7OyBTZXR1cCBBVUNUZVggbW9kZXMgKGZvciB0ZXN0aW5nIHB1cnBvc2VzIG9u
bHkpLgorCisoYWRkLWhvb2sgJ1RlWC1tb2RlLWhvb2sgIyd0ZXgtc2V0LWF1Y3RleC14cmVmLWJh
Y2tlbmQpCisKKyhkZWZ1biB0ZXgtc2V0LWF1Y3RleC14cmVmLWJhY2tlbmQgKCkKKyAgKGFkZC1o
b29rICd4cmVmLWJhY2tlbmQtZnVuY3Rpb25zICMndGV4LS14cmVmLWJhY2tlbmQgbmlsIHQpKQor
Cis7OyBgeHJlZi1maW5kLXJlZmVyZW5jZXMnIGN1cnJlbnRseSBtYXkgbmVlZCB0aGlzIHdoZW4g
Y2FsbGVkIGZyb20gYQorOzsgbGF0ZXgtbW9kZSBidWZmZXIgaW4gb3JkZXIgdG8gc2VhcmNoIGZp
bGVzIG9yIGJ1ZmZlcnMgd2l0aCBhIC50ZXgKKzs7IHN1ZmZpeCAoaW5jbHVkaW5nIHRoZSBidWZm
ZXIgZnJvbSB3aGljaCBpdCBoYXMgYmVlbiBjYWxsZWQpLiAgV2UKKzs7IGFwcGVuZCBpdCB0byBg
YXV0by1tb2RlLWFsaXN0JyBzbyBhcyBub3QgdG8gaW50ZXJmZXJlIHdpdGggdGhlIHVzdWFsCis7
OyBtb2RlLXNldHRpbmcgYXBwYXJhdHVzLiAgQ2hhbmdlcyBoZXJlIGFuZCBpbiBBVUNUZVggc2hv
dWxkIHNvb24KKzs7IHJlbmRlciBpdCB1bm5lY2Vzc2FyeS4KKyhhZGQtdG8tbGlzdCAnYXV0by1t
b2RlLWFsaXN0ICcoIlxcLlt0VF1lW3hYXVxcJyIgLiBsYXRleC1tb2RlKSB0KQorCisoY2wtZGVm
bWV0aG9kIHhyZWYtYmFja2VuZC1pZGVudGlmaWVyLWF0LXBvaW50ICgoX2JhY2tlbmQgKGVxbCAn
dGV4LWV0YWdzKSkpCisgIChyZXF1aXJlICdldGFncykKKyAgKHRleC0tdGhpbmctYXQtcG9pbnQp
KQorCis7OyBUaGUgZGV0ZWN0aW9uIG9mIGBfJyBhbmQgYDonIGlzIGEgcHJpbWl0aXZlIG1ldGhv
ZCBmb3IgZGV0ZXJtaW5pbmcKKzs7IHdoZXRoZXIgcG9pbnQgaXMgb24gYW4gZXhwbDMgY29uc3Ry
dWN0LiAgSXQgbWF5IGZhaWwgaW4gc29tZQorOzsgaW5zdGFuY2VzLgorKGRlZnVuIHRleC0tdGhp
bmctYXQtcG9pbnQgKCkKKyAgIkRlbWFyY2F0ZSBgdGhpbmctYXQtcG9pbnQnIGZvciB0aGUgVGVY
IGB4cmVmJyBiYWNrZW5kLiIKKyAgKGxldCAoKGJvdW5kcyAodGV4LS1ib3VuZHMtb2Ytc3ltYm9s
LWF0LXBvaW50KSkpCisgICAgKHdoZW4gYm91bmRzCisgICAgICAobGV0ICgodGV4c3ltIChidWZm
ZXItc3Vic3RyaW5nLW5vLXByb3BlcnRpZXMgKGNhciBib3VuZHMpIChjZHIgYm91bmRzKSkpKQor
ICAgICAgICAoaWYgKGFuZCAobm90IChzdHJpbmctbWF0Y2gtcCAicmVmZXJlbmNlIiAoc3ltYm9s
LW5hbWUgdGhpcy1jb21tYW5kKSkpCisgICAgICAgICAgICAgICAgIChzZXEtY29udGFpbnMtcCB0
ZXhzeW0gP18pCisgICAgICAgICAgICAgICAgIChzZXEtY29udGFpbnMtcCB0ZXhzeW0gPzopKQor
ICAgICAgICAgICAgKHNlcS10YWtlIHRleHN5bSAoc2VxLXBvc2l0aW9uIHRleHN5bSA/OikpCisg
ICAgICAgICAgdGV4c3ltKSkpKSkKKworKGRlZnVuIHRleC10aGluZ2F0cHQtLWJlZ2lubmluZy1v
Zi1zeW1ib2wgKCkKKyAgKGFuZAorICAgKHJlLXNlYXJjaC1iYWNrd2FyZCAoY29uY2F0ICJbXVsi
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hcGNvbmNhdCAjJ3JlZ2V4cC1xdW90
ZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hcGNhciAjJ2No
YXItdG8tc3RyaW5nCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHRleC10aGluZ2F0cHQtZXhjbHVkZS1jaGFycykpCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIlwiKmAnIz0mKCklLHwkWzpjbnRybDpdWzpibGFuazpdXSIpKQorICAgKGZv
cndhcmQtY2hhcikpKQorCisoZGVmdW4gdGV4LXRoaW5nYXRwdC0tZW5kLW9mLXN5bWJvbCAoKQor
ICAoYW5kCisgICAocmUtc2VhcmNoLWZvcndhcmQgKGNvbmNhdCAiW11bIgorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgKG1hcGNvbmNhdCAjJ3JlZ2V4cC1xdW90ZQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hcGNhciAjJ2NoYXItdG8tc3RyaW5nCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleC10aGlu
Z2F0cHQtZXhjbHVkZS1jaGFycykpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXCIq
YCcjPSYoKSUsfCRbOmNudHJsOl1bOmJsYW5rOl1dIikpCisgICAoYmFja3dhcmQtY2hhcikpKQor
CisoZGVmdW4gdGV4LS1ib3VuZHMtb2Ytc3ltYm9sLWF0LXBvaW50ICgpCisgICJTaW1wbGlmeSBg
Ym91bmRzLW9mLXRoaW5nLWF0LXBvaW50JyBmb3IgVGVYIGB4cmVmJyBiYWNrZW5kLiIKKyAgKGxl
dCAoKG9yaWcgKHBvaW50KSkpCisgICAgKGlnbm9yZS1lcnJvcnMKKyAgICAgIChzYXZlLWV4Y3Vy
c2lvbgorCSh0ZXgtdGhpbmdhdHB0LS1lbmQtb2Ytc3ltYm9sKQorCSh0ZXgtdGhpbmdhdHB0LS1i
ZWdpbm5pbmctb2Ytc3ltYm9sKQorCShsZXQgKChiZWcgKHBvaW50KSkpCisJICAoaWYgKDw9IGJl
ZyBvcmlnKQorCSAgICAgIChsZXQgKChyZWFsLWVuZAorCQkgICAgIChwcm9nbgorCQkgICAgICAg
KHRleC10aGluZ2F0cHQtLWVuZC1vZi1zeW1ib2wpCisJCSAgICAgICAocG9pbnQpKSkpCisJCShj
b25kICgoYW5kICg8PSBvcmlnIHJlYWwtZW5kKSAoPCBiZWcgcmVhbC1lbmQpKQorCQkgICAgICAg
KGNvbnMgYmVnIHJlYWwtZW5kKSkKKyAgICAgICAgICAgICAgICAgICAgICAoKGFuZCAoPSBvcmln
IHJlYWwtZW5kKSAoPSBiZWcgcmVhbC1lbmQpKQorCQkgICAgICAgKGNvbnMgYmVnICgxKyBiZWcp
KSkpKSkpKSkpKTs7IEZvciAxLWNoYXIgVGVYIGNvbW1hbmRzLgorCisoY2wtZGVmbWV0aG9kIHhy
ZWYtYmFja2VuZC1pZGVudGlmaWVyLWNvbXBsZXRpb24tdGFibGUgKChfYmFja2VuZAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVxbCAn
dGV4LWV0YWdzKSkpCisgICh4cmVmLWJhY2tlbmQtaWRlbnRpZmllci1jb21wbGV0aW9uLXRhYmxl
ICdldGFncykpCisKKyhjbC1kZWZtZXRob2QgeHJlZi1iYWNrZW5kLWlkZW50aWZpZXItY29tcGxl
dGlvbi1pZ25vcmUtY2FzZSAoKF9iYWNrZW5kCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZXFsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3RleC1ldGFn
cykpKQorICAoeHJlZi1iYWNrZW5kLWlkZW50aWZpZXItY29tcGxldGlvbi1pZ25vcmUtY2FzZSAn
ZXRhZ3MpKQorCisoY2wtZGVmbWV0aG9kIHhyZWYtYmFja2VuZC1kZWZpbml0aW9ucyAoKF9iYWNr
ZW5kIChlcWwgJ3RleC1ldGFncykpIHN5bWJvbCkKKyAgKHhyZWYtYmFja2VuZC1kZWZpbml0aW9u
cyAnZXRhZ3Mgc3ltYm9sKSkKKworKGNsLWRlZm1ldGhvZCB4cmVmLWJhY2tlbmQtYXByb3BvcyAo
KF9iYWNrZW5kIChlcWwgJ3RleC1ldGFncykpIHBhdHRlcm4pCisgICh4cmVmLWJhY2tlbmQtYXBy
b3BvcyAnZXRhZ3MgcGF0dGVybikpCisKKzs7IFRoZSBgeHJlZi1iYWNrZW5kLXJlZmVyZW5jZXMn
IG1ldGhvZCByZXF1aXJlcyBtb3JlIGNvZGUgdGhhbiB0aGUKKzs7IG90aGVycyBmb3IgYXQgbGVh
c3QgdHdvIG1haW4gcmVhc29uczogVGVYIGF1dGhvcnMgaGF2ZSB0eXBpY2FsbHkgYmVlbgorOzsg
ZnJlZSBpbiB0aGVpciBpbnZlbnRpb24gb2YgbmV3IGZpbGUgdHlwZXMgd2l0aCBuZXcgc3VmZml4
ZXMsIGFuZCB0aGV5Cis7OyBoYXZlIGFsc28gdGVuZGVkIHNvbWV0aW1lcyB0byBpbmNsdWRlIG5v
bi1zeW1ib2wgY2hhcmFjdGVycyBpbgorOzsgY29tbWFuZCBuYW1lcy4gIFdoZW4gY29tYmluZWQg
d2l0aCB0aGUgZGVmYXVsdCBTZW1hbnRpYyBTeW1ib2wKKzs7IFJlZmVyZW5jZSBBUEksIHRoZXNl
IHR3byBjaGFyYWN0ZXJpc3RpY3Mgb2YgVGVYIGNvZGUgbWVhbiB0aGF0IGEKKzs7IGNvbW1hbmQg
bGlrZSBgeHJlZi1maW5kLXJlZmVyZW5jZXMnIHdvdWxkIG9mdGVuIGZhaWwgdG8gZmluZCBhbnkg
aGl0cworOzsgZm9yIGEgc3ltYm9sIGF0IHBvaW50LCBpbmNsdWRpbmcgdGhlIG9uZSB1bmRlciBw
b2ludCBpbiB0aGUgY3VycmVudAorOzsgYnVmZmVyLCBvciBpdCB3b3VsZCBmaW5kIG9ubHkgc29t
ZSBpbnN0YW5jZXMgYW5kIHNraXAgb3RoZXJzLgorCisoZGVmdW4gdGV4LWZpbmQtcmVmZXJlbmNl
cy1zeW50YXgtdGFibGUgKCkKKyAgKGxldCAoKHN0IChpZiAoYm91bmRwICdUZVgtbW9kZS1zeW50
YXgtdGFibGUpCisgICAgICAgICAgICAgICAgIChtYWtlLXN5bnRheC10YWJsZSBUZVgtbW9kZS1z
eW50YXgtdGFibGUpCisgICAgICAgICAgICAgICAobWFrZS1zeW50YXgtdGFibGUgdGV4LW1vZGUt
c3ludGF4LXRhYmxlKSkpKQorICAgIHN0KSkKKworKGRlZnZhciB0ZXgtLXhyZWYtc3ludGF4LWZ1
biBuaWwpCisKKyhkZWZ1biB0ZXgteHJlZi1zeW50YXgtZnVuY3Rpb24gKHN0ciBiZWcgZW5kKQor
ICAiUHJvdmlkZSBhIGJlc3Bva2UgYHN5bnRheC1wcm9wZXJ0aXplLWZ1bmN0aW9uJyBmb3IgXFxb
eHJlZi1maW5kLXJlZmVyZW5jZXNdLiIKKyAgKGxldCogKGdycGIgdGVtcHN0cgorICAgICAgICAg
ICAgICAoc2hydHN0ciAoaWYgZW5kCisgICAgICAgICAgICAgICAgICAgICAgICAgICAocHJvZ24K
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHNldHEgdGVtcHN0ciAoc2VxLXRha2Ugc3Ry
ICgxLSAobGVuZ3RoIHN0cikpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGlmIGJl
ZworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHNldHEgdGVtcHN0ciAoc2VxLWRy
b3AgdGVtcHN0ciAxKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZW1wc3RyKSkK
KyAgICAgICAgICAgICAgICAgICAgICAgICAoc2VxLWRyb3Agc3RyIDEpKSkKKyAgICAgICAgICAg
ICAgKGdycGEgKGlmIChhbmQgYmVnIGVuZCkKKyAgICAgICAgICAgICAgICAgICAgICAgIChwcm9n
MQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaXN0IDEgIl8iKQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAoc2V0cSBncnBiIChsaXN0IDIgIl8iKSkpCisgICAgICAgICAgICAgICAg
ICAgICAgKGxpc3QgMSAiXyIpKSkKKyAgICAgICAgICAgICAgKHJlIChjb25jYXQgYmVnIChyZWdl
eHAtcXVvdGUgc2hydHN0cikgZW5kKSkKKyAgICAgICAgICAgICAgKHRlbXAtcnVsZSAoaWYgZ3Jw
YgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGlzdCByZSBncnBhIGdycGIpCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAobGlzdCByZSBncnBhKSkpKQorICAgIDs7IFNpbXBsZSBi
ZW5jaG1hcmtzIHN1Z2dlc3RlZCB0aGF0IHRoZSBzcGVlZC11cCBmcm9tIGNvbXBpbGluZyB0aGlz
CisgICAgOzsgZnVuY3Rpb24gd2FzIG5lYXJseSBuaWwsIHNvIGBldmFsJyBhbmQgaXRzIG5vbi1i
eXRlLWNvbXBpbGVkCisgICAgOzsgZnVuY3Rpb24gcmVtYWluLgorICAgIChzZXRxIHRleC0teHJl
Zi1zeW50YXgtZnVuIChldmFsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGAoc3lu
dGF4LXByb3BlcnRpemUtcnVsZXMgLHRlbXAtcnVsZSkpKSkpCisKKyhkZWZ1biB0ZXgtLWNvbGxl
Y3QtZmlsZS1leHRlbnNpb25zICgpCisgICJHYXRoZXIgVGVYIGZpbGUgZXh0ZW5zaW9ucyBmcm9t
IGBhdXRvLW1vZGUtYWxpc3QnLiIKKyAgKGxldCogKChtbGlzdCAod2hlbiAocmFzc3EgbWFqb3It
bW9kZSBhdXRvLW1vZGUtYWxpc3QpCisJCSAgKHNlcS1maWx0ZXIKKwkJICAgKGxhbWJkYSAoZWx0
KQorCQkgICAgIChlcSAoY2RyIGVsdCkgbWFqb3ItbW9kZSkpCisJCSAgIGF1dG8tbW9kZS1hbGlz
dCkpKQorCSAobGNzeW0gKGludGVybi1zb2Z0IChkb3duY2FzZSAoc3ltYm9sLW5hbWUgbWFqb3It
bW9kZSkpKSkKKwkgKGxjbGlzdCAoYW5kIGxjc3ltCisJCSAgICAgIChub3QgKGVxIGxjc3ltIG1h
am9yLW1vZGUpKQorCQkgICAgICAocmFzc3EgbGNzeW0gYXV0by1tb2RlLWFsaXN0KQorCQkgICAg
ICAoc2VxLWZpbHRlcgorCQkgICAgICAgKGxhbWJkYSAoZWx0KQorCQkJIChlcSAoY2RyIGVsdCkg
bGNzeW0pKQorCQkgICAgICAgYXV0by1tb2RlLWFsaXN0KSkpCisJIChzaG9ydHN5bSAod2hlbiAo
c3RyaW5ncCBtb2RlLW5hbWUpCisJCSAgICAgKGludGVybi1zb2Z0IChjb25jYXQgKHN0cmluZy10
cmltLXJpZ2h0IG1vZGUtbmFtZSAiLy4qIikKKwkJCQkJICAiLW1vZGUiKSkpKQorCSAobGNzaG9y
dHN5bSAod2hlbiAoc3RyaW5ncCBtb2RlLW5hbWUpCisJCSAgICAgICAoaW50ZXJuLXNvZnQgKGRv
d25jYXNlCisJCQkJICAgICAoY29uY2F0CisJCQkJICAgICAgKHN0cmluZy10cmltLXJpZ2h0IG1v
ZGUtbmFtZSAiLy4qIikKKwkJCQkgICAgICAiLW1vZGUiKSkpKSkKKwkgKHNobGlzdCAoYW5kIHNo
b3J0c3ltCisJCSAgICAgIChub3QgKGVxIHNob3J0c3ltIG1ham9yLW1vZGUpKQorCQkgICAgICAo
bm90IChlcSBzaG9ydHN5bSBsY3N5bSkpCisJCSAgICAgIChyYXNzcSBzaG9ydHN5bSBhdXRvLW1v
ZGUtYWxpc3QpCisJCSAgICAgIChzZXEtZmlsdGVyCisJCSAgICAgICAobGFtYmRhIChlbHQpCisJ
CQkgKGVxIChjZHIgZWx0KSBzaG9ydHN5bSkpCisJCSAgICAgICBhdXRvLW1vZGUtYWxpc3QpKSkK
KwkgKGxjc2hsaXN0IChhbmQgbGNzaG9ydHN5bQorCQkJKG5vdCAoZXEgbGNzaG9ydHN5bSBtYWpv
ci1tb2RlKSkKKwkJCShub3QgKGVxIGxjc2hvcnRzeW0gbGNzeW0pKQorCQkJKHJhc3NxIGxjc2hv
cnRzeW0gYXV0by1tb2RlLWFsaXN0KQorCQkJKHNlcS1maWx0ZXIKKwkJCSAobGFtYmRhIChlbHQp
CisJCQkgICAoZXEgKGNkciBlbHQpIGxjc2hvcnRzeW0pKQorCQkJIGF1dG8tbW9kZS1hbGlzdCkp
KQorCSAoZXh0cyAod2hlbiAob3IgbWxpc3QgbGNsaXN0IHNobGlzdCBsY3NobGlzdCkKKwkJIChz
ZXEtdW5pb24gKHNlcS1tYXAgIydjYXIgbGNsaXN0KQorCQkJICAgIChzZXEtdW5pb24gKHNlcS1t
YXAgIydjYXIgbWxpc3QpCisJCQkJICAgICAgIChzZXEtdW5pb24gKHNlcS1tYXAgIydjYXIgbGNz
aGxpc3QpCisJCQkJCQkgIChzZXEtbWFwICMnY2FyIHNobGlzdCkpKSkpKQorCSAoZWQtZXh0cyAo
d2hlbiBleHRzCisJCSAgICAoc2VxLW1hcAorCQkgICAgIChsYW1iZGEgKGVsdCkKKwkJICAgICAg
IChjb25jYXQgIioiIChzdHJpbmctdHJpbSAgZWx0ICJcXFxcIiAiXFxcXCciKSkpCisJCSAgICAg
ZXh0cykpKSkKKyAgICBlZC1leHRzKSkKKworKGRlZnZhciB0ZXgtLWJ1ZmZlcnMtbGlzdCBuaWwp
CisoZGVmdmFyLWxvY2FsIHRleC0tb2xkLXN5bnRheC1mdW5jdGlvbiBuaWwpCisKKyhjbC1kZWZt
ZXRob2QgeHJlZi1iYWNrZW5kLXJlZmVyZW5jZXMgKChfYmFja2VuZCAoZXFsICd0ZXgtZXRhZ3Mp
KSBpZGVudGlmaWVyKQorICAiRmluZCByZWZlcmVuY2VzIG9mIElERU5USUZJRVIgaW4gVGVYIGJ1
ZmZlcnMgYW5kIGZpbGVzLiIKKyAgKHJlcXVpcmUgJ3NlbWFudGljL3N5bXJlZi9ncmVwKQorICAo
ZGVmdmFyIHNlbWFudGljLXN5bXJlZi1maWxlcGF0dGVybi1hbGlzdCkKKyAgKGxldCAoYnVmcyB0
ZXhidWZzCisgICAgICAgICAgICAgKG1vZGUgbWFqb3ItbW9kZSkpCisgICAgKGRvbGlzdCAoYnVm
IChidWZmZXItbGlzdCkpCisgICAgICAoaWYgKGVxIChidWZmZXItbG9jYWwtdmFsdWUgJ21ham9y
LW1vZGUgYnVmKSBtb2RlKQorICAgICAgICAgIChwdXNoIGJ1ZiBidWZzKQorICAgICAgICAod2hl
biAoc3RyaW5nLW1hdGNoLXAgIi4qXFwuW3RUXWVbeFhdIiAoYnVmZmVyLW5hbWUgYnVmKSkKKyAg
ICAgICAgICAocHVzaCBidWYgdGV4YnVmcykpKSkKKyAgICAodW5sZXNzIChzZXEtc2V0LWVxdWFs
LXAgdGV4LS1idWZmZXJzLWxpc3QgYnVmcykKKyAgICAgIChsZXQqICgoYW1hbGlzdCAodGV4LS1j
b2xsZWN0LWZpbGUtZXh0ZW5zaW9ucykpCisJICAgICAoZXh0bGlzdCAoYWxpc3QtZ2V0IG1vZGUg
c2VtYW50aWMtc3ltcmVmLWZpbGVwYXR0ZXJuLWFsaXN0KSkKKwkgICAgIChleHRsaXN0LW5ldyAo
c2VxLXVuaXEKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIChzZXEtdW5pb24gYW1hbGlzdCBl
eHRsaXN0ICMnc3RyaW5nLW1hdGNoLXApKSkpCisJKHNldHEgdGV4LS1idWZmZXJzLWxpc3QgYnVm
cykKKwkoZG9saXN0IChidWYgYnVmcykKKwkgICh3aGVuLWxldCAoKGZidWYgKGJ1ZmZlci1maWxl
LW5hbWUgYnVmKSkKKwkJICAgICAoZXh0IChmaWxlLW5hbWUtZXh0ZW5zaW9uIGZidWYpKQorCQkg
ICAgIChmaW5leHQgKGNvbmNhdCAiKi4iIGV4dCkpCisJCSAgICAgKChub3QgKHNlcS1maW5kIChs
YW1iZGEgKGVsdCkgKHN0cmluZy1tYXRjaC1wIGVsdCBmaW5leHQpKQorCQkJCSAgICAgZXh0bGlz
dC1uZXcpKSkKKwkJICAgICAoKHB1c2ggZmluZXh0IGV4dGxpc3QtbmV3KSkpKSkKKwkodW5sZXNz
IChzZXEtc2V0LWVxdWFsLXAgZXh0bGlzdC1uZXcgZXh0bGlzdCkKKwkgIChzZXRmIChhbGlzdC1n
ZXQgbW9kZSBzZW1hbnRpYy1zeW1yZWYtZmlsZXBhdHRlcm4tYWxpc3QpCisgICAgICAgICAgICAg
ICAgZXh0bGlzdC1uZXcpKSkpCisgICAgKGxldCogKHNldHN5bnRheAorICAgICAgICAgICAocHVu
Y3QgKHdpdGgtc3ludGF4LXRhYmxlICh0ZXgtZmluZC1yZWZlcmVuY2VzLXN5bnRheC10YWJsZSkK
KyAgICAgICAgICAgICAgICAgICAgKHNlcS1wb3NpdGlvbnMgaWRlbnRpZmllciAobGlzdCA/dyA/
XykKKwkJCSAgICAgICAgICAgKGxhbWJkYSAoZWx0IHN5Y29kZSkKKwkJCSAgICAgICAgICAgICAo
bm90IChtZW1xIChjaGFyLXN5bnRheCBlbHQpIHN5Y29kZSkpKSkpKQorICAgICAgICAgICAoZW5k
IChhbmQgcHVuY3QKKyAgICAgICAgICAgICAgICAgICAgIChtZW1xICgxLSAobGVuZ3RoIGlkZW50
aWZpZXIpKSBwdW5jdCkKKyAgICAgICAgICAgICAgICAgICAgICg+IChsZW5ndGggaWRlbnRpZmll
cikgMSkKKyAgICAgICAgICAgICAgICAgICAgIChjb25jYXQgIlxcKCIKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgKHJlZ2V4cC1xdW90ZQorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgKHN0cmluZyAoZWx0IGlkZW50aWZpZXIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAoMS0gKGxlbmd0aCBpZGVudGlmaWVyKSkpKSkKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIlxcKSIpKSkKKyAgICAgICAgICAgKGJlZyAoYW5kIHB1bmN0CisgICAg
ICAgICAgICAgICAgICAgICAobWVtcSAwIHB1bmN0KQorICAgICAgICAgICAgICAgICAgICAgKGNv
bmNhdCAiXFwoIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocmVnZXhwLXF1b3RlIChz
dHJpbmcgKGVsdCBpZGVudGlmaWVyIDApKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IlxcKSIpKSkKKyAgICAgICAgICAgKHRleHQtbW9kZS1ob29rCisgICAgICAgICAgICAoaWYgKG9y
IGVuZCBiZWcpCisgICAgICAgICAgICAgICAgKHByb2duCisgICAgICAgICAgICAgICAgICAodGV4
LXhyZWYtc3ludGF4LWZ1bmN0aW9uIGlkZW50aWZpZXIgYmVnIGVuZCkKKyAgICAgICAgICAgICAg
ICAgIChzZXRxIHNldHN5bnRheCAobGFtYmRhICgpCisJCSAgICAgICAgICAgICAgICAgICAgKHNl
dHEtbG9jYWwgc3ludGF4LXByb3BlcnRpemUtZnVuY3Rpb24KKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleC0teHJlZi1zeW50YXgtZnVuKQorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHNldHEtbG9jYWwgVGVYLXN0eWxlLWhvb2st
YXBwbGllZC1wIHQpKSkKKyAgICAgICAgICAgICAgICAgIChjb25zIHNldHN5bnRheCB0ZXh0LW1v
ZGUtaG9vaykpCisgICAgICAgICAgICAgIHRleHQtbW9kZS1ob29rKSkpCisgICAgICAodW5sZXNz
IChtZW1xICdkb2N0ZXgtbW9kZSAoZGVyaXZlZC1tb2RlLWFsbC1wYXJlbnRzIG1vZGUpKQorICAg
ICAgICAoc2V0cSBidWZzIChhcHBlbmQgdGV4YnVmcyBidWZzKSkpCisgICAgICAod2hlbiAob3Ig
ZW5kIGJlZykKKyAgICAgICAgKGRvbGlzdCAoYnVmIGJ1ZnMpCisgICAgICAgICAgKHdpdGgtY3Vy
cmVudC1idWZmZXIgYnVmCisgICAgICAgICAgICAodW5sZXNzIChsb2NhbC12YXJpYWJsZS1wICd0
ZXgtLW9sZC1zeW50YXgtZnVuY3Rpb24pCisgICAgICAgICAgICAgIChzZXRxIHRleC0tb2xkLXN5
bnRheC1mdW5jdGlvbiBzeW50YXgtcHJvcGVydGl6ZS1mdW5jdGlvbikpCisgICAgICAgICAgICAo
c2V0cS1sb2NhbCBzeW50YXgtcHJvcGVydGl6ZS1mdW5jdGlvbgorICAgICAgICAgICAgICAgICAg
ICAgICAgdGV4LS14cmVmLXN5bnRheC1mdW4pCisgICAgICAgICAgICAoc3ludGF4LXBwc3MtZmx1
c2gtY2FjaGUgKHBvaW50LW1pbikpKSkpCisgICAgICAodW53aW5kLXByb3RlY3QKKyAgICAgICAg
ICAoeHJlZi1iYWNrZW5kLXJlZmVyZW5jZXMgbmlsIGlkZW50aWZpZXIpCisgICAgICAgICh3aGVu
IChvciBlbmQgYmVnKQorICAgICAgICAgIChkb2xpc3QgKGJ1ZiBidWZzKQorICAgICAgICAgICAg
KHdpdGgtY3VycmVudC1idWZmZXIgYnVmCisgICAgICAgICAgICAgICh3aGVuIGJ1ZmZlci1maWxl
LXRydWVuYW1lCisgICAgICAgICAgICAgICAgKHNldHEtbG9jYWwgc3ludGF4LXByb3BlcnRpemUt
ZnVuY3Rpb24KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXgtLW9sZC1zeW50YXgtZnVu
Y3Rpb24pCisgICAgICAgICAgICAgICAgKHN5bnRheC1wcHNzLWZsdXNoLWNhY2hlIChwb2ludC1t
aW4pKSkpKSkpKSkpCisKIChtYWtlLW9ic29sZXRlLXZhcmlhYmxlICd0ZXgtbW9kZS1sb2FkLWhv
b2sKICAgICAgICAgICAgICAgICAgICAgICAgICJ1c2UgYHdpdGgtZXZhbC1hZnRlci1sb2FkJyBp
bnN0ZWFkLiIgIjI4LjEiKQogKHJ1bi1ob29rcyAndGV4LW1vZGUtbG9hZC1ob29rKQotLSAKMi4z
OS40Cgo=
--00000000000071180b061891c40c--




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#53749: 29.0.50; [PATCH] Xref backend for TeX buffers
Resent-From: Stefan Monnier <monnier@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Thu, 16 May 2024 18:20:01 +0000
Resent-Message-ID: <handler.53749.B53749.17158835517400 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 53749
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: pending patch
To: Dmitry Gutov <dgutov@HIDDEN>
Cc: 53749 <at> debbugs.gnu.org, Ikumi Keita <ikumi@HIDDEN>, David Fussner <dfussner@HIDDEN>, Arash Esbati <arash@HIDDEN>, stefankangas@HIDDEN, Tassilo Horn <tsdh@HIDDEN>, Eli Zaretskii <eliz@HIDDEN>
Received: via spool by 53749-submit <at> debbugs.gnu.org id=B53749.17158835517400
          (code B ref 53749); Thu, 16 May 2024 18:20:01 +0000
Received: (at 53749) by debbugs.gnu.org; 16 May 2024 18:19:11 +0000
Received: from localhost ([127.0.0.1]:50193 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1s7fh8-0001vI-St
	for submit <at> debbugs.gnu.org; Thu, 16 May 2024 14:19:11 -0400
Received: from mailscanner.iro.umontreal.ca ([132.204.25.50]:15088)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <monnier@HIDDEN>) id 1s7fh6-0001uy-RD
 for 53749 <at> debbugs.gnu.org; Thu, 16 May 2024 14:19:09 -0400
Received: from pmg3.iro.umontreal.ca (localhost [127.0.0.1])
 by pmg3.iro.umontreal.ca (Proxmox) with ESMTP id 4AFD84415C0;
 Thu, 16 May 2024 14:19:00 -0400 (EDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=iro.umontreal.ca;
 s=mail; t=1715883534;
 bh=s7LfnzTOVMyyIaDvTVS8WGyB5p6AjT10cg1oP8XzWFI=;
 h=From:To:Cc:Subject:In-Reply-To:References:Date:From;
 b=IdMuu1C7HvZHHkTUHISsnx5QajVakm2C5/uGc4fgWH3928SBY05YLSIxUl+N+bf/W
 ZpPcecTHhxT9BySZYjPP6h9z4eOdEsku13MvA88kwIrRTwE7dT8azPGI/JDFgDLvPB
 sC8ASsP+QFkMBXTjy8sUePveONrWbfkMbvGXC8gjXs2laQa/uJKt5LXDBtd58fsICn
 GCxFCZdaVa3AV2mRhgnWSV5ikJ3/yWG1i56qBborMm3O3IojucDsHzpkFGbLVCB2dN
 RkKyRNgZ/6hcKZF28zLU6rQaG7mVIx/J7ixhBMO10g2WwMWqVqyZEhY5QGrlUekmh/
 yfgD64YPn3cFQ==
Received: from mail01.iro.umontreal.ca (unknown [172.31.2.1])
 by pmg3.iro.umontreal.ca (Proxmox) with ESMTP id B2B6344137D;
 Thu, 16 May 2024 14:18:54 -0400 (EDT)
Received: from lechazo (lechon.iro.umontreal.ca [132.204.27.242])
 by mail01.iro.umontreal.ca (Postfix) with ESMTPSA id 9A3DD12047E;
 Thu, 16 May 2024 14:18:54 -0400 (EDT)
From: Stefan Monnier <monnier@HIDDEN>
In-Reply-To: <82993b86-0f34-4adb-a392-c74db5176d14@HIDDEN> (Dmitry Gutov's
 message of "Wed, 15 May 2024 00:24:24 +0300")
Message-ID: <jwv7cftbp8i.fsf-monnier+emacs@HIDDEN>
References: <CADF+RtgWCLKQGwgdTNWmgesbcwq8iBxChoN8FqMOg95Ai3CYTA@HIDDEN>
 <CADwFkmkbMSXdjB6kF3a68_1vb4dv05_vMrKrvoX908nZJrpxOg@HIDDEN>
 <CADF+RtgxigxvgG0j6bbpYnrrFVF4YTKZ1Rs0JSCc8zuu5JNA2w@HIDDEN>
 <fcbc07cf-5ee9-131f-1a18-9cc28a5655f1@HIDDEN>
 <CADF+Rti2gSVvfksUVO04ptKQsXrNpwUXHQ_qFjC26D8NNh578A@HIDDEN>
 <2c5c8afa-b57e-3156-d21c-5523cacb4d87@HIDDEN>
 <831qf1mgjl.fsf@HIDDEN> <87cyyj9rpp.fsf@HIDDEN>
 <65793.1694843596@localhost>
 <CADF+RtikqxOW0XpwGTWWuGNTWjz3-MWMcO6U65Tta3PJjkRXqw@HIDDEN>
 <m24jbtim2p.fsf@HIDDEN>
 <CADF+RtiOECRmdoFD1qP=gRzS+P3tJqh_WNTnuW-1zPrY9g4VBw@HIDDEN>
 <e5a6ba0d-ca4a-4e21-b44f-12043c59aa6b@HIDDEN>
 <CADF+Rtif9uA3qgcSbxiFMTi01wyn5fSMgdTGu1Crsdb24XexDQ@HIDDEN>
 <jwvh6ff9fqi.fsf-monnier+emacs@HIDDEN>
 <eb177a28-d1b3-481a-afad-97bfb9e8d851@HIDDEN>
 <83ba27b7-4d28-4a3f-b803-4bc49f62986c@HIDDEN>
 <jwv7cfxihg2.fsf-monnier+emacs@HIDDEN>
 <82993b86-0f34-4adb-a392-c74db5176d14@HIDDEN>
Date: Thu, 16 May 2024 14:18:54 -0400
User-Agent: Gnus/5.13 (Gnus v5.13)
MIME-Version: 1.0
Content-Type: text/plain
X-SPAM-INFO: Spam detection results:  0
 ALL_TRUSTED                -1 Passed through trusted hosts only via SMTP
 AWL 0.099 Adjusted score from AWL reputation of From: address
 BAYES_00                 -1.9 Bayes spam probability is 0 to 1%
 DKIM_SIGNED               0.1 Message has a DKIM or DK signature,
 not necessarily valid
 DKIM_VALID -0.1 Message has at least one valid DKIM or DK signature
 DKIM_VALID_AU -0.1 Message has a valid DKIM or DK signature from author's
 domain
 DKIM_VALID_EF -0.1 Message has a valid DKIM or DK signature from envelope-from
 domain
X-SPAM-LEVEL: 
X-Spam-Score: -2.3 (--)
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 (---)

>> IIUC, in the `syntax-needed` case, the let-binding of
>> `inhibit-modification-hooks` is just not useful very (4-7% is not worth
>> the trouble), so its purpose is to speed up the other case.
> 4-10% is the improvement for both cases (the "syntax needed" and not).

Hmm... not sure it's worth the trouble, then.
Also, it might be worth trying to see where those 4-10% are spent: this
is done in a temp buffer where there should presumably be very little
need for before/after-change-functions, so maybe we can get rid of the
specific offenders rather than inhibit all modification hooks.

> Also, I'm eyeing another performance improvement (simplifying file type
> detection) - the call to set-auto-mode is not fast. Simply commenting this
> call out improves the performance by 4x or so - but we'll need a simpler
> version of it instead, of course.
>
> And with the above change (commenting out the set-auto-mode call), the
> difference that the inhibit-modification-hooks hack makes is amplified: it
> can get up to 20%.

I wonder what we do during those 20% of the time if the buffer is left
in fundamental-mode.

>> Also, what about the other two bindings of `inhibit-modification-hooks`?
> The other two are used while the contents of the Xref buffer are printed (or
> re-printed), so there's none of the syntax-ppss complications there. The
> performance difference is 8.5% in my last measurement.

Is this 8.5% of a function that's fast anyway of 8.5% of a function
which takes a fair bit of time?  Again, I'm not sure it's worth
the trouble.  But as a start, every such binding should have a comment
mentioning that it's there only to gain a few percents of performance.


        Stefan





Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#53749: 29.0.50; [PATCH] Xref backend for TeX buffers
Resent-From: Dmitry Gutov <dgutov@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Mon, 20 May 2024 00:23:02 +0000
Resent-Message-ID: <handler.53749.B53749.17161645522012 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 53749
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: pending patch
To: Stefan Monnier <monnier@HIDDEN>
Cc: 53749 <at> debbugs.gnu.org, Ikumi Keita <ikumi@HIDDEN>, David Fussner <dfussner@HIDDEN>, Arash Esbati <arash@HIDDEN>, stefankangas@HIDDEN, Tassilo Horn <tsdh@HIDDEN>, Eli Zaretskii <eliz@HIDDEN>
Received: via spool by 53749-submit <at> debbugs.gnu.org id=B53749.17161645522012
          (code B ref 53749); Mon, 20 May 2024 00:23:02 +0000
Received: (at 53749) by debbugs.gnu.org; 20 May 2024 00:22:32 +0000
Received: from localhost ([127.0.0.1]:38829 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1s8qnQ-0000WO-2e
	for submit <at> debbugs.gnu.org; Sun, 19 May 2024 20:22:32 -0400
Received: from forward502b.mail.yandex.net ([178.154.239.146]:56546)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <dgutov@HIDDEN>) id 1s8qnD-0000WI-OL
 for 53749 <at> debbugs.gnu.org; Sun, 19 May 2024 20:22:31 -0400
Received: from mail-nwsmtp-smtp-production-main-78.myt.yp-c.yandex.net
 (mail-nwsmtp-smtp-production-main-78.myt.yp-c.yandex.net
 [IPv6:2a02:6b8:c12:39ad:0:640:62fe:0])
 by forward502b.mail.yandex.net (Yandex) with ESMTPS id 2739F5E93C;
 Mon, 20 May 2024 03:21:43 +0300 (MSK)
Received: by mail-nwsmtp-smtp-production-main-78.myt.yp-c.yandex.net
 (smtp/Yandex) with ESMTPSA id bL5igJfOoSw0-O7DXu2nv; 
 Mon, 20 May 2024 03:21:42 +0300
X-Yandex-Fwd: 1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex.ru; s=mail;
 t=1716164502; bh=xiBVAOKEBCaVJb1350x9Uj83oczA3dV6PvmgZjVoPsk=;
 h=In-Reply-To:From:Subject:Message-ID:Cc:References:Date:To;
 b=LyxBDByRHimkhaIQ1sxkg4IKUSVFt1C53PJoWmiI89f13lzcdbhluGGM7XAZ3+NFf
 sJd3jDWACberwcrJAB+xZcXVH5zp/AYROfXOUny3uFYL5M4tSAhCWhQQHmoBUzDmJ7
 Hx3KMo9wP/aPgTeXVqldqL/B44pD8kmSoEs1DIHQ=
Authentication-Results: mail-nwsmtp-smtp-production-main-78.myt.yp-c.yandex.net;
 dkim=pass header.i=@yandex.ru
Received: from compute4.internal (compute4.nyi.internal [10.202.2.44])
 by mailfauth.nyi.internal (Postfix) with ESMTP id 8B32A1200032;
 Sun, 19 May 2024 20:21:37 -0400 (EDT)
Received: from mailfrontend1 ([10.202.2.162])
 by compute4.internal (MEProxy); Sun, 19 May 2024 20:21:37 -0400
X-ME-Sender: <xms:kZdKZuMOGWDpByKBu3O1n3raCKQlYsPRbe_MjqUo7ewPqEO97U8EJQ>
 <xme:kZdKZs9kRUmNPBwT-cwaUVorIHrs4BUpyD0luiZlbZ0lIPesOGKDgInN6duVQDVce
 EogpoZ8DsHdVdfzbio>
X-ME-Received: <xmr:kZdKZlQ-UvPiqDAkkA5_-e8XOHmb8UPUhak9sTzKaz09JupXU8NxLVg7iffgQizcQbbK>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvledrvdehledgfedvucetufdoteggodetrfdotf
 fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen
 uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne
 cujfgurhepkfffgggfuffvvehfhfgjtgfgsehtjeertddtvdejnecuhfhrohhmpeffmhhi
 thhrhicuifhuthhovhcuoegughhuthhovheshigrnhguvgigrdhruheqnecuggftrfgrth
 htvghrnhepiefhjeeuveetffffvdefteffffekhfeuudejieehheeiudelgfehgffffedu
 ffdunecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepug
 hguhhtohhvodhmvghsmhhtphgruhhthhhpvghrshhonhgrlhhithihqddufeeffeelleeh
 hedvqddvleegjeejjeejiedqughguhhtohhvpeephigrnhguvgigrdhruhesfhgrshhtmh
 grihhlrdgtohhm
X-ME-Proxy: <xmx:kZdKZuttVxCjjEcYSoT6Abk0o7q9ds1DRB1hrSgqNkZXReEo4Fh0LQ>
 <xmx:kZdKZmez4twAkQo1bAtQlvmdvFFQDAlO75z2wGRH1ryqrTKDcrXlMA>
 <xmx:kZdKZi2Jj-8i51RY7zn4IkDe1C-U8dOq6uQte_OAA3VOxL54IOD2PQ>
 <xmx:kZdKZq9ndeNLiAr2lu-_csm1wVP78BDbsMklskN3J3z1tXIDkzabwQ>
 <xmx:kZdKZl8sKbTiLQlyDznkyA8m4KKsOSMuY7xTNcGBHiRKICUSc1i2Woeo>
Feedback-ID: ib1d9465d:Fastmail
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Sun,
 19 May 2024 20:21:35 -0400 (EDT)
Message-ID: <bdd21a1a-f950-4a86-b576-dc2ac252505b@HIDDEN>
Date: Mon, 20 May 2024 03:21:33 +0300
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
References: <CADF+RtgWCLKQGwgdTNWmgesbcwq8iBxChoN8FqMOg95Ai3CYTA@HIDDEN>
 <CADF+RtgxigxvgG0j6bbpYnrrFVF4YTKZ1Rs0JSCc8zuu5JNA2w@HIDDEN>
 <fcbc07cf-5ee9-131f-1a18-9cc28a5655f1@HIDDEN>
 <CADF+Rti2gSVvfksUVO04ptKQsXrNpwUXHQ_qFjC26D8NNh578A@HIDDEN>
 <2c5c8afa-b57e-3156-d21c-5523cacb4d87@HIDDEN> <831qf1mgjl.fsf@HIDDEN>
 <87cyyj9rpp.fsf@HIDDEN> <65793.1694843596@localhost>
 <CADF+RtikqxOW0XpwGTWWuGNTWjz3-MWMcO6U65Tta3PJjkRXqw@HIDDEN>
 <m24jbtim2p.fsf@HIDDEN>
 <CADF+RtiOECRmdoFD1qP=gRzS+P3tJqh_WNTnuW-1zPrY9g4VBw@HIDDEN>
 <e5a6ba0d-ca4a-4e21-b44f-12043c59aa6b@HIDDEN>
 <CADF+Rtif9uA3qgcSbxiFMTi01wyn5fSMgdTGu1Crsdb24XexDQ@HIDDEN>
 <jwvh6ff9fqi.fsf-monnier+emacs@HIDDEN>
 <eb177a28-d1b3-481a-afad-97bfb9e8d851@HIDDEN>
 <83ba27b7-4d28-4a3f-b803-4bc49f62986c@HIDDEN>
 <jwv7cfxihg2.fsf-monnier+emacs@HIDDEN>
 <82993b86-0f34-4adb-a392-c74db5176d14@HIDDEN>
 <jwv7cftbp8i.fsf-monnier+emacs@HIDDEN>
Content-Language: en-US
From: Dmitry Gutov <dgutov@HIDDEN>
In-Reply-To: <jwv7cftbp8i.fsf-monnier+emacs@HIDDEN>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-Spam-Score: 0.0 (/)
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: -1.0 (-)

On 16/05/2024 21:18, Stefan Monnier via Bug reports for GNU Emacs, the 
Swiss army knife of text editors wrote:
>>> IIUC, in the `syntax-needed` case, the let-binding of
>>> `inhibit-modification-hooks` is just not useful very (4-7% is not worth
>>> the trouble), so its purpose is to speed up the other case.
>> 4-10% is the improvement for both cases (the "syntax needed" and not).
> 
> Hmm... not sure it's worth the trouble, then.
> Also, it might be worth trying to see where those 4-10% are spent: this
> is done in a temp buffer where there should presumably be very little
> need for before/after-change-functions, so maybe we can get rid of the
> specific offenders rather than inhibit all modification hooks.

Given the relatively low percentages, it might be difficult to glance 
from a profiler report. I was assuming the time was mostly spent in 
syntax-ppss-flush-cache, but the function is pretty simple.

>> Also, I'm eyeing another performance improvement (simplifying file type
>> detection) - the call to set-auto-mode is not fast. Simply commenting this
>> call out improves the performance by 4x or so - but we'll need a simpler
>> version of it instead, of course.
>>
>> And with the above change (commenting out the set-auto-mode call), the
>> difference that the inhibit-modification-hooks hack makes is amplified: it
>> can get up to 20%.
> 
> I wonder what we do during those 20% of the time if the buffer is left
> in fundamental-mode.

Good question.

>>> Also, what about the other two bindings of `inhibit-modification-hooks`?
>> The other two are used while the contents of the Xref buffer are printed (or
>> re-printed), so there's none of the syntax-ppss complications there. The
>> performance difference is 8.5% in my last measurement.
> 
> Is this 8.5% of a function that's fast anyway of 8.5% of a function
> which takes a fair bit of time?

When there are a lot of matches, it can take some time. Note that 100% 
in this case is the whole list-files-do-search-print-results pipeline, 
not just the printing phase. So printing is sped up by more than 8% (my 
last test says it's by 27%).

> But as a start, every such binding should have a comment
> mentioning that it's there only to gain a few percents of performance.

Sure.




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#53749: 29.0.50; [PATCH] Xref backend for TeX buffers
Resent-From: Stefan Monnier <monnier@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Mon, 20 May 2024 02:40:01 +0000
Resent-Message-ID: <handler.53749.B53749.17161727448360 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 53749
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: pending patch
To: Dmitry Gutov <dgutov@HIDDEN>
Cc: 53749 <at> debbugs.gnu.org, Ikumi Keita <ikumi@HIDDEN>, David Fussner <dfussner@HIDDEN>, Arash Esbati <arash@HIDDEN>, stefankangas@HIDDEN, Tassilo Horn <tsdh@HIDDEN>, Eli Zaretskii <eliz@HIDDEN>
Received: via spool by 53749-submit <at> debbugs.gnu.org id=B53749.17161727448360
          (code B ref 53749); Mon, 20 May 2024 02:40:01 +0000
Received: (at 53749) by debbugs.gnu.org; 20 May 2024 02:39:04 +0000
Received: from localhost ([127.0.0.1]:39357 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1s8svX-0002Am-O9
	for submit <at> debbugs.gnu.org; Sun, 19 May 2024 22:39:04 -0400
Received: from mailscanner.iro.umontreal.ca ([132.204.25.50]:17804)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <monnier@HIDDEN>) id 1s8svS-0002AG-T0
 for 53749 <at> debbugs.gnu.org; Sun, 19 May 2024 22:39:02 -0400
Received: from pmg3.iro.umontreal.ca (localhost [127.0.0.1])
 by pmg3.iro.umontreal.ca (Proxmox) with ESMTP id A5174443B04;
 Sun, 19 May 2024 22:38:48 -0400 (EDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=iro.umontreal.ca;
 s=mail; t=1716172727;
 bh=cOM+3kFdKv9PtVZFMTDE7BkCYm59e5Vi5GmZe6tXuAo=;
 h=From:To:Cc:Subject:In-Reply-To:References:Date:From;
 b=OR+Fyw7RSaXnOCHgirHHeSuSCed5S3tKhh1sN8iGPGVaLLD67Pdb5uKMKN+aCk6aD
 GpBWTLgnTH10PadN161ddqKqfONgnOiTYGfIzjwh3ajGPvS8mLY2naVsO4qIXHiLPo
 PaQeVFgtC5CsICE51Nz61Xp851SaVNFi3hUpq6TFl13RFaqD3guMreG4io/4HpoBQ0
 rPeU7s2Z4dz1gSFHWb8Da+BBRep0ergE51d7QjUdcXkqAyZSpJP0w6XOQk/1/fFGGU
 Pqclw9hWl97L90KD6EoUMkniapEu9kgPE1fP125+QlNzDMg+UuFPEop7RMIc+XNEIF
 4hV17jjnCEZdg==
Received: from mail01.iro.umontreal.ca (unknown [172.31.2.1])
 by pmg3.iro.umontreal.ca (Proxmox) with ESMTP id 377B2443B0C;
 Sun, 19 May 2024 22:38:47 -0400 (EDT)
Received: from pastel (unknown [45.72.201.215])
 by mail01.iro.umontreal.ca (Postfix) with ESMTPSA id E222A1204F5;
 Sun, 19 May 2024 22:38:46 -0400 (EDT)
From: Stefan Monnier <monnier@HIDDEN>
In-Reply-To: <bdd21a1a-f950-4a86-b576-dc2ac252505b@HIDDEN> (Dmitry Gutov's
 message of "Mon, 20 May 2024 03:21:33 +0300")
Message-ID: <jwvv839i58b.fsf-monnier+emacs@HIDDEN>
References: <CADF+RtgWCLKQGwgdTNWmgesbcwq8iBxChoN8FqMOg95Ai3CYTA@HIDDEN>
 <CADF+RtgxigxvgG0j6bbpYnrrFVF4YTKZ1Rs0JSCc8zuu5JNA2w@HIDDEN>
 <fcbc07cf-5ee9-131f-1a18-9cc28a5655f1@HIDDEN>
 <CADF+Rti2gSVvfksUVO04ptKQsXrNpwUXHQ_qFjC26D8NNh578A@HIDDEN>
 <2c5c8afa-b57e-3156-d21c-5523cacb4d87@HIDDEN>
 <831qf1mgjl.fsf@HIDDEN> <87cyyj9rpp.fsf@HIDDEN>
 <65793.1694843596@localhost>
 <CADF+RtikqxOW0XpwGTWWuGNTWjz3-MWMcO6U65Tta3PJjkRXqw@HIDDEN>
 <m24jbtim2p.fsf@HIDDEN>
 <CADF+RtiOECRmdoFD1qP=gRzS+P3tJqh_WNTnuW-1zPrY9g4VBw@HIDDEN>
 <e5a6ba0d-ca4a-4e21-b44f-12043c59aa6b@HIDDEN>
 <CADF+Rtif9uA3qgcSbxiFMTi01wyn5fSMgdTGu1Crsdb24XexDQ@HIDDEN>
 <jwvh6ff9fqi.fsf-monnier+emacs@HIDDEN>
 <eb177a28-d1b3-481a-afad-97bfb9e8d851@HIDDEN>
 <83ba27b7-4d28-4a3f-b803-4bc49f62986c@HIDDEN>
 <jwv7cfxihg2.fsf-monnier+emacs@HIDDEN>
 <82993b86-0f34-4adb-a392-c74db5176d14@HIDDEN>
 <jwv7cftbp8i.fsf-monnier+emacs@HIDDEN>
 <bdd21a1a-f950-4a86-b576-dc2ac252505b@HIDDEN>
Date: Sun, 19 May 2024 22:38:45 -0400
User-Agent: Gnus/5.13 (Gnus v5.13)
MIME-Version: 1.0
Content-Type: text/plain
X-SPAM-INFO: Spam detection results:  0
 ALL_TRUSTED                -1 Passed through trusted hosts only via SMTP
 AWL 0.004 Adjusted score from AWL reputation of From: address
 BAYES_00                 -1.9 Bayes spam probability is 0 to 1%
 DKIM_SIGNED               0.1 Message has a DKIM or DK signature,
 not necessarily valid
 DKIM_VALID -0.1 Message has at least one valid DKIM or DK signature
 DKIM_VALID_AU -0.1 Message has a valid DKIM or DK signature from author's
 domain
 DKIM_VALID_EF -0.1 Message has a valid DKIM or DK signature from envelope-from
 domain
X-SPAM-LEVEL: 
X-Spam-Score: -2.3 (--)
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 (---)

>> Hmm... not sure it's worth the trouble, then.
>> Also, it might be worth trying to see where those 4-10% are spent: this
>> is done in a temp buffer where there should presumably be very little
>> need for before/after-change-functions, so maybe we can get rid of the
>> specific offenders rather than inhibit all modification hooks.
> Given the relatively low percentages, it might be difficult to glance from
> a profiler report. I was assuming the time was mostly spent in
> syntax-ppss-flush-cache, but the function is pretty simple.

Rather than a profiler report, maybe a better approach would be to
remove things from the non-inhibited-modification-hooks paths and see
how/if they change the performance.
E.g. replace the `inhibit-modification-hooks` binding by one that binds
`before/after-change-functions` to nil.

>> I wonder what we do during those 20% of the time if the buffer is left
>> in fundamental-mode.
> Good question.

It's probably the better case to investigate since it might be easier to
see the effects.

>>>> Also, what about the other two bindings of `inhibit-modification-hooks`?
>>> The other two are used while the contents of the Xref buffer are printed (or
>>> re-printed), so there's none of the syntax-ppss complications there. The
>>> performance difference is 8.5% in my last measurement.
>> Is this 8.5% of a function that's fast anyway of 8.5% of a function
>> which takes a fair bit of time?
> When there are a lot of matches, it can take some time. Note that 100% in
> this case is the whole list-files-do-search-print-results pipeline, not just
> the printing phase. So printing is sped up by more than 8% (my last test
> says it's by 27%).

I guess during printing if it's done in many small steps we may indeed
run modification hooks many times, so that could explain the
higher percentage.

It still seems hard to justify 27% since those modification hooks should
usually do nothing, AFAICT.  Maybe there's something silly going on.


        Stefan





Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#53749: 29.0.50; [PATCH] Xref backend for TeX buffers
Resent-From: Eli Zaretskii <eliz@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Sat, 25 May 2024 07:58:01 +0000
Resent-Message-ID: <handler.53749.B53749.171662386327042 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 53749
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: pending patch
To: Stefan Monnier <monnier@HIDDEN>
Cc: 53749 <at> debbugs.gnu.org, ikumi@HIDDEN, tsdh@HIDDEN, dfussner@HIDDEN, arash@HIDDEN, stefankangas@HIDDEN, dgutov@HIDDEN
Received: via spool by 53749-submit <at> debbugs.gnu.org id=B53749.171662386327042
          (code B ref 53749); Sat, 25 May 2024 07:58:01 +0000
Received: (at 53749) by debbugs.gnu.org; 25 May 2024 07:57:43 +0000
Received: from localhost ([127.0.0.1]:41930 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1sAmHe-000726-Sn
	for submit <at> debbugs.gnu.org; Sat, 25 May 2024 03:57:43 -0400
Received: from eggs.gnu.org ([209.51.188.92]:59414)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <eliz@HIDDEN>) id 1sAmHc-000720-Tv
 for 53749 <at> debbugs.gnu.org; Sat, 25 May 2024 03:57:41 -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 1sAmHN-0001HF-J1; Sat, 25 May 2024 03:57:25 -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=8QZfVJOwOnKiLuvo7FzL9/ErNaZZFnxYaPA1A9SXbic=; b=oRrMwYgbwwpr
 ZUEeazV4lggtyYXodhlL4Ga+FMgEoluIGIo2M3z/c0j/mK+0YUIhwXYQ+h2ajQR6+uX3VVY6CA6Kb
 douxjXMW9xGdml0dVR/FZuyvXVthANHeHLz6aJcmeWxkXcxkrFObZOqdSuJhZ/FOcZmQAhlpdbZ2D
 49ToRKXYJapWpa144B26SwMRtc1z5Zktlqrk36SvbaaLD0aGcN6TUMVqaM+5Bd/9zYlLzBH5cHO2z
 sgluYQqL+kxyghfnMogo3mgMOrLfOpY3rkd5ceMkTeiPRboiwmb4uTMoSu6CunP2AJZPkcCFZK6hF
 LCqoqy4ZpbzmZuK/vF7KSw==;
Date: Sat, 25 May 2024 10:57:22 +0300
Message-Id: <86v832z5lp.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
In-Reply-To: <jwvv839i58b.fsf-monnier+emacs@HIDDEN> (message from Stefan
 Monnier on Sun, 19 May 2024 22:38:45 -0400)
References: <CADF+RtgWCLKQGwgdTNWmgesbcwq8iBxChoN8FqMOg95Ai3CYTA@HIDDEN>
 <CADF+RtgxigxvgG0j6bbpYnrrFVF4YTKZ1Rs0JSCc8zuu5JNA2w@HIDDEN>
 <fcbc07cf-5ee9-131f-1a18-9cc28a5655f1@HIDDEN>
 <CADF+Rti2gSVvfksUVO04ptKQsXrNpwUXHQ_qFjC26D8NNh578A@HIDDEN>
 <2c5c8afa-b57e-3156-d21c-5523cacb4d87@HIDDEN>
 <831qf1mgjl.fsf@HIDDEN> <87cyyj9rpp.fsf@HIDDEN>
 <65793.1694843596@localhost>
 <CADF+RtikqxOW0XpwGTWWuGNTWjz3-MWMcO6U65Tta3PJjkRXqw@HIDDEN>
 <m24jbtim2p.fsf@HIDDEN>
 <CADF+RtiOECRmdoFD1qP=gRzS+P3tJqh_WNTnuW-1zPrY9g4VBw@HIDDEN>
 <e5a6ba0d-ca4a-4e21-b44f-12043c59aa6b@HIDDEN>
 <CADF+Rtif9uA3qgcSbxiFMTi01wyn5fSMgdTGu1Crsdb24XexDQ@HIDDEN>
 <jwvh6ff9fqi.fsf-monnier+emacs@HIDDEN>
 <eb177a28-d1b3-481a-afad-97bfb9e8d851@HIDDEN>
 <83ba27b7-4d28-4a3f-b803-4bc49f62986c@HIDDEN>
 <jwv7cfxihg2.fsf-monnier+emacs@HIDDEN>
 <82993b86-0f34-4adb-a392-c74db5176d14@HIDDEN>
 <jwv7cftbp8i.fsf-monnier+emacs@HIDDEN>
 <bdd21a1a-f950-4a86-b576-dc2ac252505b@HIDDEN>
 <jwvv839i58b.fsf-monnier+emacs@HIDDEN>
X-Spam-Score: -2.3 (--)
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 (---)

How should we proceed about this bug report?  Is David's last
changeset acceptable or isn't it?

> From: Stefan Monnier <monnier@HIDDEN>
> Cc: 53749 <at> debbugs.gnu.org,  Ikumi Keita <ikumi@HIDDEN>,  David Fussner
>  <dfussner@HIDDEN>,  Arash Esbati <arash@HIDDEN>,
>   stefankangas@HIDDEN,  Tassilo Horn <tsdh@HIDDEN>,  Eli Zaretskii
>  <eliz@HIDDEN>
> Date: Sun, 19 May 2024 22:38:45 -0400
> 
> >> Hmm... not sure it's worth the trouble, then.
> >> Also, it might be worth trying to see where those 4-10% are spent: this
> >> is done in a temp buffer where there should presumably be very little
> >> need for before/after-change-functions, so maybe we can get rid of the
> >> specific offenders rather than inhibit all modification hooks.
> > Given the relatively low percentages, it might be difficult to glance from
> > a profiler report. I was assuming the time was mostly spent in
> > syntax-ppss-flush-cache, but the function is pretty simple.
> 
> Rather than a profiler report, maybe a better approach would be to
> remove things from the non-inhibited-modification-hooks paths and see
> how/if they change the performance.
> E.g. replace the `inhibit-modification-hooks` binding by one that binds
> `before/after-change-functions` to nil.
> 
> >> I wonder what we do during those 20% of the time if the buffer is left
> >> in fundamental-mode.
> > Good question.
> 
> It's probably the better case to investigate since it might be easier to
> see the effects.
> 
> >>>> Also, what about the other two bindings of `inhibit-modification-hooks`?
> >>> The other two are used while the contents of the Xref buffer are printed (or
> >>> re-printed), so there's none of the syntax-ppss complications there. The
> >>> performance difference is 8.5% in my last measurement.
> >> Is this 8.5% of a function that's fast anyway of 8.5% of a function
> >> which takes a fair bit of time?
> > When there are a lot of matches, it can take some time. Note that 100% in
> > this case is the whole list-files-do-search-print-results pipeline, not just
> > the printing phase. So printing is sped up by more than 8% (my last test
> > says it's by 27%).
> 
> I guess during printing if it's done in many small steps we may indeed
> run modification hooks many times, so that could explain the
> higher percentage.
> 
> It still seems hard to justify 27% since those modification hooks should
> usually do nothing, AFAICT.  Maybe there's something silly going on.
> 
> 
>         Stefan
> 
> 




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#53749: 29.0.50; [PATCH] Xref backend for TeX buffers
Resent-From: Dmitry Gutov <dgutov@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Sat, 25 May 2024 23:03:01 +0000
Resent-Message-ID: <handler.53749.B53749.171667814230409 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 53749
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: pending patch
To: Stefan Monnier <monnier@HIDDEN>
Cc: 53749 <at> debbugs.gnu.org, Ikumi Keita <ikumi@HIDDEN>, David Fussner <dfussner@HIDDEN>, Arash Esbati <arash@HIDDEN>, stefankangas@HIDDEN, Tassilo Horn <tsdh@HIDDEN>, Eli Zaretskii <eliz@HIDDEN>
Received: via spool by 53749-submit <at> debbugs.gnu.org id=B53749.171667814230409
          (code B ref 53749); Sat, 25 May 2024 23:03:01 +0000
Received: (at 53749) by debbugs.gnu.org; 25 May 2024 23:02:22 +0000
Received: from localhost ([127.0.0.1]:36923 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1sB0P8-0007tU-35
	for submit <at> debbugs.gnu.org; Sat, 25 May 2024 19:02:22 -0400
Received: from forward500b.mail.yandex.net ([178.154.239.144]:37722)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <dgutov@HIDDEN>) id 1sB0P5-0007ma-PC
 for 53749 <at> debbugs.gnu.org; Sat, 25 May 2024 19:02:20 -0400
Received: from mail-nwsmtp-smtp-production-main-42.myt.yp-c.yandex.net
 (mail-nwsmtp-smtp-production-main-42.myt.yp-c.yandex.net
 [IPv6:2a02:6b8:c12:28a2:0:640:9f07:0])
 by forward500b.mail.yandex.net (Yandex) with ESMTPS id D2AF9612FF;
 Sun, 26 May 2024 02:01:39 +0300 (MSK)
Received: by mail-nwsmtp-smtp-production-main-42.myt.yp-c.yandex.net
 (smtp/Yandex) with ESMTPSA id W1Xcgw19UCg0-XK0M4OmT; 
 Sun, 26 May 2024 02:01:38 +0300
X-Yandex-Fwd: 1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex.ru; s=mail;
 t=1716678099; bh=WpOWfXCz/GpwFZ6zvI96cu70dWMSrBFHkZD4ZsajbvE=;
 h=In-Reply-To:From:Subject:Message-ID:Cc:References:Date:To;
 b=Y537bAdyndrjNhh+4zycaiy7tWCqqtCc9HzkqfCFq/Av04Qt3gCIb6rPTCa3NG2vT
 o25RAdFlVLiJ3SHqz94AzvySEYqNLDb3iyyrL7m/c4s3KITmzOe9azl1MYlktUjprY
 c2BERKzJ18ESHndO25Lg1MYY0IC7r/ojiIy5a+0s=
Authentication-Results: mail-nwsmtp-smtp-production-main-42.myt.yp-c.yandex.net;
 dkim=pass header.i=@yandex.ru
Received: from compute1.internal (compute1.nyi.internal [10.202.2.41])
 by mailfauth.nyi.internal (Postfix) with ESMTP id A407E1200032;
 Sat, 25 May 2024 19:01:32 -0400 (EDT)
Received: from mailfrontend1 ([10.202.2.162])
 by compute1.internal (MEProxy); Sat, 25 May 2024 19:01:32 -0400
X-ME-Sender: <xms:zG1SZr9q7yP6Kl32UsqYPmzQ8ZHVPy6riPCgP9B7Fe95SKCsaRbBMA>
 <xme:zG1SZnsp4riR0g_LkYe4qdb0Hqn38-vuhsPG9fGRX9d2InsbYd4E2fMc1ZasES4U1
 -4o1xM4etTQNaXYpU0>
X-ME-Received: <xmr:zG1SZpCDVMgECPi__Eb7bPaG_3TQxCN9H39FZd3ld_eZ8XF3dH6EocqCNI-Kt01yLTFL>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvledrvdejuddgudeiucetufdoteggodetrfdotf
 fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen
 uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne
 cujfgurhepkfffgggfuffvvehfhfgjtgfgsehtjeertddtvdejnecuhfhrohhmpeffmhhi
 thhrhicuifhuthhovhcuoegughhuthhovheshigrnhguvgigrdhruheqnecuggftrfgrth
 htvghrnhepiefhjeeuveetffffvdefteffffekhfeuudejieehheeiudelgfehgffffedu
 ffdunecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepug
 hguhhtohhvodhmvghsmhhtphgruhhthhhpvghrshhonhgrlhhithihqddufeeffeelleeh
 hedvqddvleegjeejjeejiedqughguhhtohhvpeephigrnhguvgigrdhruhesfhgrshhtmh
 grihhlrdgtohhm
X-ME-Proxy: <xmx:zG1SZnfQ0qdO--nWJJPsDIU3fARn6XP0VAJ-6UV0yFFstUHQZ_pTvQ>
 <xmx:zG1SZgNxBXgcln1hGgaj2LPFLogPfsinRuwBQHEk5_wzO6sSeXe6tw>
 <xmx:zG1SZplshEcamK5ivZkEJQEyyR9n3XNplTOvwYeOa8crMm5UDdPfcg>
 <xmx:zG1SZqtEnaqRJtyNM0qZSV5xWPWzHW1jftXAAo9GLCAZOCPJpSH_Cw>
 <xmx:zG1SZqur_JCQprM9myxuvOfPpYSilUoCYcraXWkLuMtPSNuxPraSicZo>
Feedback-ID: ib1d9465d:Fastmail
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Sat,
 25 May 2024 19:01:30 -0400 (EDT)
Message-ID: <a9530d92-b77a-4a3e-bb4a-d9b34a05ac93@HIDDEN>
Date: Sun, 26 May 2024 02:01:28 +0300
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
References: <CADF+RtgWCLKQGwgdTNWmgesbcwq8iBxChoN8FqMOg95Ai3CYTA@HIDDEN>
 <fcbc07cf-5ee9-131f-1a18-9cc28a5655f1@HIDDEN>
 <CADF+Rti2gSVvfksUVO04ptKQsXrNpwUXHQ_qFjC26D8NNh578A@HIDDEN>
 <2c5c8afa-b57e-3156-d21c-5523cacb4d87@HIDDEN>
 <831qf1mgjl.fsf@HIDDEN> <87cyyj9rpp.fsf@HIDDEN>
 <65793.1694843596@localhost>
 <CADF+RtikqxOW0XpwGTWWuGNTWjz3-MWMcO6U65Tta3PJjkRXqw@HIDDEN>
 <m24jbtim2p.fsf@HIDDEN>
 <CADF+RtiOECRmdoFD1qP=gRzS+P3tJqh_WNTnuW-1zPrY9g4VBw@HIDDEN>
 <e5a6ba0d-ca4a-4e21-b44f-12043c59aa6b@HIDDEN>
 <CADF+Rtif9uA3qgcSbxiFMTi01wyn5fSMgdTGu1Crsdb24XexDQ@HIDDEN>
 <jwvh6ff9fqi.fsf-monnier+emacs@HIDDEN>
 <eb177a28-d1b3-481a-afad-97bfb9e8d851@HIDDEN>
 <83ba27b7-4d28-4a3f-b803-4bc49f62986c@HIDDEN>
 <jwv7cfxihg2.fsf-monnier+emacs@HIDDEN>
 <82993b86-0f34-4adb-a392-c74db5176d14@HIDDEN>
 <jwv7cftbp8i.fsf-monnier+emacs@HIDDEN>
 <bdd21a1a-f950-4a86-b576-dc2ac252505b@HIDDEN>
 <jwvv839i58b.fsf-monnier+emacs@HIDDEN>
Content-Language: en-US
From: Dmitry Gutov <dgutov@HIDDEN>
In-Reply-To: <jwvv839i58b.fsf-monnier+emacs@HIDDEN>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-Spam-Score: 0.0 (/)
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: -1.0 (-)

On 20/05/2024 05:38, Stefan Monnier via Bug reports for GNU Emacs, the 
Swiss army knife of text editors wrote:
>>> Hmm... not sure it's worth the trouble, then.
>>> Also, it might be worth trying to see where those 4-10% are spent: this
>>> is done in a temp buffer where there should presumably be very little
>>> need for before/after-change-functions, so maybe we can get rid of the
>>> specific offenders rather than inhibit all modification hooks.
>> Given the relatively low percentages, it might be difficult to glance from
>> a profiler report. I was assuming the time was mostly spent in
>> syntax-ppss-flush-cache, but the function is pretty simple.
> 
> Rather than a profiler report, maybe a better approach would be to
> remove things from the non-inhibited-modification-hooks paths and see
> how/if they change the performance.
> E.g. replace the `inhibit-modification-hooks` binding by one that binds
> `before/after-change-functions` to nil.
> 
>>> I wonder what we do during those 20% of the time if the buffer is left
>>> in fundamental-mode.
>> Good question.
> 
> It's probably the better case to investigate since it might be easier to
> see the effects.

Revisiting this, I haven't been able to reproduce the 20% number. :-(

The effect of that specific inhibit-modification-hooks binding seems to 
stay around 4-8%, and it's actually on the higher end when the 
set-auto-mode call it present (probably due to text manipulation inside it).

Binding before/after-change-functions, both of the hooks have their 
impact - one more than the other, but like 60/40. Maybe just funcall 
overhead.

>>>>> Also, what about the other two bindings of `inhibit-modification-hooks`?
>>>> The other two are used while the contents of the Xref buffer are printed (or
>>>> re-printed), so there's none of the syntax-ppss complications there. The
>>>> performance difference is 8.5% in my last measurement.
>>> Is this 8.5% of a function that's fast anyway of 8.5% of a function
>>> which takes a fair bit of time?
>> When there are a lot of matches, it can take some time. Note that 100% in
>> this case is the whole list-files-do-search-print-results pipeline, not just
>> the printing phase. So printing is sped up by more than 8% (my last test
>> says it's by 27%).
> 
> I guess during printing if it's done in many small steps we may indeed
> run modification hooks many times, so that could explain the
> higher percentage.
> 
> It still seems hard to justify 27% since those modification hooks should
> usually do nothing, AFAICT.  Maybe there's something silly going on.

On this step (xref--show-common-initialize) the numbers still hold, 
however. What's different, is that replacing the 
inhibit-modification-hooks with two (before-change-functions and 
after-change-functions both to nil) doesn't have a similar effect. Which 
makes sense, since the buffer is almost in fundamental-mode, both hooks 
are nil there.

Binding create-lockfiles or select-active-regions to nil doesn't have 
any impact. And replacing the use of all of the above with 
combine-change-calls makes performance worse.

If we're going to continue this subthread, it's probably better to move 
it somewhere else (separate bug, or emacs-devel).




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#53749: 29.0.50; [PATCH] Xref backend for TeX buffers
Resent-From: David Fussner <dfussner@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Wed, 05 Jun 2024 09:48:02 +0000
Resent-Message-ID: <handler.53749.B53749.17175808416593 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 53749
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: pending patch
To: Eli Zaretskii <eliz@HIDDEN>
Cc: 53749 <at> debbugs.gnu.org, ikumi@HIDDEN, tsdh@HIDDEN, arash@HIDDEN, stefankangas@HIDDEN, dgutov@HIDDEN, Stefan Monnier <monnier@HIDDEN>
Received: via spool by 53749-submit <at> debbugs.gnu.org id=B53749.17175808416593
          (code B ref 53749); Wed, 05 Jun 2024 09:48:02 +0000
Received: (at 53749) by debbugs.gnu.org; 5 Jun 2024 09:47:21 +0000
Received: from localhost ([127.0.0.1]:47240 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1sEnEl-0001i9-36
	for submit <at> debbugs.gnu.org; Wed, 05 Jun 2024 05:47:21 -0400
Received: from mail-pj1-f44.google.com ([209.85.216.44]:52673)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <dfussner@HIDDEN>) id 1sEnEi-0001hl-4a
 for 53749 <at> debbugs.gnu.org; Wed, 05 Jun 2024 05:47:18 -0400
Received: by mail-pj1-f44.google.com with SMTP id
 98e67ed59e1d1-2c1b9152848so4569378a91.1
 for <53749 <at> debbugs.gnu.org>; Wed, 05 Jun 2024 02:47:02 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=googlemail.com; s=20230601; t=1717580756; x=1718185556; darn=debbugs.gnu.org;
 h=cc:to:subject:message-id:date:from:in-reply-to:references
 :mime-version:from:to:cc:subject:date:message-id:reply-to;
 bh=6xcB4dDywNWqrmS9WwCGbBnodSdryJgU1FXuZ1VjoVw=;
 b=jYS1sggxtwZ4iYRP04QFezIcng2kU17bR81dPf9Asd2uT9pW/pu+HWf1UATy7geXTE
 MQJ7qZNQpooaEiL+haOfs+ZGbQEZwi8wfUfzFRwyi1CPfg1Hf320Cpo6r8D1tiWo/fLy
 a4eyF5w4I0xMsuLRVcW3akhyl/mBRE3/Z4Sy7IVn4/DphOSCjxoGaXzVQ0w+A8m5VdTL
 yNjGNAlJKIpHbnSUfV3+7WedOSWL9ELthR+Wuo3Q1DATLVmwhzh329MRiMk+kGK4BjWd
 6LT9EnKKMTp9DUl93YAs/VFsojVOyLyHCkHcV3rUTKQAvLgm8jnJJHfRMOv1CpUIezT6
 GB2g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20230601; t=1717580756; x=1718185556;
 h=cc: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=6xcB4dDywNWqrmS9WwCGbBnodSdryJgU1FXuZ1VjoVw=;
 b=jein2bfNyvalg2ijotgOklgqLYnktEz9kUHtd4v1CN7FQDBDNMhpZoiZ5N2cpiur6d
 8qqKK1t3EIPZGShagUXN0cu0ptMc323ND6k4SHn+65OtW72o1r8qrmKh+yQjmPf/ZAi8
 TNi/tH5DgnD6rqdfLxjWidhrxT2ECdhR0118IcXM+vh7KpdXKUslDOS8BtKgnf+BA3tM
 TcyqNzB3e/m1iyQNj4lMild+NEGTtyKfcysFNBSR/LTX0qY89CJjd7pPrw6spa5MY6LU
 /UUw8n+tpb5zgO5+F9HjLIwS7CxPwP53a7M0VsJ9945vVZDxUwpxCEScRK4u3YC3oU1C
 uCvA==
X-Forwarded-Encrypted: i=1;
 AJvYcCUjZBWrmFUFjDuVUS/AnLT8z8bH50dbotH1Ab96z5u1TMV2raDfMK27dBG2cTQuI0KyHAE/UIYGvgsvYsfvouZmgkLKEXo=
X-Gm-Message-State: AOJu0YxA+XVu6Icy8v88LMJaU2D4Fliv8hhGyrxfOoaeMe4EGrXgDvdg
 B1g2TpdCyqx+BhcqY1bgnOlIrUjpGKg5nrojNKquiYFd2hH43HqzBmvAkSF5iMdMpgbW3M3DptL
 PmU3QOZcffrL0R2ufSjB+LGqgk78=
X-Google-Smtp-Source: AGHT+IFZceVh8OD+9IzXkXCctIiPolst2kEpfgubEiHhGScC/KO8tIaAVofFkvDybiCArA+sJDNSkiImfogFtaD32wk=
X-Received: by 2002:a17:90b:1018:b0:2c1:a052:d6b4 with SMTP id
 98e67ed59e1d1-2c27db1fc28mr1868853a91.27.1717580756180; Wed, 05 Jun 2024
 02:45:56 -0700 (PDT)
MIME-Version: 1.0
References: <CADF+RtgWCLKQGwgdTNWmgesbcwq8iBxChoN8FqMOg95Ai3CYTA@HIDDEN>
 <CADF+RtgxigxvgG0j6bbpYnrrFVF4YTKZ1Rs0JSCc8zuu5JNA2w@HIDDEN>
 <fcbc07cf-5ee9-131f-1a18-9cc28a5655f1@HIDDEN>
 <CADF+Rti2gSVvfksUVO04ptKQsXrNpwUXHQ_qFjC26D8NNh578A@HIDDEN>
 <2c5c8afa-b57e-3156-d21c-5523cacb4d87@HIDDEN> <831qf1mgjl.fsf@HIDDEN>
 <87cyyj9rpp.fsf@HIDDEN> <65793.1694843596@localhost>
 <CADF+RtikqxOW0XpwGTWWuGNTWjz3-MWMcO6U65Tta3PJjkRXqw@HIDDEN>
 <m24jbtim2p.fsf@HIDDEN>
 <CADF+RtiOECRmdoFD1qP=gRzS+P3tJqh_WNTnuW-1zPrY9g4VBw@HIDDEN>
 <e5a6ba0d-ca4a-4e21-b44f-12043c59aa6b@HIDDEN>
 <CADF+Rtif9uA3qgcSbxiFMTi01wyn5fSMgdTGu1Crsdb24XexDQ@HIDDEN>
 <jwvh6ff9fqi.fsf-monnier+emacs@HIDDEN>
 <eb177a28-d1b3-481a-afad-97bfb9e8d851@HIDDEN>
 <83ba27b7-4d28-4a3f-b803-4bc49f62986c@HIDDEN>
 <jwv7cfxihg2.fsf-monnier+emacs@HIDDEN>
 <82993b86-0f34-4adb-a392-c74db5176d14@HIDDEN>
 <jwv7cftbp8i.fsf-monnier+emacs@HIDDEN>
 <bdd21a1a-f950-4a86-b576-dc2ac252505b@HIDDEN>
 <jwvv839i58b.fsf-monnier+emacs@HIDDEN> <86v832z5lp.fsf@HIDDEN>
In-Reply-To: <86v832z5lp.fsf@HIDDEN>
From: David Fussner <dfussner@HIDDEN>
Date: Wed, 5 Jun 2024 10:46:10 +0100
Message-ID: <CADF+Rtjn52wJ2ikWcVaw8gBzKV9PGqjnSEb7+8tiifi=LzyAbg@HIDDEN>
Content-Type: multipart/mixed; boundary="000000000000d8a2b5061a216eeb"
X-Spam-Score: 1.0 (+)
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: -1.0 (-)

--000000000000d8a2b5061a216eeb
Content-Type: text/plain; charset="UTF-8"

Hi Eli, Stefan, and Dmitry,

In case the changeset might prove acceptable for version 30, I attach
the latest patch, which clears out the code I was using to simplify
testing of the AUCTeX modes. I can if requested send a patch for the
manual etags tests, also, in case that might prove helpful down the
line.

Best, David.

On Sat, 25 May 2024 at 12:01, Eli Zaretskii <eliz@HIDDEN> wrote:
>
> How should we proceed about this bug report?  Is David's last
> changeset acceptable or isn't it?
>
> > From: Stefan Monnier <monnier@HIDDEN>
> > Cc: 53749 <at> debbugs.gnu.org,  Ikumi Keita <ikumi@HIDDEN>,  David Fussner
> >  <dfussner@HIDDEN>,  Arash Esbati <arash@HIDDEN>,
> >   stefankangas@HIDDEN,  Tassilo Horn <tsdh@HIDDEN>,  Eli Zaretskii
> >  <eliz@HIDDEN>
> > Date: Sun, 19 May 2024 22:38:45 -0400
> >
> > >> Hmm... not sure it's worth the trouble, then.
> > >> Also, it might be worth trying to see where those 4-10% are spent: this
> > >> is done in a temp buffer where there should presumably be very little
> > >> need for before/after-change-functions, so maybe we can get rid of the
> > >> specific offenders rather than inhibit all modification hooks.
> > > Given the relatively low percentages, it might be difficult to glance from
> > > a profiler report. I was assuming the time was mostly spent in
> > > syntax-ppss-flush-cache, but the function is pretty simple.
> >
> > Rather than a profiler report, maybe a better approach would be to
> > remove things from the non-inhibited-modification-hooks paths and see
> > how/if they change the performance.
> > E.g. replace the `inhibit-modification-hooks` binding by one that binds
> > `before/after-change-functions` to nil.
> >
> > >> I wonder what we do during those 20% of the time if the buffer is left
> > >> in fundamental-mode.
> > > Good question.
> >
> > It's probably the better case to investigate since it might be easier to
> > see the effects.
> >
> > >>>> Also, what about the other two bindings of `inhibit-modification-hooks`?
> > >>> The other two are used while the contents of the Xref buffer are printed (or
> > >>> re-printed), so there's none of the syntax-ppss complications there. The
> > >>> performance difference is 8.5% in my last measurement.
> > >> Is this 8.5% of a function that's fast anyway of 8.5% of a function
> > >> which takes a fair bit of time?
> > > When there are a lot of matches, it can take some time. Note that 100% in
> > > this case is the whole list-files-do-search-print-results pipeline, not just
> > > the printing phase. So printing is sped up by more than 8% (my last test
> > > says it's by 27%).
> >
> > I guess during printing if it's done in many small steps we may indeed
> > run modification hooks many times, so that could explain the
> > higher percentage.
> >
> > It still seems hard to justify 27% since those modification hooks should
> > usually do nothing, AFAICT.  Maybe there's something silly going on.
> >
> >
> >         Stefan
> >
> >

--000000000000d8a2b5061a216eeb
Content-Type: text/x-patch; charset="US-ASCII"; 
	name="0004-Provide-a-modified-xref-backend-for-TeX-buffers.patch"
Content-Disposition: attachment; 
	filename="0004-Provide-a-modified-xref-backend-for-TeX-buffers.patch"
Content-Transfer-Encoding: base64
Content-ID: <f_lx1n84cf0>
X-Attachment-Id: f_lx1n84cf0

RnJvbSBkMjk2MTI2ZjM2YWFiY2FhMzBlNDMxNDBkMWM5YjdjMGUyOTEyMzUzIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBEYXZpZCBGdXNzbmVyIDxkZnVzc25lckBnb29nbGVtYWlsLmNv
bT4KRGF0ZTogV2VkLCA1IEp1biAyMDI0IDEwOjI2OjE4ICswMTAwClN1YmplY3Q6IFtQQVRDSF0g
UHJvdmlkZSBhIG1vZGlmaWVkIHhyZWYgYmFja2VuZCBmb3IgVGVYIGJ1ZmZlcnMKCiogbGliLXNy
Yy9ldGFncy5jIChUZVhfY29tbWFuZHMpOiBJbXByb3ZlIHBhcnNpbmcgb2YgY29tbWFuZHMgaW4g
VGVYCmJ1ZmZlcnMuCihURVhfZGVmZW52KTogRXhwYW5kIGxpc3Qgb2YgY29tbWFuZHMgdG8gdGFn
IGJ5IGRlZmF1bHQgaW4gVGVYCmJ1ZmZlcnMuCihUZVhfaGVscCk6CiogZG9jL2VtYWNzL21haW50
YWluaW5nLnRleGkgKFRhZyBTeW50YXgpOiBEb2N1bWVudCBuZXcgdGFnZ2VkCmNvbW1hbmRzLgoo
SWRlbnRpZmllciBTZWFyY2gpOiBBZGQgbm90ZSBhYm91dCBzZW1hbnRpYy1zeW1yZWYtZmlsZXBh
dHRlcm4tYWxpc3QsCmF1dG8tbW9kZS1hbGlzdCwgYW5kIHhyZWYtZmluZC1yZWZlcmVuY2VzLgoK
KiBsaXNwL3RleHRtb2Rlcy90ZXgtbW9kZS5lbCAodGV4LWZvbnQtbG9jay1zdXNjcmlwdCk6IFRl
c3QgZm9yCnVuZGVyc2NvcmUgaW4gZXhwbDMgZmlsZXMgYW5kIHJlZ2lvbnMsIGRpc2FibGUgc3Vi
c2NyaXB0IGZhY2UgdGhlcmUuCih0ZXgtY29tbW9uLWluaXRpYWxpemF0aW9uKTogU2V0IHVwIHhy
ZWYgYmFja2VuZCBmb3IgaW4tdHJlZSBUZVgKbW9kZXMuIERldGVjdCBleHBsMyBmaWxlcywgYW5k
IGluIG90aGVycyBzZXQgdXAgYSBsaXN0IG9mIGV4cGwzCnJlZ2lvbnMuCih0ZXgtZXhwbC1idWZm
ZXItcGFyc2UpOiBOZXcgZnVuY3Rpb24gY2FsbGVkIGluIHByZXZpb3VzLgoodGV4LWV4cGwtYnVm
ZmVyLXApOiBOZXcgdmFyIHRvIGhvbGQgdGhlIHJlc3VsdCBvZiBwcmV2aW91cy4KKHRleC1leHBs
LXJlZ2lvbi1zZXQpOiBOZXcgZnVuY3Rpb24gYWRkZWQgdG8KJ3N5bnRheC1wcm9wZXJ0aXplLWV4
dGVuZC1yZWdpb24tZnVuY3Rpb25zJyBob29rLgoodGV4LWV4cGwtcmVnaW9uLWxpc3QpOiBOZXcg
dmFyIHRvIGhvbGQgdGhlIHJlc3VsdCBvZiBwcmV2aW91cy4KKHRleC0teHJlZi1iYWNrZW5kKTog
TmV3IGZ1bmN0aW9uIHRvIGlkZW50aWZ5IHRoZSB4cmVmIGJhY2tlbmQuCih0ZXgtLXRoaW5nLWF0
LXBvaW50LCB0ZXgtdGhpbmdhdHB0LS1iZWdpbm5pbmctb2Ytc3ltYm9sKQoodGV4LXRoaW5nYXRw
dC0tZW5kLW9mLXN5bWJvbCwgdGV4LS1ib3VuZHMtb2Ytc3ltYm9sLWF0LXBvaW50KToKTmV3IGZ1
bmN0aW9ucyB0byByZXR1cm4gJ3RoaW5nLWF0LXBvaW50JyBmb3IgeHJlZiBiYWNrZW5kLgoodGV4
LXRoaW5nYXRwdC1leGNsdWRlLWNoYXJzKTogTmV3IHZhciB0byBkbyB0aGUgc2FtZS4KKHhyZWYt
YmFja2VuZC1pZGVudGlmaWVyLWF0LXBvaW50KTogTmV3IFRlWCBiYWNrZW5kIG1ldGhvZCB0byBw
cm92aWRlCnN5bWJvbHMgZm9yIHByb2Nlc3NpbmcgYnkgeHJlZi4KKHhyZWYtYmFja2VuZC1pZGVu
dGlmaWVyLWNvbXBsZXRpb24tdGFibGUpCih4cmVmLWJhY2tlbmQtaWRlbnRpZmllci1jb21wbGV0
aW9uLWlnbm9yZS1jYXNlKQooeHJlZi1iYWNrZW5kLWRlZmluaXRpb25zLCB4cmVmLWJhY2tlbmQt
YXByb3Bvcyk6IFBsYWNlaG9sZGVycyB0bwpjYWxsIHRoZSBzdGFuZGFyZCAnZXRhZ3MnIHhyZWYg
YmFja2VuZCBtZXRob2RzLgooeHJlZi1iYWNrZW5kLXJlZmVyZW5jZXMpOiBXcmFwcGVyIHRvIGNh
bGwgdGhlIGRlZmF1bHQgeHJlZiBiYWNrZW5kCm1ldGhvZCwgZmluZGluZyBhcyBtYW55IHJlbGV2
YW50IGZpbGVzIGFzIHBvc3NpYmxlIGFuZCB1c2luZyBhIGJlc3Bva2UKc3ludGF4LXByb3BlcnRp
emUtZnVuY3Rpb24gd2hlbiByZXF1aXJlZC4KKHRleC0tY29sbGVjdC1maWxlLWV4dGVuc2lvbnMs
IHRleC14cmVmLXN5bnRheC1mdW5jdGlvbik6IEhlbHBlcgpmdW5jdGlvbnMgZm9yIHByZXZpb3Vz
LgoodGV4LWZpbmQtcmVmZXJlbmNlcy1zeW50YXgtdGFibGUsIHRleC0tYnVmZmVycy1saXN0KQoo
dGV4LS14cmVmLXN5bnRheC1mdW4sIHRleC0tb2xkLXN5bnRheC1mdW5jdGlvbik6IE5ldyB2YXJz
IGZvciBzYW1lLgotLS0KIGRvYy9lbWFjcy9tYWludGFpbmluZy50ZXhpIHwgIDM5ICsrKy0KIGxp
Yi1zcmMvZXRhZ3MuYyAgICAgICAgICAgIHwgMTkxICsrKysrKysrKysrKysrKysrKy0tCiBsaXNw
L3RleHRtb2Rlcy90ZXgtbW9kZS5lbCB8IDM1OCArKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysrKystCiAzIGZpbGVzIGNoYW5nZWQsIDU2NyBpbnNlcnRpb25zKCspLCAyMSBkZWxldGlv
bnMoLSkKCmRpZmYgLS1naXQgYS9kb2MvZW1hY3MvbWFpbnRhaW5pbmcudGV4aSBiL2RvYy9lbWFj
cy9tYWludGFpbmluZy50ZXhpCmluZGV4IDU3OTA5OGM4MWIxLi5hMDY0MTAzYWEyNSAxMDA2NDQK
LS0tIGEvZG9jL2VtYWNzL21haW50YWluaW5nLnRleGkKKysrIGIvZG9jL2VtYWNzL21haW50YWlu
aW5nLnRleGkKQEAgLTI1MjksNiArMjUyOSwxNSBAQCBJZGVudGlmaWVyIFNlYXJjaAogcmVmZXJl
bmNlZC4gIFRoZSBYUkVGIG1vZGUgY29tbWFuZHMgYXJlIGF2YWlsYWJsZSBpbiB0aGlzIGJ1ZmZl
ciwgc2VlCiBAcmVme1hyZWYgQ29tbWFuZHN9LgogCitXaGVuIGludm9rZWQgaW4gYSBidWZmZXIg
d2hvc2UgbWFqb3IgbW9kZSB1c2VzIHRoZSBAY29kZXtldGFnc30gYmFja2VuZCwKK0BrYmR7TS0/
fSBzZWFyY2hlcyBmaWxlcyBhbmQgYnVmZmVycyB3aG9zZSBtYWpvciBtb2RlIG1hdGNoZXMgdGhh
dCBvZgordGhlIG9yaWdpbmFsIGJ1ZmZlci4gIEl0IGd1ZXNzZXMgdGhhdCBtb2RlIGZyb20gZmls
ZSBleHRlbnNpb25zLCBzbyBpZgorQGtiZHtNLT99IHNlZW1zIHRvIGJlIHNraXBwaW5nIHJlbGV2
YW50IGJ1ZmZlcnMgb3IgZmlsZXMsIHRyeQorY3VzdG9taXppbmcgZWl0aGVyIHRoZSB2YXJpYWJs
ZSBAY29kZXtzZW1hbnRpYy1zeW1yZWYtZmlsZXBhdHRlcm4tYWxpc3R9CisoaWYgeW91ciBidWZm
ZXIncyBtYWpvciBtb2RlIGFscmVhZHkgaGFzIGFuIGVudHJ5IGluIGl0KSwgb3IKK0Bjb2Rle2F1
dG8tbW9kZS1hbGlzdH0gKGlmIG5vdCksIHRoZXJlYnkgaW5mb3JtaW5nIEBjb2Rle3hyZWZ9IG9m
IHRoZQorbWlzc2luZyBleHRlbnNpb25zIChAcHhyZWZ7Q2hvb3NpbmcgTW9kZXN9KS4KKwogQHZp
bmRleCB4cmVmLWF1dG8tanVtcC10by1maXJzdC14cmVmCiAgIElmIHRoZSB2YWx1ZSBvZiB0aGUg
dmFyaWFibGUgQGNvZGV7eHJlZi1hdXRvLWp1bXAtdG8tZmlyc3QteHJlZn0gaXMKIEBjb2Rle3R9
LCBAY29kZXt4cmVmLWZpbmQtcmVmZXJlbmNlc30gYXV0b21hdGljYWxseSBqdW1wcyB0byB0aGUg
Zmlyc3QKQEAgLTI3NDcsMTAgKzI3NTYsMzIgQEAgVGFnIFN5bnRheAogQGl0ZW0KIEluIEBMYVRl
WHt9IGRvY3VtZW50cywgdGhlIGFyZ3VtZW50cyBmb3IgQGNvZGV7XGNoYXB0ZXJ9LAogQGNvZGV7
XHNlY3Rpb259LCBAY29kZXtcc3Vic2VjdGlvbn0sIEBjb2Rle1xzdWJzdWJzZWN0aW9ufSwKLUBj
b2Rle1xlcW5vfSwgQGNvZGV7XGxhYmVsfSwgQGNvZGV7XHJlZn0sIEBjb2Rle1xjaXRlfSwKLUBj
b2Rle1xiaWJpdGVtfSwgQGNvZGV7XHBhcnR9LCBAY29kZXtcYXBwZW5kaXh9LCBAY29kZXtcZW50
cnl9LAotQGNvZGV7XGluZGV4fSwgQGNvZGV7XGRlZn0sIEBjb2Rle1xuZXdjb21tYW5kfSwgQGNv
ZGV7XHJlbmV3Y29tbWFuZH0sCi1AY29kZXtcbmV3ZW52aXJvbm1lbnR9IGFuZCBAY29kZXtccmVu
ZXdlbnZpcm9ubWVudH0gYXJlIHRhZ3MuCitAY29kZXtcZXFub30sIEBjb2Rle1xsYWJlbH0sIEBj
b2Rle1xyZWZ9LCBAY29kZXtcUmVmfSwgQGNvZGV7XGZvb3RyZWZ9LAorQGNvZGV7XGNpdGV9LCBA
Y29kZXtcYmliaXRlbX0sIEBjb2Rle1xwYXJ0fSwgQGNvZGV7XGFwcGVuZGl4fSwKK0Bjb2Rle1xl
bnRyeX0sIEBjb2Rle1xpbmRleH0sIEBjb2Rle1xkZWZ9LCBAY29kZXtcZWRlZn0sIEBjb2Rle1xn
ZGVmfSwKK0Bjb2Rle1x4ZGVmfSwgQGNvZGV7XG5ld2NvbW1hbmR9LCBAY29kZXtccmVuZXdjb21t
YW5kfSwKK0Bjb2Rle1xuZXdlbnZpcm9ubWVudH0sIEBjb2Rle1xyZW5ld2Vudmlyb25tZW50fSwK
K0Bjb2Rle1xEZWNsYXJlUm9idXN0Q29tbWFuZH0sIEBjb2Rle1xuZXdyb2J1c3RjbWR9LAorQGNv
ZGV7XHJlbmV3cm9idXN0Y21kfSwgQGNvZGV7XHByb3ZpZGVjb21tYW5kfSwKK0Bjb2Rle1xwcm92
aWRlcm9idXN0Y21kfSwgQGNvZGV7XE5ld0RvY3VtZW50Q29tbWFuZH0sCitAY29kZXtcUmVuZXdE
b2N1bWVudENvbW1hbmR9LCBAY29kZXtcUHJvdmlkZURvY3VtZW50Q29tbWFuZH0sCitAY29kZXtc
RGVjbGFyZURvY3VtZW50Q29tbWFuZH0sIEBjb2Rle1xOZXdFeHBhbmRhYmxlRG9jdW1lbnRDb21t
YW5kfSwKK0Bjb2Rle1xSZW5ld0V4cGFuZGFibGVEb2N1bWVudENvbW1hbmR9LAorQGNvZGV7XFBy
b3ZpZGVFeHBhbmRhYmxlRG9jdW1lbnRDb21tYW5kfSwKK0Bjb2Rle1xEZWNsYXJlRXhwYW5kYWJs
ZURvY3VtZW50Q29tbWFuZH0sCitAY29kZXtcTmV3RG9jdW1lbnRFbnZpcm9ubWVudH0sIEBjb2Rl
e1xSZW5ld0RvY3VtZW50RW52aXJvbm1lbnR9LAorQGNvZGV7XFByb3ZpZGVEb2N1bWVudEVudmly
b25tZW50fSwgQGNvZGV7XERlY2xhcmVEb2N1bWVudEVudmlyb25tZW50fSwKK0Bjb2Rle1xjc2Rl
Zn0sIEBjb2Rle1xjc2VkZWZ9LCBAY29kZXtcY3NnZGVmfSwgQGNvZGV7XGNzeGRlZn0sCitAY29k
ZXtcY3NsZXRjc30sIEBjb2Rle1xjc2xldH0sIEBjb2Rle1xsZXRjc30sIEBjb2Rle1xsZXR9LAor
QGNvZGV7XGNzX25ld19wcm90ZWN0ZWRfbm9wYXJ9LCBAY29kZXtcY3NfbmV3X3Byb3RlY3RlZH0s
CitAY29kZXtcY3NfbmV3X25vcGFyfSwgQGNvZGV7XGNzX25ld19lcX0sIEBjb2Rle1xjc19uZXd9
LAorQGNvZGV7XGNzX3NldF9wcm90ZWN0ZWRfbm9wYXJ9LCBAY29kZXtcY3Nfc2V0X3Byb3RlY3Rl
ZH0sCitAY29kZXtcY3Nfc2V0X25vcGFyfSwgQGNvZGV7XGNzX3NldF9lcX0sIEBjb2Rle1xjc19z
ZXR9LAorQGNvZGV7XGNzX2dzZXRfcHJvdGVjdGVkX25vcGFyfSwgQGNvZGV7XGNzX2dzZXRfcHJv
dGVjdGVkfSwKK0Bjb2Rle1xjc19nc2V0X25vcGFyfSwgQGNvZGV7XGNzX2dzZXRfZXF9LCBAY29k
ZXtcY3NfZ3NldH0sCitAY29kZXtcY3NfZ2VuZXJhdGVfZnJvbV9hcmdfY291bnR9LCBhbmQgQGNv
ZGV7XGNzX2dlbmVyYXRlX3ZhcmlhbnR9IGFyZQordGFncy4gIFNvIHRvbyBhcmUgdGhlIGFyZ3Vt
ZW50cyBvZiBhbnkgc3RhcnJlZCB2YXJpYW50cyBvZiB0aGVzZQorY29tbWFuZHMuCiAKIE90aGVy
IGNvbW1hbmRzIGNhbiBtYWtlIHRhZ3MgYXMgd2VsbCwgaWYgeW91IHNwZWNpZnkgdGhlbSBpbiB0
aGUKIGVudmlyb25tZW50IHZhcmlhYmxlIEBlbnZ7VEVYVEFHU30gYmVmb3JlIGludm9raW5nIEBj
b21tYW5ke2V0YWdzfS4gIFRoZQpkaWZmIC0tZ2l0IGEvbGliLXNyYy9ldGFncy5jIGIvbGliLXNy
Yy9ldGFncy5jCmluZGV4IDAzYmM1NWRlMDNkLi42YmM3MzRlN2RmMCAxMDA2NDQKLS0tIGEvbGli
LXNyYy9ldGFncy5jCisrKyBiL2xpYi1zcmMvZXRhZ3MuYwpAQCAtNzkzLDExICs3OTMsMjcgQEAg
I2RlZmluZSBTVERJTiAweDEwMDEJCS8qIHJldHVybmVkIGJ5IGdldG9wdF9sb25nIG9uIC0tcGFy
c2Utc3RkaW4gKi8KIHN0YXRpYyBjb25zdCBjaGFyICpUZVhfc3VmZml4ZXMgW10gPQogICB7ICJi
aWIiLCAiY2xvIiwgImNscyIsICJsdHgiLCAic3R5IiwgIlRlWCIsICJ0ZXgiLCBOVUxMIH07CiBz
dGF0aWMgY29uc3QgY2hhciBUZVhfaGVscCBbXSA9Ci0iSW4gTGFUZVggdGV4dCwgdGhlIGFyZ3Vt
ZW50IG9mIGFueSBvZiB0aGUgY29tbWFuZHMgJ1xcY2hhcHRlcicsXG5cCi0nXFxzZWN0aW9uJywg
J1xcc3Vic2VjdGlvbicsICdcXHN1YnN1YnNlY3Rpb24nLCAnXFxlcW5vJywgJ1xcbGFiZWwnLFxu
XAotJ1xccmVmJywgJ1xcY2l0ZScsICdcXGJpYml0ZW0nLCAnXFxwYXJ0JywgJ1xcYXBwZW5kaXgn
LCAnXFxlbnRyeScsXG5cCi0nXFxpbmRleCcsICdcXGRlZicsICdcXG5ld2NvbW1hbmQnLCAnXFxy
ZW5ld2NvbW1hbmQnLFxuXAotJ1xcbmV3ZW52aXJvbm1lbnQnIG9yICdcXHJlbmV3ZW52aXJvbm1l
bnQnIGlzIGEgdGFnLlxuXAorIkluIExhVGVYIHRleHQsIHRoZSBhcmd1bWVudCBvZiB0aGUgY29t
bWFuZHMgJ1xcY2hhcHRlcicsICdcXHNlY3Rpb24nLFxuXAorJ1xcc3Vic2VjdGlvbicsICdcXHN1
YnN1YnNlY3Rpb24nLCAnXFxlcW5vJywgJ1xcbGFiZWwnLCAnXFxyZWYnLFxuXAorJ1xcUmVmJywg
J1xcZm9vdHJlZicsICdcXGNpdGUnLCAnXFxiaWJpdGVtJywgJ1xccGFydCcsICdcXGFwcGVuZGl4
JyxcblwKKydcXGVudHJ5JywgJ1xcaW5kZXgnLCAnXFxkZWYnLCAnXFxlZGVmJywgJ1xcZ2RlZics
ICdcXHhkZWYnLFxuXAorJ1xcbmV3Y29tbWFuZCcsICdcXHJlbmV3Y29tbWFuZCcsICdcXG5ld3Jv
YnVzdGNtZCcsICdcXHJlbmV3cm9idXN0Y21kJyxcblwKKydcXG5ld2Vudmlyb25tZW50JywgJ1xc
cmVuZXdlbnZpcm9ubWVudCcsICdcXERlY2xhcmVSb2J1c3RDb21tYW5kJyxcblwKKydcXHByb3Zp
ZGVjb21tYW5kJywgJ1xccHJvdmlkZXJvYnVzdGNtZCcsICdcXE5ld0RvY3VtZW50Q29tbWFuZCcs
XG5cCisnXFxSZW5ld0RvY3VtZW50Q29tbWFuZCcsICdcXFByb3ZpZGVEb2N1bWVudENvbW1hbmQn
LFxuXAorJ1xcRGVjbGFyZURvY3VtZW50Q29tbWFuZCcsICdcXE5ld0V4cGFuZGFibGVEb2N1bWVu
dENvbW1hbmQnLFxuXAorJ1xcUmVuZXdFeHBhbmRhYmxlRG9jdW1lbnRDb21tYW5kJywgJ1xcUHJv
dmlkZUV4cGFuZGFibGVEb2N1bWVudENvbW1hbmQnLFxuXAorJ1xcRGVjbGFyZUV4cGFuZGFibGVE
b2N1bWVudENvbW1hbmQnLCAnXFxOZXdEb2N1bWVudEVudmlyb25tZW50JyxcblwKKydcXFJlbmV3
RG9jdW1lbnRFbnZpcm9ubWVudCcsICdcXFByb3ZpZGVEb2N1bWVudEVudmlyb25tZW50JyxcblwK
KydcXERlY2xhcmVEb2N1bWVudEVudmlyb25tZW50JywnXFxjc2RlZicsICdcXGNzZWRlZicsICdc
XGNzZ2RlZicsXG5cCisnXFxjc3hkZWYnLCAnXFxjc2xldGNzJywgJ1xcY3NsZXQnLCAnXFxsZXRj
cycsICdcXGxldCcsXG5cCisnXFxjc19uZXdfcHJvdGVjdGVkX25vcGFyJywgJ1xcY3NfbmV3X3By
b3RlY3RlZCcsICdcXGNzX25ld19ub3BhcicsXG5cCisnXFxjc19uZXdfZXEnLCAnXFxjc19uZXcn
LCAnXFxjc19zZXRfcHJvdGVjdGVkX25vcGFyJyxcblwKKydcXGNzX3NldF9wcm90ZWN0ZWQnLCAn
XFxjc19zZXRfbm9wYXInLCAnXFxjc19zZXRfZXEnLCAnXFxjc19zZXQnLFxuXAorJ1xcY3NfZ3Nl
dF9wcm90ZWN0ZWRfbm9wYXInLCAnXFxjc19nc2V0X3Byb3RlY3RlZCcsICdcXGNzX2dzZXRfbm9w
YXInLFxuXAorJ1xcY3NfZ3NldF9lcScsICdcXGNzX2dzZXQnLCAnXFxjc19nZW5lcmF0ZV9mcm9t
X2FyZ19jb3VudCcsIG9yXG5cCisnXFxjc19nZW5lcmF0ZV92YXJpYW50JyBpcyBhIHRhZy4gIFNv
IGlzIHRoZSBhcmd1bWVudCBvZiBhbnkgc3RhcnJlZFxuXAordmFyaWFudCBvZiB0aGVzZSBjb21t
YW5kcy5cblwKIFxuXAogT3RoZXIgY29tbWFuZHMgY2FuIGJlIHNwZWNpZmllZCBieSBzZXR0aW5n
IHRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZVxuXAogJ1RFWFRBR1MnIHRvIGEgY29sb24tc2VwYXJh
dGVkIGxpc3QgbGlrZSwgZm9yIGV4YW1wbGUsXG5cCkBAIC01NzQwLDExICs1NzU2LDI1IEBAIFNj
aGVtZV9mdW5jdGlvbnMgKEZJTEUgKmluZikKIHN0YXRpYyBsaW5lYnVmZmVyICpURVhfdG9rdGFi
ID0gTlVMTDsgLyogVGFibGUgd2l0aCB0YWcgdG9rZW5zICovCiAKIC8qIERlZmF1bHQgc2V0IG9m
IGNvbnRyb2wgc2VxdWVuY2VzIHRvIHB1dCBpbnRvIFRFWF90b2t0YWIuCi0gICBUaGUgdmFsdWUg
b2YgZW52aXJvbm1lbnQgdmFyIFRFWFRBR1MgaXMgcHJlcGVuZGVkIHRvIHRoaXMuICAqLworICAg
VGhlIHZhbHVlIG9mIGVudmlyb25tZW50IHZhciBURVhUQUdTIGlzIHByZXBlbmRlZCB0byB0aGlz
LgorICAgKDIwMjQpIEFkZCB2YXJpYW50cyBvZiAnXGRlZicsIHNvbWUgYWRkaXRpb25hbCBMYVRl
WCAoYW5kCisgICBmb3JtZXIgeHBhcnNlKSBjb21tYW5kcywgY29tbW9uIHZhcmlhbnRzIGZyb20g
dGhlCisgICAnZXRvb2xib3gnIHBhY2thZ2UsIGFuZCB0aGUgbWFpbiBleHBsMyBjb21tYW5kcy4g
Ki8KIHN0YXRpYyBjb25zdCBjaGFyICpURVhfZGVmZW52ID0gIlwKLTpjaGFwdGVyOnNlY3Rpb246
c3Vic2VjdGlvbjpzdWJzdWJzZWN0aW9uOmVxbm86bGFiZWw6cmVmOmNpdGU6YmliaXRlbVwKLTpw
YXJ0OmFwcGVuZGl4OmVudHJ5OmluZGV4OmRlZlwKLTpuZXdjb21tYW5kOnJlbmV3Y29tbWFuZDpu
ZXdlbnZpcm9ubWVudDpyZW5ld2Vudmlyb25tZW50IjsKKzpsYWJlbDpyZWY6UmVmOmZvb3RyZWY6
Y2hhcHRlcjpzZWN0aW9uOnN1YnNlY3Rpb246c3Vic3Vic2VjdGlvbjplcW5vOmNpdGVcCis6Ymli
aXRlbTpwYXJ0OmFwcGVuZGl4OmVudHJ5OmluZGV4OmRlZjplZGVmOmdkZWY6eGRlZjpuZXdjb21t
YW5kOnJlbmV3Y29tbWFuZFwKKzpuZXdlbnZpcm9ubWVudDpyZW5ld2Vudmlyb25tZW50OkRlY2xh
cmVSb2J1c3RDb21tYW5kOnJlbmV3cm9idXN0Y21kXAorOm5ld3JvYnVzdGNtZDpwcm92aWRlY29t
bWFuZDpwcm92aWRlcm9idXN0Y21kOk5ld0RvY3VtZW50Q29tbWFuZFwKKzpSZW5ld0RvY3VtZW50
Q29tbWFuZDpQcm92aWRlRG9jdW1lbnRDb21tYW5kOkRlY2xhcmVEb2N1bWVudENvbW1hbmRcCis6
TmV3RXhwYW5kYWJsZURvY3VtZW50Q29tbWFuZDpSZW5ld0V4cGFuZGFibGVEb2N1bWVudENvbW1h
bmRcCis6UHJvdmlkZUV4cGFuZGFibGVEb2N1bWVudENvbW1hbmQ6RGVjbGFyZUV4cGFuZGFibGVE
b2N1bWVudENvbW1hbmRcCis6TmV3RG9jdW1lbnRFbnZpcm9ubWVudDpSZW5ld0RvY3VtZW50RW52
aXJvbm1lbnRcCis6UHJvdmlkZURvY3VtZW50RW52aXJvbm1lbnQ6RGVjbGFyZURvY3VtZW50RW52
aXJvbm1lbnQ6Y3NkZWZcCis6Y3NlZGVmOmNzZ2RlZjpjc3hkZWY6Y3NsZXRjczpjc2xldDpsZXRj
czpsZXQ6Y3NfbmV3X3Byb3RlY3RlZF9ub3BhclwKKzpjc19uZXdfcHJvdGVjdGVkOmNzX25ld19u
b3Bhcjpjc19uZXdfZXE6Y3NfbmV3OmNzX3NldF9wcm90ZWN0ZWRfbm9wYXJcCis6Y3Nfc2V0X3By
b3RlY3RlZDpjc19zZXRfbm9wYXI6Y3Nfc2V0X2VxOmNzX3NldDpjc19nc2V0X3Byb3RlY3RlZF9u
b3BhclwKKzpjc19nc2V0X3Byb3RlY3RlZDpjc19nc2V0X25vcGFyOmNzX2dzZXRfZXE6Y3NfZ3Nl
dFwKKzpjc19nZW5lcmF0ZV9mcm9tX2FyZ19jb3VudDpjc19nZW5lcmF0ZV92YXJpYW50IjsKIAog
c3RhdGljIHZvaWQgVEVYX2RlY29kZV9lbnYgKGNvbnN0IGNoYXIgKiwgY29uc3QgY2hhciAqKTsK
IApAQCAtNTgwMywxOSArNTgzMywxMzkgQEAgVGVYX2NvbW1hbmRzIChGSUxFICppbmYpCiAJICAg
ICAgewogCQljaGFyICpwOwogCQlwdHJkaWZmX3QgbmFtZWxlbiwgbGluZWxlbjsKLQkJYm9vbCBv
cGdycCA9IGZhbHNlOworCQlib29sIG9wZ3JwID0gZmFsc2UsIG9uZV9lc2MgPSBmYWxzZSwgaXNf
ZXhwbHRocmVlID0gZmFsc2U7CiAKIAkJY3AgPSBza2lwX3NwYWNlcyAoY3AgKyBrZXktPmxlbik7
CisKKwkJLyogMS4gVGhlIGNhbm9uaWNhbCBleHBsMyBzeW50YXggbG9va3Mgc29tZXRoaW5nIGxp
a2UgdGhpczoKKwkJICAgXGNzX25ldzpOcG4gXF9faG9va190bF9ncHV0Ok5uIHsgXEVSUk9SIH0u
ICBGaXJzdCwgaWYgd2UKKwkJICAgd2FudCB0byB0YWcgYW55IHN1Y2ggY29tbWFuZHMsIHdlIGlu
Y2x1ZGUgb25seSB0aGUgcGFydAorCQkgICBiZWZvcmUgdGhlIGNvbG9uIChjc19uZXcpIGluIFRF
WF9kZWZlbnYgb3IgVEVYVEFHUy4gIFNlY29uZCwKKwkJICAgZXRhZ3Mgc2tpcHMgdGhlIGFyZ3Vt
ZW50IHNwZWNpZmllciAoaW5jbHVkaW5nIHRoZSBjb2xvbikKKwkJICAgYWZ0ZXIgdGhlIHRhZyB0
b2tlbiwgc28gdGhhdCBpdCBkb2Vzbid0IGJlY29tZSB0aGUgdGFnIG5hbWUuCisJCSAgIFRoaXJk
LCB3ZSBzZXQgdGhlIGJvb2xlYW4gJ2lzX2V4cGx0aHJlZScgdG8gdHJ1ZSBzbyB0aGF0IHdlCisJ
CSAgIGNhbiByZW1vdmUgdGhlIGFyZ3VtZW50IHNwZWNpZmllciBmcm9tIHRoZSBhY3R1YWwgdGFn
IG5hbWUKKwkJICAgKF9faG9va190bF9ncHV0KS4gIFRoaXMgYWxsIGFsbG93cyB1cyB0byBpbmNs
dWRlIGV4cGwzCisJCSAgIGNvbnN0cnVjdHMgaW4gVEVYX2RlZmVudiBvciBpbiB0aGUgZW52aXJv
bm1lbnQgdmFyaWFibGUKKwkJICAgVEVYVEFHUyB3aXRob3V0IHJlcXVpcmluZyBhIGNoYW5nZSBv
ZiBzZXBhcmF0b3IsIGFuZCBpdCBhbHNvCisJCSAgIGFsbG93cyB1cyB0byBmaW5kIHRoZSBkZWZp
bml0aW9uIG9mIHZhcmlhbnQgY29tbWFuZHMgKHdpdGgKKwkJICAgZGlmZmVyZW50IGFyZ3VtZW50
IHNwZWNpZmllcnMpIGRlZmluZWQgdXNpbmcsIGZvciBleGFtcGxlLAorCQkgICBcY3NfZ2VuZXJh
dGVfdmFyaWFudDpObi4gIFBsZWFzZSBub3RlIHRoYXQgdGhlIGV4cGwzIHNwZWMKKwkJICAgcmVx
dWlyZXMgZXRhZ3MgdG8gcGF5IG1vcmUgYXR0ZW50aW9uIHRvIHdoaXRlc3BhY2UgaW4gdGhlCisJ
CSAgIGNvZGUuCisKKwkJICAgMi4gV2UgYWxzbyBhdXRvbWF0aWNhbGx5IHJlbW92ZSB0aGUgYXN0
ZXJpc2sgZnJvbSBzdGFycmVkCisJCSAgIHZhcmlhbnRzIG9mIGFsbCBjb21tYW5kcywgd2l0aG91
dCB0aGUgbmVlZCB0byBpbmNsdWRlIHRoZQorCQkgICBzdGFycmVkIGNvbW1hbmRzIGV4cGxpY2l0
bHkgaW4gVEVYX2RlZmVudiBvciBURVhUQUdTLiAqLworCQlpZiAoKmNwID09ICc6JykKKwkJICB7
CisJCSAgICB3aGlsZSAoIWNfaXNzcGFjZSAoKmNwKSAmJiAqY3AgIT0gVEVYX29wZ3JwKQorCQkg
ICAgICBjcCsrOworCQkgICAgY3AgPSBza2lwX3NwYWNlcyAoY3ApOworCQkgICAgaXNfZXhwbHRo
cmVlID0gdHJ1ZTsKKwkJICB9CisJCWVsc2UgaWYgKCpjcCA9PSAnKicpCisJCSAgY3ArKzsKKwor
CQkvKiBTa2lwIHRoZSBvcHRpb25hbCBhcmd1bWVudHMgdG8gY29tbWFuZHMgaW4gdGhlIHRhZ3Mg
bGlzdCBzbworCQkgICB0aGF0IHRoZXNlIGFyZ3VtZW50cyBkb24ndCBlbmQgdXAgYXMgdGhlIG5h
bWUgb2YgdGhlIHRhZy4KKwkJICAgVGhlIG5hbWUgd2lsbCBpbnN0ZWFkIGNvbWUgZnJvbSB0aGUg
YXJndW1lbnQgaW4gY3VybHkgYnJhY2VzCisJCSAgIHRoYXQgZm9sbG93cyB0aGUgb3B0aW9uYWwg
b25lcy4gIFRoZSAnXGxldCcgY29tbWFuZCBnZXRzCisJCSAgIHNwZWNpYWwgdHJlYXRtZW50LiAq
LworCQl3aGlsZSAoKmNwICE9ICdcMCcgJiYgKmNwICE9ICclJworCQkgICAgICAgJiYgIXN0cmVx
IChrZXktPmJ1ZmZlciwgImxldCIpKQorCQkgIHsKKwkJICAgIGlmICgqY3AgPT0gJ1snKQorCQkg
ICAgICB7CisJCQl3aGlsZSAoKmNwICE9ICddJyAmJiAqY3AgIT0gJ1wwJyAmJiAqY3AgIT0gJyUn
KQorCQkJICBjcCsrOworCQkgICAgICB9CisJCSAgICBlbHNlIGlmICgqY3AgPT0gJygnKQorCQkg
ICAgICB7CisJCQl3aGlsZSAoKmNwICE9ICcpJyAmJiAqY3AgIT0gJ1wwJyAmJiAqY3AgIT0gJyUn
KQorCQkJICBjcCsrOworCQkgICAgICB9CisJCSAgICBlbHNlIGlmICgqY3AgPT0gJ10nIHx8ICpj
cCA9PSAnKScpCisJCSAgICAgIGNwKys7CisJCSAgICBlbHNlCisJCSAgICAgIGJyZWFrOworCQkg
IH0KIAkJaWYgKCpjcCA9PSBURVhfb3BncnApCiAJCSAgewogCQkgICAgb3BncnAgPSB0cnVlOwog
CQkgICAgY3ArKzsKKwkJICAgIGNwID0gc2tpcF9zcGFjZXMgKGNwKTsgLyogRm9yIGV4cGwzIGNv
ZGUuICovCiAJCSAgfQorCisJCS8qIFJlbW92aW5nIHRoZSBUZVggZXNjYXBlIGNoYXJhY3RlciBm
cm9tIHRhZyBuYW1lcyBzaW1wbGlmaWVzCisJCSAgIHRoaW5ncyBmb3IgZWRpdG9ycyBmaW5kaW5n
IHRhZ2dlZCBjb21tYW5kcyBpbiBUZVggYnVmZmVycy4KKwkJICAgVGhpcyBhcHBsaWVzIHRvIEVt
YWNzIGJ1dCBhbHNvIHRvIHRoZSB0YWctZmluZGluZyBiZWhhdmlvcgorCQkgICBvZiBhdCBsZWFz
dCBzb21lIG9mIHRoZSBlZGl0b3JzIHRoYXQgdXNlIGN0YWdzLCB0aG91Z2ggaW4KKwkJICAgdGhl
IGxhdHRlciBjYXNlIHRoaXMgd2lsbCByZW1haW4gc3Vib3B0aW1hbC4gIFRoZQorCQkgICB1bmRv
Y3VtZW50ZWQgY3RhZ3Mgb3B0aW9uICctLW5vLWR1cGxpY2F0ZXMnIG1heSBoZWxwLiAqLworCQlp
ZiAoKmNwID09IFRFWF9lc2MpCisJCSAgeworCQkgICAgY3ArKzsKKwkJICAgIG9uZV9lc2MgPSB0
cnVlOworCQkgIH0KKworCQkvKiBUZXN0aW5nICFjX2lzc3BhY2UgJiYgIWNfaXNwdW5jdCBpcyBz
aW1wbGVyLCBidXQgaGFsdHMKKwkJICAgcHJvY2Vzc2luZyBhdCB0b28gbWFueSBwbGFjZXMuICBU
aGUgbGlzdCBhcyBpdCBzdGFuZHMgdHJpZXMKKwkJICAgYm90aCB0byBlbnN1cmUgdGhhdCB0YWcg
bmFtZXMgd2lsbCBkZXJpdmUgZnJvbSBtYWNybyBuYW1lcworCQkgICByYXRoZXIgdGhhbiBmcm9t
IG9wdGlvbmFsIHBhcmFtZXRlcnMgdG8gdGhvc2UgbWFjcm9zLCBhbmQKKwkJICAgYWxzbyB0byBy
ZXR1cm4gZmluZGFibGUgbmFtZXMgd2hpbGUgc3RpbGwgYWxsb3dpbmcgZm9yCisJCSAgIHVub3J0
aG9kb3ggY29uc3RydWN0cy4gKi8KIAkJZm9yIChwID0gY3A7Ci0JCSAgICAgKCFjX2lzc3BhY2Ug
KCpwKSAmJiAqcCAhPSAnIycgJiYKLQkJICAgICAgKnAgIT0gVEVYX29wZ3JwICYmICpwICE9IFRF
WF9jbGdycCk7CisJCSAgICAgKCFjX2lzc3BhY2UgKCpwKSAmJiAqcCAhPSAnIycgJiYgKnAgIT0g
Jz0nICYmCisJCSAgICAgICpwICE9ICdbJyAmJiAqcCAhPSAnKCcgJiYgKnAgIT0gVEVYX29wZ3Jw
ICYmCisJCSAgICAgICpwICE9IFRFWF9jbGdycCAmJiAqcCAhPSAnIicgJiYgKnAgIT0gJ1wnJyAm
JgorCQkgICAgICAqcCAhPSAnJScgJiYgKnAgIT0gJywnICYmICpwICE9ICd8JyAmJiAqcCAhPSAn
JCcpOwogCQkgICAgIHArKykKLQkJICBjb250aW51ZTsKKwkJICAvKiBJbiBleHBsMyBjb2RlIHdl
IHJlbW92ZSB0aGUgYXJndW1lbnQgc3BlY2lmaWNhdGlvbiBmcm9tCisJCSAgICAgdGhlIHRhZyBu
YW1lLiAgTW9yZSBnZW5lcmFsbHkgd2UgYWxsb3cgb25seSBvbmUgKGRlbGV0ZWQpCisJCSAgICAg
ZXNjYXBlIGNoYXIgaW4gYSB0YWcgbmFtZSwgd2hpY2ggKHByaW1hcmlseSkgZW5hYmxlcworCQkg
ICAgIHRhZ2dpbmcgYSBUZVggY29tbWFuZCdzIGRpZmZlcmVudCwgcG9zc2libHkgdGVtcG9yYXJ5
LAorCQkgICAgICdcbGV0JyBiaW5kaW5ncy4gKi8KKwkJICBpZiAoaXNfZXhwbHRocmVlICYmICpw
ID09ICc6JykKKwkJICAgIGJyZWFrOworCQkgIGVsc2UgaWYgKCpwID09IFRFWF9lc2MpCisJCSAg
ICB7IC8qIFNlY29uZCBwYXJ0IG9mIHRlc3QgaXMgZm9yLCBlLmcuLCBcY3NsZXQuICovCisJCSAg
ICAgIGlmICghb25lX2VzYyAmJiAhb3BncnApCisJCQl7CisJCQkgIG9uZV9lc2MgPSB0cnVlOwor
CQkJICBjb250aW51ZTsKKwkJCX0KKwkJICAgICAgZWxzZQorCQkJYnJlYWs7CisJCSAgICB9CisJ
CSAgZWxzZQorCQkgICAgY29udGludWU7CisJCS8qIEZvciBUZVggZmlsZXMsIHRhZ3Mgd2l0aG91
dCBhIG5hbWUgYXJlIGJhc2ljYWxseSBjcnVmdCwgYW5kCisJCSAgIGluIHNvbWUgc2l0dWF0aW9u
cyB0aGV5IGNhbiBwcm9kdWNlIHNwdXJpb3VzIGFuZCBjb25mdXNpbmcKKwkJICAgbWF0Y2hlcy4g
IFRyeSB0byBjYXRjaCBhcyBtYW55IGNhc2VzIGFzIHBvc3NpYmxlIHdoZXJlIGEKKwkJICAgY29t
bWFuZCBuYW1lIGlzIG9mIHRoZSBmb3JtICdcKCcsIGJ1dCBhdm9pZCwgYXMgZmFyIGFzCisJCSAg
IHBvc3NpYmxlLCB0aGUgc3B1cmlvdXMgbWF0Y2hlcy4gKi8KKwkJaWYgKHAgPT0gY3ApCisJCSAg
eworCQkgICAgc3dpdGNoICgqcCkKKwkJICAgICAgeyAvKiBJbmNsdWRlID0/ICovCisJCSAgICAg
IGNhc2UgJygnOiBjYXNlICdbJzogY2FzZSAnIic6IGNhc2UgJ1wnJzoKKwkJICAgICAgY2FzZSAn
XFwnOiBjYXNlICchJzogY2FzZSAnPSc6IGNhc2UgJywnOgorCQkgICAgICBjYXNlICd8JzogY2Fz
ZSAnJCc6CisJCQlwKys7CisJCQlicmVhazsKKwkJICAgICAgY2FzZSAneyc6IGNhc2UgJ30nOiBj
YXNlICc8JzogY2FzZSAnPic6CisJCQlpZiAoIW9wZ3JwKQorCQkJICB7CisJCQkgICAgICBwKys7
CisJCQkgICAgICBpZiAoKnAgPT0gJ1wwJyB8fCAqcCA9PSAnJScpCisJCQkJZ290byB0ZXhfbmV4
dF9saW5lOworCQkJICB9CisJCQlicmVhazsKKwkJICAgICAgZGVmYXVsdDoKKwkJCWJyZWFrOwor
CQkgICAgICB9CisJCSAgfQogCQluYW1lbGVuID0gcCAtIGNwOwogCQlsaW5lbGVuID0gbGIubGVu
OwogCQlpZiAoIW9wZ3JwIHx8ICpwID09IFRFWF9jbGdycCkKQEAgLTU4MjQsOSArNTk3NCwxOCBA
QCBUZVhfY29tbWFuZHMgKEZJTEUgKmluZikKIAkJICAgICAgcCsrOwogCQkgICAgbGluZWxlbiA9
IHAgLSBsYi5idWZmZXIgKyAxOwogCQkgIH0KLQkJbWFrZV90YWcgKGNwLCBuYW1lbGVuLCB0cnVl
LAotCQkJICBsYi5idWZmZXIsIGxpbmVsZW4sIGxpbmVubywgbGluZWNoYXJubyk7Ci0JCWdvdG8g
dGV4X25leHRfbGluZTsgLyogV2Ugb25seSB0YWcgYSBsaW5lIG9uY2UgKi8KKwkJaWYgKG5hbWVs
ZW4pCisJCSAgbWFrZV90YWcgKGNwLCBuYW1lbGVuLCB0cnVlLAorCQkJICAgIGxiLmJ1ZmZlciwg
bGluZWxlbiwgbGluZW5vLCBsaW5lY2hhcm5vKTsKKwkJLyogTGluZXMgd2l0aCBtb3JlIHRoYW4g
b25lIFxkZWYgb3IgXGxldCBhcmUgc3VycHJpc2luZ2x5CisJCSAgIGNvbW1vbiBpbiBUZVggZmls
ZXMsIGVzcGVjaWFsbHkgaW4gdGhlIHN5c3RlbSBmaWxlcyB0aGF0CisJCSAgIGZvcm0gdGhlIGJh
c2lzIG9mIHRoZSB2YXJpb3VzIFRlWCBmb3JtYXRzLiAgVGhpcyB0YWdzIHRoZW0KKwkJICAgYWxs
LiAqLworCQkvKiBnb3RvIHRleF9uZXh0X2xpbmU7IC9cKiBXZSBvbmx5IHRhZyBhIGxpbmUgb25j
ZSAqXC8gKi8KKwkJd2hpbGUgKCpjcCAhPSAnXDAnICYmICpjcCAhPSAnJScgJiYgKmNwICE9IFRF
WF9lc2MpCisJCSAgY3ArKzsKKwkJaWYgKCpjcCAhPSBURVhfZXNjKQorCQkgIGdvdG8gdGV4X25l
eHRfbGluZTsKIAkgICAgICB9CiAJfQogICAgIHRleF9uZXh0X2xpbmU6CmRpZmYgLS1naXQgYS9s
aXNwL3RleHRtb2Rlcy90ZXgtbW9kZS5lbCBiL2xpc3AvdGV4dG1vZGVzL3RleC1tb2RlLmVsCmlu
ZGV4IDk3Yzk1MDI2N2M2Li5mYmYwODg0MDY5OSAxMDA2NDQKLS0tIGEvbGlzcC90ZXh0bW9kZXMv
dGV4LW1vZGUuZWwKKysrIGIvbGlzcC90ZXh0bW9kZXMvdGV4LW1vZGUuZWwKQEAgLTYzNiw2ICs2
MzYsMTQgQEAgdGV4LWZvbnQtbG9jay1rZXl3b3Jkcy0yCiAJICAgICAgMyAnKHRleC1mb250LWxv
Y2stYXBwZW5kLXByb3AgJ2JvbGQpICdhcHBlbmQpKSkpKQogICAgIkdhdWR5IGV4cHJlc3Npb25z
IHRvIGhpZ2hsaWdodCBpbiBUZVggbW9kZXMuIikKIAorKGRlZnZhci1sb2NhbCB0ZXgtZXhwbC1y
ZWdpb24tbGlzdCBuaWwKKyAgIkxpc3Qgb2YgcmVnaW9uIGJvdW5kYXJpZXMgd2hlcmUgZXhwbDMg
c3ludGF4IGlzIGFjdGl2ZS4KK0l0IHdpbGwgYmUgbmlsIGluIGJ1ZmZlcnMgd2hlcmUgZXhwbDMg
c3ludGF4IGlzIGFsd2F5cyBhY3RpdmUsIGUuZy4sCitleHBsMyBjbGFzc2VzIG9yIHBhY2thZ2Vz
LiIpCisKKyhkZWZ2YXItbG9jYWwgdGV4LWV4cGwtYnVmZmVyLXAgbmlsCisgICJOb24tbmlsIGlu
IGJ1ZmZlcnMgd2hlcmUgZXhwbDMgc3ludGF4IGlzIGFsd2F5cyBhY3RpdmUuIikKKwogKGRlZnVu
IHRleC1mb250LWxvY2stc3VzY3JpcHQgKHBvcykKICAgKHVubGVzcyAob3IgKG1lbXEgKGdldC10
ZXh0LXByb3BlcnR5IHBvcyAnZmFjZSkKIAkJICAgICcoZm9udC1sb2NrLWNvbnN0YW50LWZhY2Ug
Zm9udC1sb2NrLWJ1aWx0aW4tZmFjZQpAQCAtNjQ1LDcgKzY1MywxNyBAQCB0ZXgtZm9udC1sb2Nr
LXN1c2NyaXB0CiAJCSAgICAocG9zIHBvcykpCiAJCSh3aGlsZSAoZXEgKGNoYXItYmVmb3JlIHBv
cykgP1xcKQogCQkgIChzZXRxIHBvcyAoMS0gcG9zKSBvZGQgKG5vdCBvZGQpKSkKLQkJb2RkKSkK
KwkJb2RkKQorICAgICAgICAgICAgICA7OyBDaGVjayBpZiBQT1MgaXMgaW4gYW4gZXhwbDMgc3lu
dGF4IHJlZ2lvbiBvciBhbiBleHBsMyBidWZmZXIKKyAgICAgICAgICAgICAgKHdoZW4gKGVxIChj
aGFyLWFmdGVyIHBvcykgP18pCisgICAgICAgICAgICAgICAgKG9yIHRleC1leHBsLWJ1ZmZlci1w
CisgICAgICAgICAgICAgICAgICAgIChhbmQKKyAgICAgICAgICAgICAgICAgICAgIHRleC1leHBs
LXJlZ2lvbi1saXN0CisgICAgICAgICAgICAgICAgICAgICAoY2F0Y2ggJ3Jlc3VsdAorCSAgICAg
ICAgICAgICAgIChkb2xpc3QgKHJhbmdlIHRleC1leHBsLXJlZ2lvbi1saXN0KQorCSAgICAgICAg
ICAgICAgICAgKGFuZCAoPiBwb3MgKGNhciByYW5nZSkpCisJICAgICAgICAgICAgICAgICAgICAg
ICg8IHBvcyAoY2RyIHJhbmdlKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0aHJv
dyAncmVzdWx0IHQpKSkpKSkpKQogICAgIChpZiAoZXEgKGNoYXItYWZ0ZXIgcG9zKSA/XykKIAlg
KGZhY2Ugc3Vic2NyaXB0IGRpc3BsYXkgKHJhaXNlICwoY2FyIHRleC1mb250LXNjcmlwdC1kaXNw
bGF5KSkpCiAgICAgICBgKGZhY2Ugc3VwZXJzY3JpcHQgZGlzcGxheSAocmFpc2UgLChjYWRyIHRl
eC1mb250LXNjcmlwdC1kaXNwbGF5KSkpKSkpCkBAIC0xMjg5LDggKzEzMDcsMTYgQEAgdGV4LWNv
bW1vbi1pbml0aWFsaXphdGlvbgogICAgICAgICAgICAgICAgICMndGV4LS1wcmV0dGlmeS1zeW1i
b2xzLWNvbXBvc2UtcCkKICAgKHNldHEtbG9jYWwgc3ludGF4LXByb3BlcnRpemUtZnVuY3Rpb24K
IAkgICAgICAoc3ludGF4LXByb3BlcnRpemUtcnVsZXMgbGF0ZXgtc3ludGF4LXByb3BlcnRpemUt
cnVsZXMpKQorICA7OyBEb24ndCBhZGQgZXh0cmEgcHJvY2Vzc2luZyB0byBgc3ludGF4LXByb3Bl
cnRpemUnIGluIGZpbGVzIHdoZXJlCisgIDs7IGV4cGwzIHN5bnRheCBpcyBhbHdheXMgYWN0aXZl
LgorICA6YWZ0ZXItaG9vayAocHJvZ24gKHRleC1leHBsLWJ1ZmZlci1wYXJzZSkKKyAgICAgICAg
ICAgICAgICAgICAgICh1bmxlc3MgdGV4LWV4cGwtYnVmZmVyLXAKKyAgICAgICAgICAgICAgICAg
ICAgICAgKGFkZC1ob29rICdzeW50YXgtcHJvcGVydGl6ZS1leHRlbmQtcmVnaW9uLWZ1bmN0aW9u
cworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyd0ZXgtZXhwbC1yZWdpb24tc2V0
IG5pbCB0KSkpCiAgIDs7IFRBQnMgaW4gdmVyYmF0aW0gZW52aXJvbm1lbnRzIGRvbid0IGRvIHdo
YXQgeW91IHRoaW5rLgogICAoc2V0cS1sb2NhbCBpbmRlbnQtdGFicy1tb2RlIG5pbCkKKyAgOzsg
U2V0IHVwIHhyZWYgYmFja2VuZCBpbiBUZVggYnVmZmVycy4KKyAgKGFkZC1ob29rICd4cmVmLWJh
Y2tlbmQtZnVuY3Rpb25zICMndGV4LS14cmVmLWJhY2tlbmQgbmlsIHQpCiAgIDs7IE90aGVyIHZh
cnMgdGhhdCBzaG91bGQgYmUgYnVmZmVyLWxvY2FsLgogICAobWFrZS1sb2NhbC12YXJpYWJsZSAn
dGV4LWNvbW1hbmQpCiAgIChtYWtlLWxvY2FsLXZhcmlhYmxlICd0ZXgtc3RhcnQtb2YtaGVhZGVy
KQpAQCAtMTkzNiw2ICsxOTYyLDM2IEBAIHRleC1jb3VudC13b3JkcwogCQkoZm9yd2FyZC1zZXhw
IDEpKSkpKSkKICAgICAgIChtZXNzYWdlICIlcyB3b3JkcyIgY291bnQpKSkpCiAKKyhkZWZ1biB0
ZXgtZXhwbC1idWZmZXItcGFyc2UgKCkKKyAgIklkZW50aWZ5IGJ1ZmZlcnMgd2hlcmUgZXhwbDMg
c3ludGF4IGlzIGFsd2F5cyBhY3RpdmUuIgorICAoc2F2ZS1leGN1cnNpb24KKyAgICAoZ290by1j
aGFyIChwb2ludC1taW4pKQorICAgICh3aGVuICh0ZXgtc2VhcmNoLW5vbmNvbW1lbnQKKwkgICAo
cmUtc2VhcmNoLWZvcndhcmQKKwkgICAgIlxcXFxcXCg/OkV4cGxGaWxlXFx8UHJvdmlkZXNFeHBs
XFx8X194cGFyc2VfZmlsZVxcKSIKKwkgICAgbmlsIHQpKQorICAgICAgKHNldHEgdGV4LWV4cGwt
YnVmZmVyLXAgdCkpKSkKKworKGRlZnVuIHRleC1leHBsLXJlZ2lvbi1zZXQgKF9iZWcgX2VuZCkK
KyAgIkNyZWF0ZSBhIGxpc3Qgb2YgcmVnaW9ucyB3aGVyZSBleHBsMyBzeW50YXggaXMgYWN0aXZl
LgorVGhpcyBmdW5jdGlvbiB1cGRhdGVzIHRoZSBsaXN0IHdoZW5ldmVyIGBzeW50YXgtcHJvcGVy
dGl6ZScgcnVucywgYW5kCitzdG9yZXMgaXQgaW4gdGhlIGJ1ZmZlci1sb2NhbCB2YXJpYWJsZSBg
dGV4LWV4cGwtcmVnaW9uLWxpc3QnLiAgVGhlCitsaXN0IHdpbGwgYWx3YXlzIGJlIG5pbCB3aGVu
IHRoZSBidWZmZXIgdmlzaXRzIGFuIGV4cGwzIGZpbGUsIGUuZy4sIGFuCitleHBsMyBjbGFzcyBv
ciBwYWNrYWdlLCB3aGVyZSBleHBsMyBzeW50YXggaXMgYWx3YXlzIGFjdGl2ZS4iCisgICh1bmxl
c3Mgc3ludGF4LXBwc3MtLXVwZGF0ZWQtY2FjaGU7OyBTdG9wIGZvcndhcmQgc2VhcmNoIHJ1bm5p
bmcgdHdpY2UuCisgICAgKHNldHEgdGV4LWV4cGwtcmVnaW9uLWxpc3QgbmlsKQorICAgIDs7IExl
YXZpbmcgdGhpcyB0ZXN0IGhlcmUgYWxsb3dzIHVzZXJzIHRvIHNldCBgdGV4LWV4cGwtYnVmZmVy
LXAnCisgICAgOzsgaW5kZXBlbmRlbnRseSBvZiB0aGUgbW9kZSdzIGF1dG9tYXRpYyBkZXRlY3Rp
b24gb2YgYW4gZXhwbDMgZmlsZS4KKyAgICAodW5sZXNzIHRleC1leHBsLWJ1ZmZlci1wCisgICAg
ICAoZ290by1jaGFyIChwb2ludC1taW4pKQorICAgICAgKGxldCAoKGNhc2UtZm9sZC1zZWFyY2gg
bmlsKSkKKyAgICAgICAgKHdoaWxlICh0ZXgtc2VhcmNoLW5vbmNvbW1lbnQKKyAgICAgICAgICAg
ICAgICAoc2VhcmNoLWZvcndhcmQgIlxcRXhwbFN5bnRheE9uIiBuaWwgdCkpCisgICAgICAgICAg
KGxldCAoKG5ldy1iZWcgKHBvaW50KSkKKyAgICAgICAgICAgICAgICAobmV3LWVuZCAob3IgKHRl
eC1zZWFyY2gtbm9uY29tbWVudAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHNlYXJj
aC1mb3J3YXJkICJcXEV4cGxTeW50YXhPZmYiIG5pbCB0KSkKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKHBvaW50LW1heCkpKSkKKyAgICAgICAgICAgIChwdXNoIChjb25zIG5ldy1iZWcg
bmV3LWVuZCkgdGV4LWV4cGwtcmVnaW9uLWxpc3QpKSkpKSkpCiAKIAwKIDs7OyBJbnZva2luZyBU
ZVggaW4gYW4gaW5mZXJpb3Igc2hlbGwuCkBAIC0zNzQyLDYgKzM3OTgsMzA2IEBAIHRleC1jaGt0
ZXgKICAgICAgIChwcm9jZXNzLXNlbmQtcmVnaW9uIHRleC1jaGt0ZXgtLXByb2Nlc3MgKHBvaW50
LW1pbikgKHBvaW50LW1heCkpCiAgICAgICAocHJvY2Vzcy1zZW5kLWVvZiB0ZXgtY2hrdGV4LS1w
cm9jZXNzKSkpKQogCisMCis7OzsgWHJlZiBiYWNrZW5kCisKKzs7IEhlcmUgd2UgbGlnaHRseSBh
ZGFwdCB0aGUgZGVmYXVsdCBldGFncyBiYWNrZW5kIGZvciB4cmVmIHNvIHRoYXQKKzs7IHRoZSBt
YWluIHhyZWYgdXNlciBjb21tYW5kcyAoaW5jbHVkaW5nIGB4cmVmLWZpbmQtZGVmaW5pdGlvbnMn
LAorOzsgYHhyZWYtZmluZC1hcHJvcG9zJywgYW5kIGB4cmVmLWZpbmQtcmVmZXJlbmNlcycgW29u
IE0tLiwgQy1NLS4sIGFuZAorOzsgTS0/LCByZXNwZWN0aXZlbHldKSB3b3JrIGluIFRlWCBidWZm
ZXJzLiAgVGhlIG9ubHkgbWV0aG9kcyB3ZQorOzsgYWN0dWFsbHkgbW9kaWZ5IGFyZSBgeHJlZi1i
YWNrZW5kLWlkZW50aWZpZXItYXQtcG9pbnQnIGFuZAorOzsgYHhyZWYtYmFja2VuZC1yZWZlcmVu
Y2VzJy4gIE1hbnkgb2YgdGhlIGNvbXBsaWNhdGlvbnMgaGVyZSwgYW5kIGluCis7OyBgZXRhZ3Mn
IGl0c2VsZiwgYXJlIGR1ZSB0byB0aGUgbmVjZXNzaXR5IG9mIHBhcnNpbmcgYm90aCB0aGUgb2xk
Cis7OyBUZVggc3ludGF4IGFuZCB0aGUgbmV3IGV4cGwzIHN5bnRheCwgd2hpY2ggd2lsbCBjb250
aW51ZSB0byBhcHBlYXIKKzs7IHRvZ2V0aGVyIGluIGRvY3VtZW50cyBmb3IgdGhlIGZvcmVzZWVh
YmxlIGZ1dHVyZS4gIFN5bmNocm9uaXppbmcKKzs7IEVtYWNzIGFuZCBgZXRhZ3MnIHRoaXMgd2F5
IGFpbXMgdG8gaW1wcm92ZSB0aGUgdXNlciBleHBlcmllbmNlICJvdXQKKzs7IG9mIHRoZSBib3gu
IgorCisoZGVmdmFyIHRleC10aGluZ2F0cHQtZXhjbHVkZS1jaGFycyAnKD9cXCA/XHsgP1x9KQor
ICAiRXhjbHVkZSB0aGVzZSBjaGFycyBieSBkZWZhdWx0IGZyb20gVGVYIHRoaW5nLWF0LXBvaW50
LgorCitUaGUgVGVYIGB4cmVmLWJhY2tlbmQtaWRlbnRpZmllci1hdC1wb2ludCcgbWV0aG9kIHVz
ZXMgdGhlIGNoYXJhY3RlcnMKK2xpc3RlZCBpbiB0aGlzIHZhcmlhYmxlIHRvIGRlY2lkZSBvbiB0
aGUgZGVmYXVsdCBzZWFyY2ggc3RyaW5nIHRvCitwcmVzZW50IHRvIHRoZSB1c2VyIHdobyBjYWxs
cyBhbiBgeHJlZicgY29tbWFuZC4gIFRoZXNlIGNoYXJhY3RlcnMKK2JlY29tZSBwYXJ0IG9mIGEg
cmVnZXhwIHdoaWNoIGFsd2F5cyBleGNsdWRlcyB0aGVtIGZyb20gdGhhdCBkZWZhdWx0CitzdHJp
bmcuICBGb3IgdGhlIGB4cmVmJyBjb21tYW5kcyB0byBmdW5jdGlvbiBwcm9wZXJseSBpbiBUZVgg
YnVmZmVycywgYXQKK2xlYXN0IHRoZSBUZVggZXNjYXBlIGFuZCB0aGUgdHdvIFRlWCBncm91cGlu
ZyBjaGFyYWN0ZXJzIHNob3VsZCBiZQorbGlzdGVkIGhlcmUuICBTaG91bGQgeW91ciBUZVggZG9j
dW1lbnRzIGNvbnRhaW4gb3RoZXIgY2hhcmFjdGVycyB3aGljaAoreW91IHdhbnQgdG8gZXhjbHVk
ZSBieSBkZWZhdWx0LCB0aGVuIHlvdSBjYW4gYWRkIHRoZW0gdG8gdGhlIGxpc3QsCit0aG91Z2gg
eW91IG1heSB3aXNoIHRvIGNvbnN1bHQgdGhlIGZ1bmN0aW9ucworYHRleC10aGluZ2F0cHQtLWJl
Z2lubmluZy1vZi1zeW1ib2wnIGFuZCBgdGV4LXRoaW5nYXRwdC0tZW5kLW9mLXN5bWJvbCcKK3Rv
IHNlZSB3aGF0IHRoZSByZWdleHAgYWxyZWFkeSBjb250YWlucy4gIElmIHlvdXIgZG9jdW1lbnRz
IGNvbnRhaW4KK25vbi1zdGFuZGFyZCBlc2NhcGUgYW5kIGdyb3VwaW5nIGNoYXJhY3RlcnMsIHRo
ZW4geW91IGNhbiByZXBsYWNlIHRoZQordGhyZWUgbGlzdGVkIGhlcmUgd2l0aCB5b3VyIG93biwg
dGhlcmVieSBhbGxvd2luZyB0aGUgdGhyZWUgc3RhbmRhcmQKK2NoYXJhY3RlcnMgdG8gYXBwZWFy
IGJ5IGRlZmF1bHQgaW4gc2VhcmNoIHN0cmluZ3MuICBQbGVhc2UgYmUgYXdhcmUsCitob3dldmVy
LCB0aGF0IHRoZSBgZXRhZ3MnIHByb2dyYW0gb25seSByZWNvZ25pemVzIGBcXCcgKDkyKSBhbmQg
YCEnICgzMykKK2FzIGVzY2FwZSBjaGFyYWN0ZXJzIGluIFRlWCBkb2N1bWVudHMsIGFuZCBpZiBp
dCBkZXRlY3RzIHRoZSBsYXR0ZXIgaXQKK2Fsc28gdXNlcyBgPD4nIGFzIHRoZSBUZVggZ3JvdXBp
bmcgY29uc3RydWN0IHJhdGhlciB0aGFuIGB7fScuICBTZXR0aW5nCit0aGUgZXNjYXBlIGFuZCBn
cm91cGluZyBjaGFycyB0byBhbnl0aGluZyBvdGhlciB0aGFuIGBcXD1cXHt9JyBvciBgITw+Jwor
d2lsbCBub3QgYmUgdXNlZnVsIHdpdGhvdXQgY2hhbmdlcyB0byBgZXRhZ3MnLCBhdCBsZWFzdCBm
b3IgY29tbWFuZHMKK3RoYXQgc2VhcmNoIHRhZ3MgdGFibGVzLCBzdWNoIGFzIFxcW3hyZWYtZmlu
ZC1kZWZpbml0aW9uc10gYW5kIFwKK1xcW3hyZWYtZmluZC1hcHJvcG9zXS4KKworU2hvdWxkIHlv
dSB3aXNoIHRvIGNoYW5nZSB0aGUgZGVmYXVsdHMsIHBsZWFzZSBhbHNvIGJlIGF3YXJlIHRoYXQs
Cit3aXRob3V0IGZ1cnRoZXIgbW9kaWZpY2F0aW9ucyB0byB0ZXgtbW9kZS5lbCwgdGhlIHVzdWFs
IHRleHQtcGFyc2luZworcm91dGluZXMgZm9yIGBmb250LWxvY2snIGFuZCB0aGUgbGlrZSB3b24n
dCB3b3JrIGNvcnJlY3RseSwgYXMgdGhlCitkZWZhdWx0IGVzY2FwZSBhbmQgZ3JvdXBpbmcgY2hh
cmFjdGVycyBhcmUgY3VycmVudGx5IGhhcmQgY29kZWQgaW4gbWFueQorcGxhY2VzLiIpCisKKzs7
IFBvcHVsYXRlIGBzZW1hbnRpYy1zeW1yZWYtZmlsZXBhdHRlcm4tYWxpc3QnIGZvciB0aGUgaW4t
dHJlZSBtb2RlczsKKzs7IEFVQ1RlWCBpcyBkb2luZyB0aGUgc2FtZSBmb3IgaXRzIG1vZGVzLgor
KHdpdGgtZXZhbC1hZnRlci1sb2FkICdzZW1hbnRpYy9zeW1yZWYvZ3JlcAorICAoZGVmdmFyIHNl
bWFudGljLXN5bXJlZi1maWxlcGF0dGVybi1hbGlzdCkKKyAgKHB1c2ggJyhsYXRleC1tb2RlICIq
Llt0VF1lW3hYXSIgIioubHR4IiAiKi5zdHkiICIqLmNsW3NvXSIKKyAgICAgICAgICAgICAgICAg
ICAgICIqLmJibCIgIiouZHJ2IiAiKi5odmEiKQorICAgICAgICBzZW1hbnRpYy1zeW1yZWYtZmls
ZXBhdHRlcm4tYWxpc3QpCisgIChwdXNoICcocGxhaW4tdGV4LW1vZGUgIiouW3RUXWVbeFhdIiAi
Ki5pbnMiKQorICAgICAgICBzZW1hbnRpYy1zeW1yZWYtZmlsZXBhdHRlcm4tYWxpc3QpCisgIChw
dXNoICcoZG9jdGV4LW1vZGUgIiouZHR4Iikgc2VtYW50aWMtc3ltcmVmLWZpbGVwYXR0ZXJuLWFs
aXN0KSkKKworKGRlZnVuIHRleC0teHJlZi1iYWNrZW5kICgpICd0ZXgtZXRhZ3MpCisKKyhjbC1k
ZWZtZXRob2QgeHJlZi1iYWNrZW5kLWlkZW50aWZpZXItYXQtcG9pbnQgKChfYmFja2VuZCAoZXFs
ICd0ZXgtZXRhZ3MpKSkKKyAgKHJlcXVpcmUgJ2V0YWdzKQorICAodGV4LS10aGluZy1hdC1wb2lu
dCkpCisKKzs7IFRoZSBkZXRlY3Rpb24gb2YgYF8nIGFuZCBgOicgaXMgYSBwcmltaXRpdmUgbWV0
aG9kIGZvciBkZXRlcm1pbmluZworOzsgd2hldGhlciBwb2ludCBpcyBvbiBhbiBleHBsMyBjb25z
dHJ1Y3QuICBJdCBtYXkgZmFpbCBpbiBzb21lCis7OyBpbnN0YW5jZXMuCisoZGVmdW4gdGV4LS10
aGluZy1hdC1wb2ludCAoKQorICAiRGVtYXJjYXRlIGB0aGluZy1hdC1wb2ludCcgZm9yIHRoZSBU
ZVggYHhyZWYnIGJhY2tlbmQuIgorICAobGV0ICgoYm91bmRzICh0ZXgtLWJvdW5kcy1vZi1zeW1i
b2wtYXQtcG9pbnQpKSkKKyAgICAod2hlbiBib3VuZHMKKyAgICAgIChsZXQgKCh0ZXhzeW0gKGJ1
ZmZlci1zdWJzdHJpbmctbm8tcHJvcGVydGllcyAoY2FyIGJvdW5kcykgKGNkciBib3VuZHMpKSkp
CisgICAgICAgIChpZiAoYW5kIChub3QgKHN0cmluZy1tYXRjaC1wICJyZWZlcmVuY2UiIChzeW1i
b2wtbmFtZSB0aGlzLWNvbW1hbmQpKSkKKyAgICAgICAgICAgICAgICAgKHNlcS1jb250YWlucy1w
IHRleHN5bSA/XykKKyAgICAgICAgICAgICAgICAgKHNlcS1jb250YWlucy1wIHRleHN5bSA/Oikp
CisgICAgICAgICAgICAoc2VxLXRha2UgdGV4c3ltIChzZXEtcG9zaXRpb24gdGV4c3ltID86KSkK
KyAgICAgICAgICB0ZXhzeW0pKSkpKQorCisoZGVmdW4gdGV4LXRoaW5nYXRwdC0tYmVnaW5uaW5n
LW9mLXN5bWJvbCAoKQorICAoYW5kCisgICAocmUtc2VhcmNoLWJhY2t3YXJkIChjb25jYXQgIltd
WyIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWFwY29uY2F0ICMncmVnZXhwLXF1
b3RlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWFwY2FyICMn
Y2hhci10by1zdHJpbmcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgdGV4LXRoaW5nYXRwdC1leGNsdWRlLWNoYXJzKSkKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAiXCIqYCcjPSYoKSUsfCRbOmNudHJsOl1bOmJsYW5rOl1dIikpCisgICAo
Zm9yd2FyZC1jaGFyKSkpCisKKyhkZWZ1biB0ZXgtdGhpbmdhdHB0LS1lbmQtb2Ytc3ltYm9sICgp
CisgIChhbmQKKyAgIChyZS1zZWFyY2gtZm9yd2FyZCAoY29uY2F0ICJbXVsiCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAobWFwY29uY2F0ICMncmVnZXhwLXF1b3RlCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWFwY2FyICMnY2hhci10by1zdHJpbmcK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4LXRo
aW5nYXRwdC1leGNsdWRlLWNoYXJzKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJc
IipgJyM9JigpJSx8JFs6Y250cmw6XVs6Ymxhbms6XV0iKSkKKyAgIChiYWNrd2FyZC1jaGFyKSkp
CisKKyhkZWZ1biB0ZXgtLWJvdW5kcy1vZi1zeW1ib2wtYXQtcG9pbnQgKCkKKyAgIlNpbXBsaWZ5
IGBib3VuZHMtb2YtdGhpbmctYXQtcG9pbnQnIGZvciBUZVggYHhyZWYnIGJhY2tlbmQuIgorICAo
bGV0ICgob3JpZyAocG9pbnQpKSkKKyAgICAoaWdub3JlLWVycm9ycworICAgICAgKHNhdmUtZXhj
dXJzaW9uCisJKHRleC10aGluZ2F0cHQtLWVuZC1vZi1zeW1ib2wpCisJKHRleC10aGluZ2F0cHQt
LWJlZ2lubmluZy1vZi1zeW1ib2wpCisJKGxldCAoKGJlZyAocG9pbnQpKSkKKwkgIChpZiAoPD0g
YmVnIG9yaWcpCisJICAgICAgKGxldCAoKHJlYWwtZW5kCisJCSAgICAgKHByb2duCisJCSAgICAg
ICAodGV4LXRoaW5nYXRwdC0tZW5kLW9mLXN5bWJvbCkKKwkJICAgICAgIChwb2ludCkpKSkKKwkJ
KGNvbmQgKChhbmQgKDw9IG9yaWcgcmVhbC1lbmQpICg8IGJlZyByZWFsLWVuZCkpCisJCSAgICAg
ICAoY29ucyBiZWcgcmVhbC1lbmQpKQorICAgICAgICAgICAgICAgICAgICAgICgoYW5kICg9IG9y
aWcgcmVhbC1lbmQpICg9IGJlZyByZWFsLWVuZCkpCisJCSAgICAgICAoY29ucyBiZWcgKDErIGJl
ZykpKSkpKSkpKSkpOzsgRm9yIDEtY2hhciBUZVggY29tbWFuZHMuCisKKyhjbC1kZWZtZXRob2Qg
eHJlZi1iYWNrZW5kLWlkZW50aWZpZXItY29tcGxldGlvbi10YWJsZSAoKF9iYWNrZW5kCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZXFs
ICd0ZXgtZXRhZ3MpKSkKKyAgKHhyZWYtYmFja2VuZC1pZGVudGlmaWVyLWNvbXBsZXRpb24tdGFi
bGUgJ2V0YWdzKSkKKworKGNsLWRlZm1ldGhvZCB4cmVmLWJhY2tlbmQtaWRlbnRpZmllci1jb21w
bGV0aW9uLWlnbm9yZS1jYXNlICgoX2JhY2tlbmQKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlcWwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndGV4LWV0
YWdzKSkpCisgICh4cmVmLWJhY2tlbmQtaWRlbnRpZmllci1jb21wbGV0aW9uLWlnbm9yZS1jYXNl
ICdldGFncykpCisKKyhjbC1kZWZtZXRob2QgeHJlZi1iYWNrZW5kLWRlZmluaXRpb25zICgoX2Jh
Y2tlbmQgKGVxbCAndGV4LWV0YWdzKSkgc3ltYm9sKQorICAoeHJlZi1iYWNrZW5kLWRlZmluaXRp
b25zICdldGFncyBzeW1ib2wpKQorCisoY2wtZGVmbWV0aG9kIHhyZWYtYmFja2VuZC1hcHJvcG9z
ICgoX2JhY2tlbmQgKGVxbCAndGV4LWV0YWdzKSkgcGF0dGVybikKKyAgKHhyZWYtYmFja2VuZC1h
cHJvcG9zICdldGFncyBwYXR0ZXJuKSkKKworOzsgVGhlIGB4cmVmLWJhY2tlbmQtcmVmZXJlbmNl
cycgbWV0aG9kIHJlcXVpcmVzIG1vcmUgY29kZSB0aGFuIHRoZQorOzsgb3RoZXJzIGZvciBhdCBs
ZWFzdCB0d28gbWFpbiByZWFzb25zOiBUZVggYXV0aG9ycyBoYXZlIHR5cGljYWxseSBiZWVuCis7
OyBmcmVlIGluIHRoZWlyIGludmVudGlvbiBvZiBuZXcgZmlsZSB0eXBlcyB3aXRoIG5ldyBzdWZm
aXhlcywgYW5kIHRoZXkKKzs7IGhhdmUgYWxzbyB0ZW5kZWQgc29tZXRpbWVzIHRvIGluY2x1ZGUg
bm9uLXN5bWJvbCBjaGFyYWN0ZXJzIGluCis7OyBjb21tYW5kIG5hbWVzLiAgV2hlbiBjb21iaW5l
ZCB3aXRoIHRoZSBkZWZhdWx0IFNlbWFudGljIFN5bWJvbAorOzsgUmVmZXJlbmNlIEFQSSwgdGhl
c2UgdHdvIGNoYXJhY3RlcmlzdGljcyBvZiBUZVggY29kZSBtZWFuIHRoYXQgYQorOzsgY29tbWFu
ZCBsaWtlIGB4cmVmLWZpbmQtcmVmZXJlbmNlcycgd291bGQgb2Z0ZW4gZmFpbCB0byBmaW5kIGFu
eSBoaXRzCis7OyBmb3IgYSBzeW1ib2wgYXQgcG9pbnQsIGluY2x1ZGluZyB0aGUgb25lIHVuZGVy
IHBvaW50IGluIHRoZSBjdXJyZW50Cis7OyBidWZmZXIsIG9yIGl0IHdvdWxkIGZpbmQgb25seSBz
b21lIGluc3RhbmNlcyBhbmQgc2tpcCBvdGhlcnMuCisKKyhkZWZ1biB0ZXgtZmluZC1yZWZlcmVu
Y2VzLXN5bnRheC10YWJsZSAoKQorICAobGV0ICgoc3QgKGlmIChib3VuZHAgJ1RlWC1tb2RlLXN5
bnRheC10YWJsZSkKKyAgICAgICAgICAgICAgICAgKG1ha2Utc3ludGF4LXRhYmxlIFRlWC1tb2Rl
LXN5bnRheC10YWJsZSkKKyAgICAgICAgICAgICAgIChtYWtlLXN5bnRheC10YWJsZSB0ZXgtbW9k
ZS1zeW50YXgtdGFibGUpKSkpCisgICAgc3QpKQorCisoZGVmdmFyIHRleC0teHJlZi1zeW50YXgt
ZnVuIG5pbCkKKworKGRlZnVuIHRleC14cmVmLXN5bnRheC1mdW5jdGlvbiAoc3RyIGJlZyBlbmQp
CisgICJQcm92aWRlIGEgYmVzcG9rZSBgc3ludGF4LXByb3BlcnRpemUtZnVuY3Rpb24nIGZvciBc
XFt4cmVmLWZpbmQtcmVmZXJlbmNlc10uIgorICAobGV0KiAoZ3JwYiB0ZW1wc3RyCisgICAgICAg
ICAgICAgIChzaHJ0c3RyIChpZiBlbmQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIChwcm9n
bgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2V0cSB0ZW1wc3RyIChzZXEtdGFrZSBz
dHIgKDEtIChsZW5ndGggc3RyKSkpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaWYg
YmVnCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2V0cSB0ZW1wc3RyIChzZXEt
ZHJvcCB0ZW1wc3RyIDEpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlbXBzdHIp
KQorICAgICAgICAgICAgICAgICAgICAgICAgIChzZXEtZHJvcCBzdHIgMSkpKQorICAgICAgICAg
ICAgICAoZ3JwYSAoaWYgKGFuZCBiZWcgZW5kKQorICAgICAgICAgICAgICAgICAgICAgICAgKHBy
b2cxCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpc3QgMSAiXyIpCisgICAgICAgICAg
ICAgICAgICAgICAgICAgIChzZXRxIGdycGIgKGxpc3QgMiAiXyIpKSkKKyAgICAgICAgICAgICAg
ICAgICAgICAobGlzdCAxICJfIikpKQorICAgICAgICAgICAgICAocmUgKGNvbmNhdCBiZWcgKHJl
Z2V4cC1xdW90ZSBzaHJ0c3RyKSBlbmQpKQorICAgICAgICAgICAgICAodGVtcC1ydWxlIChpZiBn
cnBiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaXN0IHJlIGdycGEgZ3JwYikKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgIChsaXN0IHJlIGdycGEpKSkpCisgICAgOzsgU2ltcGxl
IGJlbmNobWFya3Mgc3VnZ2VzdGVkIHRoYXQgdGhlIHNwZWVkLXVwIGZyb20gY29tcGlsaW5nIHRo
aXMKKyAgICA7OyBmdW5jdGlvbiB3YXMgbmVhcmx5IG5pbCwgc28gYGV2YWwnIGFuZCBpdHMgbm9u
LWJ5dGUtY29tcGlsZWQKKyAgICA7OyBmdW5jdGlvbiByZW1haW4uCisgICAgKHNldHEgdGV4LS14
cmVmLXN5bnRheC1mdW4gKGV2YWwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYChz
eW50YXgtcHJvcGVydGl6ZS1ydWxlcyAsdGVtcC1ydWxlKSkpKSkKKworKGRlZnVuIHRleC0tY29s
bGVjdC1maWxlLWV4dGVuc2lvbnMgKCkKKyAgIkdhdGhlciBUZVggZmlsZSBleHRlbnNpb25zIGZy
b20gYGF1dG8tbW9kZS1hbGlzdCcuIgorICAobGV0KiAoKG1saXN0ICh3aGVuIChyYXNzcSBtYWpv
ci1tb2RlIGF1dG8tbW9kZS1hbGlzdCkKKwkJICAoc2VxLWZpbHRlcgorCQkgICAobGFtYmRhIChl
bHQpCisJCSAgICAgKGVxIChjZHIgZWx0KSBtYWpvci1tb2RlKSkKKwkJICAgYXV0by1tb2RlLWFs
aXN0KSkpCisJIChsY3N5bSAoaW50ZXJuLXNvZnQgKGRvd25jYXNlIChzeW1ib2wtbmFtZSBtYWpv
ci1tb2RlKSkpKQorCSAobGNsaXN0IChhbmQgbGNzeW0KKwkJICAgICAgKG5vdCAoZXEgbGNzeW0g
bWFqb3ItbW9kZSkpCisJCSAgICAgIChyYXNzcSBsY3N5bSBhdXRvLW1vZGUtYWxpc3QpCisJCSAg
ICAgIChzZXEtZmlsdGVyCisJCSAgICAgICAobGFtYmRhIChlbHQpCisJCQkgKGVxIChjZHIgZWx0
KSBsY3N5bSkpCisJCSAgICAgICBhdXRvLW1vZGUtYWxpc3QpKSkKKwkgKHNob3J0c3ltICh3aGVu
IChzdHJpbmdwIG1vZGUtbmFtZSkKKwkJICAgICAoaW50ZXJuLXNvZnQgKGNvbmNhdCAoc3RyaW5n
LXRyaW0tcmlnaHQgbW9kZS1uYW1lICIvLioiKQorCQkJCQkgICItbW9kZSIpKSkpCisJIChsY3No
b3J0c3ltICh3aGVuIChzdHJpbmdwIG1vZGUtbmFtZSkKKwkJICAgICAgIChpbnRlcm4tc29mdCAo
ZG93bmNhc2UKKwkJCQkgICAgIChjb25jYXQKKwkJCQkgICAgICAoc3RyaW5nLXRyaW0tcmlnaHQg
bW9kZS1uYW1lICIvLioiKQorCQkJCSAgICAgICItbW9kZSIpKSkpKQorCSAoc2hsaXN0IChhbmQg
c2hvcnRzeW0KKwkJICAgICAgKG5vdCAoZXEgc2hvcnRzeW0gbWFqb3ItbW9kZSkpCisJCSAgICAg
IChub3QgKGVxIHNob3J0c3ltIGxjc3ltKSkKKwkJICAgICAgKHJhc3NxIHNob3J0c3ltIGF1dG8t
bW9kZS1hbGlzdCkKKwkJICAgICAgKHNlcS1maWx0ZXIKKwkJICAgICAgIChsYW1iZGEgKGVsdCkK
KwkJCSAoZXEgKGNkciBlbHQpIHNob3J0c3ltKSkKKwkJICAgICAgIGF1dG8tbW9kZS1hbGlzdCkp
KQorCSAobGNzaGxpc3QgKGFuZCBsY3Nob3J0c3ltCisJCQkobm90IChlcSBsY3Nob3J0c3ltIG1h
am9yLW1vZGUpKQorCQkJKG5vdCAoZXEgbGNzaG9ydHN5bSBsY3N5bSkpCisJCQkocmFzc3EgbGNz
aG9ydHN5bSBhdXRvLW1vZGUtYWxpc3QpCisJCQkoc2VxLWZpbHRlcgorCQkJIChsYW1iZGEgKGVs
dCkKKwkJCSAgIChlcSAoY2RyIGVsdCkgbGNzaG9ydHN5bSkpCisJCQkgYXV0by1tb2RlLWFsaXN0
KSkpCisJIChleHRzICh3aGVuIChvciBtbGlzdCBsY2xpc3Qgc2hsaXN0IGxjc2hsaXN0KQorCQkg
KHNlcS11bmlvbiAoc2VxLW1hcCAjJ2NhciBsY2xpc3QpCisJCQkgICAgKHNlcS11bmlvbiAoc2Vx
LW1hcCAjJ2NhciBtbGlzdCkKKwkJCQkgICAgICAgKHNlcS11bmlvbiAoc2VxLW1hcCAjJ2NhciBs
Y3NobGlzdCkKKwkJCQkJCSAgKHNlcS1tYXAgIydjYXIgc2hsaXN0KSkpKSkpCisJIChlZC1leHRz
ICh3aGVuIGV4dHMKKwkJICAgIChzZXEtbWFwCisJCSAgICAgKGxhbWJkYSAoZWx0KQorCQkgICAg
ICAgKGNvbmNhdCAiKiIgKHN0cmluZy10cmltICBlbHQgIlxcXFwiICJcXFxcJyIpKSkKKwkJICAg
ICBleHRzKSkpKQorICAgIGVkLWV4dHMpKQorCisoZGVmdmFyIHRleC0tYnVmZmVycy1saXN0IG5p
bCkKKyhkZWZ2YXItbG9jYWwgdGV4LS1vbGQtc3ludGF4LWZ1bmN0aW9uIG5pbCkKKworKGNsLWRl
Zm1ldGhvZCB4cmVmLWJhY2tlbmQtcmVmZXJlbmNlcyAoKF9iYWNrZW5kIChlcWwgJ3RleC1ldGFn
cykpIGlkZW50aWZpZXIpCisgICJGaW5kIHJlZmVyZW5jZXMgb2YgSURFTlRJRklFUiBpbiBUZVgg
YnVmZmVycyBhbmQgZmlsZXMuIgorICAocmVxdWlyZSAnc2VtYW50aWMvc3ltcmVmL2dyZXApCisg
IChkZWZ2YXIgc2VtYW50aWMtc3ltcmVmLWZpbGVwYXR0ZXJuLWFsaXN0KQorICAobGV0IChidWZz
IHRleGJ1ZnMKKyAgICAgICAgICAgICAobW9kZSBtYWpvci1tb2RlKSkKKyAgICAoZG9saXN0IChi
dWYgKGJ1ZmZlci1saXN0KSkKKyAgICAgIChpZiAoZXEgKGJ1ZmZlci1sb2NhbC12YWx1ZSAnbWFq
b3ItbW9kZSBidWYpIG1vZGUpCisgICAgICAgICAgKHB1c2ggYnVmIGJ1ZnMpCisgICAgICAgICh3
aGVuIChzdHJpbmctbWF0Y2gtcCAiLipcXC5bdFRdZVt4WF0iIChidWZmZXItbmFtZSBidWYpKQor
ICAgICAgICAgIChwdXNoIGJ1ZiB0ZXhidWZzKSkpKQorICAgICh1bmxlc3MgKHNlcS1zZXQtZXF1
YWwtcCB0ZXgtLWJ1ZmZlcnMtbGlzdCBidWZzKQorICAgICAgKGxldCogKChhbWFsaXN0ICh0ZXgt
LWNvbGxlY3QtZmlsZS1leHRlbnNpb25zKSkKKwkgICAgIChleHRsaXN0IChhbGlzdC1nZXQgbW9k
ZSBzZW1hbnRpYy1zeW1yZWYtZmlsZXBhdHRlcm4tYWxpc3QpKQorCSAgICAgKGV4dGxpc3QtbmV3
IChzZXEtdW5pcQorICAgICAgICAgICAgICAgICAgICAgICAgICAgKHNlcS11bmlvbiBhbWFsaXN0
IGV4dGxpc3QgIydzdHJpbmctbWF0Y2gtcCkpKSkKKwkoc2V0cSB0ZXgtLWJ1ZmZlcnMtbGlzdCBi
dWZzKQorCShkb2xpc3QgKGJ1ZiBidWZzKQorCSAgKHdoZW4tbGV0ICgoZmJ1ZiAoYnVmZmVyLWZp
bGUtbmFtZSBidWYpKQorCQkgICAgIChleHQgKGZpbGUtbmFtZS1leHRlbnNpb24gZmJ1ZikpCisJ
CSAgICAgKGZpbmV4dCAoY29uY2F0ICIqLiIgZXh0KSkKKwkJICAgICAoKG5vdCAoc2VxLWZpbmQg
KGxhbWJkYSAoZWx0KSAoc3RyaW5nLW1hdGNoLXAgZWx0IGZpbmV4dCkpCisJCQkJICAgICBleHRs
aXN0LW5ldykpKQorCQkgICAgICgocHVzaCBmaW5leHQgZXh0bGlzdC1uZXcpKSkpKQorCSh1bmxl
c3MgKHNlcS1zZXQtZXF1YWwtcCBleHRsaXN0LW5ldyBleHRsaXN0KQorCSAgKHNldGYgKGFsaXN0
LWdldCBtb2RlIHNlbWFudGljLXN5bXJlZi1maWxlcGF0dGVybi1hbGlzdCkKKyAgICAgICAgICAg
ICAgICBleHRsaXN0LW5ldykpKSkKKyAgICAobGV0KiAoc2V0c3ludGF4CisgICAgICAgICAgIChw
dW5jdCAod2l0aC1zeW50YXgtdGFibGUgKHRleC1maW5kLXJlZmVyZW5jZXMtc3ludGF4LXRhYmxl
KQorICAgICAgICAgICAgICAgICAgICAoc2VxLXBvc2l0aW9ucyBpZGVudGlmaWVyIChsaXN0ID93
ID9fKQorCQkJICAgICAgICAgICAobGFtYmRhIChlbHQgc3ljb2RlKQorCQkJICAgICAgICAgICAg
IChub3QgKG1lbXEgKGNoYXItc3ludGF4IGVsdCkgc3ljb2RlKSkpKSkpCisgICAgICAgICAgIChl
bmQgKGFuZCBwdW5jdAorICAgICAgICAgICAgICAgICAgICAgKG1lbXEgKDEtIChsZW5ndGggaWRl
bnRpZmllcikpIHB1bmN0KQorICAgICAgICAgICAgICAgICAgICAgKD4gKGxlbmd0aCBpZGVudGlm
aWVyKSAxKQorICAgICAgICAgICAgICAgICAgICAgKGNvbmNhdCAiXFwoIgorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAocmVnZXhwLXF1b3RlCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAoc3RyaW5nIChlbHQgaWRlbnRpZmllcgorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICgxLSAobGVuZ3RoIGlkZW50aWZpZXIpKSkpKQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAiXFwpIikpKQorICAgICAgICAgICAoYmVnIChhbmQgcHVuY3QKKyAg
ICAgICAgICAgICAgICAgICAgIChtZW1xIDAgcHVuY3QpCisgICAgICAgICAgICAgICAgICAgICAo
Y29uY2F0ICJcXCgiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChyZWdleHAtcXVvdGUg
KHN0cmluZyAoZWx0IGlkZW50aWZpZXIgMCkpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAiXFwpIikpKQorICAgICAgICAgICAodGV4dC1tb2RlLWhvb2sKKyAgICAgICAgICAgIChpZiAo
b3IgZW5kIGJlZykKKyAgICAgICAgICAgICAgICAocHJvZ24KKyAgICAgICAgICAgICAgICAgICh0
ZXgteHJlZi1zeW50YXgtZnVuY3Rpb24gaWRlbnRpZmllciBiZWcgZW5kKQorICAgICAgICAgICAg
ICAgICAgKHNldHEgc2V0c3ludGF4IChsYW1iZGEgKCkKKwkJICAgICAgICAgICAgICAgICAgICAo
c2V0cS1sb2NhbCBzeW50YXgtcHJvcGVydGl6ZS1mdW5jdGlvbgorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4LS14cmVmLXN5bnRheC1mdW4pCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2V0cS1sb2NhbCBUZVgtc3R5bGUtaG9v
ay1hcHBsaWVkLXAgdCkpKQorICAgICAgICAgICAgICAgICAgKGNvbnMgc2V0c3ludGF4IHRleHQt
bW9kZS1ob29rKSkKKyAgICAgICAgICAgICAgdGV4dC1tb2RlLWhvb2spKSkKKyAgICAgICh1bmxl
c3MgKG1lbXEgJ2RvY3RleC1tb2RlIChkZXJpdmVkLW1vZGUtYWxsLXBhcmVudHMgbW9kZSkpCisg
ICAgICAgIChzZXRxIGJ1ZnMgKGFwcGVuZCB0ZXhidWZzIGJ1ZnMpKSkKKyAgICAgICh3aGVuIChv
ciBlbmQgYmVnKQorICAgICAgICAoZG9saXN0IChidWYgYnVmcykKKyAgICAgICAgICAod2l0aC1j
dXJyZW50LWJ1ZmZlciBidWYKKyAgICAgICAgICAgICh1bmxlc3MgKGxvY2FsLXZhcmlhYmxlLXAg
J3RleC0tb2xkLXN5bnRheC1mdW5jdGlvbikKKyAgICAgICAgICAgICAgKHNldHEgdGV4LS1vbGQt
c3ludGF4LWZ1bmN0aW9uIHN5bnRheC1wcm9wZXJ0aXplLWZ1bmN0aW9uKSkKKyAgICAgICAgICAg
IChzZXRxLWxvY2FsIHN5bnRheC1wcm9wZXJ0aXplLWZ1bmN0aW9uCisgICAgICAgICAgICAgICAg
ICAgICAgICB0ZXgtLXhyZWYtc3ludGF4LWZ1bikKKyAgICAgICAgICAgIChzeW50YXgtcHBzcy1m
bHVzaC1jYWNoZSAocG9pbnQtbWluKSkpKSkKKyAgICAgICh1bndpbmQtcHJvdGVjdAorICAgICAg
ICAgICh4cmVmLWJhY2tlbmQtcmVmZXJlbmNlcyBuaWwgaWRlbnRpZmllcikKKyAgICAgICAgKHdo
ZW4gKG9yIGVuZCBiZWcpCisgICAgICAgICAgKGRvbGlzdCAoYnVmIGJ1ZnMpCisgICAgICAgICAg
ICAod2l0aC1jdXJyZW50LWJ1ZmZlciBidWYKKyAgICAgICAgICAgICAgKHdoZW4gYnVmZmVyLWZp
bGUtdHJ1ZW5hbWUKKyAgICAgICAgICAgICAgICAoc2V0cS1sb2NhbCBzeW50YXgtcHJvcGVydGl6
ZS1mdW5jdGlvbgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleC0tb2xkLXN5bnRheC1m
dW5jdGlvbikKKyAgICAgICAgICAgICAgICAoc3ludGF4LXBwc3MtZmx1c2gtY2FjaGUgKHBvaW50
LW1pbikpKSkpKSkpKSkKKwogKG1ha2Utb2Jzb2xldGUtdmFyaWFibGUgJ3RleC1tb2RlLWxvYWQt
aG9vawogICAgICAgICAgICAgICAgICAgICAgICAgInVzZSBgd2l0aC1ldmFsLWFmdGVyLWxvYWQn
IGluc3RlYWQuIiAiMjguMSIpCiAocnVuLWhvb2tzICd0ZXgtbW9kZS1sb2FkLWhvb2spCi0tIAoy
LjM5LjQKCg==
--000000000000d8a2b5061a216eeb--




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#53749: 29.0.50; [PATCH] Xref backend for TeX buffers
Resent-From: Eli Zaretskii <eliz@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Sat, 08 Jun 2024 12:39:01 +0000
Resent-Message-ID: <handler.53749.B53749.171785032914373 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 53749
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: pending patch
To: David Fussner <dfussner@HIDDEN>
Cc: 53749 <at> debbugs.gnu.org, ikumi@HIDDEN, tsdh@HIDDEN, arash@HIDDEN, stefankangas@HIDDEN, dgutov@HIDDEN, monnier@HIDDEN
Received: via spool by 53749-submit <at> debbugs.gnu.org id=B53749.171785032914373
          (code B ref 53749); Sat, 08 Jun 2024 12:39:01 +0000
Received: (at 53749) by debbugs.gnu.org; 8 Jun 2024 12:38:49 +0000
Received: from localhost ([127.0.0.1]:37742 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1sFvLN-0003jk-FJ
	for submit <at> debbugs.gnu.org; Sat, 08 Jun 2024 08:38:49 -0400
Received: from eggs.gnu.org ([209.51.188.92]:34136)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <eliz@HIDDEN>) id 1sFvLL-0003jX-2A
 for 53749 <at> debbugs.gnu.org; Sat, 08 Jun 2024 08:38:48 -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 1sFvKx-0007R6-Ud; Sat, 08 Jun 2024 08:38:23 -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=3ix8XTfHQ33tuoTKr8qpkwNMDgbxKeFg7HkLb8mf484=; b=K/gwQHr1VdyZ
 h/pqnVTl46OgAo7w1hPQvM3sUjCC8dn8UicnvGTMY9+H8b7vW/UZF9Yjk68VdmuDagMkNFRn5Y2VJ
 AWXn3aiCFLm3QKRJXfuDtNsjAx4cjz/ShGZstA+IQPIMkr5zn8TNW3rYzIzt2lnuls1UgKjpUu6Nc
 loajoEUcNRUnNiL/E3dwIu/aPK51gjtp8wm4pS/XpPq05z+DuwVSBqwdnuqoPcs+XLkG0FVNDidz+
 4bbJWn1EMVtOeGhkAQgbbHEVFUCYylM7pKWPSHgTzhGiQ9d3D/lpepmGOjsb8pSEq7jLMlzENPcAE
 jGltk2a/20yUKUAWfLLLYg==;
Date: Sat, 08 Jun 2024 15:38:17 +0300
Message-Id: <86h6e3d2yu.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
In-Reply-To: <CADF+Rtjn52wJ2ikWcVaw8gBzKV9PGqjnSEb7+8tiifi=LzyAbg@HIDDEN>
 (message from David Fussner on Wed, 5 Jun 2024 10:46:10 +0100)
References: <CADF+RtgWCLKQGwgdTNWmgesbcwq8iBxChoN8FqMOg95Ai3CYTA@HIDDEN>
 <CADF+RtgxigxvgG0j6bbpYnrrFVF4YTKZ1Rs0JSCc8zuu5JNA2w@HIDDEN>
 <fcbc07cf-5ee9-131f-1a18-9cc28a5655f1@HIDDEN>
 <CADF+Rti2gSVvfksUVO04ptKQsXrNpwUXHQ_qFjC26D8NNh578A@HIDDEN>
 <2c5c8afa-b57e-3156-d21c-5523cacb4d87@HIDDEN> <831qf1mgjl.fsf@HIDDEN>
 <87cyyj9rpp.fsf@HIDDEN> <65793.1694843596@localhost>
 <CADF+RtikqxOW0XpwGTWWuGNTWjz3-MWMcO6U65Tta3PJjkRXqw@HIDDEN>
 <m24jbtim2p.fsf@HIDDEN>
 <CADF+RtiOECRmdoFD1qP=gRzS+P3tJqh_WNTnuW-1zPrY9g4VBw@HIDDEN>
 <e5a6ba0d-ca4a-4e21-b44f-12043c59aa6b@HIDDEN>
 <CADF+Rtif9uA3qgcSbxiFMTi01wyn5fSMgdTGu1Crsdb24XexDQ@HIDDEN>
 <jwvh6ff9fqi.fsf-monnier+emacs@HIDDEN>
 <eb177a28-d1b3-481a-afad-97bfb9e8d851@HIDDEN>
 <83ba27b7-4d28-4a3f-b803-4bc49f62986c@HIDDEN>
 <jwv7cfxihg2.fsf-monnier+emacs@HIDDEN>
 <82993b86-0f34-4adb-a392-c74db5176d14@HIDDEN>
 <jwv7cftbp8i.fsf-monnier+emacs@HIDDEN>
 <bdd21a1a-f950-4a86-b576-dc2ac252505b@HIDDEN>
 <jwvv839i58b.fsf-monnier+emacs@HIDDEN> <86v832z5lp.fsf@HIDDEN>
 <CADF+Rtjn52wJ2ikWcVaw8gBzKV9PGqjnSEb7+8tiifi=LzyAbg@HIDDEN>
X-Spam-Score: -2.3 (--)
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 (---)

> From: David Fussner <dfussner@HIDDEN>
> Date: Wed, 5 Jun 2024 10:46:10 +0100
> Cc: Stefan Monnier <monnier@HIDDEN>, dgutov@HIDDEN, 53749 <at> debbugs.gnu.org, 
> 	ikumi@HIDDEN, arash@HIDDEN, stefankangas@HIDDEN, tsdh@HIDDEN
> 
> Hi Eli, Stefan, and Dmitry,
> 
> In case the changeset might prove acceptable for version 30, I attach
> the latest patch, which clears out the code I was using to simplify
> testing of the AUCTeX modes. I can if requested send a patch for the
> manual etags tests, also, in case that might prove helpful down the
> line.

Thanks, I'm still waiting for answers to my question:

> On Sat, 25 May 2024 at 12:01, Eli Zaretskii <eliz@HIDDEN> wrote:
> >
> > How should we proceed about this bug report?  Is David's last
> > changeset acceptable or isn't it?




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#53749: 29.0.50; [PATCH] Xref backend for TeX buffers
Resent-From: Dmitry Gutov <dmitry@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Sat, 08 Jun 2024 21:56:02 +0000
Resent-Message-ID: <handler.53749.B53749.171788372216177 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 53749
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: pending patch
To: Eli Zaretskii <eliz@HIDDEN>, David Fussner <dfussner@HIDDEN>
Cc: 53749 <at> debbugs.gnu.org, ikumi@HIDDEN, arash@HIDDEN, stefankangas@HIDDEN, tsdh@HIDDEN, monnier@HIDDEN
Received: via spool by 53749-submit <at> debbugs.gnu.org id=B53749.171788372216177
          (code B ref 53749); Sat, 08 Jun 2024 21:56:02 +0000
Received: (at 53749) by debbugs.gnu.org; 8 Jun 2024 21:55:22 +0000
Received: from localhost ([127.0.0.1]:42571 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1sG41v-0004Cl-HN
	for submit <at> debbugs.gnu.org; Sat, 08 Jun 2024 17:55:22 -0400
Received: from fout2-smtp.messagingengine.com ([103.168.172.145]:35987)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <dmitry@HIDDEN>) id 1sG3fF-0003C4-Pl
 for 53749 <at> debbugs.gnu.org; Sat, 08 Jun 2024 17:31:55 -0400
Received: from compute7.internal (compute7.nyi.internal [10.202.2.48])
 by mailfout.nyi.internal (Postfix) with ESMTP id 899991380095;
 Sat,  8 Jun 2024 16:54:35 -0400 (EDT)
Received: from mailfrontend1 ([10.202.2.162])
 by compute7.internal (MEProxy); Sat, 08 Jun 2024 16:54:35 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gutov.dev; h=cc
 :cc:content-transfer-encoding:content-type:content-type:date
 :date:from:from:in-reply-to:in-reply-to:message-id:mime-version
 :references:reply-to:subject:subject:to:to; s=fm3; t=1717880075;
 x=1717966475; bh=xBwPa8nNyV6oPO7Y//Omz3LND3l9ulOTNZBEZ05cNK0=; b=
 EKYd1m1KWsnasmo2JhXxMdmWVM20LlkitVGbwN7DKhenaBm5oXTbNBjTEICGCwtJ
 6vXYSS9srJtTbgi9UaBKrNrRI/DzNQHnt0QWc+EGVeFxda+b6IEq1/Cn9t1ddLj5
 rPjLSnevO0BLNsvm30edizTryU0Ah6YV75jG6eVdl13xmkWxw2FnddVTacHABJWh
 yR+7wAdQtXkXz9NrzKS+A+MCsyO0jlT/sulJmvYcYIMVfDoamvFgP2bZIpasUYLj
 BJtxyms0DDoqHrdjQQmu4QLasKQKQ1Zvbh+KKaQh5bTAeckzFb1p0fYBYloOXGeL
 xHs7d/nJPjL/GpuTHyOinw==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
 messagingengine.com; h=cc:cc:content-transfer-encoding
 :content-type:content-type:date:date:feedback-id:feedback-id
 :from:from:in-reply-to:in-reply-to:message-id:mime-version
 :references:reply-to:subject:subject:to:to:x-me-proxy:x-me-proxy
 :x-me-sender:x-me-sender:x-sasl-enc; s=fm1; t=1717880075; x=
 1717966475; bh=xBwPa8nNyV6oPO7Y//Omz3LND3l9ulOTNZBEZ05cNK0=; b=A
 Q8Kw4DvTlI3hyTsAhnhNpAEt+KIavRK8Rc54AmsMLCprcKNAZSULfDCroTj2UILt
 evY/a7K7X7hLBfosjOPY4sofW19h+RaeJNR5zbKXDq0xTLBjFzADt/BLgUfKwZ9g
 wuExQUVbD7FYcRlLkjuV31HxUakIF2x6m0Zg2IdeLhuHr9jgXuetKqHlNvb1tG+O
 MKhHASLONNzGtOVkiQOC5qIvlG2hgTmg+bsSUJsowam6WhLbXZRRBEPLM0DvlOlR
 CkbqmDa6wv/aa2E/NyxwHEa6HfIbl6V8IFTk5GLikodeZ6JIuVrKdUUZVYtuZzvo
 +PwAD5DDdwlybwjsCQwig==
X-ME-Sender: <xms:CsVkZoIwara7sjxtKI66CjpPXrmMTasHr5ETXUtSnZrapwjdrJNWJQ>
 <xme:CsVkZoKPmc7HvW9bk7CvHBrMtDJUGkH1nHpBtz1OHaXf4X6SeDrp7j6xAwpCX7Ehu
 ZB1e-YR_Vf_1sDgkG0>
X-ME-Received: <xmr:CsVkZos-ie3M4lTzSKA0gsx2Fcswk5vyujpBR-QdFxc4I3dtbIU1AKAUEA_kYZRGE2uY>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvledrfedtgedgledtucetufdoteggodetrfdotf
 fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen
 uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne
 cujfgurhepkfffgggfuffvvehfhfgjtgfgsehtjeertddtvdejnecuhfhrohhmpeffmhhi
 thhrhicuifhuthhovhcuoegumhhithhrhiesghhuthhovhdruggvvheqnecuggftrfgrth
 htvghrnhepteduleejgeehtefgheegjeekueehvdevieekueeftddvtdevfefhvdevgedu
 jeehnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepug
 hmihhtrhihsehguhhtohhvrdguvghv
X-ME-Proxy: <xmx:CsVkZlbvp-gLsep5AyLV3_THQvAXHqyw-M5upjC4r065tS8JdIRVNQ>
 <xmx:CsVkZvbvE2RJcx9-Ob25KUajGCQq7TojyNrT2xVRDvr-f-X0FI1z6Q>
 <xmx:CsVkZhDMwpGrDFKY_W6jK5JXDqG_sN_fv3R4PzzKRkeSGXltc3aMnQ>
 <xmx:CsVkZlbUpIRgfr9v_GYNvofJdhunPrqJwZuv-7f4QcKW3x13FTcDbg>
 <xmx:C8VkZtPfABHOc48Gd61KyYcNsVBHJbnuXwfmz6m7lQXuSvzwm8DQr9Vx>
Feedback-ID: i0e71465a:Fastmail
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Sat,
 8 Jun 2024 16:54:32 -0400 (EDT)
Message-ID: <2e6fec89-272a-4b52-a635-017d0fa52a4e@HIDDEN>
Date: Sat, 8 Jun 2024 23:54:30 +0300
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
References: <CADF+RtgWCLKQGwgdTNWmgesbcwq8iBxChoN8FqMOg95Ai3CYTA@HIDDEN>
 <2c5c8afa-b57e-3156-d21c-5523cacb4d87@HIDDEN>
 <831qf1mgjl.fsf@HIDDEN> <87cyyj9rpp.fsf@HIDDEN>
 <65793.1694843596@localhost>
 <CADF+RtikqxOW0XpwGTWWuGNTWjz3-MWMcO6U65Tta3PJjkRXqw@HIDDEN>
 <m24jbtim2p.fsf@HIDDEN>
 <CADF+RtiOECRmdoFD1qP=gRzS+P3tJqh_WNTnuW-1zPrY9g4VBw@HIDDEN>
 <e5a6ba0d-ca4a-4e21-b44f-12043c59aa6b@HIDDEN>
 <CADF+Rtif9uA3qgcSbxiFMTi01wyn5fSMgdTGu1Crsdb24XexDQ@HIDDEN>
 <jwvh6ff9fqi.fsf-monnier+emacs@HIDDEN>
 <eb177a28-d1b3-481a-afad-97bfb9e8d851@HIDDEN>
 <83ba27b7-4d28-4a3f-b803-4bc49f62986c@HIDDEN>
 <jwv7cfxihg2.fsf-monnier+emacs@HIDDEN>
 <82993b86-0f34-4adb-a392-c74db5176d14@HIDDEN>
 <jwv7cftbp8i.fsf-monnier+emacs@HIDDEN>
 <bdd21a1a-f950-4a86-b576-dc2ac252505b@HIDDEN>
 <jwvv839i58b.fsf-monnier+emacs@HIDDEN> <86v832z5lp.fsf@HIDDEN>
 <CADF+Rtjn52wJ2ikWcVaw8gBzKV9PGqjnSEb7+8tiifi=LzyAbg@HIDDEN>
 <86h6e3d2yu.fsf@HIDDEN>
Content-Language: en-US
From: Dmitry Gutov <dmitry@HIDDEN>
In-Reply-To: <86h6e3d2yu.fsf@HIDDEN>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-Spam-Score: -0.7 (/)
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: -1.7 (-)

On 08/06/2024 15:38, Eli Zaretskii wrote:
>> From: David Fussner<dfussner@HIDDEN>
>> Date: Wed, 5 Jun 2024 10:46:10 +0100
>> Cc: Stefan Monnier<monnier@HIDDEN>,dgutov@HIDDEN,53749 <at> debbugs.gnu.org,
>> 	ikumi@HIDDEN,arash@HIDDEN,stefankangas@HIDDEN,tsdh@HIDDEN
>>
>> Hi Eli, Stefan, and Dmitry,
>>
>> In case the changeset might prove acceptable for version 30, I attach
>> the latest patch, which clears out the code I was using to simplify
>> testing of the AUCTeX modes. I can if requested send a patch for the
>> manual etags tests, also, in case that might prove helpful down the
>> line.
> Thanks, I'm still waiting for answers to my question:
> 
>> On Sat, 25 May 2024 at 12:01, Eli Zaretskii<eliz@HIDDEN>  wrote:
>>> How should we proceed about this bug report?  Is David's last
>>> changeset acceptable or isn't it?

To the extent that I can evaluate the code, it look pretty good.

And it's an additive change, so I don't see blockers to installing it.




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#53749: 29.0.50; [PATCH] Xref backend for TeX buffers
Resent-From: Stefan Kangas <stefankangas@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Sun, 09 Jun 2024 11:20:02 +0000
Resent-Message-ID: <handler.53749.B53749.17179319756414 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 53749
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: pending patch
To: David Fussner <dfussner@HIDDEN>, Eli Zaretskii <eliz@HIDDEN>
Cc: 53749 <at> debbugs.gnu.org, ikumi@HIDDEN, dgutov@HIDDEN, arash@HIDDEN, Stefan Monnier <monnier@HIDDEN>, tsdh@HIDDEN
Received: via spool by 53749-submit <at> debbugs.gnu.org id=B53749.17179319756414
          (code B ref 53749); Sun, 09 Jun 2024 11:20:02 +0000
Received: (at 53749) by debbugs.gnu.org; 9 Jun 2024 11:19:35 +0000
Received: from localhost ([127.0.0.1]:60158 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1sGGaE-0001fM-Lf
	for submit <at> debbugs.gnu.org; Sun, 09 Jun 2024 07:19:35 -0400
Received: from mail-lf1-f45.google.com ([209.85.167.45]:56351)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <stefankangas@HIDDEN>) id 1sGGaC-0001f3-Ma
 for 53749 <at> debbugs.gnu.org; Sun, 09 Jun 2024 07:19:33 -0400
Received: by mail-lf1-f45.google.com with SMTP id
 2adb3069b0e04-52c8973ff29so144585e87.0
 for <53749 <at> debbugs.gnu.org>; Sun, 09 Jun 2024 04:19:16 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=gmail.com; s=20230601; t=1717931890; x=1718536690; darn=debbugs.gnu.org;
 h=cc:to:subject:message-id:date:mime-version:references:in-reply-to
 :from:from:to:cc:subject:date:message-id:reply-to;
 bh=M2Os0Lqq1aA3QPLDA+oHGppvsHCv45DO87ZipYXaLP4=;
 b=MOTXvEjLsit300BKqIgtwOHyHzArZvyAbKyoT09TwwacmMoTiEajLuAXNpFQkUfHfO
 ZanOhO5xtg+mSFPrHItL3OCDf6tYjjdKyauIarbRcslPg9yrbjZbapDcfHrF2+MZevB4
 jM2gHMu/oKCxgMMGFuCH9MZe+ilzIrRExTnmsiktb3dI86WZcRs1K0pCbCeK0dp3w+0i
 0j0AK9o5fVaG21IkF2QFP/XnbjYZitZIeEgO/uaig68VGCHnU3OPQHMdlyUhSrp/Jaai
 sXKoWeOFwC6r5RPPAT/oJyNR0Cl42BNuAVBBM5uMq4SGVphCEpOsPn+fUwBmaqjQC7f3
 PQgA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20230601; t=1717931890; x=1718536690;
 h=cc:to:subject:message-id:date:mime-version:references:in-reply-to
 :from:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
 bh=M2Os0Lqq1aA3QPLDA+oHGppvsHCv45DO87ZipYXaLP4=;
 b=U9KAclgvc9YwFhjXYwgt0W/k69ofj4FE44jOa8ShkaC/lFv3sj5wWOeyQ2tPcTe12U
 3p6Ya3q3yOrdTotxZ8dedroGV/kCFalMfvIk3F7Z9FUGtD1eonhsAXxjoJrQhsvLTAd0
 SpGkmcXAQVLgOhT2C2AO6XAlsyIgMu6H9TPuYh4o521hPOiSn0ZagNnsBZ9mPLcdPV5+
 UJJk3VUFl380LBBURUcm5Rf8PW/Xf/Mj/jeTH7NqCqcDfxED9llI+V+Hp4L6R8JLIsUi
 6LSdNA/J4aqY/ctSbio3UEe7f8D5T7nSm5+SR+GLxvjSq24NseWafB47suM9GqsRMeCa
 qyfg==
X-Forwarded-Encrypted: i=1;
 AJvYcCUv0MvkBVPUMsKtCnj9+fVPrVVQGGmoNzYX8TjWiNjycD+sNzrdFmsSYmAmEcac3amGNUs2NZ7+M6s1/zAkqphXX/5XxiI=
X-Gm-Message-State: AOJu0YxtmSRuHPLUuPzJcP97Ms/bIRYkblF5uw758qvrAVazvFEzqqjS
 qdVLC8NwJpufsjgIGKiQj+I/sWGzmPmpPiX35skHoUpXGK/edAvptaY1KNKLJkuU0jd4polbhLT
 pjiaAS0PVxR6YyCqc6vT+3GkFlB81Awai
X-Google-Smtp-Source: AGHT+IHTPY+Urh+cg1ut5Lpc6xEjy0Jlr5VEyVI33KbwcXaSO6BedrSS3swhAp9+tyaGKgNJePUzBrFfA4M7ci7gVgc=
X-Received: by 2002:a50:f685:0:b0:57c:620c:8f76 with SMTP id
 4fb4d7f45d1cf-57c620c92b9mr2729522a12.26.1717931442727; Sun, 09 Jun 2024
 04:10:42 -0700 (PDT)
Received: from 753933720722 named unknown by gmailapi.google.com with
 HTTPREST; Sun, 9 Jun 2024 04:10:42 -0700
From: Stefan Kangas <stefankangas@HIDDEN>
In-Reply-To: <CADF+Rtjn52wJ2ikWcVaw8gBzKV9PGqjnSEb7+8tiifi=LzyAbg@HIDDEN>
References: <CADF+RtgWCLKQGwgdTNWmgesbcwq8iBxChoN8FqMOg95Ai3CYTA@HIDDEN>
 <CADF+Rti2gSVvfksUVO04ptKQsXrNpwUXHQ_qFjC26D8NNh578A@HIDDEN>
 <2c5c8afa-b57e-3156-d21c-5523cacb4d87@HIDDEN> <831qf1mgjl.fsf@HIDDEN>
 <87cyyj9rpp.fsf@HIDDEN> <65793.1694843596@localhost>
 <CADF+RtikqxOW0XpwGTWWuGNTWjz3-MWMcO6U65Tta3PJjkRXqw@HIDDEN>
 <m24jbtim2p.fsf@HIDDEN>
 <CADF+RtiOECRmdoFD1qP=gRzS+P3tJqh_WNTnuW-1zPrY9g4VBw@HIDDEN>
 <e5a6ba0d-ca4a-4e21-b44f-12043c59aa6b@HIDDEN>
 <CADF+Rtif9uA3qgcSbxiFMTi01wyn5fSMgdTGu1Crsdb24XexDQ@HIDDEN>
 <jwvh6ff9fqi.fsf-monnier+emacs@HIDDEN>
 <eb177a28-d1b3-481a-afad-97bfb9e8d851@HIDDEN>
 <83ba27b7-4d28-4a3f-b803-4bc49f62986c@HIDDEN>
 <jwv7cfxihg2.fsf-monnier+emacs@HIDDEN>
 <82993b86-0f34-4adb-a392-c74db5176d14@HIDDEN>
 <jwv7cftbp8i.fsf-monnier+emacs@HIDDEN>
 <bdd21a1a-f950-4a86-b576-dc2ac252505b@HIDDEN>
 <jwvv839i58b.fsf-monnier+emacs@HIDDEN> <86v832z5lp.fsf@HIDDEN>
 <CADF+Rtjn52wJ2ikWcVaw8gBzKV9PGqjnSEb7+8tiifi=LzyAbg@HIDDEN>
MIME-Version: 1.0
Date: Sun, 9 Jun 2024 04:10:42 -0700
Message-ID: <CADwFkmnUD+CHJ9wm+MBwqYH-xXGC-_WQcxZfPk10bcEs3XuB=A@HIDDEN>
Content-Type: text/plain; charset="UTF-8"
X-Spam-Score: -0.0 (/)
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: -1.0 (-)

David Fussner <dfussner@HIDDEN> writes:

> I can if requested send a patch for the manual etags tests, also, in
> case that might prove helpful down the line.

I believe that such tests would help, yes.  Thanks in advance.




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#53749: 29.0.50; [PATCH] Xref backend for TeX buffers
Resent-From: Stefan Kangas <stefankangas@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Sun, 09 Jun 2024 12:41:03 +0000
Resent-Message-ID: <handler.53749.B53749.171793683531209 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 53749
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: pending patch
To: David Fussner <dfussner@HIDDEN>, Eli Zaretskii <eliz@HIDDEN>
Cc: 53749 <at> debbugs.gnu.org, ikumi@HIDDEN, dgutov@HIDDEN, arash@HIDDEN, Stefan Monnier <monnier@HIDDEN>, tsdh@HIDDEN
Received: via spool by 53749-submit <at> debbugs.gnu.org id=B53749.171793683531209
          (code B ref 53749); Sun, 09 Jun 2024 12:41:03 +0000
Received: (at 53749) by debbugs.gnu.org; 9 Jun 2024 12:40:35 +0000
Received: from localhost ([127.0.0.1]:35327 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1sGHqc-00087C-Ey
	for submit <at> debbugs.gnu.org; Sun, 09 Jun 2024 08:40:35 -0400
Received: from mail-ed1-f48.google.com ([209.85.208.48]:43154)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <stefankangas@HIDDEN>) id 1sGGsH-0005Ob-Er
 for 53749 <at> debbugs.gnu.org; Sun, 09 Jun 2024 07:38:14 -0400
Received: by mail-ed1-f48.google.com with SMTP id
 4fb4d7f45d1cf-57c6d3e6606so1408786a12.0
 for <53749 <at> debbugs.gnu.org>; Sun, 09 Jun 2024 04:37:56 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=gmail.com; s=20230601; t=1717933011; x=1718537811; darn=debbugs.gnu.org;
 h=cc:to:subject:message-id:date:mime-version:references:in-reply-to
 :from:from:to:cc:subject:date:message-id:reply-to;
 bh=lGEanGL/eI+IHlXaBTXXBQ8rgrD/tE6Ym/ePXGV0MoY=;
 b=AVMeHwX1w/eL8DyCVobcjyuOh+quC3n6Ea3WwRLo5J90t0WAtJcE+Uk2W4cTbCBd8V
 A1uzX0a/5U2vAJn/o/Hsqhh11LU3JG+m89SfROSbXzEjy9i/OsXZPUGYtRHaOWmlS7K2
 2XIXeusrWRxQbW80s0NdYo/1rLFhuH0nDvrmfLeje/Lj4E/yIq/GzciDIOrd57jOA5in
 QEsBEIq2xPi0gJdEiRmjMso/LcrWoC5LsW+BYvMlG1HSSWcXK9WPXZHzTuc1lcTefVPJ
 lcgUtOX2QTpFvnbp4MALkFV4w5DmuAGDwGcnEyFSRR3oYxjS842LHXIrZl0ubYMUeECa
 9rVA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20230601; t=1717933011; x=1718537811;
 h=cc:to:subject:message-id:date:mime-version:references:in-reply-to
 :from:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
 bh=lGEanGL/eI+IHlXaBTXXBQ8rgrD/tE6Ym/ePXGV0MoY=;
 b=uch6vWq/BNpc9htQE65zGvITQE1sjpyE6MDrUWMUQWpmLd1aDhgXZPBGKny+AujTYP
 3jjjE82OYlG74PbGF/1xNzD1sBBQ4NW67WCt+cbpBvFcIe3wdnej+br/eOyoxKxNRpuK
 G+3uCtqVQGGxUPtWc5rhZzEHMXAsYpxUZRNxNSd9qtQiTCs9ClwOGqzRKyx10eITiFGX
 u5Ha7S6vCPzYV0a2CC9kitLO23u8llYXyym0F2j1ItsjmApQtiHmynsX8LbkO9YPpJ7x
 GPGuOdZwiAV0YPLHUySnSfvKJpeDKYVcF3lBBB04VZYGzD4h72z7+nFNPf45q+IJr4W5
 K7tg==
X-Forwarded-Encrypted: i=1;
 AJvYcCWBemmNCZx9xLG7owMfHh+k7F76HJqWgTcWH3Kx9Tfkm95qdnbpX2knTcB47bwiYc93zDr1LogMktEXr4AbwgmV4isKLxc=
X-Gm-Message-State: AOJu0YxMtxzIe3eRqLMOx47TkmT4cKE+ZLG4IQp9rlu41IXaek+LVA14
 Zrr7VABcuJsdi9P25oNzYv6+UnTnFHDrrFY2+MEU/zMTezjE9ISJ0BTAPy9ULVYeDPUn+EwGuMG
 vVZuNZdQ2KzZVKgk7gJt3sH32PC8=
X-Google-Smtp-Source: AGHT+IE1ErbOS8Vo+eVOncFmg/XUSUg07iJaCcuM4Kwl8NAaxfByglW8Y/t17TTjm8RjoeW4U/zMUyfEs3Tbn7QTZ8s=
X-Received: by 2002:a17:907:94c3:b0:a6f:1c58:754a with SMTP id
 a640c23a62f3a-a6f1c587594mr57380866b.24.1717933011172; Sun, 09 Jun 2024
 04:36:51 -0700 (PDT)
Received: from 753933720722 named unknown by gmailapi.google.com with
 HTTPREST; Sun, 9 Jun 2024 07:36:50 -0400
From: Stefan Kangas <stefankangas@HIDDEN>
In-Reply-To: <CADF+Rtjn52wJ2ikWcVaw8gBzKV9PGqjnSEb7+8tiifi=LzyAbg@HIDDEN>
References: <CADF+RtgWCLKQGwgdTNWmgesbcwq8iBxChoN8FqMOg95Ai3CYTA@HIDDEN>
 <CADF+Rti2gSVvfksUVO04ptKQsXrNpwUXHQ_qFjC26D8NNh578A@HIDDEN>
 <2c5c8afa-b57e-3156-d21c-5523cacb4d87@HIDDEN> <831qf1mgjl.fsf@HIDDEN>
 <87cyyj9rpp.fsf@HIDDEN> <65793.1694843596@localhost>
 <CADF+RtikqxOW0XpwGTWWuGNTWjz3-MWMcO6U65Tta3PJjkRXqw@HIDDEN>
 <m24jbtim2p.fsf@HIDDEN>
 <CADF+RtiOECRmdoFD1qP=gRzS+P3tJqh_WNTnuW-1zPrY9g4VBw@HIDDEN>
 <e5a6ba0d-ca4a-4e21-b44f-12043c59aa6b@HIDDEN>
 <CADF+Rtif9uA3qgcSbxiFMTi01wyn5fSMgdTGu1Crsdb24XexDQ@HIDDEN>
 <jwvh6ff9fqi.fsf-monnier+emacs@HIDDEN>
 <eb177a28-d1b3-481a-afad-97bfb9e8d851@HIDDEN>
 <83ba27b7-4d28-4a3f-b803-4bc49f62986c@HIDDEN>
 <jwv7cfxihg2.fsf-monnier+emacs@HIDDEN>
 <82993b86-0f34-4adb-a392-c74db5176d14@HIDDEN>
 <jwv7cftbp8i.fsf-monnier+emacs@HIDDEN>
 <bdd21a1a-f950-4a86-b576-dc2ac252505b@HIDDEN>
 <jwvv839i58b.fsf-monnier+emacs@HIDDEN> <86v832z5lp.fsf@HIDDEN>
 <CADF+Rtjn52wJ2ikWcVaw8gBzKV9PGqjnSEb7+8tiifi=LzyAbg@HIDDEN>
MIME-Version: 1.0
Date: Sun, 9 Jun 2024 07:36:50 -0400
Message-ID: <CADwFkmkY_gRVR=x-N=9Jb-1jt-y_598BfvG4PQD5g18vZhH+7A@HIDDEN>
Content-Type: text/plain; charset="UTF-8"
X-Spam-Score: -0.0 (/)
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: -1.0 (-)

David Fussner <dfussner@HIDDEN> writes:

> In case the changeset might prove acceptable for version 30, I attach
> the latest patch, which clears out the code I was using to simplify
> testing of the AUCTeX modes.

I have some comments and questions:

- Does this need a NEWS entry?

- I see the brief text you added to tex-mode.el explaining more about
  expl3, but perhaps there should be a clear explanation in the commit
  message too.

- [Optional: In most places you use spaces for indentation, but here and
  there, there is a single tab followed by one or more spaces.  Consider
  using only spaces.]

> From: David Fussner <dfussner@HIDDEN>
> Date: Wed, 5 Jun 2024 10:26:18 +0100
> Subject: [PATCH] Provide a modified xref backend for TeX buffers

[Don't forget to add the bug number to the ChangeLog.]

> diff --git a/doc/emacs/maintaining.texi b/doc/emacs/maintaining.texi
> index 579098c81b1..a064103aa25 100644
> --- a/doc/emacs/maintaining.texi
> +++ b/doc/emacs/maintaining.texi
> @@ -2529,6 +2529,15 @@ Identifier Search
>  referenced.  The XREF mode commands are available in this buffer, see
>  @ref{Xref Commands}.
>
> +When invoked in a buffer whose major mode uses the @code{etags} backend,
> +@kbd{M-?} searches files and buffers whose major mode matches that of
> +the original buffer.  It guesses that mode from file extensions, so if
> +@kbd{M-?} seems to be skipping relevant buffers or files, try
> +customizing either the variable @code{semantic-symref-filepattern-alist}

Why does this speak of Semantic?  Does `xref-find-references` depend on
it somehow?

> diff --git a/lib-src/etags.c b/lib-src/etags.c
> index 03bc55de03d..6bc734e7df0 100644
> --- a/lib-src/etags.c
> +++ b/lib-src/etags.c
> @@ -5740,11 +5756,25 @@ Scheme_functions (FILE *inf)
>  static linebuffer *TEX_toktab = NULL; /* Table with tag tokens */
>
>  /* Default set of control sequences to put into TEX_toktab.
> -   The value of environment var TEXTAGS is prepended to this.  */
> +   The value of environment var TEXTAGS is prepended to this.
> +   (2024) Add variants of '\def', some additional LaTeX (and
> +   former xparse) commands, common variants from the
> +   'etoolbox' package, and the main expl3 commands. */

Do we really need this comment?  Isn't the git log enough?

> diff --git a/lisp/textmodes/tex-mode.el b/lisp/textmodes/tex-mode.el
> index 97c950267c6..fbf08840699 100644
> --- a/lisp/textmodes/tex-mode.el
> +++ b/lisp/textmodes/tex-mode.el
> @@ -636,6 +636,14 @@ tex-font-lock-keywords-2
>  	      3 '(tex-font-lock-append-prop 'bold) 'append)))))
>     "Gaudy expressions to highlight in TeX modes.")
>
> +(defvar-local tex-expl-region-list nil
> +  "List of region boundaries where expl3 syntax is active.
> +It will be nil in buffers where expl3 syntax is always active, e.g.,

Please prefer "for example" to "e.g.".

> +(defvar-local tex-expl-buffer-p nil
> +  "Non-nil in buffers where expl3 syntax is always active.")

What does "always active" mean as compared to just "active"?
Does this need to be elaborated?

> +;; Populate `semantic-symref-filepattern-alist' for the in-tree modes;
> +;; AUCTeX is doing the same for its modes.
> +(with-eval-after-load 'semantic/symref/grep
> +  (defvar semantic-symref-filepattern-alist)
> +  (push '(latex-mode "*.[tT]e[xX]" "*.ltx" "*.sty" "*.cl[so]"
> +                     "*.bbl" "*.drv" "*.hva")
> +        semantic-symref-filepattern-alist)
> +  (push '(plain-tex-mode "*.[tT]e[xX]" "*.ins")
> +        semantic-symref-filepattern-alist)
> +  (push '(doctex-mode "*.dtx") semantic-symref-filepattern-alist))

Doesn't this stuff rather belong in semantic itself?

> +(cl-defmethod xref-backend-references ((_backend (eql 'tex-etags)) identifier)
> +  "Find references of IDENTIFIER in TeX buffers and files."
> +  (require 'semantic/symref/grep)

Are we sure that we want to make this depend on semantic?

Is there any way around that?





Last modified: Sun, 9 Jun 2024 12:45:02 UTC

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