GNU bug report logs - #39181
27.0.50; [PATCH] Allow users to store & restore gdb-mi layout

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

Package: emacs; Reported by: Yuan Fu <casouri@HIDDEN>; Keywords: patch; dated Sat, 18 Jan 2020 20:58:02 UTC; Maintainer for emacs is bug-gnu-emacs@HIDDEN.

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


Received: (at submit) by debbugs.gnu.org; 18 Jan 2020 20:57:42 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Jan 18 15:57:42 2020
Received: from localhost ([127.0.0.1]:42293 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1isvA5-0007uc-Nf
	for submit <at> debbugs.gnu.org; Sat, 18 Jan 2020 15:57:42 -0500
Received: from lists.gnu.org ([209.51.188.17]:44260)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <casouri@HIDDEN>) id 1isvA4-0007uU-1L
 for submit <at> debbugs.gnu.org; Sat, 18 Jan 2020 15:57:40 -0500
Received: from eggs.gnu.org ([2001:470:142:3::10]:58678)
 by lists.gnu.org with esmtp (Exim 4.90_1)
 (envelope-from <casouri@HIDDEN>) id 1isvA1-0007Iz-Sh
 for bug-gnu-emacs@HIDDEN; Sat, 18 Jan 2020 15:57:39 -0500
X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org
X-Spam-Level: 
X-Spam-Status: No, score=0.8 required=5.0 tests=BAYES_50,FREEMAIL_FROM,
 URIBL_BLOCKED autolearn=disabled version=3.3.2
Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
 (envelope-from <casouri@HIDDEN>) id 1isv9z-0001ZT-Q2
 for bug-gnu-emacs@HIDDEN; Sat, 18 Jan 2020 15:57:37 -0500
Received: from mail-qt1-x82d.google.com ([2607:f8b0:4864:20::82d]:33805)
 by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16)
 (Exim 4.71) (envelope-from <casouri@HIDDEN>) id 1isv9z-0001Z6-Cd
 for bug-gnu-emacs@HIDDEN; Sat, 18 Jan 2020 15:57:35 -0500
Received: by mail-qt1-x82d.google.com with SMTP id 5so24686131qtz.1
 for <bug-gnu-emacs@HIDDEN>; Sat, 18 Jan 2020 12:57:35 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;
 h=from:mime-version:subject:message-id:date:to;
 bh=Zg6/XbgLkKraz85xrOhWGZzAywZpoVTrm56NYZM48sU=;
 b=gMubT6zRtrh2a7N5jw6VSUo2ovDwDk+iMPijkkSTWVtkK3r70c1MBS41l+OyUfr19A
 BFwVOhLS7+My4sOvLIrg47FtYILtaDf6KK/sboBsy/Kkn1rkcsG9shl4ZEFDTc/ANw7x
 fV6UCzV/dulC5UJgUvnu2W/05Wp8DnL3EuUZX7bis0Pe0rj+n2J+pHvgQtOfFZ1kr28N
 VZrz8fe+ttfj+Ujhav/qqB2M/X0hhbpF4abhO1QTrN2rGO/OzuYXCrhk5574WoymYyBk
 CadYtzMtLA7/WXcuAZBJ6oFLXrXC6YnDKvexBs3kB1lJuzWq6ArFCGBxU9f1m77icrqh
 o+/w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:from:mime-version:subject:message-id:date:to;
 bh=Zg6/XbgLkKraz85xrOhWGZzAywZpoVTrm56NYZM48sU=;
 b=LKiAKFYF4jGT5Hw4Gad9jKJUIysoEfQKzZqwO3pP06ot1e86QcVmnwM6bNLEe90MFe
 qYHmMKfP8PsyR/NUPL0//DGN2xKVHp88PE+C89vc8WV/Z8xFs+yBXLqJQsHEwypFgOq5
 Jy8eLjWO7Z78v8GEZcVdDfwEbFeWKZ5prTBvmi63vdpcNfCzsBEspJg6UlgImOMgnn+q
 ofwKpjhLnosxAR9BcEtoNmV7gFkDTtVhusDBSwNN7lhSrRkcydN2QXNxsyVA8gN+mZiv
 h+nVrVBOuP98itzDrGVzErEm0d7EnhLb15yANpDLCKBIIhW8B0YD2XnfZdKgt9VwOnDm
 MzLQ==
X-Gm-Message-State: APjAAAXX9ZZvQY6K4jmVUZBRIa+eagp1/KP5dSuUuyUphwJ/XC3ghD8n
 mueqRn2OVLPDOPx77Um0fs0izlkKjLfrjk00
X-Google-Smtp-Source: APXvYqwXCJEnf4Yol7fgdjWWtZRi9+KAGNWUNGamW064sRj0a9XzAiV51gQs6eNnz5WMT9TTfZfHvw==
X-Received: by 2002:ac8:71cf:: with SMTP id i15mr13728900qtp.383.1579381054344; 
 Sat, 18 Jan 2020 12:57:34 -0800 (PST)
Received: from [192.168.1.5] (c-174-60-229-153.hsd1.pa.comcast.net.
 [174.60.229.153])
 by smtp.gmail.com with ESMTPSA id d5sm13813257qke.130.2020.01.18.12.57.33
 for <bug-gnu-emacs@HIDDEN>
 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
 Sat, 18 Jan 2020 12:57:33 -0800 (PST)
From: Yuan Fu <casouri@HIDDEN>
Content-Type: multipart/mixed;
 boundary="Apple-Mail=_D6E2388E-299D-4A04-B073-051589D1C5C9"
Mime-Version: 1.0 (Mac OS X Mail 13.0 \(3608.40.2.2.4\))
Subject: 27.0.50; [PATCH] Allow users to store & restore gdb-mi layout
Message-Id: <55EA8238-880A-420D-A880-CD33B7E1DA85@HIDDEN>
Date: Sat, 18 Jan 2020 15:57:32 -0500
To: Bug Report Emacs <bug-gnu-emacs@HIDDEN>
X-Mailer: Apple Mail (2.3608.40.2.2.4)
X-detected-operating-system: by eggs.gnu.org: Genre and OS details not
 recognized.
X-Received-From: 2607:f8b0:4864:20::82d
X-Spam-Score: -1.3 (-)
X-Debbugs-Envelope-To: submit
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -2.3 (--)


--Apple-Mail=_D6E2388E-299D-4A04-B073-051589D1C5C9
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=us-ascii

Right now if a user wants to use gdb with many windows, the only layout =
option is the default 6-window layout. This patch  allows a user to save =
her own layout, and use this layout in gdb-mi sessions. I also included =
my layout (`default-rearrange`) Maybe we can even ship with some default =
layouts that a user can choose from?


--Apple-Mail=_D6E2388E-299D-4A04-B073-051589D1C5C9
Content-Disposition: inline;
	filename=default-rearrange.png
Content-Type: image/png;
	name="default-rearrange.png"
Content-Transfer-Encoding: base64

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
--Apple-Mail=_D6E2388E-299D-4A04-B073-051589D1C5C9
Content-Transfer-Encoding: 7bit
Content-Type: text/plain;
	charset=us-ascii




--Apple-Mail=_D6E2388E-299D-4A04-B073-051589D1C5C9
Content-Disposition: attachment;
	filename=store-window-new.patch
Content-Type: application/octet-stream;
	x-unix-mode=0700;
	name="store-window-new.patch"
Content-Transfer-Encoding: quoted-printable

=46rom=206db5201e418bc15ff51a170124a84182093c64db=20Mon=20Sep=2017=20=
00:00:00=202001=0AFrom:=20Yuan=20Fu=20<casouri@HIDDEN>=0ADate:=20Thu,=20=
17=20Oct=202019=2017:35:48=20-0400=0ASubject:=20[PATCH=201/3]=20Add=20=
with-selected-window-undedicated=0A=0A*=20lisp/window.el=20=
(with-selected-window-undedicated):=20new=0A---=0A=20lisp/window.el=20|=20=
13=20+++++++++++++=0A=201=20file=20changed,=2013=20insertions(+)=0A=0A=
diff=20--git=20a/lisp/window.el=20b/lisp/window.el=0Aindex=20=
433486385d..98b8b21f8a=20100644=0A---=20a/lisp/window.el=0A+++=20=
b/lisp/window.el=0A@@=20-278,6=20+278,19=20@@=20=
with-displayed-buffer-window=0A=20=09=20=20=20=20=20(funcall=20=
,vquit-function=20,window=20,value)=0A=20=09=20=20=20,value)))))=0A=20=0A=
+(defmacro=20with-selected-window-undedicated=20(&rest=20body)=0A+=20=20=
"Run=20BODY=20in=20the=20selected=20window=20temporarily=20undedicated."=0A=
+=20=20(let=20((window-dedicated-sym=20(gensym)))=0A+=20=20=20=20`(let=20=
((,window-dedicated-sym=20(window-dedicated-p)))=0A+=20=20=20=20=20=20=20=
(when=20,window-dedicated-sym=0A+=20=20=20=20=20=20=20=20=20=
(set-window-dedicated-p=20nil=20nil))=0A+=20=20=20=20=20=20=20,@body=0A+=20=
=20=20=20=20=20=20(when=20,window-dedicated-sym=0A+=20=20=20=20=20=20=20=20=
=20;;=20`window-dedicated-p'=20returns=20the=20value=20set=20by=0A+=20=20=
=20=20=20=20=20=20=20;;=20`set-window-dedicated-p',=20which=20=
differentiates=0A+=20=20=20=20=20=20=20=20=20;;=20non-nil=20and=20t,=20=
so=20we=20cannot=20simply=20set=20to=20t=0A+=20=20=20=20=20=20=20=20=20=
(set-window-dedicated-p=20nil=20,window-dedicated-sym)))))=0A+=0A=20;;=20=
The=20following=20two=20functions=20are=20like=20`window-next-sibling'=20=
and=0A=20;;=20`window-prev-sibling'=20but=20the=20WINDOW=20argument=20is=20=
_not_=20optional=20(so=0A=20;;=20they=20don't=20substitute=20the=20=
selected=20window=20for=20nil),=20and=20they=20return=0A--=20=0A2.24.1=0A=
=0A=0A=46rom=20bb5e41e230a8452b41a569386131648eb2599501=20Mon=20Sep=2017=20=
00:00:00=202001=0AFrom:=20Yuan=20Fu=20<casouri@HIDDEN>=0ADate:=20Mon,=20=
14=20Oct=202019=2021:11:43=20-0400=0ASubject:=20[PATCH=202/3]=20Add=20=
window=20configuration=20save/restore=20feature=20for=20gdb-mi=0A=
MIME-Version:=201.0=0AContent-Type:=20text/plain;=20charset=3DUTF-8=0A=
Content-Transfer-Encoding:=208bit=0A=0ANow=20you=20can=20save=20a=20gdb=20=
window=20configuration=20to=20a=20file=20with=0A=
=E2=80=98gdb-store-window-configuration=E2=80=99=20and=20restore=20it=20=
from=20a=20file=0Awith=20=E2=80=98gdb-restore-window-configuration=E2=80=99=
.=20Set=20a=20default=20window=0Aconfiguration=20by=20setting=20=
gdb-default-window-configuration-file.=0ANote=20that=20for=20the=20=
default=20window=20configuration=20to=20take=20effect,=0A=
gdb-many-windows=20needs=20to=20be=20t.=0A=0A*=20=
lisp/progmodes/gdb-mi.el=20(require):=20add=20pcase,=20wrap=20inside=0A=
=E2=80=98eval-when-compile=E2=80=99=0A=0A(gdb-get-source-buffer):=20new,=20=
extracted=20out=20of=20gdb-restore-window=0A(gdb-restore-window):=20=
extract=20out=20gdb-get-source-buffer=0A=0A(gdb-store-window-directory,=20=
gdb-buffer-p,=20gdb-function-buffer-p,=0Agdb--buffer-type,=20=
gdb--inhibit-window-dedicated,=0Agdb-store-window-configuration,=20=
gdb-restore-window-configuration):=20new=0A=0A=
(gdb-default-window-configuration-file):=20new=0A(gdb-setup-windows):=20=
Add=20a=20condition=20branch=20that=20loads=20default=20window=0Aconfig=20=
when=20available=0A=0A(gdb-many-windows,=20gdb-get-source-file):=20add=20=
comments=0A---=0A=20lisp/progmodes/gdb-mi.el=20|=20210=20=
++++++++++++++++++++++++++++++++-------=0A=201=20file=20changed,=20176=20=
insertions(+),=2034=20deletions(-)=0A=0Adiff=20--git=20=
a/lisp/progmodes/gdb-mi.el=20b/lisp/progmodes/gdb-mi.el=0Aindex=20=
b08d487af3..cf0c8f29a9=20100644=0A---=20a/lisp/progmodes/gdb-mi.el=0A+++=20=
b/lisp/progmodes/gdb-mi.el=0A@@=20-91,7=20+91,8=20@@=0A=20(require=20=
'gud)=0A=20(require=20'json)=0A=20(require=20'bindat)=0A-(require=20=
'cl-lib)=0A+(eval-when-compile=20(require=20'cl-lib))=0A=
+(eval-when-compile=20(require=20'pcase))=0A=20=0A=20(declare-function=20=
speedbar-change-initial-expansion-list=0A=20=20=20=20=20=20=20=20=20=20=20=
=20=20=20=20=20=20=20=20"speedbar"=20(new-default))=0A@@=20-589,6=20=
+590,20=20@@=20gdb-show-main=0A=20=20=20:group=20'gdb=0A=20=20=20=
:version=20"22.1")=0A=20=0A+(defcustom=20gdb-store-window-directory=20=
user-emacs-directory=0A+=20=20"The=20default=20directory=20where=20=
window=20configuration=20files=20are=20stored.=0A+If=20nil,=20use=20=
`default-directory'."=0A+=20=20:type=20'string=0A+=20=20:group=20'gdb=0A=
+=20=20:version=20"28.1")=0A+=0A+(defcustom=20=
gdb-default-window-configuration-file=20nil=0A+=20=20"If=20non-nil,=20=
gdb=20loads=20this=20window=20configuration=20file=20on=20startup.=0A=
+This=20should=20be=20an=20absolute=20file=20path."=0A+=20=20:type=20=
'string=0A+=20=20:group=20'gdb=0A+=20=20:version=20"28.1")=0A+=0A=20=
(defvar=20gdbmi-debug-mode=20nil=0A=20=20=20"When=20non-nil,=20print=20=
the=20messages=20sent/received=20from=20GDB/MI=20in=20*Messages*.")=0A=20=
=0A@@=20-4574,41=20+4589,164=20@@=20gdb-set-window-buffer=0A=20=20=20=
(set-window-buffer=20window=20(get-buffer=20name))=0A=20=20=20=
(set-window-dedicated-p=20window=20t))=0A=20=0A+(defun=20=
gdb-get-source-buffer=20()=0A+=20=20"Return=20a=20buffer=20displaying=20=
source=20file=20or=20nil.=0A+=0A+The=20source=20file=20would=20be=20the=20=
most=20relevant=20file=20or=20the=20main=20file."=0A+=20=20(if=20=
gud-last-last-frame=0A+=20=20=20=20=20=20(gud-find-file=20(car=20=
gud-last-last-frame))=0A+=20=20=20=20(when=20gdb-main-file=0A+=20=20=20=20=
=20=20(gud-find-file=20gdb-main-file))))=0A+=0A=20(defun=20=
gdb-setup-windows=20()=0A=20=20=20"Layout=20the=20window=20pattern=20for=20=
option=20`gdb-many-windows'."=0A-=20=20(gdb-get-buffer-create=20=
'gdb-locals-buffer)=0A-=20=20(gdb-get-buffer-create=20'gdb-stack-buffer)=0A=
-=20=20(gdb-get-buffer-create=20'gdb-breakpoints-buffer)=0A-=20=20=
(set-window-dedicated-p=20(selected-window)=20nil)=0A-=20=20=
(switch-to-buffer=20gud-comint-buffer)=0A-=20=20(delete-other-windows)=0A=
-=20=20(let=20((win0=20(selected-window))=0A-=20=20=20=20=20=20=20=20=
(win1=20(split-window=20nil=20(=20/=20(=20*=20(window-height)=203)=20=
4)))=0A-=20=20=20=20=20=20=20=20(win2=20(split-window=20nil=20(=20/=20=
(window-height)=203)))=0A-=20=20=20=20=20=20=20=20(win3=20=
(split-window-right)))=0A-=20=20=20=20(gdb-set-window-buffer=20=
(gdb-locals-buffer-name)=20nil=20win3)=0A-=20=20=20=20(select-window=20=
win2)=0A-=20=20=20=20(set-window-buffer=0A-=20=20=20=20=20win2=0A-=20=20=20=
=20=20(if=20gud-last-last-frame=0A-=20=20=20=20=20=20=20=20=20=
(gud-find-file=20(car=20gud-last-last-frame))=0A-=20=20=20=20=20=20=20=
(if=20gdb-main-file=0A-=20=20=20=20=20=20=20=20=20=20=20(gud-find-file=20=
gdb-main-file)=0A-=20=20=20=20=20=20=20=20=20;;=20Put=20buffer=20list=20=
in=20window=20if=20we=0A-=20=20=20=20=20=20=20=20=20;;=20can't=20find=20=
a=20source=20file.=0A-=20=20=20=20=20=20=20=20=20=
(list-buffers-noselect))))=0A-=20=20=20=20(setq=20gdb-source-window=20=
(selected-window))=0A-=20=20=20=20(let=20((win4=20(split-window-right)))=0A=
-=20=20=20=20=20=20(gdb-set-window-buffer=0A-=20=20=20=20=20=20=20=
(gdb-get-buffer-create=20'gdb-inferior-io)=20nil=20win4))=0A-=20=20=20=20=
(select-window=20win1)=0A-=20=20=20=20(gdb-set-window-buffer=20=
(gdb-stack-buffer-name))=0A-=20=20=20=20(let=20((win5=20=
(split-window-right)))=0A-=20=20=20=20=20=20(gdb-set-window-buffer=20(if=20=
gdb-show-threads-by-default=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=
(gdb-threads-buffer-name)=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=
(gdb-breakpoints-buffer-name))=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=20nil=20win5))=0A-=20=20=20=
=20(select-window=20win0)))=0A+=20=20(if=20=
gdb-default-window-configuration-file=0A+=20=20=20=20=20=20=
(gdb-restore-window-configuration=0A+=20=20=20=20=20=20=20=
gdb-default-window-configuration-file)=0A+=20=20=20=20;;=20default=20=
layout=0A+=20=20=20=20(gdb-get-buffer-create=20'gdb-locals-buffer)=0A+=20=
=20=20=20(gdb-get-buffer-create=20'gdb-stack-buffer)=0A+=20=20=20=20=
(gdb-get-buffer-create=20'gdb-breakpoints-buffer)=0A+=20=20=20=20=
(set-window-dedicated-p=20(selected-window)=20nil)=0A+=20=20=20=20=
(switch-to-buffer=20gud-comint-buffer)=0A+=20=20=20=20=
(delete-other-windows)=0A+=20=20=20=20(let=20((win0=20(selected-window))=0A=
+=20=20=20=20=20=20=20=20=20=20(win1=20(split-window=20nil=20(=20/=20(=20=
*=20(window-height)=203)=204)))=0A+=20=20=20=20=20=20=20=20=20=20(win2=20=
(split-window=20nil=20(=20/=20(window-height)=203)))=0A+=20=20=20=20=20=20=
=20=20=20=20(win3=20(split-window-right)))=0A+=20=20=20=20=20=20=
(gdb-set-window-buffer=20(gdb-locals-buffer-name)=20nil=20win3)=0A+=20=20=
=20=20=20=20(select-window=20win2)=0A+=20=20=20=20=20=20=
(set-window-buffer=0A+=20=20=20=20=20=20=20win2=0A+=20=20=20=20=20=20=20=
(or=20(gdb-get-source-buffer)=0A+=20=20=20=20=20=20=20=20=20=20=20=
(list-buffers-noselect)))=0A+=20=20=20=20=20=20(setq=20gdb-source-window=20=
(selected-window))=0A+=20=20=20=20=20=20(let=20((win4=20=
(split-window-right)))=0A+=20=20=20=20=20=20=20=20(gdb-set-window-buffer=0A=
+=20=20=20=20=20=20=20=20=20(gdb-get-buffer-create=20'gdb-inferior-io)=20=
nil=20win4))=0A+=20=20=20=20=20=20(select-window=20win1)=0A+=20=20=20=20=20=
=20(gdb-set-window-buffer=20(gdb-stack-buffer-name))=0A+=20=20=20=20=20=20=
(let=20((win5=20(split-window-right)))=0A+=20=20=20=20=20=20=20=20=
(gdb-set-window-buffer=20(if=20gdb-show-threads-by-default=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(gdb-threads-buffer-name)=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=
(gdb-breakpoints-buffer-name))=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=20nil=20win5))=0A+=20=
=20=20=20=20=20(select-window=20win0))))=0A+=0A+(defun=20gdb-buffer-p=20=
(buffer)=0A+=20=20"Return=20t=20if=20BUFFER=20is=20gdb-related."=0A+=20=20=
(with-current-buffer=20buffer=0A+=20=20=20=20(eq=20gud-minor-mode=20=
'gdbmi)))=0A+=0A+(defun=20gdb-function-buffer-p=20(buffer)=0A+=20=20=
"Return=20t=20if=20BUFFER=20is=20a=20gdb=20function=20buffer.=0A+=0A=
+E.g.,=20locals=20buffer,=20registers=20buffer,=20but=20don't=20include=20=
the=20main=0A+command=20buffer=20(the=20one=20in=20where=20you=20type=20=
gdb=20commands)=20or=20source=0A+buffers."=0A+=20=20(with-current-buffer=20=
buffer=0A+=20=20=20=20(derived-mode-p=20'gdb-parent-mode=20=
'gdb-inferior-io-mode)))=0A+=0A+(defun=20gdb--buffer-type=20(buffer)=0A+=20=
=20"Return=20the=20buffer=20type=20of=20BUFFER=20or=20nil.=0A+=0A+Buffer=20=
type=20is=20like=20`gdb-registers-type',=20`gdb-stack-buffer'.=0A+This=20=
symbol=20can=20be=20passed=20to=20`gdb-get-buffer-create'.=0A+=0A+Return=20=
nil=20if=20BUFFER=20isn't=20a=20gdb=20function=20buffer."=0A+=20=20=
(with-current-buffer=20buffer=0A+=20=20=20=20(cl-loop=20for=20rule=20in=20=
gdb-buffer-rules=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20for=20=
mode-name=20=3D=20(gdb-rules-buffer-mode=20rule)=0A+=20=20=20=20=20=20=20=
=20=20=20=20=20=20for=20type=20=3D=20(car=20rule)=0A+=20=20=20=20=20=20=20=
=20=20=20=20=20=20if=20(eq=20mode-name=20major-mode)=0A+=20=20=20=20=20=20=
=20=20=20=20=20=20=20return=20type=0A+=20=20=20=20=20=20=20=20=20=20=20=20=
=20finally=20return=20nil)))=0A+=0A+(defun=20=
gdb-store-window-configuration=20(file)=0A+=20=20"Save=20current=20=
window=20configuration=20to=20FILE.=0A+=0A+You=20can=20later=20restore=20=
this=20configuration=20from=20that=20file=20by=0A=
+`gdb-restore-window-configuration'."=0A+=20=20(interactive=20(list=20=
(read-file-name=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=
=20=20=20=20"Save=20window=20configuration=20to=20file:=20"=0A+=20=20=20=20=
=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20(or=20=
gdb-store-window-directory=20default-directory))))=0A+=20=20;;=20we=20=
replace=20the=20buffer=20in=20each=20window=20with=20a=20placeholder,=20=
store=0A+=20=20;;=20the=20buffer=20type=20(register,=20breakpoint,=20=
etc)=20in=20window=20parameters,=0A+=20=20;;=20and=20store=20the=20=
window=20configuration=0A+=20=20(save-window-excursion=0A+=20=20=20=20=
(let=20((placeholder=20(get-buffer-create=20"=20*gdb-placeholder*"))=0A+=20=
=20=20=20=20=20=20=20=20=20(window-persistent-parameters=0A+=20=20=20=20=20=
=20=20=20=20=20=20(cons=20'(gdb-buffer-type=20.=20writable)=20=
window-persistent-parameters))=0A+=20=20=20=20=20=20=20=20=20=20=
window-config)=0A+=20=20=20=20=20=20(unwind-protect=0A+=20=20=20=20=20=20=
=20=20=20=20(dolist=20(win=20(window-list=20nil=20'no-minibuffer))=0A+=20=
=20=20=20=20=20=20=20=20=20=20=20(select-window=20win)=0A+=20=20=20=20=20=
=20=20=20=20=20=20=20(when=20(gdb-buffer-p=20(current-buffer))=0A+=20=20=20=
=20=20=20=20=20=20=20=20=20=20=20(set-window-parameter=0A+=20=20=20=20=20=
=20=20=20=20=20=20=20=20=20=20nil=20'gdb-buffer-type=0A+=20=20=20=20=20=20=
=20=20=20=20=20=20=20=20=20(cond=20((gdb-function-buffer-p=20=
(current-buffer))=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=
=20=20=20=20;;=201)=20if=20a=20user=20arranged=20the=20window=20=
configuration=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=
=20=20=20;;=20herself=20and=20saves=20it,=20windows=20are=20probably=20=
not=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=
;;=20dedicated=202)=20we=20use=20the=20same=20dedication=20flag=20as=0A+=20=
=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20;;=20in=20=
`gdb-display-buffer'=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=
=20=20=20=20=20(set-window-dedicated-p=20nil=20t)=0A+=20=20=20=20=20=20=20=
=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20;;=20we=20save=20this=20=
gdb-buffer-type=20symbol=20so=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=
=20=20=20=20=20=20=20=20;;=20we=20can=20later=20pass=20it=20to=20=
`gdb-get-buffer-create'=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=
=20=20=20=20=20=20;;=20one=20example:=20`gdb-registers-buffer'=0A+=20=20=20=
=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20(or=20=
(gdb--buffer-type=20(current-buffer))=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(error=20"Unrecognized=20=
gdb=20buffer=20mode:=20%s"=20major-mode)))=0A+=20=20=20=20=20=20=20=20=20=
=20=20=20=20=20=20=20=20=20=20=20=20;;=20command=20buffer=0A+=20=20=20=20=
=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20((derived-mode-p=20=
'gud-mode)=20'command)=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=
=20=20=20=20=20((equal=20(selected-window)=20gdb-source-window)=20=
'source)))=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=
(with-selected-window-undedicated=0A+=20=20=20=20=20=20=20=20=20=20=20=20=
=20=20=20(set-window-buffer=20nil=20placeholder)=0A+=20=20=20=20=20=20=20=
=20=20=20=20=20=20=20=20(set-window-prev-buffers=20(selected-window)=20=
nil)=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=
(set-window-next-buffers=20(selected-window)=20nil))))=0A+=20=20=20=20=20=
=20=20=20;;=20save=20the=20window=20configuration=20to=20FILE=0A+=20=20=20=
=20=20=20=20=20(let=20((window-config=20(window-state-get=20nil=20t)))=0A=
+=20=20=20=20=20=20=20=20=20=20(with-temp-buffer=0A+=20=20=20=20=20=20=20=
=20=20=20=20=20(prin1=20window-config=20(current-buffer))=0A+=20=20=20=20=
=20=20=20=20=20=20=20=20(write-file=20file=20t)))=0A+=20=20=20=20=20=20=20=
=20(kill-buffer=20placeholder)))))=0A+=0A+(defun=20=
gdb-restore-window-configuration=20(file)=0A+=20=20"Restore=20window=20=
configuration=20from=20FILE.=0A+=0A+FILE=20should=20be=20a=20window=20=
configuration=20file=20saved=20by=0A+`gdb-store-window-configuration'."=0A=
+=20=20(interactive=20(list=20(read-file-name=0A+=20=20=20=20=20=20=20=20=
=20=20=20=20=20=20=20=20=20=20=20=20=20=20"Restore=20window=20=
configuration=20from=20file:=20"=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=
=20=20=20=20=20=20=20=20=20(or=20gdb-store-window-directory=20=
default-directory))))=0A+=20=20;;=20basically=20we=20restore=20window=20=
configuration=20and=20go=20through=20each=0A+=20=20;;=20window=20and=20=
restore=20the=20function=20buffers=0A+=20=20(let*=20((placeholder=20=
(get-buffer-create=20"=20*gdb-placeholder*")))=0A+=20=20=20=20=
(unwind-protect=20;=20don't=20leak=20buffer=0A+=20=20=20=20=20=20=20=20=
(let=20((window-config=20(with-temp-buffer=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=
(insert-file-contents=20file)=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(goto-char=20=
(point-min))=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;;=20we=20need=20to=20go=20to=20=
point-min=20even=20we=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;;=20are=20reading=20the=20=
whole=20buffer=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(read=20(current-buffer))))=0A+=20=20=
=20=20=20=20=20=20=20=20=20=20=20=20(source-buffer=20(if=20=
gdb-source-window=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(window-buffer=20=
gdb-source-window)=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(or=20(gdb-get-source-buffer)=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;;=20do=20the=20same=20thing=20as=20in=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`gdb-setup-windows'=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(list-buffers-noselect))))=0A+=20=20=20=20=20=20=20=20=20=
=20=20=20=20=20buffer-type)=0A+=20=20=20=20=20=20=20=20=20=20=
(window-state-put=20window-config=20(frame-root-window))=0A+=20=20=20=20=20=
=20=20=20=20=20(dolist=20(window=20(window-list=20nil=20'no-minibuffer))=0A=
+=20=20=20=20=20=20=20=20=20=20=20=20(with-selected-window=20window=0A+=20=
=20=20=20=20=20=20=20=20=20=20=20=20=20(setq=20buffer-type=20=
(window-parameter=20nil=20'gdb-buffer-type))=0A+=20=20=20=20=20=20=20=20=20=
=20=20=20=20=20(pcase=20buffer-type=0A+=20=20=20=20=20=20=20=20=20=20=20=20=
=20=20=20=20('source=20(when=20source-buffer=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(set-window-buffer=20=
nil=20source-buffer)=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(setq=20gdb-source-window=20=
(selected-window))))=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=
('command=20(switch-to-buffer=20gud-comint-buffer))=0A+=20=20=20=20=20=20=
=20=20=20=20=20=20=20=20=20=20(_=20(let=20((buffer=20=
(gdb-get-buffer-create=20buffer-type)))=0A+=20=20=20=20=20=20=20=20=20=20=
=20=20=20=20=20=20=20=20=20=20=20(with-selected-window-undedicated=0A+=20=
=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=
(set-window-buffer=20nil=20buffer))))))))=0A+=20=20=20=20=20=20=
(kill-buffer=20placeholder))))=0A=20=0A=20(define-minor-mode=20=
gdb-many-windows=0A=20=20=20"If=20nil=20just=20pop=20up=20the=20GUD=20=
buffer=20unless=20`gdb-show-main'=20is=20t.=0A@@=20-4627,6=20+4765,9=20=
@@=20gdb-many-windows=0A=20(defun=20gdb-restore-windows=20()=0A=20=20=20=
"Restore=20the=20basic=20arrangement=20of=20windows=20used=20by=20gdb.=0A=
=20This=20arrangement=20depends=20on=20the=20value=20of=20option=20=
`gdb-many-windows'."=0A+=20=20;;=20this=20function=20is=20used=20when=20=
the=20user=20messed=20up=20window=0A+=20=20;;=20configuration=20and=20=
want=20to=20"reset=20to=20default".=20the=20function=20that=0A+=20=20;;=20=
sets=20up=20window=20configuration=20on=20start=20up=20is=20=
`gdb-get-source-file'=0A=20=20=20(interactive)=0A=20=20=20=
(switch-to-buffer=20gud-comint-buffer)=20;Select=20the=20right=20window=20=
and=20frame.=0A=20=20=20(delete-other-windows)=0A@@=20-4678,6=20+4819,7=20=
@@=20gdb-reset=0A=20(defun=20gdb-get-source-file=20()=0A=20=20=20"Find=20=
the=20source=20file=20where=20the=20program=20starts=20and=20display=20=
it=20with=20related=0A=20buffers,=20if=20required."=0A+=20=20;;=20this=20=
function=20is=20called=20only=20once=20on=20startup=0A=20=20=20=
(goto-char=20(point-min))=0A=20=20=20(if=20(re-search-forward=20=
gdb-source-file-regexp=20nil=20t)=0A=20=20=20=20=20=20=20(setq=20=
gdb-main-file=20(read=20(match-string=201))))=0A--=20=0A2.24.1=0A=0A=0A=
=46rom=20c7ac67ec759d16e1f5d212b6fadf93d4ec853ace=20Mon=20Sep=2017=20=
00:00:00=202001=0AFrom:=20Yuan=20Fu=20<casouri@HIDDEN>=0ADate:=20Thu,=20=
16=20Jan=202020=2018:52:17=20-0500=0ASubject:=20[PATCH=203/3]=20Restore=20=
window=20configuration=20when=20gdb=20quits=0A=0AMake=20gdb=20preserve=20=
the=20window=20configuration=20that=20the=20user=20had=20before=0A=
starting=20gdb.=0A=0A*=20lisp/progmodes/gdb-mi.el=20=
(gdb--window-configuration-before):=20new=0A(gdb):=20save=20=
configuration=20before=20start=0A(gdb-reset):=20restore=20window=20=
configuration=0A---=0A=20lisp/progmodes/gdb-mi.el=20|=2011=20++++++++++-=0A=
=201=20file=20changed,=2010=20insertions(+),=201=20deletion(-)=0A=0Adiff=20=
--git=20a/lisp/progmodes/gdb-mi.el=20b/lisp/progmodes/gdb-mi.el=0Aindex=20=
cf0c8f29a9..582ccf9562=20100644=0A---=20a/lisp/progmodes/gdb-mi.el=0A+++=20=
b/lisp/progmodes/gdb-mi.el=0A@@=20-243,6=20+243,9=20@@=20gdb-output-sink=0A=
=20=09=20=20=20=20=20=20=20disposition=20of=20output=20generated=20by=20=
commands=20that=0A=20=09=20=20=20=20=20=20=20gdb=20mode=20sends=20to=20=
gdb=20on=20its=20own=20behalf.")=0A=20=0A+(defvar=20=
gdb--window-configuration-before=20nil=0A+=20=20"Stores=20the=20window=20=
configuration=20before=20starting=20gdb.")=0A+=0A=20(defcustom=20=
gdb-discard-unordered-replies=20t=0A=20=20=20"Non-nil=20means=20discard=20=
any=20out-of-order=20GDB=20replies.=0A=20This=20protects=20against=20=
lost=20GDB=20replies,=20assuming=20that=20GDB=20always=0A@@=20-762,6=20=
+765,10=20@@=20gdb=0A=20=20=20=20=20(gdb-restore-windows)=0A=20=20=20=20=20=
(error=0A=20=20=20=20=20=20"Multiple=20debugging=20requires=20restarting=20=
in=20text=20command=20mode"))=0A+=0A+=20=20;;=20save=20window=20=
configuration=20before=20starting=20gdb=20so=20we=20can=20restore=0A+=20=20=
;;=20it=20after=20gdb=20quits=0A+=20=20(setq=20=
gdb--window-configuration-before=20(window-state-get))=0A=20=20=20;;=0A=20=
=20=20(gud-common-init=20command-line=20nil=20'gud-gdbmi-marker-filter)=0A=
=20=0A@@=20-4814,7=20+4821,9=20@@=20gdb-reset=0A=20=20=20(if=20(boundp=20=
'speedbar-frame)=20(speedbar-timer-fn))=0A=20=20=20(setq=20gud-running=20=
nil)=0A=20=20=20(setq=20gdb-active-process=20nil)=0A-=20=20(remove-hook=20=
'after-save-hook=20'gdb-create-define-alist=20t))=0A+=20=20(remove-hook=20=
'after-save-hook=20'gdb-create-define-alist=20t)=0A+=20=20;;=20recover=20=
window=20configuration=0A+=20=20(window-state-put=20=
gdb--window-configuration-before))=0A=20=0A=20(defun=20=
gdb-get-source-file=20()=0A=20=20=20"Find=20the=20source=20file=20where=20=
the=20program=20starts=20and=20display=20it=20with=20related=0A--=20=0A=
2.24.1=0A=0A=

--Apple-Mail=_D6E2388E-299D-4A04-B073-051589D1C5C9
Content-Disposition: attachment;
	filename=default-rearrange
Content-Type: application/octet-stream;
	x-unix-mode=0700;
	name="default-rearrange"
Content-Transfer-Encoding: quoted-printable

(((min-height=20.=2012)=20(min-width=20.=2030)=20(min-height-ignore=20.=20=
9)=20(min-width-ignore=20.=2012)=20(min-height-safe=20.=203)=20=
(min-width-safe=20.=206)=20(min-pixel-height=20.=20204)=20=
(min-pixel-width=20.=20240)=20(min-pixel-height-ignore=20.=20153)=20=
(min-pixel-width-ignore=20.=2096)=20(min-pixel-height-safe=20.=2051)=20=
(min-pixel-width-safe=20.=2048))=20hc=20(pixel-width=20.=201920)=20=
(pixel-height=20.=20992)=20(total-width=20.=20240)=20(total-height=20.=20=
58)=20(normal-height=20.=201.0)=20(normal-width=20.=201.0)=20=
(combination-limit)=20(leaf=20(pixel-width=20.=20783)=20(pixel-height=20=
.=20992)=20(total-width=20.=2098)=20(total-height=20.=2058)=20=
(normal-height=20.=201.0)=20(normal-width=20.=200.4059618986693193)=20=
(parameters=20(gdb-buffer-type=20.=20source))=20(buffer=20"=20=
*gdb-placeholder*"=20(selected=20.=20t)=20(hscroll=20.=200)=20(fringes=20=
8=208=20nil=20nil)=20(margins=20nil)=20(scroll-bars=20nil=200=20t=20nil=20=
0=20t=20nil)=20(vscroll=20.=200)=20(dedicated)=20(point=20.=201)=20=
(start=20.=201)))=20(vc=20(pixel-width=20.=20847)=20(pixel-height=20.=20=
992)=20(total-width=20.=20106)=20(total-height=20.=2058)=20=
(normal-height=20.=201.0)=20(normal-width=20.=200.4427600627286984)=20=
(combination-limit)=20(leaf=20(pixel-width=20.=20847)=20(pixel-height=20=
.=20483)=20(total-width=20.=20106)=20(total-height=20.=2028)=20=
(normal-height=20.=200.4829123497015181)=20(normal-width=20.=201.0)=20=
(parameters=20(gdb-buffer-type=20.=20command))=20(buffer=20"=20=
*gdb-placeholder*"=20(selected)=20(hscroll=20.=200)=20(fringes=208=208=20=
nil=20nil)=20(margins=20nil)=20(scroll-bars=20nil=200=20t=20nil=200=20t=20=
nil)=20(vscroll=20.=200)=20(dedicated)=20(point=20.=201)=20(start=20.=20=
1)))=20(leaf=20(pixel-width=20.=20847)=20(pixel-height=20.=20278)=20=
(total-width=20.=20106)=20(total-height=20.=2016)=20(normal-height=20.=20=
0.28280773143438453)=20(normal-width=20.=201.0)=20(parameters=20=
(gdb-buffer-type=20.=20gdb-inferior-io))=20(buffer=20"=20=
*gdb-placeholder*"=20(selected)=20(hscroll=20.=200)=20(fringes=208=208=20=
nil=20nil)=20(margins=20nil)=20(scroll-bars=20nil=200=20t=20nil=200=20t=20=
nil)=20(vscroll=20.=200)=20(dedicated=20.=20t)=20(point=20.=201)=20=
(start=20.=201)))=20(leaf=20(last=20.=20t)=20(pixel-width=20.=20847)=20=
(pixel-height=20.=20231)=20(total-width=20.=20106)=20(total-height=20.=20=
14)=20(normal-height=20.=200.23427991886409735)=20(normal-width=20.=20=
1.0)=20(parameters=20(gdb-buffer-type=20.=20gdb-breakpoints-buffer))=20=
(buffer=20"=20*gdb-placeholder*"=20(selected)=20(hscroll=20.=200)=20=
(fringes=208=208=20nil=20nil)=20(margins=20nil)=20(scroll-bars=20nil=200=20=
t=20nil=200=20t=20nil)=20(vscroll=20.=200)=20(dedicated=20.=20t)=20=
(point=20.=201)=20(start=20.=201))))=20(vc=20(last=20.=20t)=20=
(pixel-width=20.=20290)=20(pixel-height=20.=20992)=20(total-width=20.=20=
36)=20(total-height=20.=2058)=20(normal-height=20.=201.0)=20=
(normal-width=20.=200.15127803860198227)=20(combination-limit)=20(leaf=20=
(pixel-width=20.=20290)=20(pixel-height=20.=20499)=20(total-width=20.=20=
36)=20(total-height=20.=2029)=20(normal-height=20.=200.5)=20=
(normal-width=20.=201.0)=20(parameters=20(gdb-buffer-type=20.=20=
gdb-locals-buffer))=20(buffer=20"=20*gdb-placeholder*"=20(selected)=20=
(hscroll=20.=200)=20(fringes=208=208=20nil=20nil)=20(margins=20nil)=20=
(scroll-bars=20nil=200=20t=20nil=200=20t=20nil)=20(vscroll=20.=200)=20=
(dedicated=20.=20t)=20(point=20.=201)=20(start=20.=201)))=20(leaf=20=
(last=20.=20t)=20(pixel-width=20.=20290)=20(pixel-height=20.=20493)=20=
(total-width=20.=2036)=20(total-height=20.=2029)=20(normal-height=20.=20=
0.5)=20(normal-width=20.=201.0)=20(parameters=20(gdb-buffer-type=20.=20=
gdb-stack-buffer))=20(buffer=20"=20*gdb-placeholder*"=20(selected)=20=
(hscroll=20.=200)=20(fringes=208=208=20nil=20nil)=20(margins=20nil)=20=
(scroll-bars=20nil=200=20t=20nil=200=20t=20nil)=20(vscroll=20.=200)=20=
(dedicated=20.=20t)=20(point=20.=201)=20(start=20.=201)))))=

--Apple-Mail=_D6E2388E-299D-4A04-B073-051589D1C5C9
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=us-ascii



In GNU Emacs 27.0.50 (build 3, x86_64-apple-darwin19.0.0, NS =
appkit-1894.10 Version 10.15.1 (Build 19B88))
of 2019-11-30 built on missSilver
Repository revision: e2828795d73637577c7726965974a047fe2d7119
Repository branch: master
Windowing system distributor 'Apple', version 10.3.1894
System Description:  Mac OS X 10.15.2

Recent messages:
Checking 71 files in /Users/yuan/attic/emacs/lisp/erc...
Checking 34 files in /Users/yuan/attic/emacs/lisp/emulation...
Checking 180 files in /Users/yuan/attic/emacs/lisp/emacs-lisp...
Checking 24 files in /Users/yuan/attic/emacs/lisp/cedet...
Checking 59 files in /Users/yuan/attic/emacs/lisp/calendar...
Checking 87 files in /Users/yuan/attic/emacs/lisp/calc...
Checking 113 files in /Users/yuan/attic/emacs/lisp/obsolete...
Checking for load-path shadows...done
Auto-saving...
Buffer *unsent mail to bug-gnu-emacs@HIDDEN*<2> modified; kill anyway? =
(y or n) y

Configured using:
'configure --with-modules --with-pdumper=3Dyes
=
--oldincludedir=3D/Applications/Xcode.app/Contents/Developer/Platforms/Mac=
OSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/libxml2/'

Configured features:
NOTIFY KQUEUE ACL GNUTLS LIBXML2 ZLIB TOOLKIT_SCROLL_BARS NS MODULES
THREADS PDUMPER LCMS2

Important settings:
  value of $LC_CTYPE: UTF-8
  value of $LANG: en_CN.UTF-8
  locale-coding-system: utf-8-unix

Major mode: Emacs-Lisp

Minor modes in effect:
  magit-todos-mode: t
  bug-reference-prog-mode: t
  desktop-save-mode: t
  ghelp-global-minor-mode: t
  minibuffer-electric-default-mode: t
  flymake-mode: t
  global-magit-file-mode: t
  magit-file-mode: t
  global-git-commit-mode: t
  async-bytecomp-package-mode: t
  shell-dirtrack-mode: t
  flyspell-mode: t
  outshine-mode: t
  ws-butler-global-mode: t
  ws-butler-mode: t
  minions-mode: t
  eyebrowse-mode: t
  savehist-mode: t
  global-hl-todo-mode: t
  hl-todo-mode: t
  global-highlight-parentheses-mode: t
  highlight-parentheses-mode: t
  rainbow-delimiters-mode: t
  global-undo-tree-mode: t
  undo-tree-mode: t
  electric-pair-mode: t
  winner-mode: t
  aggressive-indent-mode: t
  ivy-prescient-mode: t
  prescient-persist-mode: t
  recentf-mode: t
  which-key-mode: t
  general-override-mode: t
  outline-minor-mode: t
  ivy-mode: t
  company-mode: t
  override-global-mode: t
  tooltip-mode: t
  global-eldoc-mode: t
  eldoc-mode: t
  electric-quote-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  transient-mark-mode: t
  hs-minor-mode: t

Load-path shadows:
/Users/yuan/.emacs.d/ranch/winman/windman hides =
/Users/yuan/.emacs.d/ranch/windman/windman
/Users/yuan/.emacs.d/ranch/nerd-font/test/test-helper hides =
/Users/yuan/.emacs.d/ranch/doom-themes/test/test-helper
/Users/yuan/.emacs.d/ranch/julia-mode/julia-mode hides =
/Users/yuan/.emacs.d/package/julia-mode-20190813.1326/julia-mode
/Users/yuan/.emacs.d/ranch/julia-mode/julia-latexsubs hides =
/Users/yuan/.emacs.d/package/julia-mode-20190813.1326/julia-latexsubs
/Users/yuan/.emacs.d/ranch/matlab-emacs/mlint hides =
/Users/yuan/.emacs.d/package/matlab-mode-20180928.1526/mlint
/Users/yuan/.emacs.d/ranch/matlab-emacs/company-matlab-shell hides =
/Users/yuan/.emacs.d/package/matlab-mode-20180928.1526/company-matlab-shel=
l
/Users/yuan/.emacs.d/ranch/matlab-emacs/linemark hides =
/Users/yuan/.emacs.d/package/matlab-mode-20180928.1526/linemark
/Users/yuan/.emacs.d/ranch/matlab-emacs/semanticdb-matlab hides =
/Users/yuan/.emacs.d/package/matlab-mode-20180928.1526/semanticdb-matlab
/Users/yuan/.emacs.d/ranch/matlab-emacs/semantic-matlab hides =
/Users/yuan/.emacs.d/package/matlab-mode-20180928.1526/semantic-matlab
/Users/yuan/.emacs.d/ranch/matlab-emacs/srecode-matlab hides =
/Users/yuan/.emacs.d/package/matlab-mode-20180928.1526/srecode-matlab
/Users/yuan/.emacs.d/ranch/matlab-emacs/matlab hides =
/Users/yuan/.emacs.d/package/matlab-mode-20180928.1526/matlab
/Users/yuan/.emacs.d/ranch/matlab-emacs/cedet-matlab hides =
/Users/yuan/.emacs.d/package/matlab-mode-20180928.1526/cedet-matlab
/Users/yuan/.emacs.d/ranch/matlab-emacs/tlc hides =
/Users/yuan/.emacs.d/package/matlab-mode-20180928.1526/tlc
/Users/yuan/.emacs.d/ranch/matlab-emacs/matlab-publish hides =
/Users/yuan/.emacs.d/package/matlab-mode-20180928.1526/matlab-publish
/Users/yuan/.emacs.d/ranch/matlab-emacs/matlab-mode-pkg hides =
/Users/yuan/.emacs.d/package/matlab-mode-20180928.1526/matlab-mode-pkg
/Users/yuan/.emacs.d/package/faceup-20170925.1946/faceup hides =
/Users/yuan/attic/emacs/lisp/emacs-lisp/faceup

Features:
(magit-todos pcre2el rxt re-builder grep checkdoc lisp-mnt bug-reference
vc-mtn vc-hg ffap tramp tramp-loaddefs trampver tramp-integration
files-x tramp-compat parse-time iso8601 ls-lisp shadow sort mail-extr
emacsbug sendmail vc-git vc-bzr vc-src vc-sccs vc-svn vc-cvs vc-rcs vc
vc-dispatcher magit-bookmark bookmark company-oddmuse company-keywords
company-etags etags fileloop company-gtags company-dabbrev-code
company-dabbrev company-files company-capf company-cmake company-xcode
company-clang company-semantic company-eclim company-template
company-bbdb hideshow desktop frameset trivial-copy ghelp-eglot
ghelp-helpful ghelp-builtin ghelp cus-edit cus-start cus-load
luna-publish utility pause luna-general-config minibuf-eldef eglot array
jsonrpc ert pp ewoc debug flymake-proc flymake warnings url-util
magit-submodule magit-obsolete magit-blame magit-stash magit-reflog
magit-bisect magit-push magit-pull magit-fetch magit-clone magit-remote
magit-commit magit-sequence magit-notes magit-worktree magit-tag
magit-merge magit-branch magit-reset magit-files magit-refs magit-status
magit magit-repos magit-apply magit-wip magit-log which-func magit-diff
smerge-mode diff-mode magit-core magit-autorevert autorevert filenotify
magit-margin magit-transient magit-process magit-mode transient
git-commit magit-git magit-section magit-utils crm log-edit message rmc
puny rfc822 mml mml-sec epa derived epg epg-config gnus-util rmail
rmail-loaddefs text-property-search mm-decode mm-bodies mm-encode
mail-parse rfc2231 rfc2047 rfc2045 mm-util ietf-drums mail-prsvr
mailabbrev mail-utils gmm-utils mailheader pcvs-util add-log with-editor
async-bytecomp async shell server flyspell ispell outshine
outshine-org-cmds outorg isolate inline expand-region
text-mode-expansions the-org-mode-expansions er-basic-expansions
thingatpt expand-region-core expand-region-custom ws-butler minions
eyebrowse savehist buffer-move windmove hl-todo highlight-parentheses
rainbow-delimiters doom-cyberpunk-theme undo-tree diff
doom-one-light-theme elec-pair winner doom-themes doom-themes-base
windman aggressive-indent find-char ivy-prescient prescient recentf-ext
recentf tree-widget wid-edit which-key general helpful imenu trace
edebug backtrace info-look f dash-functional help-fns radix-tree
elisp-refs s loop dash org-element avl-tree generator org advice
org-macro org-footnote org-pcomplete pcomplete org-list org-faces
org-entities time-date noutline outline org-version ob-emacs-lisp ob
ob-tangle org-src ob-ref ob-lob ob-table ob-keys ob-exp ob-comint
ob-core ob-eval org-compat org-macs org-loaddefs format-spec find-func
cal-menu calendar cal-loaddefs counsel xdg xref project dired
dired-loaddefs compile comint ansi-color swiper cl-extra help-mode ivy
delsel ring colir color ivy-overlay company edmacro kmacro pcase
use-package use-package-ensure use-package-delight use-package-diminish
use-package-bind-key bind-key easy-mmode use-package-core finder-inf
tex-site info cowboy package easymenu browse-url url-handlers url-parse
auth-source cl-seq eieio eieio-core cl-macs eieio-loaddefs
password-cache json subr-x map url-vars cl-loaddefs cl-lib lunary
lunary-ui luna-f rx seq byte-opt gv bytecomp byte-compile cconv tooltip
eldoc electric uniquify ediff-hook vc-hooks lisp-float-type mwheel
term/ns-win ns-win ucs-normalize mule-util term/common-win tool-bar dnd
fontset image regexp-opt fringe tabulated-list replace newcomment
text-mode elisp-mode lisp-mode prog-mode register page tab-bar menu-bar
rfn-eshadow isearch timer select scroll-bar mouse jit-lock font-lock
syntax facemenu font-core term/tty-colors frame minibuffer cl-generic
cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao
korean japanese eucjp-ms cp51932 hebrew greek romanian slovak czech
european ethiopic indian cyrillic chinese composite charscript charprop
case-table epa-hook jka-cmpr-hook help simple abbrev obarray
cl-preloaded nadvice loaddefs button faces cus-face macroexp files
text-properties overlay sha1 md5 base64 format env code-pages mule
custom widget hashtable-print-readable backquote threads kqueue cocoa ns
lcms2 multi-tty make-network-process emacs)

Memory information:
((conses 16 198008 22858)
(symbols 48 9376 47)
(strings 32 38332 2464)
(string-bytes 1 1117094)
(vectors 16 24687)
(vector-slots 8 290292 27848)
(floats 8 516 434)
(intervals 56 14668 1334)
(buffers 1000 28))

--Apple-Mail=_D6E2388E-299D-4A04-B073-051589D1C5C9--




Acknowledgement sent to Yuan Fu <casouri@HIDDEN>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs@HIDDEN. Full text available.
Report forwarded to bug-gnu-emacs@HIDDEN:
bug#39181; Package emacs. Full text available.
Please note: This is a static page, with minimal formatting, updated once a day.
Click here to see this page with the latest information and nicer formatting.
Last modified: Sat, 18 Jan 2020 21:00:01 UTC

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