From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Mattias =?UTF-8?Q?Engdeg=C3=A5rd?= Newsgroups: gmane.emacs.bugs Subject: bug#38797: 27.0.50; Feature request: provide the opposite of xref-pop-marker-stack Date: Wed, 20 Oct 2021 21:12:32 +0200 Message-ID: <06080F99-49F3-4936-A39A-D135F5ECCEE2@acm.org> References: Mime-Version: 1.0 (Mac OS X Mail 12.4 \(3445.104.21\)) Content-Type: multipart/mixed; boundary="Apple-Mail=_AB687862-6341-40BE-BDC0-5C2554BBC335" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="2244"; mail-complaints-to="usenet@ciao.gmane.io" Cc: yyoncho , 38797@debbugs.gnu.org To: Dmitry Gutov Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Wed Oct 20 21:34:47 2021 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1mdHMM-0000Nz-On for geb-bug-gnu-emacs@m.gmane-mx.org; Wed, 20 Oct 2021 21:34:47 +0200 Original-Received: from localhost ([::1]:50632 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mdHML-0004Xm-Gw for geb-bug-gnu-emacs@m.gmane-mx.org; Wed, 20 Oct 2021 15:34:45 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:33994) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mdH1L-0007B7-0d for bug-gnu-emacs@gnu.org; Wed, 20 Oct 2021 15:13:05 -0400 Original-Received: from debbugs.gnu.org ([209.51.188.43]:43942) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1mdH1K-0007zq-LQ for bug-gnu-emacs@gnu.org; Wed, 20 Oct 2021 15:13:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1mdH1K-0006mu-AM for bug-gnu-emacs@gnu.org; Wed, 20 Oct 2021 15:13:02 -0400 X-Loop: help-debbugs@gnu.org In-Reply-To: Resent-From: Mattias =?UTF-8?Q?Engdeg=C3=A5rd?= Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Wed, 20 Oct 2021 19:13:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 38797 X-GNU-PR-Package: emacs Original-Received: via spool by 38797-submit@debbugs.gnu.org id=B38797.163475716126061 (code B ref 38797); Wed, 20 Oct 2021 19:13:02 +0000 Original-Received: (at 38797) by debbugs.gnu.org; 20 Oct 2021 19:12:41 +0000 Original-Received: from localhost ([127.0.0.1]:55488 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mdH0z-0006mG-1v for submit@debbugs.gnu.org; Wed, 20 Oct 2021 15:12:41 -0400 Original-Received: from mail208c50.megamailservers.eu ([91.136.10.218]:43328 helo=mail194c50.megamailservers.eu) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mdH0w-0006m5-3R for 38797@debbugs.gnu.org; Wed, 20 Oct 2021 15:12:39 -0400 X-Authenticated-User: mattiase@bredband.net DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=megamailservers.eu; s=maildub; t=1634757155; bh=0lhQSRnmVAEtlmMc4z/rlPXwMhLwMrN9Kcw+QagzAFo=; h=From:Subject:Date:Cc:To:From; b=lIQVECehUYdY/iob4dLD0y880lJE4SyjTCHs7lXrondrCXTt5ie+EyTKgcGGhVAu5 jjZyy1fa6deW116lNHTySezIQ5LJE01AePucIrK93xI8Rpd+uCEbLwKCkPsQnn7ob6 4DE0+7AGR+7RwRVHJvGY0H7WiS1ou7rluQmC1qAU= Feedback-ID: mattiase@acm.or Original-Received: from stanniol.lan (c-b952e353.032-75-73746f71.bbcust.telenor.se [83.227.82.185]) (authenticated bits=0) by mail194c50.megamailservers.eu (8.14.9/8.13.1) with ESMTP id 19KJCX7B028496; Wed, 20 Oct 2021 19:12:34 +0000 X-Mailer: Apple Mail (2.3445.104.21) X-CTCH-RefID: str=0001.0A742F24.61706A23.006B, ss=1, re=0.000, recu=0.000, reip=0.000, cl=1, cld=1, fgs=0 X-CTCH-VOD: Unknown X-CTCH-Spam: Unknown X-CTCH-Score: 0.000 X-CTCH-Flags: 0 X-CTCH-ScoreCust: 0.000 X-CSC: 0 X-CHA: v=2.4 cv=WpBIjfTv c=1 sm=1 tr=0 ts=61706a23 a=von4qPfY+hyqc0zmWf0tYQ==:117 a=von4qPfY+hyqc0zmWf0tYQ==:17 a=M51BFTxLslgA:10 a=Nx6CdJeKhclv6lrDXlQA:9 a=CjuIK1q_8ugA:10 a=IjauANIYuRhfNtMKzY0A:9 a=B2y7HmGcmWMA:10 X-Origin-Country: SE X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.io gmane.emacs.bugs:217708 Archived-At: --Apple-Mail=_AB687862-6341-40BE-BDC0-5C2554BBC335 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=us-ascii As usual my message was lost. Here's the patch at least. --Apple-Mail=_AB687862-6341-40BE-BDC0-5C2554BBC335 Content-Disposition: attachment; filename=0001-Add-xref-forward-history-bug-38797.patch Content-Type: application/octet-stream; x-unix-mode=0644; name="0001-Add-xref-forward-history-bug-38797.patch" Content-Transfer-Encoding: quoted-printable =46rom=209191300d574a1a7d4adc3eb86f0381a6e836c887=20Mon=20Sep=2017=20= 00:00:00=202001=0AFrom:=20=3D?UTF-8?q?Mattias=3D20Engdeg=3DC3=3DA5rd?=3D=20= =0ADate:=20Tue,=2019=20Oct=202021=2013:26:19=20+0200=0A= Subject:=20[PATCH]=20Add=20xref=20forward=20history=20(bug#38797)=0A=0A= Make=20it=20possible=20to=20go=20forward=20as=20well=20as=20back=20in=20= the=20Xref=20history.=0AThe=20new=20`xref-forward-history`=20is=20bound=20= to=20`C-M-,`.=0A=0A*=20lisp/progmodes/etags.el=20= (find-tag-marker-ring-length):=20Update.=0A(tags-location-ring-length):=20= New.=0A(find-tag-marker-ring):=20Remove.=0A(tags-location-ring,=20= tags-reset-tags-tables):=0AUse=20`tags-location-ring-length`=20instead=20= of=20`xref-marker-ring-length`.=0A*=20lisp/progmodes/xref.el=20= (xref-marker-ring-length,=20xref-marker-ring)=0A= (xref-set-marker-ring-length):=0AMake=20obsolete.=0A(xref--history,=20= xref-forward-history):=20New.=0A(xref-push-marker-stack,=20= xref-pop-marker-stack)=0A(xref-clear-marker-stack,=20= xref-marker-stack-empty-p):=0AUse=20`xref--history`.=0A*=20= doc/emacs/maintaining.texi=20(Looking=20Up=20Identifiers):=20Document.=0A= *=20etc/NEWS:=20Announce.=0A---=0A=20doc/emacs/maintaining.texi=20|=2013=20= +++++--=0A=20etc/NEWS=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20|=20=205=20+++=0A=20lisp/progmodes/etags.el=20=20=20=20|=2011=20= +++---=0A=20lisp/progmodes/xref.el=20=20=20=20=20|=2078=20= ++++++++++++++++++++++----------------=0A=204=20files=20changed,=2066=20= insertions(+),=2041=20deletions(-)=0A=0Adiff=20--git=20= a/doc/emacs/maintaining.texi=20b/doc/emacs/maintaining.texi=0Aindex=20= 5b66031b8a..46b4d8181f=20100644=0A---=20a/doc/emacs/maintaining.texi=0A= +++=20b/doc/emacs/maintaining.texi=0A@@=20-2140,6=20+2140,9=20@@=20= Looking=20Up=20Identifiers=0A=20@item=20M-,=0A=20Go=20back=20to=20where=20= you=20previously=20invoked=20@kbd{M-.}=20and=20friends=0A=20= (@code{xref-pop-marker-stack}).=0A+@item=20C-M-,=0A+Go=20forward=20to=20= where=20you=20previously=20invoked=20@kbd{M-,}=0A= +(@code{xref-forward-history}).=0A=20@item=20M-x=20xref-etags-mode=0A=20= Switch=20@code{xref}=20to=20use=20the=20@code{etags}=20backend.=0A=20= @end=20table=0A@@=20-2205,14=20+2208,16=20@@=20Looking=20Up=20= Identifiers=0A=20=0A=20@kindex=20M-,=0A=20@findex=20= xref-pop-marker-stack=0A-@vindex=20xref-marker-ring-length=0A=20=20=20To=20= go=20back=20to=20places=20@emph{from=20where}=20you've=20displayed=20the=20= definition,=0A=20use=20@kbd{M-,}=20(@code{xref-pop-marker-stack}).=20=20= It=20jumps=20back=20to=20the=0A=20point=20of=20the=20last=20invocation=20= of=20@kbd{M-.}.=20=20Thus=20you=20can=20find=20and=0A=20examine=20the=20= definition=20of=20something=20with=20@kbd{M-.}=20and=20then=20return=20= to=0A-where=20you=20were=20with=20@kbd{M-,}.=20=20@kbd{M-,}=20allows=20= you=20to=20retrace=20your=0A-steps=20to=20a=20depth=20determined=20by=20= the=20variable=0A-@code{xref-marker-ring-length},=20which=20defaults=20= to=2016.=0A+where=20you=20were=20with=20@kbd{M-,}.=0A+=0A+@kindex=20= C-M-,=0A+@findex=20xref-forward-history=0A+=20=20Go=20forward=20to=20a=20= place=20from=20where=20you=20previously=20went=20back=20using=20= @kbd{M-,}.=0A+This=20is=20useful=20if=20you=20find=20that=20you=20went=20= back=20too=20far.=0A=20=0A=20@findex=20xref-etags-mode=0A=20=20=20Some=20= major=20modes=20install=20@code{xref}=20support=20facilities=20that=20= might=0Adiff=20--git=20a/etc/NEWS=20b/etc/NEWS=0Aindex=20= 9f0a4ac4ce..21f9a0f75f=20100644=0A---=20a/etc/NEWS=0A+++=20b/etc/NEWS=0A= @@=20-153,6=20+153,11=20@@=20it=20with=20new=20= 'term-{faint,italic,slow-blink,fast-blink}'=20faces.=0A=20***=20= 'project-find-file'=20and=20'project-or-external-find-file'=20now=20= accept=0A=20a=20prefix=20argument=20which=20is=20interpreted=20to=20mean=20= "include=20all=20files".=0A=20=0A++++=0A+***=20New=20command=20= 'xref-forward-history'.=0A+It=20is=20bound=20to=20'C-M-,'=20and=20jumps=20= to=20the=20location=20where=20'xref-pop-marker-stack'=0A+was=20invoked=20= previously.=0A+=0A=20**=20File=20notifications=0A=20=0A=20+++=0Adiff=20= --git=20a/lisp/progmodes/etags.el=20b/lisp/progmodes/etags.el=0Aindex=20= d2ce813daa..518c4ec81b=20100644=0A---=20a/lisp/progmodes/etags.el=0A+++=20= b/lisp/progmodes/etags.el=0A@@=20-145,7=20+145,9=20@@=20= find-tag-default-function=0A=20=20=20:type=20'(choice=20(const=20nil)=20= function))=0A=20=0A=20(define-obsolete-variable-alias=20= 'find-tag-marker-ring-length=0A-=20=20'xref-marker-ring-length=20"25.1")=0A= +=20=20'tags-location-ring-length=20"29.1")=0A+=0A+(defvar=20= tags-location-ring-length=2016)=0A=20=0A=20(defcustom=20tags-tag-face=20= 'default=0A=20=20=20"Face=20for=20tags=20in=20the=20output=20of=20= `tags-apropos'."=0A@@=20-180,7=20+182,6=20@@=20= tags-apropos-additional-actions=0A=20=09=09=20=20=20=20=20=20=20(sexp=20= :tag=20"Tags=20to=20search")))=0A=20=20=20:version=20"21.1")=0A=20=0A= -(defvaralias=20'find-tag-marker-ring=20'xref--marker-ring)=0A=20= (make-obsolete-variable=0A=20=20'find-tag-marker-ring=0A=20=20"use=20= `xref-push-marker-stack'=20or=20`xref-pop-marker-stack'=20instead."=0A@@=20= -191,7=20+192,7=20@@=20default-tags-table-function=0A=20This=20function=20= receives=20no=20arguments=20and=20should=20return=20the=20default=0A=20= tags=20table=20file=20to=20use=20for=20the=20current=20buffer.")=0A=20=0A= -(defvar=20tags-location-ring=20(make-ring=20xref-marker-ring-length)=0A= +(defvar=20tags-location-ring=20(make-ring=20tags-location-ring-length)=0A= =20=20=20"Ring=20of=20markers=20which=20are=20locations=20visited=20by=20= \\[find-tag].=0A=20Pop=20back=20to=20the=20last=20location=20with=20= \\[negative-argument]=20\\[find-tag].")=0A=20=0C=0A@@=20-731,13=20= +732,13=20@@=20tags-reset-tags-tables=0A=20=20=20(interactive)=0A=20=20=20= ;;=20Clear=20out=20the=20markers=20we=20are=20throwing=20away.=0A=20=20=20= (let=20((i=200))=0A-=20=20=20=20(while=20(<=20i=20= xref-marker-ring-length)=0A+=20=20=20=20(while=20(<=20i=20= tags-location-ring-length)=0A=20=20=20=20=20=20=20(if=20(aref=20(cddr=20= tags-location-ring)=20i)=0A=20=09=20=20(set-marker=20(aref=20(cddr=20= tags-location-ring)=20i)=20nil))=0A=20=20=20=20=20=20=20(setq=20i=20(1+=20= i))))=0A=20=20=20(xref-clear-marker-stack)=0A=20=20=20(setq=20= tags-file-name=20nil=0A-=09tags-location-ring=20(make-ring=20= xref-marker-ring-length)=0A+=09tags-location-ring=20(make-ring=20= tags-location-ring-length)=0A=20=09tags-table-list=20nil=0A=20=09= tags-table-computed-list=20nil=0A=20=09tags-table-computed-list-for=20= nil=0Adiff=20--git=20a/lisp/progmodes/xref.el=20b/lisp/progmodes/xref.el=0A= index=2052a4e0c543..502cab022c=20100644=0A---=20a/lisp/progmodes/xref.el=0A= +++=20b/lisp/progmodes/xref.el=0A@@=20-334,15=20+334,7=20@@=20= xref--search-property=0A=20=20=20=20=20=20=20=20=20=20=20(t=20(goto-char=20= start)=20nil))))=0A=20=0A=20=0C=0A-;;;=20Marker=20stack=20=20(M-.=20= pushes,=20M-,=20pops)=0A-=0A-(defcustom=20xref-marker-ring-length=2016=0A= -=20=20"Length=20of=20the=20xref=20marker=20ring.=0A-If=20this=20= variable=20is=20not=20set=20through=20Customize,=20you=20must=20call=0A= -`xref-set-marker-ring-length'=20for=20changes=20to=20take=20effect."=0A= -=20=20:type=20'integer=0A-=20=20:initialize=20= #'custom-initialize-default=0A-=20=20:set=20= #'xref-set-marker-ring-length)=0A+(make-obsolete-variable=20= 'xref-marker-ring-length=20nil=20"29.1")=0A=20=0A=20(defcustom=20= xref-prompt-for-identifier=20'(not=20xref-find-definitions=0A=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= xref-find-definitions-other-window=0A@@=20-413,29=20+405,47=20@@=20= xref-auto-jump-to-first-xref=0A=20=20=20:version=20"28.1"=0A=20=20=20= :package-version=20'(xref=20.=20"1.2.0"))=0A=20=0A-(defvar=20= xref--marker-ring=20(make-ring=20xref-marker-ring-length)=0A-=20=20"Ring=20= of=20markers=20to=20implement=20the=20marker=20stack.")=0A+(defvar=20= xref--history=20(cons=20nil=20nil)=0A+=20=20"(HISTORY-STACK=20.=20= FUTURE-STACK)=20of=20markers=20to=20visited=20Xref=20locations.")=0A+=0A= +(make-obsolete-variable=20'xref-marker-ring=20nil=20"29.1")=0A=20=0A= -(defun=20xref-set-marker-ring-length=20(var=20val)=0A-=20=20"Set=20= `xref-marker-ring-length'.=0A-VAR=20is=20the=20symbol=20= `xref-marker-ring-length'=20and=20VAL=20is=20the=20new=0A-value."=0A-=20=20= (set-default=20var=20val)=0A-=20=20(if=20(ring-p=20xref--marker-ring)=0A= -=20=20=20=20=20=20(ring-resize=20xref--marker-ring=20val)))=0A+(defun=20= xref-set-marker-ring-length=20(_var=20_val)=0A+=20=20(declare=20= (obsolete=20nil=20"29.1"))=0A+=20=20nil)=0A=20=0A=20(defun=20= xref-push-marker-stack=20(&optional=20m)=0A-=20=20"Add=20point=20M=20= (defaults=20to=20`point-marker')=20to=20the=20marker=20stack."=0A-=20=20= (ring-insert=20xref--marker-ring=20(or=20m=20(point-marker))))=0A+=20=20= "Add=20point=20M=20(defaults=20to=20`point-marker')=20to=20the=20marker=20= stack.=0A+The=20future=20stack=20is=20erased."=0A+=20=20(push=20(or=20m=20= (point-marker))=20(car=20xref--history))=0A+=20=20(dolist=20(mk=20(cdr=20= xref--history))=0A+=20=20=20=20(set-marker=20mk=20nil=20nil))=0A+=20=20= (setcdr=20xref--history=20nil))=0A=20=0A=20;;;###autoload=0A=20(defun=20= xref-pop-marker-stack=20()=0A-=20=20"Pop=20back=20to=20where=20= \\[xref-find-definitions]=20was=20last=20invoked."=0A+=20=20"Go=20back=20= to=20the=20previous=20position=20in=20xref=20history.=0A+To=20undo,=20= use=20\\[xref-forward-history]."=0A+=20=20(interactive)=0A+=20=20(if=20= (null=20(car=20xref--history))=0A+=20=20=20=20=20=20(user-error=20"At=20= start=20of=20xref=20history")=0A+=20=20=20=20(let=20((marker=20(pop=20= (car=20xref--history))))=0A+=20=20=20=20=20=20(push=20(point-marker)=20= (cdr=20xref--history))=0A+=20=20=20=20=20=20(switch-to-buffer=20(or=20= (marker-buffer=20marker)=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20(user-error=20"The=20marked=20= buffer=20has=20been=20deleted")))=0A+=20=20=20=20=20=20(goto-char=20= (marker-position=20marker))=0A+=20=20=20=20=20=20(set-marker=20marker=20= nil=20nil)=0A+=20=20=20=20=20=20(run-hooks=20'xref-after-return-hook))))=0A= +;;=20FIXME:=20rename=20to=20`xref-back-history'.=0A+=0A+;;;###autoload=0A= +(defun=20xref-forward-history=20()=0A+=20=20"Got=20to=20the=20point=20= where=20a=20previous=20\\[xref-pop-marker-stack]=20was=20invoked."=0A=20=20= =20(interactive)=0A-=20=20(let=20((ring=20xref--marker-ring))=0A-=20=20=20= =20(when=20(ring-empty-p=20ring)=0A-=20=20=20=20=20=20(user-error=20= "Marker=20stack=20is=20empty"))=0A-=20=20=20=20(let=20((marker=20= (ring-remove=20ring=200)))=0A+=20=20(if=20(null=20(cdr=20xref--history))=0A= +=20=20=20=20=20=20(user-error=20"At=20end=20of=20xref=20history")=0A+=20= =20=20=20(let=20((marker=20(pop=20(cdr=20xref--history))))=0A+=20=20=20=20= =20=20(push=20(point-marker)=20(car=20xref--history))=0A=20=20=20=20=20=20= =20(switch-to-buffer=20(or=20(marker-buffer=20marker)=0A=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= (user-error=20"The=20marked=20buffer=20has=20been=20deleted")))=0A=20=20=20= =20=20=20=20(goto-char=20(marker-position=20marker))=0A@@=20-458,16=20= +468,19=20@@=20xref-pulse-momentarily=0A=20=0A=20;;=20etags.el=20needs=20= this=0A=20(defun=20xref-clear-marker-stack=20()=0A-=20=20"Discard=20all=20= markers=20from=20the=20marker=20stack."=0A-=20=20(let=20((ring=20= xref--marker-ring))=0A-=20=20=20=20(while=20(not=20(ring-empty-p=20= ring))=0A-=20=20=20=20=20=20(let=20((marker=20(ring-remove=20ring)))=0A-=20= =20=20=20=20=20=20=20(set-marker=20marker=20nil=20nil)))))=0A+=20=20= "Discard=20all=20markers=20from=20the=20xref=20history."=0A+=20=20= (dolist=20(l=20(list=20(car=20xref--history)=20(cdr=20xref--history)))=0A= +=20=20=20=20(dolist=20(m=20l)=0A+=20=20=20=20=20=20(set-marker=20m=20= nil=20nil)))=0A+=20=20(setq=20xref--history=20(cons=20nil=20nil))=0A+=20=20= nil)=0A=20=0A=20;;;###autoload=0A=20(defun=20xref-marker-stack-empty-p=20= ()=0A-=20=20"Return=20t=20if=20the=20marker=20stack=20is=20empty;=20nil=20= otherwise."=0A-=20=20(ring-empty-p=20xref--marker-ring))=0A+=20=20= "Whether=20the=20xref=20back-history=20is=20empty."=0A+=20=20(null=20= (car=20xref--history)))=0A+;;=20FIXME:=20rename=20this=20to=20= `xref--back-history-empty-p'=20and=20add=20the=0A+;;=20corresponding=20= forward=20history=20function.=0A=20=0A=20=0C=0A=20=0A@@=20-1487,6=20= +1500,7=20@@=20xref-apropos-regexp=0A=20;;;###autoload=20(define-key=20= esc-map=20","=20#'xref-pop-marker-stack)=0A=20;;;###autoload=20= (define-key=20esc-map=20"?"=20#'xref-find-references)=0A=20= ;;;###autoload=20(define-key=20esc-map=20[?\C-.]=20#'xref-find-apropos)=0A= +;;;###autoload=20(define-key=20esc-map=20[?\C-,]=20= #'xref-forward-history)=0A=20;;;###autoload=20(define-key=20ctl-x-4-map=20= "."=20#'xref-find-definitions-other-window)=0A=20;;;###autoload=20= (define-key=20ctl-x-5-map=20"."=20#'xref-find-definitions-other-frame)=0A= =20=0A--=20=0A2.21.1=20(Apple=20Git-122.3)=0A=0A= --Apple-Mail=_AB687862-6341-40BE-BDC0-5C2554BBC335--