From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.ciao.gmane.io!not-for-mail From: Yuan Fu Newsgroups: gmane.emacs.bugs Subject: bug#39181: 27.0.50; [PATCH] Allow users to store & restore gdb-mi layout Date: Sat, 15 Feb 2020 15:37:43 -0500 Message-ID: <06950D5B-902C-49C9-81B2-9989FB35F0DB@gmail.com> References: <55EA8238-880A-420D-A880-CD33B7E1DA85@gmail.com> <83lfpokk63.fsf@gnu.org> <27BC0F04-C81E-4D46-A84C-B61AAE700F59@gmail.com> <499CD0CF-DA9D-4706-9F8D-6DF6CFE752BE@gmail.com> <83ftfcnug9.fsf@gnu.org> <8ec96fa1-4042-f4e0-430e-a4e6779fbb56@gmx.at> <835zg8noep.fsf@gnu.org> Mime-Version: 1.0 (Mac OS X Mail 13.0 \(3608.60.0.2.5\)) Content-Type: multipart/alternative; boundary="Apple-Mail=_8B04DA89-86D9-4725-8651-A5D76013C459" Injection-Info: ciao.gmane.io; posting-host="ciao.gmane.io:159.69.161.202"; logging-data="46174"; mail-complaints-to="usenet@ciao.gmane.io" Cc: 39181@debbugs.gnu.org To: Eli Zaretskii Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Sat Feb 15 21:38:34 2020 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 1j34Cw-000Bvc-Rm for geb-bug-gnu-emacs@m.gmane-mx.org; Sat, 15 Feb 2020 21:38:34 +0100 Original-Received: from localhost ([::1]:54404 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1j34Cv-0004I7-Sr for geb-bug-gnu-emacs@m.gmane-mx.org; Sat, 15 Feb 2020 15:38:33 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:44511) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1j34CR-000491-Cv for bug-gnu-emacs@gnu.org; Sat, 15 Feb 2020 15:38:04 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1j34CQ-0002rP-93 for bug-gnu-emacs@gnu.org; Sat, 15 Feb 2020 15:38:03 -0500 Original-Received: from debbugs.gnu.org ([209.51.188.43]:58677) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1j34CQ-0002r9-5C for bug-gnu-emacs@gnu.org; Sat, 15 Feb 2020 15:38:02 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1j34CQ-0004Vx-2Z for bug-gnu-emacs@gnu.org; Sat, 15 Feb 2020 15:38:02 -0500 X-Loop: help-debbugs@gnu.org Resent-From: Yuan Fu Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 15 Feb 2020 20:38:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 39181 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch Original-Received: via spool by 39181-submit@debbugs.gnu.org id=B39181.158179907517341 (code B ref 39181); Sat, 15 Feb 2020 20:38:02 +0000 Original-Received: (at 39181) by debbugs.gnu.org; 15 Feb 2020 20:37:55 +0000 Original-Received: from localhost ([127.0.0.1]:36417 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1j34CI-0004Vd-EC for submit@debbugs.gnu.org; Sat, 15 Feb 2020 15:37:54 -0500 Original-Received: from mail-qt1-f175.google.com ([209.85.160.175]:45831) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1j34CG-0004VP-Hg for 39181@debbugs.gnu.org; Sat, 15 Feb 2020 15:37:53 -0500 Original-Received: by mail-qt1-f175.google.com with SMTP id d9so9408853qte.12 for <39181@debbugs.gnu.org>; Sat, 15 Feb 2020 12:37:52 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:message-id:mime-version:subject:date:in-reply-to:cc:to :references; bh=xA8KaycL/NOuRerN3kP8rWH81G81KWzRZSebx0a31ZU=; b=VUTVeVl6RggTFDpFlKQAB48fdCkS6F+X324lJWFjAihTYsX0xq92EHdm/TURZzziAM BP6Y2q9RH8nR5LrkefiYq+aKHdU8+S5xh7Y1Jr2bNzozmB/aGk3TqKNgp/fd42rWVF03 QM1gQpUCawguge6vPgoOPzEbomdcIcJwIzk1p8tyuvWRB9RMPbSyhpH/TGovIZbxC5ys vWEMJvUp4NiGj+Lf7HtSW2L/hO19Sq37g/e/lyYdH4LJFNxIq5tVa40h1yxfWpwRIZZ4 zx++XpCIcPx6J0PRsk3ayAncaDwMhIUiB0qtWuqjcpmrHke5y7WiQzeo5fcIbMfhaugO 0VhA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:message-id:mime-version:subject:date :in-reply-to:cc:to:references; bh=xA8KaycL/NOuRerN3kP8rWH81G81KWzRZSebx0a31ZU=; b=D1m3oKDBREhCt2+nzKguIrVMEq14dtCekDwZDaTgGArB3I33yGfCUl9jniFp5x0Iov ifA3+TBqViYsmaFHlsa6bWRgdUzZA+vujYa9KxwJ58Ckhq43nMRxBQ9V6qCTcdV4L7QE fU6QggyDZKOSj/j1OZOf20ptmrppHoc64nrWqsTYLdtNo40D2O3QzxBZ56iT2JM5UkUU n7iw4dhbFpA9aVubI1V1yQ0JaA5OksvbagsNZSL4PuHX0ub9PiTO7/J3MiyCba+KIHZe VtxkGXm2+crFo0aQy8fY+iNNdg2/iYMNvts5c9VxZreChYUajx8EiJ3OL+TnW6dtnN/+ +Bug== X-Gm-Message-State: APjAAAVjS2DJancksAaNgqVYkAvfuZ5Hsc5xfTCBImw5UeLdn8QtOApS QPFVs4DF5Cscb7fjTJbl4ls= X-Google-Smtp-Source: APXvYqxeMgCVbivrRzVCxE5P7JneJ6igoSsfJ3X6QxrMqRSK9sqCEpexQOZzlTJiCm1aU17JuXIuyA== X-Received: by 2002:ac8:1c1d:: with SMTP id a29mr7622413qtk.183.1581799065590; Sat, 15 Feb 2020 12:37:45 -0800 (PST) Original-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 c25sm6004282qkc.12.2020.02.15.12.37.44 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 15 Feb 2020 12:37:45 -0800 (PST) In-Reply-To: <835zg8noep.fsf@gnu.org> X-Mailer: Apple Mail (2.3608.60.0.2.5) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 209.51.188.43 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:176096 Archived-At: --Apple-Mail=_8B04DA89-86D9-4725-8651-A5D76013C459 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=us-ascii > On Feb 15, 2020, at 5:19 AM, Eli Zaretskii wrote: >=20 >> Cc: 39181@debbugs.gnu.org >> From: martin rudalics >> Date: Sat, 15 Feb 2020 10:55:34 +0100 >>=20 >>> Martin, any comments? >>=20 >> IMHO "restoring the previous window layout when gdb quits" should be >> opt-in (or at least opt-out). Maybe it also should restore the = layout >> only when 'gdb-many-windows' is non-nil, so we'd have the three = option >> values nil, t, and if-gdb-many-windows (in a menu entry). >=20 > I had the same thoughts myself, and I agree on both counts. I agree. I made it into a custom variable with choices, is that what you = mean by menu entry? Yuan --Apple-Mail=_8B04DA89-86D9-4725-8651-A5D76013C459 Content-Type: multipart/mixed; boundary="Apple-Mail=_22047EB3-EA3C-4CFE-9550-C07767C89CD6" --Apple-Mail=_22047EB3-EA3C-4CFE-9550-C07767C89CD6 Content-Transfer-Encoding: quoted-printable Content-Type: text/html; charset=us-ascii

On Feb 15, 2020, at 5:19 AM, Eli Zaretskii <eliz@gnu.org> = wrote:

Cc: 39181@debbugs.gnu.org
From: martin rudalics = <rudalics@gmx.at>
Date: Sat, 15 Feb 2020 = 10:55:34 +0100

Martin, any comments?

IMHO "restoring the previous window layout when gdb quits" = should be
opt-in (or at least opt-out).  Maybe it = also should restore the layout
only when = 'gdb-many-windows' is non-nil, so we'd have the three option
values nil, t, and if-gdb-many-windows (in a menu entry).

I had the same thoughts myself, and I agree on both = counts.

I = agree. I made it into a custom variable with choices, is that what you = mean by menu entry?

Yuan

= --Apple-Mail=_22047EB3-EA3C-4CFE-9550-C07767C89CD6 Content-Disposition: attachment; filename=restore-after-quit-new.patch Content-Type: application/octet-stream; x-unix-mode=0700; name="restore-after-quit-new.patch" Content-Transfer-Encoding: quoted-printable =46rom=2003ab125435ca145ca81707e09524c64d63c80183=20Mon=20Sep=2017=20= 00:00:00=202001=0AFrom:=20Yuan=20Fu=20=0ADate:=20Sat,=20= 15=20Feb=202020=2015:15:20=20-0500=0ASubject:=20[PATCH]=20Restore=20= previous=20window=20layout=20when=20gdb=20quits=0A=0AMake=20gdb=20= preserve=20the=20window=20configuration=20that=20the=20user=20had=20= before=0Astarting=20gdb.=0A*=20lisp/progmodes/gdb-mi.el=20= (gdb--window-configuration-before):=20New=0Avariable.=0A= (gdb-restore-window-layout-after-quit):=20New=20custom=20variable.=0A= (gdb):=20Save=20configuration=20on=20startup.=0A(gdb-reset):=20Restore=20= window=20configuration=20after=20quit.=0A---=0A=20= lisp/progmodes/gdb-mi.el=20|=2043=20= +++++++++++++++++++++++++++++++++++++++-=0A=201=20file=20changed,=2042=20= insertions(+),=201=20deletion(-)=0A=0Adiff=20--git=20= a/lisp/progmodes/gdb-mi.el=20b/lisp/progmodes/gdb-mi.el=0Aindex=20= da5a2a503a..313fc58dce=20100644=0A---=20a/lisp/progmodes/gdb-mi.el=0A+++=20= b/lisp/progmodes/gdb-mi.el=0A@@=20-253,6=20+253,25=20@@=20= gdb-output-sink=0A=20=09=20=20=20=20=20=20=20disposition=20of=20output=20= generated=20by=20commands=20that=0A=20=09=20=20=20=20=20=20=20gdb=20mode=20= sends=20to=20gdb=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+(defcustom=20= gdb-restore-window-layout-after-quit=20nil=0A+=20=20"Specify=20whether=20= to=20restore=20the=20window=20layout=20the=20user=20had=20before=20gdb=20= starts.=0A+=0A+Possible=20values=20are:=0A+=20=20=20=20t=20--=20Always=20= restore.=0A+=20=20=20=20nil=20--=20Don't=20restore.=0A+=20=20=20=20= 'if-show-main=20--=20Restore=20only=20if=20`gdb-show-main'=20is=20= non-nil=0A+=20=20=20=20'if-many-windows=20--=20Restore=20only=20if=20= variable=20`gdb-many-windows'=20is=20non-nil."=0A+=20=20:type=20'(choice=0A= +=20=20=20=20=20=20=20=20=20=20(const=20:tag=20"Always=20restore"=20t)=0A= +=20=20=20=20=20=20=20=20=20=20(const=20:tag=20"Don't=20restore"=20nil)=0A= +=20=20=20=20=20=20=20=20=20=20(const=20:tag=20"Depends=20on=20= `gdb-show-main'"=20'if-gdb-show-main)=0A+=20=20=20=20=20=20=20=20=20=20= (const=20:tag=20"Depends=20on=20`gdb-many-windows'"=20= 'if-gdb-many-windows))=0A+=20=20:group=20'gdb=0A+=20=20:version=20= "28.1")=0A+=0A=20(defcustom=20gdb-discard-unordered-replies=20t=0A=20=20=20= "Non-nil=20means=20discard=20any=20out-of-order=20GDB=20replies.=0A=20= This=20protects=20against=20lost=20GDB=20replies,=20assuming=20that=20= GDB=20always=0A@@=20-761,6=20+780,16=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=20in=20text=20command=20= mode"))=0A+=0A+=20=20;;=20Save=20window=20configuration=20before=20= starting=20gdb=20so=20we=20can=20restore=0A+=20=20;;=20it=20after=20gdb=20= quits.=0A+=20=20(when=20(or=20(eq=20gdb-restore-window-layout-after-quit=20= t)=0A+=20=20=20=20=20=20=20=20=20=20=20=20(and=20(eq=20= gdb-restore-window-layout-after-quit=20'if-show-main)=0A+=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20gdb-show-main)=0A+=20=20=20=20=20=20=20=20= =20=20=20=20(and=20(eq=20gdb-restore-window-layout-after-quit=20= 'if-many-windows)=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= gdb-many-windows))=0A+=20=20=20=20(setq=20= gdb--window-configuration-before=20(window-state-get)))=0A+=0A=20=20=20= ;;=0A=20=20=20(gud-common-init=20command-line=20nil=20= 'gud-gdbmi-marker-filter)=0A=20=0A@@=20-4705,7=20+4734,19=20@@=20= gdb-reset=0A=20=20=20(if=20(boundp=20'speedbar-frame)=20= (speedbar-timer-fn))=0A=20=20=20(setq=20gud-running=20nil)=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(when=20(or=20(eq=20= gdb-restore-window-layout-after-quit=20t)=0A+=20=20=20=20=20=20=20=20=20=20= =20=20(and=20(eq=20gdb-restore-window-layout-after-quit=20'if-show-main)=0A= +=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20gdb-show-main)=0A+=20= =20=20=20=20=20=20=20=20=20=20=20(and=20(eq=20= gdb-restore-window-layout-after-quit=20'if-many-windows)=0A+=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20gdb-many-windows))=0A+=20=20=20=20= (when=20gdb--window-configuration-before=0A+=20=20=20=20=20=20= (window-state-put=20gdb--window-configuration-before)=0A+=20=20=20=20=20=20= ;;=20This=20way=20we=20don't=20accidentally=20restore=20an=20outdated=20= window=0A+=20=20=20=20=20=20;;=20configuration.=20=20Maybe=20the=20user=20= changed=20the=20configuration=0A+=20=20=20=20=20=20;;=20after=20starting=20= GDB,=20who=20knows.=0A+=20=20=20=20=20=20(setq=20= gdb--window-configuration-before=20nil))))=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.25.0=0A=0A= --Apple-Mail=_22047EB3-EA3C-4CFE-9550-C07767C89CD6 Content-Transfer-Encoding: 7bit Content-Type: text/html; charset=us-ascii
--Apple-Mail=_22047EB3-EA3C-4CFE-9550-C07767C89CD6-- --Apple-Mail=_8B04DA89-86D9-4725-8651-A5D76013C459--