From debbugs-submit-bounces@debbugs.gnu.org Sat Mar 28 00:03:32 2020 Received: (at submit) by debbugs.gnu.org; 28 Mar 2020 04:03:32 +0000 Received: from localhost ([127.0.0.1]:33589 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jI2h1-0006nj-TP for submit@debbugs.gnu.org; Sat, 28 Mar 2020 00:03:32 -0400 Received: from lists.gnu.org ([209.51.188.17]:32808) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jI2gz-0006nY-Np for submit@debbugs.gnu.org; Sat, 28 Mar 2020 00:03:30 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:33039) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jI2gx-0001gp-Gv for bug-gnu-emacs@gnu.org; Sat, 28 Mar 2020 00:03:29 -0400 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 ) id 1jI2gv-00020d-Cb for bug-gnu-emacs@gnu.org; Sat, 28 Mar 2020 00:03:27 -0400 Received: from mail-qk1-x736.google.com ([2607:f8b0:4864:20::736]:36590) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1jI2gu-0001xe-AC for bug-gnu-emacs@gnu.org; Sat, 28 Mar 2020 00:03:24 -0400 Received: by mail-qk1-x736.google.com with SMTP id d11so13183295qko.3 for ; Fri, 27 Mar 2020 21:03:24 -0700 (PDT) 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=0X/VhtmWmzlwBrzMvrh91++LpelDXSMdA+uRde6NpSY=; b=ewsvFAx5F0aMSkEBd9BsGhzNA6LHrHjLsnpFXUTO0LxVvSNBi/v0wgBq9miBvyYGFB dTDy8EwJ09TvyF+lqQPMv7SHLGNZLAB45zKmwX5L7PGB8eb0ArWT2bCzbReMWetE2xdp VCSJEsGSXHvBhpei8kpUNTtgwINCl3WUrvkto020utsWZYzxCzewRvhFloocqckGxkQX /RQh8eC47rShkFlg6NX+w7N7t4GkZta5IkBCVi/+la5YTrDOY78XKrUOo10tx4bJJra4 By6FAoNroT2EX/ru+/wGyVlq9s2mlElhOpEkLqcylwX5448ooQeBCHE4bqUORZsWX1CW VJug== 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=0X/VhtmWmzlwBrzMvrh91++LpelDXSMdA+uRde6NpSY=; b=hPAQaH/+2tULh2POjOAA7gB0IL1DKLonPBaR+0SLEoRBQPZluUYaz1QWibzwMywC3G lP9ZvCm4gv6fZGEzPS8vEgxemi2xBtODXrG3AelRUEWApPuVWgOgSiaMtYp5rz2QfXPg kmNFC4nPmrvVzZGbcWbFJcyztVh0+mESLJ2RDsHA1Oh/xoXGoZVtBor28KYyybKzJG3i EhmeUCUCXouv1m8xZgK/clxsZ7sq2dfBtKgQB4Hsv18fyl89lUW9OStgaBejYQ7s3nAO VTzDYxOv0khKOuy9xjNHEwDAtWSnQJhiXA0d8MCRgSWbxEdYYe3xrN9YDk62BUxu1mKn gQOg== X-Gm-Message-State: ANhLgQ2Ov6BkOlWRrhfDg8P1tTJetDcxqUT66xT8eHLt5asAFEdS2Sss 7AxY4+0FxFbx0QpXrdRyqGzFf1xJr76p7g== X-Google-Smtp-Source: ADFU+vtyzMs6MSJ5geGBMwi4YcIn0zUqw9+59I1Qxku1pfaXTTRrHwz/s7ZsaXVo8qjlPUL/MCDW1w== X-Received: by 2002:a05:620a:2f7:: with SMTP id a23mr2281517qko.303.1585368203162; Fri, 27 Mar 2020 21:03:23 -0700 (PDT) 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 f127sm5223255qkd.74.2020.03.27.21.03.22 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 27 Mar 2020 21:03:22 -0700 (PDT) From: Yuan Fu Content-Type: multipart/mixed; boundary="Apple-Mail=_D367402C-923B-4C93-961D-BAB537DC2993" Mime-Version: 1.0 (Mac OS X Mail 13.4 \(3608.80.23.2.2\)) Subject: 27.0.60; [PATCH] Unify and improve gdb-mi source window display Message-Id: <63AC5BC7-CFFC-42DF-AD76-3414B631A6DE@gmail.com> Date: Sat, 28 Mar 2020 00:03:21 -0400 To: Bug Report Emacs X-Mailer: Apple Mail (2.3608.80.23.2.2) X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:4864:20::736 X-Spam-Score: 0.3 (/) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) --Apple-Mail=_D367402C-923B-4C93-961D-BAB537DC2993 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=utf-8 Before this change, stepping and other gdb command handlers use = 'gud-display-line=E2=80=99 and 'gdb-goto-breakpoint' uses = 'gdb-display-source-buffer'. Now whenever gdb-mi code tries to open a = source buffer, 'gdb-display-source-buffer=E2=80=99 is used. Also, we = simplify the logic in 'gdb-display-source-buffer=E2=80=99 and add a = feature to limit the maximum number of source windows. =46rom a user=E2=80=99s perspective, this change solves two problems: 1. = The behavior difference between jumping to break point and stepping (and = other command) 2. Gdb-mi opening more windows than I wanted for = displaying source files. Yuan --Apple-Mail=_D367402C-923B-4C93-961D-BAB537DC2993 Content-Disposition: attachment; filename=source-window.patch Content-Type: application/octet-stream; x-unix-mode=0700; name="source-window.patch" Content-Transfer-Encoding: quoted-printable =46rom=20ad34237cdc7c06e7edfcb593e8c732c6a040a7cb=20Mon=20Sep=2017=20= 00:00:00=202001=0AFrom:=20Yuan=20Fu=20=0ADate:=20Tue,=20= 21=20Jan=202020=2016:23:57=20-0500=0ASubject:=20[PATCH]=20Unify=20and=20= improve=20gdb-mi=20source=20buffer=20display=20logic=0A=0AUnify=20the=20= behavior=20of=20source=20buffer=20display=20for=20gdb-mi.=20=20Before=20= this=0Achange,=20stepping=20and=20other=20gdb=20command=20handlers=20use=20= 'gud-display-line'=0Aand=20'gdb-goto-breakpoint'=20uses=20= 'gdb-display-source-buffer'.=20=20Now=20whenever=0Agdb-mi=20code=20tries=20= to=20open=20a=20source=20buffer,=20'gdb-display-source-buffer'=0Ais=20= used.=20=20Also,=20we=20simplify=20the=20logic=20in=20= 'gdb-display-source-buffer'=20and=0Aadd=20a=20feature=20to=20limit=20the=20= maximum=20number=20of=20source=20windows.=0A=0A*=20= lisp/progmodes/gdb-mi.el=20(gdb-source-window):=20Remove=20variable,=0A= changed=20to=20'gdb-source-window-list'.=0A(gdb-source-window-list,=20= gdb-max-source-window-count):=20New=20variable.=0A= (gdb-display-source-buffer-action,=0Agdb-max-source-window-count):=20New=20= custom=20variable.=0A(gdb-init-1,=20gdb-setup-windows,=20= gdb-restore-windows):=0AUse=20'gdb-source-window'=20rather=20than=20= 'gdb-source-window-list'.=0A(gdb-display-source-buffer):=20Use=20new=20= logic.=0A(gdb-goto-breakpoint):=20Remove=20'display-buffer'=0Aand=20= don't=20set=20'gdb-source-buffer'=20anymore.=0A*=20lisp/progmodes/gud.el=20= (gud-display-line):=20Remove=20'display-buffer'=0Aand=20don't=20set=20= 'gdb-source-buffer'=20anymore.=0A---=0A=20lisp/progmodes/gdb-mi.el=20|=20= 65=20+++++++++++++++++++++++++++++-----------=0A=20lisp/progmodes/gud.el=20= =20=20=20|=2026=20++++++++--------=0A=202=20files=20changed,=2060=20= insertions(+),=2031=20deletions(-)=0A=0Adiff=20--git=20= a/lisp/progmodes/gdb-mi.el=20b/lisp/progmodes/gdb-mi.el=0Aindex=20= e4233dacaf..5f31a22f22=20100644=0A---=20a/lisp/progmodes/gdb-mi.el=0A+++=20= b/lisp/progmodes/gdb-mi.el=0A@@=20-211,7=20+211,9=20@@=20= gdb-handler-list=0A=20(defvar=20gdb-source-file-list=20nil=0A=20=20=20= "List=20of=20source=20files=20for=20the=20current=20executable.")=0A=20= (defvar=20gdb-first-done-or-error=20t)=0A-(defvar=20gdb-source-window=20= nil)=0A+(defvar=20gdb-source-window-list=20nil=0A+=20=20"List=20of=20= windows=20used=20for=20displaying=20source=20files.=0A+Sorted=20in=20= most=20recently=20visited=20first=20order.")=0A=20(defvar=20= gdb-inferior-status=20nil)=0A=20(defvar=20gdb-continuation=20nil)=0A=20= (defvar=20gdb-supports-non-stop=20nil)=0A@@=20-589,6=20+591,21=20@@=20= gdb-show-main=0A=20=20=20:group=20'gdb=0A=20=20=20:version=20"22.1")=0A=20= =0A+(defcustom=20gdb-display-source-buffer-action=20nil=0A+=20=20= "`display-buffer'=20action=20used=20when=20GDB=20displaying=20a=20source=20= buffer."=0A+=20=20:type=20'list=0A+=20=20:group=20'gdb=0A+=20=20:version=20= "28.1")=0A+=0A+(defcustom=20gdb-max-source-window-count=201=0A+=20=20= "Maximum=20number=20of=20source=20windows=20to=20use.=0A+Until=20there=20= are=20such=20number=20of=20source=20windows=20on=20screen,=20GDB=0A= +tries=20to=20open=20a=20new=20window=20when=20visiting=20a=20new=20= source=20file;=20if=0A+there=20are,=20GDB=20will=20start=20to=20reuse=20= existing=20source=20windows."=0A+=20=20:type=20'number=0A+=20=20:grou=20= 'gdb=0A+=20=20:version=20"28.1")=0A+=0A=20(defvar=20gdbmi-debug-mode=20= nil=0A=20=20=20"When=20non-nil,=20print=20the=20messages=20sent/received=20= from=20GDB/MI=20in=20*Messages*.")=0A=20=0A@@=20-922,7=20+939,7=20@@=20= gdb-init-1=0A=20=09gdb-first-done-or-error=20t=0A=20=09= gdb-buffer-fringe-width=20(car=20(window-fringes))=0A=20=09gdb-debug-log=20= nil=0A-=09gdb-source-window=20nil=0A+=09gdb-source-window-list=20nil=0A=20= =09gdb-inferior-status=20nil=0A=20=09gdb-continuation=20nil=0A=20=20=20=20= =20=20=20=20=20gdb-buf-publisher=20'()=0A@@=20-2002,17=20+2019,31=20@@=20= gdb-show-stop-p=0A=20;;=20GDB=20frame=20(after=20up,=20down=20etc).=20=20= If=20no=20GDB=20frame=20is=20visible=20but=20the=20last=0A=20;;=20= visited=20breakpoint=20is,=20use=20that=20window.=0A=20(defun=20= gdb-display-source-buffer=20(buffer)=0A-=20=20(let*=20((last-window=20= (if=20gud-last-last-frame=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(get-buffer-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= (gud-find-file=20(car=20gud-last-last-frame)))))=0A-=09=20(source-window=20= (or=20last-window=0A-=09=09=09=20=20=20=20(if=20(and=20gdb-source-window=0A= -=09=09=09=09=20=20=20=20=20(window-live-p=20gdb-source-window))=0A-=09=09= =09=09gdb-source-window))))=0A-=20=20=20=20(when=20source-window=0A-=20=20= =20=20=20=20(setq=20gdb-source-window=20source-window)=0A-=20=20=20=20=20= =20(set-window-buffer=20source-window=20buffer))=0A-=20=20=20=20= source-window))=0A+=20=20"Find=20a=20window=20to=20display=20BUFFER.=0A= +Always=20find=20a=20window=20to=20display=20buffer,=20and=20return=20= it."=0A+=20=20;;=20This=20function=20doesn't=20take=20care=20of=20= setting=20up=20source=20window(s)=20at=20startup,=0A+=20=20;;=20that's=20= handled=20by=20`gdb-setup-windows'=20(if=20`gdb-many-windows'=20is=20= non-nil).=0A+=20=20;;=20If=20`buffer'=20is=20already=20shown=20in=20a=20= window,=20use=20that=20window.=0A+=20=20(or=20(get-buffer-window=20= buffer)=0A+=20=20=20=20=20=20(progn=0A+=20=20=20=20=20=20=20=20;;=20= First,=20update=20the=20window=20list.=0A+=20=20=20=20=20=20=20=20(setq=20= gdb-source-window-list=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20= (cl-remove-if-not=20#'window-live-p=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= gdb-source-window-list))=0A+=20=20=20=20=20=20=20=20;;=20Should=20we=20= create=20a=20new=20window=20or=20reuse=20one?=0A+=20=20=20=20=20=20=20=20= (if=20(>=20gdb-max-source-window-count=0A+=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20(length=20gdb-source-window-list))=0A+=20=20=20=20=20=20=20=20= =20=20=20=20;;=20Create=20a=20new=20window,=20push=20it=20to=20window=20= list=20and=20return=20it.=0A+=20=20=20=20=20=20=20=20=20=20=20=20(car=20= (push=20(display-buffer=20buffer=20gdb-display-source-buffer-action)=0A+=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= gdb-source-window-list))=0A+=20=20=20=20=20=20=20=20=20=20;;=20Reuse=20a=20= window,=20we=20use=20the=20oldest=20window=20and=20put=20that=20to=0A+=20= =20=20=20=20=20=20=20=20=20;;=20the=20front=20of=20the=20window=20list.=0A= +=20=20=20=20=20=20=20=20=20=20(let=20((last-win=20(car=20(last=20= gdb-source-window-list)))=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20(rest=20(butlast=20gdb-source-window-list)))=0A+=20=20=20=20=20=20=20=20= =20=20=20=20(set-window-buffer=20last-win=20buffer)=0A+=20=20=20=20=20=20= =20=20=20=20=20=20(setq=20gdb-source-window-list=0A+=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20(cons=20last-win=20rest))=0A+=20=20=20=20= =20=20=20=20=20=20=20=20last-win)))))=0A=20=0A=20=0A=20(defun=20= gdbmi-start-with=20(str=20offset=20match)=0A@@=20-3981,9=20+4012,7=20@@=20= gdb-goto-breakpoint=0A=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20(let*=20= ((buffer=20(find-file-noselect=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(if=20(file-exists-p=20= file)=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=20=20(cdr=20(assoc=20bptno=20= gdb-location-alist)))))=0A-=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20(window=20(or=20(gdb-display-source-buffer=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=20=20(display-buffer=20buffer))))=0A-=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20(setq=20gdb-source-window=20window)=0A+=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20(window=20= (gdb-display-source-buffer=20buffer)))=0A=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20(with-current-buffer=20buffer=0A=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(forward-line=20(1-=20= (string-to-number=20line)))=0A@@=20-4597,7=20+4626,7=20@@=20= gdb-setup-windows=0A=20=20=20=20=20=20=20=20=20=20;;=20Put=20buffer=20= list=20in=20window=20if=20we=0A=20=20=20=20=20=20=20=20=20=20;;=20can't=20= find=20a=20source=20file.=0A=20=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(setq=20gdb-source-window-list=20(list=20= (selected-window)))=0A=20=20=20=20=20(let=20((win4=20= (split-window-right)))=0A=20=20=20=20=20=20=20(gdb-set-window-buffer=0A=20= =20=20=20=20=20=20=20(gdb-get-buffer-create=20'gdb-inferior-io)=20nil=20= win4))=0A@@=20-4639,7=20+4668,7=20@@=20gdb-restore-windows=0A=20=20=20=20= =20=20=20=20=20=20(if=20gud-last-last-frame=0A=20=20=20=20=20=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=20=20=20=20=20(gud-find-file=20gdb-main-file)))=0A-=20=20=20=20= =20=20=20=20(setq=20gdb-source-window=20win)))))=0A+=20=20=20=20=20=20=20= =20(setq=20gdb-source-window-list=20(list=20win))))))=0A=20=0A=20;;=20= Called=20from=20`gud-sentinel'=20in=20gud.el:=0A=20(defun=20gdb-reset=20= ()=0Adiff=20--git=20a/lisp/progmodes/gud.el=20b/lisp/progmodes/gud.el=0A= index=20567f452b93..dda7fd6ef0=20100644=0A---=20a/lisp/progmodes/gud.el=0A= +++=20b/lisp/progmodes/gud.el=0A@@=20-2826,9=20+2826,11=20@@=20= gud-display-line=0A=20=09=20(buffer=0A=20=09=20=20(with-current-buffer=20= gud-comint-buffer=0A=20=09=20=20=20=20(gud-find-file=20true-file)))=0A-=09= =20(window=20(and=20buffer=0A-=09=09=20=20=20=20=20=20(or=20= (get-buffer-window=20buffer)=0A-=09=09=09=20=20(display-buffer=20buffer=20= '(nil=20(inhibit-same-window=20.=20t))))))=0A+=09=20(window=20(when=20= buffer=20(if=20(eq=20gud-minor-mode=20'gdb-mi)=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(gdb-display-source-buffer=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=20;;=20= Gud=20still=20has=20the=20old=20behavior.=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(or=20= (get-buffer-window=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=20=20=20=20=20= (display-buffer=20buffer=20'(nil=20(inhibit-same-window=20.=20t)))))))=0A= =20=09=20(pos))=0A=20=20=20=20=20(when=20buffer=0A=20=20=20=20=20=20=20= (with-current-buffer=20buffer=0A@@=20-2858,9=20+2860,7=20@@=20= gud-display-line=0A=20=09=20=20=20=20=20=20=20(widen)=0A=20=09=20=20=20=20= =20=20=20(goto-char=20pos))))=0A=20=20=20=20=20=20=20(when=20window=0A-=09= (set-window-point=20window=20gud-overlay-arrow-position)=0A-=09(if=20(eq=20= gud-minor-mode=20'gdbmi)=0A-=09=20=20=20=20(setq=20gdb-source-window=20= window))))))=0A+=09(set-window-point=20window=20= gud-overlay-arrow-position)))))=0A=20=0A=20;;=20The=20gud-call=20= function=20must=20do=20the=20right=20thing=20whether=20its=20invoking=0A=20= ;;=20keystroke=20is=20from=20the=20GUD=20buffer=20itself=20(via=20= major-mode=20binding)=0A@@=20-2908,14=20+2908,14=20@@=20= gud-format-command=0A=20=09=20=20(setq=20subst=0A=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20(gud-find-class=0A=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20(if=20insource=0A-=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20(buffer-file-name)=0A-=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20(car=20frame))=0A+=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20(buffer-file-name)=0A+=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20(car=20frame))=0A=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20(if=20insource=0A-=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= (save-restriction=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(widen)=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(count-lines=20(point-min)=20(point))=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(if=20(bolp)=201=200)))=0A-=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20(cdr=20frame)))))=0A+=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20(save-restriction=0A+=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20(widen)=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(count-lines=20= (point-min)=20(point))=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(if=20(bolp)=201=200)))=0A+=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20(cdr=20frame)))))=0A=20=09=20((eq=20= key=20?p)=0A=20=09=20=20(setq=20subst=20(if=20arg=20(int-to-string=20= arg)))))=0A=20=09(setq=20result=20(concat=20result=20(match-string=201=20= str)=20subst)))=0A--=20=0A2.25.1=0A=0A= --Apple-Mail=_D367402C-923B-4C93-961D-BAB537DC2993 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=us-ascii In GNU Emacs 27.0.60 (build 1, x86_64-apple-darwin19.3.0, NS = appkit-1894.30 Version 10.15.3 (Build 19D76)) of 2020-02-25 built on missSilver Repository revision: f27187f963e9e36435b508e29256e048799e0ff2 Repository branch: emacs-27 Windowing system distributor 'Apple', version 10.3.1894 System Description: Mac OS X 10.15.4 Recent messages: Checking 34 files in /Users/yuan/emacs/lisp/emulation... Checking 180 files in /Users/yuan/emacs/lisp/emacs-lisp... Checking 24 files in /Users/yuan/emacs/lisp/cedet... Checking 59 files in /Users/yuan/emacs/lisp/calendar... Checking 87 files in /Users/yuan/emacs/lisp/calc... Checking 113 files in /Users/yuan/emacs/lisp/obsolete... Checking for load-path shadows...done Auto-saving... Buffer *unsent mail to bug-gnu-emacs@gnu.org* modified; kill anyway? (y = or n) y C-c C-c is undefined 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: RSVG GLIB NOTIFY KQUEUE ACL GNUTLS LIBXML2 ZLIB TOOLKIT_SCROLL_BARS XIM 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: Shell-script Minor modes in effect: global-semanticdb-minor-mode: t global-semantic-idle-scheduler-mode: t semantic-mode: t sh-electric-here-document-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 diff-hl-mode: t color-outline-mode: t hi-lock-mode: t desktop-save-mode: t helpful-html-manual-mode: t yas-global-mode: t yas-minor-mode: t form-feed-mode: t minibuffer-electric-default-mode: t flycheck-mode: t flyspell-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 ivy-prescient-mode: t prescient-persist-mode: t recentf-mode: t which-key-mode: t general-override-mode: t outline-minor-mode: t counsel-mode: t ivy-mode: t company-mode: t override-global-mode: t tooltip-mode: t global-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 line-number-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/separedit/cask-bootstrap hides = /Users/yuan/.emacs.d/ranch/comment-edit/cask-bootstrap /Users/yuan/.emacs.d/ranch/esup/esup-child hides = /Users/yuan/.emacs.d/package/esup-20200120.740/esup-child /Users/yuan/.emacs.d/ranch/esup/esup hides = /Users/yuan/.emacs.d/package/esup-20200120.740/esup /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/emacs/lisp/emacs-lisp/faceup Features: (shadow sort mail-extr emacsbug sendmail face-remap rfc1345 quail semantic/tag-write semantic/tag-file semantic/bovine/c hideif semantic/bovine/c-by semantic/lex-spp semantic/bovine/gcc semantic/analyze/refs semantic/db-file data-debug cedet-files semantic/bovine/scm semantic/decorate/include semantic/db-find semantic/db-ref semantic/decorate/mode semantic/decorate pulse semantic/dep semantic/bovine/scm-by semantic/bovine semantic/db-mode semantic/idle semantic/analyze semantic/sort semantic/scope semantic/analyze/fcn semantic/db eieio-base semantic/format ezimage semantic/tag-ls semantic/find semantic/ctxt semantic/util-modes semantic/util semantic semantic/tag semantic/lex semantic/fw mode-local cedet cc-mode-expansions cc-mode cc-fonts cc-guess cc-menus cc-cmds cc-styles cc-align cc-engine cc-vars cc-defs ls-lisp ess-custom apropos sh-script smie executable geiser-mode geiser-xref geiser-compile geiser-debug geiser-gambit geiser-chibi geiser-mit geiser-chez geiser-chicken geiser-racket geiser-guile ghelp-geiser console-buffer geiser geiser-repl geiser-image geiser-company geiser-doc geiser-menu geiser-edit geiser-completion geiser-autodoc geiser-eval geiser-connection tq geiser-syntax geiser-log geiser-popup view geiser-impl geiser-custom geiser-base scheme vc-mtn vc-hg bug-reference magit-patch-changelog magit-patch magit-bookmark 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 magit-core magit-autorevert autorevert magit-margin magit-transient magit-process magit-mode transient git-commit magit-git magit-section magit-utils crm log-edit pcvs-util add-log with-editor async-bytecomp async shell misearch multi-isearch vc-git vc-bzr vc-src vc-sccs vc-svn vc-cvs vc-rcs bookmark server cl-print gnutls mm-archive message rfc822 mml mml-sec epa derived gnus-util rmail rmail-loaddefs text-property-search mailabbrev gmm-utils mailheader mm-decode mm-bodies mm-encode mail-utils network-stream url-http mail-parse rfc2231 rfc2047 rfc2045 mm-util ietf-drums mail-prsvr url-gw nsm rmc puny url-cache url-auth url url-proxy url-privacy url-expand url-methods url-history url-cookie url-domsuf mailcap epg epg-config hideshow diff-hl vc-dir vc vc-dispatcher diff-mode color-outline hi-lock company-oddmuse company-keywords company-etags etags fileloop generator 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 desktop frameset trivial-copy ghelp ghelp-eglot ghelp-helpful ghelp-builtin cus-edit centaur-tabs centaur-tabs-interactive centaur-tabs-functions centaur-tabs-elements powerline powerline-separators powerline-themes cus-start cus-load luna-general-config pause utility transform flywrap yasnippet sly-el-indent sly-cl-indent cl-indent cl all-the-icons all-the-icons-faces data-material data-weathericons data-octicons data-fileicons data-faicons data-alltheicons memoize form-feed minibuf-eldef eglot array filenotify jsonrpc ert pp ewoc debug flymake-proc flymake warnings url-util flycheck 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 ob ob-tangle ob-ref ob-lob ob-table ob-exp org-macro org-footnote org-src ob-comint org-pcomplete pcomplete org-list org-faces org-entities time-date noutline outline org-version ob-emacs-lisp ob-core ob-eval org-table ol org-keys org-compat advice 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 use-package-core finder-inf tex-site proof-site proof-autoloads 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 easy-mmode 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 489882 97798) (symbols 48 40858 45) (strings 32 193314 9271) (string-bytes 1 4564854) (vectors 16 58289) (vector-slots 8 1900639 84204) (floats 8 468 326) (intervals 56 7219 1188) (buffers 1000 40)) --Apple-Mail=_D367402C-923B-4C93-961D-BAB537DC2993-- From debbugs-submit-bounces@debbugs.gnu.org Sun Mar 29 13:27:22 2020 Received: (at 40268) by debbugs.gnu.org; 29 Mar 2020 17:27:22 +0000 Received: from localhost ([127.0.0.1]:59685 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jIbiU-00089z-LO for submit@debbugs.gnu.org; Sun, 29 Mar 2020 13:27:22 -0400 Received: from mail-qk1-f180.google.com ([209.85.222.180]:36398) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jIbiS-00089m-0P for 40268@debbugs.gnu.org; Sun, 29 Mar 2020 13:27:20 -0400 Received: by mail-qk1-f180.google.com with SMTP id d11so16596963qko.3 for <40268@debbugs.gnu.org>; Sun, 29 Mar 2020 10:27:19 -0700 (PDT) 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=pC/u0NoN9+jfOktz0YF3/uWOtrmsn+48/bGaFwRwUT0=; b=HolT2qgRCD2zZR/k0don54UJ0nsZoFzrcAfP8P4Jn34afvcQkbZ5Jj608EztecJjQD uHUZRwY3/Ynem1QqJ6g82UEZ2/srBP0f7vRwsUTjV4Ul8A2IZCuDQ8AdBdA+IA1utC8z qAbo+a8Rr2hsjM+tXx8vLTe2CBcQlEeCmUkYq6GTgmXyq0w/nhB2jbVk4bkwlZ6RFPU3 s0pyIOIhsMBzmkQpQI64porFu37FtrjlnLTjv6zjkpaZdixuRDJUdrdNpdsp/tt4YGEU KSU9bH9O6i9ANzufw6R8RGkualcx9VSUYg6KK5PjpJklatUzOslY88QUcmHJizx8BPfL 5YoQ== 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=pC/u0NoN9+jfOktz0YF3/uWOtrmsn+48/bGaFwRwUT0=; b=sYhfiSvNHFHJdI7in+Rrh3xzcivYO0qi50Ot213bIkbcsyOyafXpmLVbabCWkAROSA 8DMWE7S7F3CyzfCyvp1Ye8S3srliFCm+jXXYRjmlHbujlD+b1mlciQ2AZ3RHSo9RmetF Mann6NHDvaJKnT463KB2rznHAtPaiPk3EhguhbzUCgy80jxKgtShxdytvbFhTmIuPCtD x/PExq7kHY71Ieb1GxoGiPsQ6aI36FJqoimmoC4MS8d0ntrhp7ilN+EkYUHlSJQyodtb dT9HnoHMNKFzjzsR1AMesEde5bk6zhmY/pIX9SETFNWZ6PIAIvNciBOg2OK6BeA9LOWo AWyg== X-Gm-Message-State: ANhLgQ1vM7d5lu2XWGmVH7W1MLzGTKT1TomxFvbbrWjbM0DTLH3lyTTT gsYp+7daz4PPtFcxJckrJ8Y= X-Google-Smtp-Source: ADFU+vsZFSIuz0nGopH2xVV9OO8V7G4L9roLPujjX6dh8VVesgGs5HnGcrGKrwvRMJiUrZl5jCHOlA== X-Received: by 2002:a37:6311:: with SMTP id x17mr8581659qkb.93.1585502834247; Sun, 29 Mar 2020 10:27:14 -0700 (PDT) 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 f14sm6857782qtp.55.2020.03.29.10.27.13 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 29 Mar 2020 10:27:13 -0700 (PDT) From: Yuan Fu Message-Id: Content-Type: multipart/mixed; boundary="Apple-Mail=_8EEA5C3C-3A5E-44FC-893D-64FF9D77E96C" Mime-Version: 1.0 (Mac OS X Mail 13.4 \(3608.80.23.2.2\)) Subject: Re: bug#40268: 27.0.60; [PATCH] Unify and improve gdb-mi source window display Date: Sun, 29 Mar 2020 13:27:12 -0400 In-Reply-To: To: martin rudalics References: <63AC5BC7-CFFC-42DF-AD76-3414B631A6DE@gmail.com> X-Mailer: Apple Mail (2.3608.80.23.2.2) X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 40268 Cc: 40268@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) --Apple-Mail=_8EEA5C3C-3A5E-44FC-893D-64FF9D77E96C Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=utf-8 > On Mar 29, 2020, at 5:01 AM, martin rudalics wrote: >=20 > > =46rom a user=E2=80=99s perspective, this change solves two = problems: 1. The > > behavior difference between jumping to break point and stepping (and > > other command) 2. Gdb-mi opening more windows than I wanted for > > displaying source files. >=20 > The patch doesn't apply here. Searching for >=20 > :group 'gdb > :version "22.1") >=20 > (defvar gdbmi-debug-mode nil > "When non-nil, print the messages sent/received from GDB/MI in = *Messages*.") >=20 >=20 > fails. >=20 > Thanks, martin >=20 Ah, I see. I should have generate this patch against the latest history. = This one should be ok. Yuan --Apple-Mail=_8EEA5C3C-3A5E-44FC-893D-64FF9D77E96C Content-Disposition: attachment; filename=source-window.patch Content-Type: application/octet-stream; x-unix-mode=0700; name="source-window.patch" Content-Transfer-Encoding: quoted-printable =46rom=208fb48ccf1b2f3e03e782c6aed7273ede843bb9d1=20Mon=20Sep=2017=20= 00:00:00=202001=0AFrom:=20Yuan=20Fu=20=0ADate:=20Sun,=20= 29=20Mar=202020=2010:20:53=20-0400=0ASubject:=20[PATCH]=20Unify=20and=20= improve=20gdb-mi=20source=20buffer=20display=20logic=0A=0AUnify=20the=20= behavior=20of=20source=20buffer=20display=20for=20gdb-mi.=20=20Before=20= this=0Achange,=20stepping=20and=20other=20gdb=20command=20handlers=20use=20= 'gud-display-line'=0Aand=20'gdb-goto-breakpoint'=20uses=20= 'gdb-display-source-buffer'.=20=20Now=20whenever=0Agdb-mi=20code=20tries=20= to=20open=20a=20source=20buffer,=20'gdb-display-source-buffer'=0Ais=20= used.=20=20Also,=20we=20simply=20the=20logic=20in=20= 'gdb-display-source-buffer'=20and=0Aadd=20a=20feature=20to=20limit=20the=20= maximum=20number=20of=20source=20windows.=0A=0A*=20= lisp/progmodes/gdb-mi.el=20(gdb-source-window):=20Remove=20variable,=0A= change=20to=20'gdb-source-window-list'.=0A(gdb-source-window-list):=20= New=20variable.=0A(gdb-display-source-buffer-action,=0A= gdb-max-source-window-count):=20New=20custom=20variable.=0A(gdb-init-1,=20= gdb-setup-windows,=20gdb-save-window-configuration,=0A= gdb-load-window-configuration,=20gdb-restore-windows):=20Use=0A= 'gdb-source-window'=20rather=20than=20'gdb-source-window-list'.=0A= (gdb-display-source-buffer):=20Use=20new=20logic.=0A= (gdb-goto-breakpoint):=20Remove=20'display-buffer'=0Aand=20don't=20set=20= 'gdb-source-buffer'=20anymore.=0A*=20lisp/progmodes/gud.el=20= (gud-display-line):=20If=20used=20by=20gdb-mi,=20use=0A= 'gdb-display-source-buffer'=20rather=20than=20'display-buffer'.=20=20= Don't=20set=0A'gdb-source-buffer'=20anymore.=0A---=0A=20= lisp/progmodes/gdb-mi.el=20|=2073=20= +++++++++++++++++++++++++++++-----------=0A=20lisp/progmodes/gud.el=20=20= =20=20|=2012=20+++----=0A=202=20files=20changed,=2059=20insertions(+),=20= 26=20deletions(-)=0A=0Adiff=20--git=20a/lisp/progmodes/gdb-mi.el=20= b/lisp/progmodes/gdb-mi.el=0Aindex=207fb3687391..93012ad18d=20100644=0A= ---=20a/lisp/progmodes/gdb-mi.el=0A+++=20b/lisp/progmodes/gdb-mi.el=0A@@=20= -224,7=20+224,9=20@@=20gdb-handler-list=0A=20(defvar=20= gdb-source-file-list=20nil=0A=20=20=20"List=20of=20source=20files=20for=20= the=20current=20executable.")=0A=20(defvar=20gdb-first-done-or-error=20= t)=0A-(defvar=20gdb-source-window=20nil)=0A+(defvar=20= gdb-source-window-list=20nil=0A+=20=20"List=20of=20windows=20used=20for=20= displaying=20source=20files.=0A+Sorted=20in=20most=20recently=20visited=20= first=20order.")=0A=20(defvar=20gdb-inferior-status=20nil)=0A=20(defvar=20= gdb-continuation=20nil)=0A=20(defvar=20gdb-supports-non-stop=20nil)=0A@@=20= -645,6=20+647,21=20@@=20gdb-default-window-configuration-file=0A=20=20=20= :group=20'gdb=0A=20=20=20:version=20"28.1")=0A=20=0A+(defcustom=20= gdb-display-source-buffer-action=20'(nil=20.=20((inhibit-same-window=20.=20= t)))=0A+=20=20"`display-buffer'=20action=20used=20when=20GDB=20= displaying=20a=20source=20buffer."=0A+=20=20:type=20'list=0A+=20=20= :group=20'gdb=0A+=20=20:version=20"28.1")=0A+=0A+(defcustom=20= gdb-max-source-window-count=201=0A+=20=20"Maximum=20number=20of=20source=20= windows=20to=20use.=0A+Until=20there=20are=20such=20number=20of=20source=20= windows=20on=20screen,=20GDB=0A+tries=20to=20open=20a=20new=20window=20= when=20visiting=20a=20new=20source=20file;=20after=0A+that=20GDB=20= starts=20to=20reuse=20existing=20source=20windows."=0A+=20=20:type=20= 'number=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-984,7=20+1001,7=20@@=20gdb-init-1=0A=20=09= gdb-first-done-or-error=20t=0A=20=09gdb-buffer-fringe-width=20(car=20= (window-fringes))=0A=20=09gdb-debug-log=20nil=0A-=09gdb-source-window=20= nil=0A+=09gdb-source-window-list=20nil=0A=20=09gdb-inferior-status=20nil=0A= =20=09gdb-continuation=20nil=0A=20=20=20=20=20=20=20=20=20= gdb-buf-publisher=20'()=0A@@=20-2069,17=20+2086,35=20@@=20= gdb-show-stop-p=0A=20;;=20GDB=20frame=20(after=20up,=20down=20etc).=20=20= If=20no=20GDB=20frame=20is=20visible=20but=20the=20last=0A=20;;=20= visited=20breakpoint=20is,=20use=20that=20window.=0A=20(defun=20= gdb-display-source-buffer=20(buffer)=0A-=20=20(let*=20((last-window=20= (if=20gud-last-last-frame=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(get-buffer-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= (gud-find-file=20(car=20gud-last-last-frame)))))=0A-=09=20(source-window=20= (or=20last-window=0A-=09=09=09=20=20=20=20(if=20(and=20gdb-source-window=0A= -=09=09=09=09=20=20=20=20=20(window-live-p=20gdb-source-window))=0A-=09=09= =09=09gdb-source-window))))=0A-=20=20=20=20(when=20source-window=0A-=20=20= =20=20=20=20(setq=20gdb-source-window=20source-window)=0A-=20=20=20=20=20= =20(set-window-buffer=20source-window=20buffer))=0A-=20=20=20=20= source-window))=0A+=20=20"Find=20a=20window=20to=20display=20BUFFER.=0A= +Always=20find=20a=20window=20to=20display=20buffer,=20and=20return=20= it."=0A+=20=20;;=20This=20function=20doesn't=20take=20care=20of=20= setting=20up=20source=20window(s)=20at=20startup,=0A+=20=20;;=20that's=20= handled=20by=20`gdb-setup-windows'=20(if=20`gdb-many-windows'=20is=20= non-nil).=0A+=20=20;;=20If=20`buffer'=20is=20already=20shown=20in=20a=20= window,=20use=20that=20window.=0A+=20=20(or=20(get-buffer-window=20= buffer)=0A+=20=20=20=20=20=20(progn=0A+=20=20=20=20=20=20=20=20;;=20= First,=20update=20the=20window=20list.=0A+=20=20=20=20=20=20=20=20(setq=20= gdb-source-window-list=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20= (cl-remove-duplicates=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= (cl-remove-if-not=20(lambda=20(win)=20(and=20(window-live-p=20win)=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=20=20=20=20=20=20= =20(equal=20(window-frame=20win)=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=20=20=20=20=20=20=20=20=20=20=20=20=20=20= (selected-frame))))=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=20gdb-source-window-list)=0A= +=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20:test=20#'equal))=0A+=20=20= =20=20=20=20=20=20;;=20Should=20we=20create=20a=20new=20window=20or=20= reuse=20one?=0A+=20=20=20=20=20=20=20=20(if=20(>=20= gdb-max-source-window-count=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20(length=20gdb-source-window-list))=0A+=20=20=20=20=20=20=20=20=20=20=20= =20;;=20Create=20a=20new=20window,=20push=20it=20to=20window=20list=20= and=20return=20it.=0A+=20=20=20=20=20=20=20=20=20=20=20=20(car=20(push=20= (display-buffer=20buffer=20gdb-display-source-buffer-action)=0A+=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= gdb-source-window-list))=0A+=20=20=20=20=20=20=20=20=20=20;;=20Reuse=20a=20= window,=20we=20use=20the=20oldest=20window=20and=20put=20that=20to=0A+=20= =20=20=20=20=20=20=20=20=20;;=20the=20front=20of=20the=20window=20list.=0A= +=20=20=20=20=20=20=20=20=20=20(let=20((last-win=20(car=20(last=20= gdb-source-window-list)))=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20(rest=20(butlast=20gdb-source-window-list)))=0A+=20=20=20=20=20=20=20=20= =20=20=20=20(set-window-buffer=20last-win=20buffer)=0A+=20=20=20=20=20=20= =20=20=20=20=20=20(setq=20gdb-source-window-list=0A+=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20(cons=20last-win=20rest))=0A+=20=20=20=20= =20=20=20=20=20=20=20=20last-win)))))=0A=20=0A=20=0A=20(defun=20= gdbmi-start-with=20(str=20offset=20match)=0A@@=20-4064,9=20+4099,7=20@@=20= gdb-goto-breakpoint=0A=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20(let*=20= ((buffer=20(find-file-noselect=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(if=20(file-exists-p=20= file)=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=20=20(cdr=20(assoc=20bptno=20= gdb-location-alist)))))=0A-=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20(window=20(or=20(gdb-display-source-buffer=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=20=20(display-buffer=20buffer))))=0A-=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20(setq=20gdb-source-window=20window)=0A+=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20(window=20= (gdb-display-source-buffer=20buffer)))=0A=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20(with-current-buffer=20buffer=0A=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(forward-line=20(1-=20= (string-to-number=20line)))=0A@@=20-4715,7=20+4748,7=20@@=20= gdb-setup-windows=0A=20=20=20=20=20=20=20(select-window=20win2)=0A=20=20=20= =20=20=20=20(set-window-buffer=20win2=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(list-buffers-noselect)))=0A-=20=20=20=20=20=20= (setq=20gdb-source-window=20(selected-window))=0A+=20=20=20=20=20=20= (setq=20gdb-source-window-list=20(list=20(selected-window)))=0A=20=20=20=20= =20=20=20(let=20((win4=20(split-window-right)))=0A=20=20=20=20=20=20=20=20= =20(gdb-set-window-buffer=0A=20=20=20=20=20=20=20=20=20=20= (gdb-get-buffer-create=20'gdb-inferior-io)=20nil=20win4))=0A@@=20-4791,7=20= +4824,7=20@@=20gdb-save-window-configuration=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(error=20= "Unrecognized=20gdb=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=20;;=20Command=20= buffer.=0A=20=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)=20= gdb-source-window)=20'source)))=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20((member=20(selected-window)=20= gdb-source-window-list)=20'source)))=0A=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20(with-window-non-dedicated=20nil=0A=20=20=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=20=20(set-window-prev-buffers=20= (selected-window)=20nil)=0A@@=20-4834,7=20+4867,7=20@@=20= gdb-load-window-configuration=0A=20=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= =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=20(set-window-buffer=20nil=20= 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(setq=20gdb-source-window=20(selected-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(push=20(selected-window)=20gdb-source-window-list)))=0A=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20('command=20(switch-to-buffer=20= gud-comint-buffer))=0A=20=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=20= (with-window-non-dedicated=20nil=0A@@=20-4875,7=20+4908,7=20@@=20= gdb-restore-windows=0A=20=20=20=20=20=20=20=20=20=20(if=20= gud-last-last-frame=0A=20=20=20=20=20=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=20=20= =20=20=20(gud-find-file=20gdb-main-file)))=0A-=20=20=20=20=20=20=20=20= (setq=20gdb-source-window=20win)))))=0A+=20=20=20=20=20=20=20=20(setq=20= gdb-source-window-list=20(list=20win))))))=0A=20=0A=20;;=20Called=20from=20= `gud-sentinel'=20in=20gud.el:=0A=20(defun=20gdb-reset=20()=0Adiff=20= --git=20a/lisp/progmodes/gud.el=20b/lisp/progmodes/gud.el=0Aindex=20= 567f452b93..c9522bfe17=20100644=0A---=20a/lisp/progmodes/gud.el=0A+++=20= b/lisp/progmodes/gud.el=0A@@=20-2826,9=20+2826,11=20@@=20= gud-display-line=0A=20=09=20(buffer=0A=20=09=20=20(with-current-buffer=20= gud-comint-buffer=0A=20=09=20=20=20=20(gud-find-file=20true-file)))=0A-=09= =20(window=20(and=20buffer=0A-=09=09=20=20=20=20=20=20(or=20= (get-buffer-window=20buffer)=0A-=09=09=09=20=20(display-buffer=20buffer=20= '(nil=20(inhibit-same-window=20.=20t))))))=0A+=09=20(window=20(when=20= buffer=20(if=20(eq=20gud-minor-mode=20'gdbmi)=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(gdb-display-source-buffer=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=20;;=20= Gud=20still=20has=20the=20old=20behavior.=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(or=20= (get-buffer-window=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=20=20=20=20=20= (display-buffer=20buffer=20'(nil=20(inhibit-same-window=20.=20t)))))))=0A= =20=09=20(pos))=0A=20=20=20=20=20(when=20buffer=0A=20=20=20=20=20=20=20= (with-current-buffer=20buffer=0A@@=20-2858,9=20+2860,7=20@@=20= gud-display-line=0A=20=09=20=20=20=20=20=20=20(widen)=0A=20=09=20=20=20=20= =20=20=20(goto-char=20pos))))=0A=20=20=20=20=20=20=20(when=20window=0A-=09= (set-window-point=20window=20gud-overlay-arrow-position)=0A-=09(if=20(eq=20= gud-minor-mode=20'gdbmi)=0A-=09=20=20=20=20(setq=20gdb-source-window=20= window))))))=0A+=09(set-window-point=20window=20= gud-overlay-arrow-position)))))=0A=20=0A=20;;=20The=20gud-call=20= function=20must=20do=20the=20right=20thing=20whether=20its=20invoking=0A=20= ;;=20keystroke=20is=20from=20the=20GUD=20buffer=20itself=20(via=20= major-mode=20binding)=0A--=20=0A2.25.1=0A=0A= --Apple-Mail=_8EEA5C3C-3A5E-44FC-893D-64FF9D77E96C-- From rudalics@gmx.at Sun Mar 29 05:01:43 2020 Received: (at 40268) by debbugs.gnu.org; 30 Mar 2020 02:35:36 +0000 Received: from mout.gmx.net ([212.227.15.15]:51567) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jITp8-0007lB-Ll for 40268@debbugs.gnu.org; Sun, 29 Mar 2020 05:01:43 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=badeba3b8450; t=1585472495; bh=daOR1JMpS5ww+t2mbHZW9qwajaLL8s1IKpvmmg6roag=; h=X-UI-Sender-Class:Subject:To:References:From:Date:In-Reply-To; b=C+ostePnisTtW7Mi61v3ADZa5kLBTOalLALaOjE/8oG0gI6TyDE2T1sNy3V7YAM6p PLNHECr6DUJmy76bGPYYO6f63B6Ea99wLdk7vd73EF0rIDXpjEEgDUXgHOGjklRsmp Iq2Xzovz55aZkvdf2i1cSIg01RS0fgXiMW0wuQKA= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Received: from [192.168.1.101] ([46.125.249.102]) by mail.gmx.com (mrgmx005 [212.227.17.190]) with ESMTPSA (Nemesis) id 1Mv31W-1j0wu72SDw-00qyKQ; Sun, 29 Mar 2020 11:01:35 +0200 Subject: Re: bug#40268: 27.0.60; [PATCH] Unify and improve gdb-mi source window display To: Yuan Fu , 40268@debbugs.gnu.org References: <63AC5BC7-CFFC-42DF-AD76-3414B631A6DE@gmail.com> From: martin rudalics Message-ID: Date: Sun, 29 Mar 2020 11:01:31 +0200 MIME-Version: 1.0 In-Reply-To: <63AC5BC7-CFFC-42DF-AD76-3414B631A6DE@gmail.com> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:ncJAu8YzBrrtu0xonSYadoao9UowATqDS7tQjHuzfZ8snLbEvyo C0eU/a0JDKjlgVElq1aqX5yVvV6MdBXgQJEFqXEVFWY/iF66C/usPxhzw/e9nwFJzrx3cxy mYCengQYVUoCSdu81OHvprcGyIOsHmzEqabnTILMK1UBOpyJuW3dz3obZ4oy0h1x+9Dfcgq 73F3lSCvx3wIQSUdJ787w== X-Spam-Flag: NO X-UI-Out-Filterresults: notjunk:1;V03:K0:C5z83o7lJ+8=:8sPLU9fDcvr4baX25TAuQF LgP9paJFoojEnjhSxlsrQjNVqrGj3mitqWCXKWy8sUxMRYRE2Hbui1suE2+3NJbpr+fYOehrS MEPqcCu9fl7AbsK00OafGpr+aCwm/z75b6v79iv8fCU+Xvbkp8U4J+NxryNE4wGyUXX+Ip+Ru MNsHPlXOQvgRJ2ccFtimHC6VGiqPOKO+w3ZPFTCRf8IFGjA4EU5wb611+G7CT9KVuiiLOZlhI 2hETHDUS/HYFpYQes0j4zGHuhMUYd1CJsQ/pIDtFrILqxJsPxED3N5O8SMMnpVUPWZLACIKZa ZZ+RmJQ2RMb+1/MGouAMIoGoHBBLJnQyfbOMvMLMMZV2djWomGwBzJ+4Cqy2MsHpRVU28xUxI 19U6c2RLPBJMQ/RfY6CHwtOFJFjknxyeRzLMA1Q1O17C/SSJ0hLlAjaomUQqBpFWt7pbRidMK 4DrtiW/smXcMnZDpxI1sHq7r+SrSs0VxW4UTSaR0D1JNefN4GN2lxtjhJf8KZHQ6LJuL2bU5F UCXDjOssmmtlsfbZqkSbFAKpohjhMLwyzwEnl0GkTC3rZuGkiByoycatugLGfAkvU7XuH0qxQ Xv6O3p+c4kGkQru6g+s86vZh1TnEncCb2e7mtKD34zIDoZH+iL34PHPD6uit40Z15jjWsklSg 5wtLVlCZNKKTqN0B1cHqldTsxzajTx7BiYQVP4GIPM9MSFvon6XrCWtCX33tt9ywlEwc0poh1 tpy11ChUSe5TVIXoHkIRUVo+7kvJbRHAFWASTg67x9pq9tWm7hxspsmIjNPseH3fQPnAg+ssr 7fKiQX0g5gmwsUjMUhtztysBOVEVWDuLV+ZD+cmJNkggGb21vFBCOSzIxg+2TQF0VSrPPrSUo U4TeElQguiohUWFhLWbAwtXkxZnh1nXHoMiZerdLDi2Y0Xs1EjgjWoszHmsSqoJcU77KjyQMg V6UYYlMhNxUXANa1i40KG2p9VfDxzs4ZLFgWkZzBv75BwMSUgaSp/3lHnrDBN5GIT1Ly8ZsVW Rk8KlkSK5OxP7frFeaszrTPckcYYJpOuXB8sFFAfBWVtH6dMnTyHna8EOb4qsFLUI+Po0pL5P F3INM3u6MPHjxMkpjeogSSIIn5sfVun60GepARX5Uuf5rKvAKqhKg+f9yQj6n4dxU/6sUHV+d G2AH0MXRmdicq5m70UpIcPFeq5FlGfTbDQ/twgE0QR87wHLrH3ADGlfD/bL+fzMquzqec4BFL CtJ1aB9J3F6+IfS/V X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 40268 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 29 Mar 2020 09:01:43 -0000 > From a user=E2=80=99s perspective, this change solves two problems: 1= =2E The > behavior difference between jumping to break point and stepping (and > other command) 2. Gdb-mi opening more windows than I wanted for > displaying source files. The patch doesn't apply here. Searching for :group 'gdb :version "22.1") (defvar gdbmi-debug-mode nil "When non-nil, print the messages sent/received from GDB/MI in *Messag= es*.") fails. Thanks, martin From debbugs-submit-bounces@debbugs.gnu.org Tue Mar 31 05:15:47 2020 Received: (at 40268) by debbugs.gnu.org; 31 Mar 2020 09:15:47 +0000 Received: from localhost ([127.0.0.1]:35514 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jJCzr-0005vJ-8W for submit@debbugs.gnu.org; Tue, 31 Mar 2020 05:15:47 -0400 Received: from mout.gmx.net ([212.227.17.21]:42013) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jJCzp-0005uv-7y for 40268@debbugs.gnu.org; Tue, 31 Mar 2020 05:15:45 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=badeba3b8450; t=1585646138; bh=6gU+ZnVDfEkFngPKIZ+rMDK6PDhCyGM62O684xax/T4=; h=X-UI-Sender-Class:Subject:To:Cc:References:From:Date:In-Reply-To; b=gnTPGKSobq6CUcW0nhpQFrhfcKLJSiyKFCjvj1e89UH1/oZhUKV0g33CYNLCb4MDH oHkGRCAjIkNWJTFc7km4HmOTPRgeSFUpNfDqsIvYtl2Cxh6mFsNE0REsCsk4rA8g2F T66E3sub0OrsNCXdawwPe0MPIoA+RTuUy+HQJt/o= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Received: from [192.168.1.101] ([212.95.5.250]) by mail.gmx.com (mrgmx104 [212.227.17.168]) with ESMTPSA (Nemesis) id 1MBDj4-1jUmlo1PSA-00Cguy; Tue, 31 Mar 2020 11:15:38 +0200 Subject: Re: bug#40268: 27.0.60; [PATCH] Unify and improve gdb-mi source window display To: Yuan Fu References: <63AC5BC7-CFFC-42DF-AD76-3414B631A6DE@gmail.com> From: martin rudalics Message-ID: <115885b9-ddfd-2752-0c8c-aa4f98aacaaf@gmx.at> Date: Tue, 31 Mar 2020 11:15:37 +0200 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit X-Provags-ID: V03:K1:fj0flrTvI5d8yktjgFUcqew+4xOLyHBVbcesGaiP4TdtrYDpGjc aknh9ww19BHHZyIUWv23xw+EZQPV2LcIi8/uwc6q1Qf5wVqHSVnPdc01jFp1WhKLGIEJLpI Dksvo/buSpZfWfwb8efHdsgL5dkYFuxM7CYR/mIfEtSfkwTgMs1MawJeSQxZmRj3LuVEX2p EP61U8A0Rt+0RTE04ZKWQ== X-Spam-Flag: NO X-UI-Out-Filterresults: notjunk:1;V03:K0:y1kNkF/NXrU=:SxUZz5PKBi4aC0o+wZeJ0j bxeqGSRiTo4DWgBVS6hkSdNcDcxlTEFwVomcxE93/TQyuUCt2cQAoENAM5Sf/EOI1KLlduko/ EEfINu0Mr8nM8bpD5ennF5C1eyfO2qQXAKzYLlp01ITSNLE2Lr/zr3dAXmZfiyMCOdEF0Wevn GZbXEGRXjEltSZ9o6W6foPE7Myih6JTxwlAAoEgPfB3+Y8qMOOBkaRZ68ttoL4/6dLm9SvX1y I7eSZYeMgl5RUIhPgpHxhvVBtFj40VfwFkS56dhL+UNpwhSHIZeZVtagqfI45miKwjSMCUoXz 4mcxvHGU7ihShGRih3yodpl4OZ03qHf5yrBsDt6qec/4khcVxd0VSRWU/2zYhtRw6iPPQ09et QZd4wsPrMWDqKCfD3nzA9NErf+MGNOqn4l2pKos3uTs0VA6519edXgInv5puAhy5Uup7OC8oM Lo4FzjQQeagSgfiZlpPjcSuSpmGguSEon9yCF0HlrqrehtAVMEEYcGeVqGlrMR+A1iXnB8fmF d3tgRHJ9R0qKZu2zyYaaYyt5TKyf1os1gtBc08DFKjOOagynzhwfrdRRSe/uRN7CKJp1xKYlh sqGxstC9nEOlcbZTVSl2R+ezEHzFq4HSm3pJJk5SwJRBRW2y7sP/TkQja0v+iRobMk1ArbpiS 4mUtnK14fuO1kZL2RB17TUUwDAWKzL85HK7052rL1mAjeww/TNXUJD3GFCKPhwNbcYPRJNTsv 2uotCOtPBeRU01A6qL3cUocFEpUkr2If957rQKTLmiUODeqdmcduOrSv10bDQox8wDpenSpgl +q7qaZWSkc8MC0sN5TssHM6QZIDxMGv25slpw7GX/u2U1cZDPWck7fjfcj4s2paGjjYacLtvK 6cywsCxOecqyFx1lhM4K25ZdpRctksrl5kHSDr7QCeX9k29QnFKZrgJ8aPRarRVULbvrOuYJk o7BRtbIbzWp2v10/52+5bOIVcYCMTvjGVzW96voy/88sCSXvrnri1EGhQQ7p75ikc+J9FbWG5 WetBcrI5n836EL4saF7txzeVwOouA1ULCvYNzKC2KZ8bPLEwzNPEagLDL5I//twMHBoHJeQrG 14WBVtAEd+5+Svu6hO8CWJfyW/biC2pYlPZShodjWdo671IjSEKlxwRXITGPx91wPvEWdMNjO 8hEvccMB+rF52ffPELsRl6iANS6A3LetQHxQzxlEqBnSOe28G6K5cNni/2JRW7V9og2rn+kpL m69VeYutaVLqit3u9 X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 40268 Cc: 40268@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) > This one should be ok. Thanks. A few remarks. Please try to ident as (setq gdb-source-window-list (cl-remove-duplicates (cl-remove-if-not (lambda (win) (and (window-live-p win) (equal (window-frame win) (selected-frame)))) gdb-source-window-list) :test #'equal)) so we can safely change this later and easily stay within our line length limits. Also, tests like (equal (window-frame win) (selected-frame)))) should use "eq" instead of "equal" and ones like ((member (selected-window) gdb-source-window-list) 'source))) "memq" instead of "member". Similarly to the above, writing (window (when buffer (if (eq gud-minor-mode 'gdbmi) (gdb-display-source-buffer buffer) ;; Gud still has the old behavior. (or (get-buffer-window buffer) (display-buffer buffer '(nil (inhibit-same-window . t))))))) permits us to stay within the 80 columns limit. Finally, instead of "Also, we simply the logic ..." I'd write "Also, simplify the logic ...". And please provide a NEWS entry. Thanks again for the work, martin From debbugs-submit-bounces@debbugs.gnu.org Sat Apr 04 16:29:41 2020 Received: (at 40268) by debbugs.gnu.org; 4 Apr 2020 20:29:42 +0000 Received: from localhost ([127.0.0.1]:44868 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jKpQD-0006Qj-CD for submit@debbugs.gnu.org; Sat, 04 Apr 2020 16:29:41 -0400 Received: from mail-qk1-f170.google.com ([209.85.222.170]:38366) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jKpQB-0006QE-56 for 40268@debbugs.gnu.org; Sat, 04 Apr 2020 16:29:39 -0400 Received: by mail-qk1-f170.google.com with SMTP id h14so12016994qke.5 for <40268@debbugs.gnu.org>; Sat, 04 Apr 2020 13:29:39 -0700 (PDT) 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=MEMvEKSzH/rbTJXRuT8HUzVf9ScV/lQkvy5zgipIP/Q=; b=mYf/4H5v95xjtQABa9kQ7yN7wSkpxT7avwFdujOx+NW+g5YxDWxK/uGvW6ejB+U8iQ EHn1NY6jr6j9+8+2Zs6Z9Gj/OShdcyTSqPeg2CgiANqJAN2WsF1Dbc8VCSjLAdTsh8o7 lKAGoSJYa42zwXFixfXRvyg/4pCrdp5OOKMf3VYLuG9NFgA3ycf+fNP2QRJkXKDRo7YG gmS6VoGIHNl7atdycvbC2W5H991FlNrQ5gd73JH8lX4oCkZU2DnG2gAhLEdzP2g/QmcQ vNBe4J44VCiuxSuTwWRznX0Dogq71qsrvE2e/pr00QaNomyjZHGuRpSZ6PsyY+YlgX8T E8NQ== 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=MEMvEKSzH/rbTJXRuT8HUzVf9ScV/lQkvy5zgipIP/Q=; b=SVr0Jpr2O9bbFSg6NzCVYCGxgw5fBq9p2yWJaf06Is9ud1PW4iqkyglT3Ao0mzq+FU JocquVbgP/v0GjuhObDS7prtpMvzZctEWPnjRXgV5ioaTvfTEw4GwGxz++aK4KxcJqkp wa7LrZCMWfPKHTS41C7GNJxrem9ITFlbU2BO1Tpd6O/s+MBHxbteTplMCTiZ9Q5VmxVa 2x05j0KXBwVEeekAixF/eMqwGWaH6hcalqbNLOwIEkvkKx6LuG5mZCm2i6jvBkbRivp2 xG5ldsMl48Iz7BWYYPvp6HWMv403DSsdAxv/ZvpP/J/Jq9DRqeuHpduhhyD/lgLuRnYg JVUg== X-Gm-Message-State: AGi0PuayuIwDPfIG9HMhszgzoZHqQcvXbX3lpSTk19ZetfwSxt511v7Q oMiC9mQ6blYBxgK5AOF74bI= X-Google-Smtp-Source: APiQypLPkiKeuSiPI+iEU6sdtDSkgrxZFIdaTgQIwaQz5/vlNgZd8ASO8mshHpys7NgjJ+BAnb+bAA== X-Received: by 2002:a05:620a:22b1:: with SMTP id p17mr15566401qkh.396.1586032173466; Sat, 04 Apr 2020 13:29:33 -0700 (PDT) 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 m5sm8722103qtk.85.2020.04.04.13.29.32 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 04 Apr 2020 13:29:32 -0700 (PDT) From: Yuan Fu Message-Id: Content-Type: multipart/mixed; boundary="Apple-Mail=_94F791C5-D0D3-471B-B4D7-44D0671ED8AA" Mime-Version: 1.0 (Mac OS X Mail 13.4 \(3608.80.23.2.2\)) Subject: Re: bug#40268: 27.0.60; [PATCH] Unify and improve gdb-mi source window display Date: Sat, 4 Apr 2020 16:29:31 -0400 In-Reply-To: <115885b9-ddfd-2752-0c8c-aa4f98aacaaf@gmx.at> To: martin rudalics References: <63AC5BC7-CFFC-42DF-AD76-3414B631A6DE@gmail.com> <115885b9-ddfd-2752-0c8c-aa4f98aacaaf@gmx.at> X-Mailer: Apple Mail (2.3608.80.23.2.2) X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 40268 Cc: 40268@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) --Apple-Mail=_94F791C5-D0D3-471B-B4D7-44D0671ED8AA Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=utf-8 > On Mar 31, 2020, at 5:15 AM, martin rudalics wrote: >=20 > > This one should be ok. >=20 > Thanks. A few remarks. Please try to ident as >=20 > (setq gdb-source-window-list > (cl-remove-duplicates > (cl-remove-if-not > (lambda (win) > (and (window-live-p win) > (equal (window-frame win) > (selected-frame)))) > gdb-source-window-list) > :test #'equal)) >=20 > so we can safely change this later and easily stay within our line > length limits. Also, tests like >=20 > (equal (window-frame win) > (selected-frame)))) >=20 > should use "eq" instead of "equal" and ones like >=20 > ((member (selected-window) gdb-source-window-list) = 'source))) >=20 > "memq" instead of "member". >=20 > Similarly to the above, writing >=20 > (window > (when buffer > (if (eq gud-minor-mode 'gdbmi) > (gdb-display-source-buffer buffer) > ;; Gud still has the old behavior. > (or (get-buffer-window buffer) > (display-buffer buffer '(nil (inhibit-same-window . = t))))))) >=20 > permits us to stay within the 80 columns limit. >=20 > Finally, instead of "Also, we simply the logic ..." I'd write "Also, > simplify the logic ...". And please provide a NEWS entry. >=20 > Thanks again for the work, Martin Thanks for reviewing. Besides the changes you requested, I changed the = last condition in the cond form in `gdb-save-window-configuration=E2=80=99= to a catch-all condition (to avoid weird problem when loading it back). Yuan --Apple-Mail=_94F791C5-D0D3-471B-B4D7-44D0671ED8AA Content-Disposition: attachment; filename=source-window.patch Content-Type: application/octet-stream; x-unix-mode=0700; name="source-window.patch" Content-Transfer-Encoding: quoted-printable =46rom=2041a8528515bbb9aeef6880ee3b7bc90320ab8b51=20Mon=20Sep=2017=20= 00:00:00=202001=0AFrom:=20Yuan=20Fu=20=0ADate:=20Sun,=20= 29=20Mar=202020=2010:20:53=20-0400=0ASubject:=20[PATCH]=20Unify=20and=20= improve=20gdb-mi=20source=20buffer=20display=20logic=0A=0AUnify=20the=20= behavior=20of=20source=20buffer=20display=20for=20gdb-mi.=20=20Before=20= this=0Achange,=20stepping=20and=20other=20gdb=20command=20handlers=20use=20= 'gud-display-line',=0Aand=20'gdb-goto-breakpoint'=20uses=20= 'gdb-display-source-buffer'.=20=20Now=20whenever=0Agdb-mi=20code=20tries=20= to=20open=20a=20source=20buffer,=20'gdb-display-source-buffer'=0Ais=20= used.=20=20Also,=20simplify=20the=20logic=20in=20= 'gdb-display-source-buffer'=20and=0Aadd=20a=20feature=20to=20limit=20the=20= maximum=20number=20of=20source=20windows.=0A=0A*=20= doc/emacs/building.texi=20(GDB=20User=20Interface=20Layout):=20Explain=20= source=0Afile=20display=20in=20GDB.=0A*=20etc/NEWS=20(gdb-mi):=20Add=20= news=20about=20source=20display.=0A*=20lisp/progmodes/gdb-mi.el=20= (gdb-source-window):=20Remove=20variable,=0Achange=20to=20= 'gdb-source-window-list'.=0A(gdb-source-window-list):=20New=20variable.=0A= (gdb-display-source-buffer-action,=0Agdb-max-source-window-count):=20New=20= custom=20variable.=0A(gdb-init-1,=20gdb-setup-windows,=20= gdb-load-window-configuration,=0Agdb-restore-windows):=20Use=20= 'gdb-source-window'=20rather=20than=0A'gdb-source-window-list'.=0A= (gdb-save-window-configuration):=20Use=20'gdb-source-window'=20rather=20= than=0A'gdb-source-window-list'.=20=20And=20consider=20any=20buffer=20= that=20is=20not=20a=0Acommand=20or=20function=20buffer=20as=20a=20source=20= buffer.=0A(gdb-display-source-buffer):=20Use=20new=20logic.=0A= (gdb-goto-breakpoint):=20Remove=20'display-buffer'=0Aand=20don't=20set=20= 'gdb-source-buffer'=20anymore.=0A*=20lisp/progmodes/gud.el=20= (gud-display-line):=20If=20used=20by=20gdb-mi,=20use=0A= 'gdb-display-source-buffer'=20rather=20than=20'display-buffer'.=20=20= Don't=20set=0A'gdb-source-buffer'=20anymore.=0A---=0A=20= doc/emacs/building.texi=20=20|=20=208=20+++++=0A=20etc/NEWS=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20|=20=206=20++++=0A=20= lisp/progmodes/gdb-mi.el=20|=2075=20= +++++++++++++++++++++++++++++-----------=0A=20lisp/progmodes/gud.el=20=20= =20=20|=2014=20++++----=0A=204=20files=20changed,=2077=20insertions(+),=20= 26=20deletions(-)=0A=0Adiff=20--git=20a/doc/emacs/building.texi=20= b/doc/emacs/building.texi=0Aindex=208a05680c74..2c43323dc4=20100644=0A= ---=20a/doc/emacs/building.texi=0A+++=20b/doc/emacs/building.texi=0A@@=20= -1022,6=20+1022,14=20@@=20GDB=20User=20Interface=20Layout=0A=20the=20= same=20with=20the=20menu=20bar,=20with=20the=20@samp{GDB-Windows}=20and=0A= =20@samp{GDB-Frames}=20sub-menus=20of=20the=20@samp{GUD}=20menu.=0A=20=0A= +@vindex=20gdb-max-source-window-count=0A+@vindex=20= gdb-display-source-buffer-action=0A+By=20default,=20GDB=20uses=20at=20= most=20one=20window=20to=20display=20source=20file.=20=20You=0A+can=20= make=20it=20use=20more=20windows=20by=20customizing=0A= +@code{gdb-max-source-window-count}.=20=20You=20can=20also=20customize=0A= +@code{gdb-display-source-buffer-action}=20to=20control=20how=20does=20= GDB=0A+display=20source=20files.=0A+=0A=20=20=20When=20you=20finish=20= debugging,=20kill=20the=20GUD=20interaction=20buffer=20with=0A=20= @kbd{C-x=20k},=20which=20will=20also=20kill=20all=20the=20buffers=20= associated=20with=20the=0A=20session.=20=20However=20you=20need=20not=20= do=20this=20if,=20after=20editing=20and=0Adiff=20--git=20a/etc/NEWS=20= b/etc/NEWS=0Aindex=204b477e5def..1260dfa30c=20100644=0A---=20a/etc/NEWS=0A= +++=20b/etc/NEWS=0A@@=20-213,6=20+213,12=20@@=20will=20remember=20the=20= window=20configuration=20before=20GDB=20started=20and=20restore=0A=20it=20= after=20GDB=20quits.=20=20A=20toggle=20button=20is=20also=20provided=20= under=20'Gud=20--=0A=20GDB-Windows'.=0A=20=0A+---=0A+***=20gdb-mi=20now=20= has=20a=20better=20logic=20for=20displaying=20source=20buffers=0A+Now=20= GDB=20only=20uses=20one=20source=20window=20to=20display=20source=20file=20= by=20default.=0A+Customize=20'gdb-max-source-window-count'=20to=20use=20= more=20than=20one=20windows.=0A+Control=20source=20file=20display=20by=20= 'gdb-display-source-buffer-action'.=0A+=0A=20**=20Gravatar=0A=20=0A=20= ---=0Adiff=20--git=20a/lisp/progmodes/gdb-mi.el=20= b/lisp/progmodes/gdb-mi.el=0Aindex=207fb3687391..d513c7606d=20100644=0A= ---=20a/lisp/progmodes/gdb-mi.el=0A+++=20b/lisp/progmodes/gdb-mi.el=0A@@=20= -224,7=20+224,9=20@@=20gdb-handler-list=0A=20(defvar=20= gdb-source-file-list=20nil=0A=20=20=20"List=20of=20source=20files=20for=20= the=20current=20executable.")=0A=20(defvar=20gdb-first-done-or-error=20= t)=0A-(defvar=20gdb-source-window=20nil)=0A+(defvar=20= gdb-source-window-list=20nil=0A+=20=20"List=20of=20windows=20used=20for=20= displaying=20source=20files.=0A+Sorted=20in=20= most-recently-visited-first=20order.")=0A=20(defvar=20= gdb-inferior-status=20nil)=0A=20(defvar=20gdb-continuation=20nil)=0A=20= (defvar=20gdb-supports-non-stop=20nil)=0A@@=20-645,6=20+647,21=20@@=20= gdb-default-window-configuration-file=0A=20=20=20:group=20'gdb=0A=20=20=20= :version=20"28.1")=0A=20=0A+(defcustom=20= gdb-display-source-buffer-action=20'(nil=20.=20((inhibit-same-window=20.=20= t)))=0A+=20=20"`display-buffer'=20action=20used=20when=20GDB=20= displaying=20a=20source=20buffer."=0A+=20=20:type=20'list=0A+=20=20= :group=20'gdb=0A+=20=20:version=20"28.1")=0A+=0A+(defcustom=20= gdb-max-source-window-count=201=0A+=20=20"Maximum=20number=20of=20source=20= windows=20to=20use.=0A+Until=20there=20are=20such=20number=20of=20source=20= windows=20on=20screen,=20GDB=0A+tries=20to=20open=20a=20new=20window=20= when=20visiting=20a=20new=20source=20file;=20after=0A+that=20GDB=20= starts=20to=20reuse=20existing=20source=20windows."=0A+=20=20:type=20= 'number=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-984,7=20+1001,7=20@@=20gdb-init-1=0A=20=09= gdb-first-done-or-error=20t=0A=20=09gdb-buffer-fringe-width=20(car=20= (window-fringes))=0A=20=09gdb-debug-log=20nil=0A-=09gdb-source-window=20= nil=0A+=09gdb-source-window-list=20nil=0A=20=09gdb-inferior-status=20nil=0A= =20=09gdb-continuation=20nil=0A=20=20=20=20=20=20=20=20=20= gdb-buf-publisher=20'()=0A@@=20-2069,17=20+2086,36=20@@=20= gdb-show-stop-p=0A=20;;=20GDB=20frame=20(after=20up,=20down=20etc).=20=20= If=20no=20GDB=20frame=20is=20visible=20but=20the=20last=0A=20;;=20= visited=20breakpoint=20is,=20use=20that=20window.=0A=20(defun=20= gdb-display-source-buffer=20(buffer)=0A-=20=20(let*=20((last-window=20= (if=20gud-last-last-frame=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(get-buffer-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= (gud-find-file=20(car=20gud-last-last-frame)))))=0A-=09=20(source-window=20= (or=20last-window=0A-=09=09=09=20=20=20=20(if=20(and=20gdb-source-window=0A= -=09=09=09=09=20=20=20=20=20(window-live-p=20gdb-source-window))=0A-=09=09= =09=09gdb-source-window))))=0A-=20=20=20=20(when=20source-window=0A-=20=20= =20=20=20=20(setq=20gdb-source-window=20source-window)=0A-=20=20=20=20=20= =20(set-window-buffer=20source-window=20buffer))=0A-=20=20=20=20= source-window))=0A+=20=20"Find=20a=20window=20to=20display=20BUFFER.=0A= +Always=20find=20a=20window=20to=20display=20buffer,=20and=20return=20= it."=0A+=20=20;;=20This=20function=20doesn't=20take=20care=20of=20= setting=20up=20source=20window(s)=20at=20startup,=0A+=20=20;;=20that's=20= handled=20by=20`gdb-setup-windows'=20(if=20`gdb-many-windows'=20is=20= non-nil).=0A+=20=20;;=20If=20`buffer'=20is=20already=20shown=20in=20a=20= window,=20use=20that=20window.=0A+=20=20(or=20(get-buffer-window=20= buffer)=0A+=20=20=20=20=20=20(progn=0A+=20=20=20=20=20=20=20=20;;=20= First,=20update=20the=20window=20list.=0A+=20=20=20=20=20=20=20=20(setq=20= gdb-source-window-list=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20= (cl-remove-duplicates=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= (cl-remove-if-not=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= (lambda=20(win)=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= (and=20(window-live-p=20win)=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20(eq=20(window-frame=20win)=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= (selected-frame))))=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= gdb-source-window-list)))=0A+=20=20=20=20=20=20=20=20;;=20Should=20we=20= create=20a=20new=20window=20or=20reuse=20one?=0A+=20=20=20=20=20=20=20=20= (if=20(>=20gdb-max-source-window-count=0A+=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20(length=20gdb-source-window-list))=0A+=20=20=20=20=20=20=20=20= =20=20=20=20;;=20Create=20a=20new=20window,=20push=20it=20to=20window=20= list=20and=20return=20it.=0A+=20=20=20=20=20=20=20=20=20=20=20=20(car=20= (push=20(display-buffer=20buffer=20gdb-display-source-buffer-action)=0A+=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= gdb-source-window-list))=0A+=20=20=20=20=20=20=20=20=20=20;;=20Reuse=20a=20= window,=20we=20use=20the=20oldest=20window=20and=20put=20that=20to=0A+=20= =20=20=20=20=20=20=20=20=20;;=20the=20front=20of=20the=20window=20list.=0A= +=20=20=20=20=20=20=20=20=20=20(let=20((last-win=20(car=20(last=20= gdb-source-window-list)))=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20(rest=20(butlast=20gdb-source-window-list)))=0A+=20=20=20=20=20=20=20=20= =20=20=20=20(set-window-buffer=20last-win=20buffer)=0A+=20=20=20=20=20=20= =20=20=20=20=20=20(setq=20gdb-source-window-list=0A+=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20(cons=20last-win=20rest))=0A+=20=20=20=20= =20=20=20=20=20=20=20=20last-win)))))=0A=20=0A=20=0A=20(defun=20= gdbmi-start-with=20(str=20offset=20match)=0A@@=20-4064,9=20+4100,7=20@@=20= gdb-goto-breakpoint=0A=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20(let*=20= ((buffer=20(find-file-noselect=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(if=20(file-exists-p=20= file)=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=20=20(cdr=20(assoc=20bptno=20= gdb-location-alist)))))=0A-=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20(window=20(or=20(gdb-display-source-buffer=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=20=20(display-buffer=20buffer))))=0A-=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20(setq=20gdb-source-window=20window)=0A+=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20(window=20= (gdb-display-source-buffer=20buffer)))=0A=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20(with-current-buffer=20buffer=0A=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(forward-line=20(1-=20= (string-to-number=20line)))=0A@@=20-4715,7=20+4749,7=20@@=20= gdb-setup-windows=0A=20=20=20=20=20=20=20(select-window=20win2)=0A=20=20=20= =20=20=20=20(set-window-buffer=20win2=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(list-buffers-noselect)))=0A-=20=20=20=20=20=20= (setq=20gdb-source-window=20(selected-window))=0A+=20=20=20=20=20=20= (setq=20gdb-source-window-list=20(list=20(selected-window)))=0A=20=20=20=20= =20=20=20(let=20((win4=20(split-window-right)))=0A=20=20=20=20=20=20=20=20= =20(gdb-set-window-buffer=0A=20=20=20=20=20=20=20=20=20=20= (gdb-get-buffer-create=20'gdb-inferior-io)=20nil=20win4))=0A@@=20-4791,7=20= +4825,8=20@@=20gdb-save-window-configuration=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(error=20= "Unrecognized=20gdb=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=20;;=20Command=20= buffer.=0A=20=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)=20= gdb-source-window)=20'source)))=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20;;=20Consider=20everything=20else=20as=20source=20= buffer.=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= (t=20'source)))=0A=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= (with-window-non-dedicated=20nil=0A=20=20=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=20=20(set-window-prev-buffers=20= (selected-window)=20nil)=0A@@=20-4834,7=20+4869,7=20@@=20= gdb-load-window-configuration=0A=20=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= =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=20(set-window-buffer=20nil=20= 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(setq=20gdb-source-window=20(selected-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(push=20(selected-window)=20gdb-source-window-list)))=0A=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20('command=20(switch-to-buffer=20= gud-comint-buffer))=0A=20=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=20= (with-window-non-dedicated=20nil=0A@@=20-4875,7=20+4910,7=20@@=20= gdb-restore-windows=0A=20=20=20=20=20=20=20=20=20=20(if=20= gud-last-last-frame=0A=20=20=20=20=20=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=20=20= =20=20=20(gud-find-file=20gdb-main-file)))=0A-=20=20=20=20=20=20=20=20= (setq=20gdb-source-window=20win)))))=0A+=20=20=20=20=20=20=20=20(setq=20= gdb-source-window-list=20(list=20win))))))=0A=20=0A=20;;=20Called=20from=20= `gud-sentinel'=20in=20gud.el:=0A=20(defun=20gdb-reset=20()=0Adiff=20= --git=20a/lisp/progmodes/gud.el=20b/lisp/progmodes/gud.el=0Aindex=20= 567f452b93..eb43e8b7e4=20100644=0A---=20a/lisp/progmodes/gud.el=0A+++=20= b/lisp/progmodes/gud.el=0A@@=20-2826,9=20+2826,13=20@@=20= gud-display-line=0A=20=09=20(buffer=0A=20=09=20=20(with-current-buffer=20= gud-comint-buffer=0A=20=09=20=20=20=20(gud-find-file=20true-file)))=0A-=09= =20(window=20(and=20buffer=0A-=09=09=20=20=20=20=20=20(or=20= (get-buffer-window=20buffer)=0A-=09=09=09=20=20(display-buffer=20buffer=20= '(nil=20(inhibit-same-window=20.=20t))))))=0A+=09=20(window=0A+=20=20=20=20= =20=20=20=20=20=20(when=20buffer=0A+=20=20=20=20=20=20=20=20=20=20=20=20= (if=20(eq=20gud-minor-mode=20'gdbmi)=0A+=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20(gdb-display-source-buffer=20buffer)=0A+=20=20=20=20=20=20= =20=20=20=20=20=20=20=20;;=20Gud=20still=20has=20the=20old=20behavior.=0A= +=20=20=20=20=20=20=20=20=20=20=20=20=20=20(or=20(get-buffer-window=20= buffer)=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= (display-buffer=20buffer=20'(nil=20(inhibit-same-window=20.=20t)))))))=0A= =20=09=20(pos))=0A=20=20=20=20=20(when=20buffer=0A=20=20=20=20=20=20=20= (with-current-buffer=20buffer=0A@@=20-2858,9=20+2862,7=20@@=20= gud-display-line=0A=20=09=20=20=20=20=20=20=20(widen)=0A=20=09=20=20=20=20= =20=20=20(goto-char=20pos))))=0A=20=20=20=20=20=20=20(when=20window=0A-=09= (set-window-point=20window=20gud-overlay-arrow-position)=0A-=09(if=20(eq=20= gud-minor-mode=20'gdbmi)=0A-=09=20=20=20=20(setq=20gdb-source-window=20= window))))))=0A+=09(set-window-point=20window=20= gud-overlay-arrow-position)))))=0A=20=0A=20;;=20The=20gud-call=20= function=20must=20do=20the=20right=20thing=20whether=20its=20invoking=0A=20= ;;=20keystroke=20is=20from=20the=20GUD=20buffer=20itself=20(via=20= major-mode=20binding)=0A--=20=0A2.25.1=0A=0A= --Apple-Mail=_94F791C5-D0D3-471B-B4D7-44D0671ED8AA Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=us-ascii --Apple-Mail=_94F791C5-D0D3-471B-B4D7-44D0671ED8AA-- From debbugs-submit-bounces@debbugs.gnu.org Mon Apr 06 05:04:34 2020 Received: (at 40268) by debbugs.gnu.org; 6 Apr 2020 09:04:34 +0000 Received: from localhost ([127.0.0.1]:47153 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jLNgI-00051x-Jx for submit@debbugs.gnu.org; Mon, 06 Apr 2020 05:04:34 -0400 Received: from mout.gmx.net ([212.227.15.15]:45655) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jLNgG-00051S-Ly for 40268@debbugs.gnu.org; Mon, 06 Apr 2020 05:04:33 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=badeba3b8450; t=1586163866; bh=szj+hGfxEHdld+XYKeU2S8GkWn4yvB4h4Yh2q1gjDug=; h=X-UI-Sender-Class:Subject:To:Cc:References:From:Date:In-Reply-To; b=BYP4t6jvF17Q4CsivsZ0TXLy/PYJDpuruFnbnA/+F5gl9fC8H8DvU8FVMOVDl4ymL f0Me42vkP83xuIiCseuJ1ugycqaBM+apCLgJ/Nae5AmhgmK9tU44Ti/s6sxtArh10+ 2vaESQxXZL0lVFrTmgYA7MCAUcbv78FMVvaA5Hx8= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Received: from [192.168.1.101] ([212.95.5.102]) by mail.gmx.com (mrgmx005 [212.227.17.190]) with ESMTPSA (Nemesis) id 1MhlKs-1iqQZd4Apk-00dlUI; Mon, 06 Apr 2020 11:04:26 +0200 Subject: Re: bug#40268: 27.0.60; [PATCH] Unify and improve gdb-mi source window display To: Yuan Fu References: <63AC5BC7-CFFC-42DF-AD76-3414B631A6DE@gmail.com> <115885b9-ddfd-2752-0c8c-aa4f98aacaaf@gmx.at> From: martin rudalics Message-ID: <029e636e-9dc1-339f-c09d-76f11b667372@gmx.at> Date: Mon, 6 Apr 2020 11:04:25 +0200 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:g8+Yba9Lb23lRX6xCXiM1y/xNAzmDyAo/EF1Pt9Bss5jXfGuxJb h15GMx4XJiHgBMzYF2JiAXuKKpQyRMpSnVpjiDcFnrc2f3J5pgZDnCU2FXlW1VgJxqy8/2B hHYP7mk9tAU8pdT5OTJE+RfH5wSGLGdtuXuzmmZP4cnlm3KKVcU6M8qI24y6ADn3xpJ/ST3 LzIZqqBOT/WqXUMU/LAag== X-Spam-Flag: NO X-UI-Out-Filterresults: notjunk:1;V03:K0:EuJF0viTUp4=:agXwrO+GAt1UiCy2iB2sQ+ jRFaX+T9j54QQHy4uSzb9n/kSqGwHZEgLM0PwYQs05/ow1S8ztJ+omC5a5U7yyBhb3xp8AcGP xIvrhPF23MCV+hEv82lzZNfYzHrxIEOc7SXtjmzKuR0TCKlds4D95TXN0i5Jb5nlQ70NNj1PA eotAJx2r9zsRLYZ9HJ6CM6g5Z2W1UnUrw+y/IR4q8/myFvZr5nvIsPx51465EgIikZ/ohZhCj qhnCYMaPSQ1wu44u63PueRUGSmQt8qPKj53ZJ6bPV6pxLjCS18YPYLxU3ptJ7lCiHg5DTu/uJ F+lkBsehBvqBuI4jtvx8ggYg9AykWNfkpRFPY+uOW8NiiCFY49AaNksxZC/u+75n7gOtryHtL gLr2eB6RZNORxdzqTNIxK90tzRNgi+sc9LV5c080Vn+3NAw6sEIsMfIiYLEaTZ1gnqSwbfP8t PrjiBppix0wOgzIobZYew0DTVtaEsJ8aWGbXVMj/JESTl4uAgtHez4uT0sRkgBJXyw4AP9Rse ca7TqNSd8FBoAiCi51kS2hN7WGlox7/NthMZQl8RYGNUcMe44c7+vra0iR+90fEFuqnGwlG2X 41Kt9qDUjYIvDJeV4o/6aOpULnj41sGJLBCH+bly+fSCXdzJjD20770ABdteXQSO/u47cVxY9 6A1oj3Xc52E3ebv+uf0+e8bLYS0zbPavxup8ugN12NrZ0P87RAgbi5UKZOzI4HSiUKl0+Aifd o08JdmUOCqq/L/0oSxeK5u5+s1npsjulgM59lQ/tmrxwg71d6x0J9qkn+gQX2T91uHtxo9unz drNzJmoPoKrg947N0CLv4sgUiL9icyrnLTqo6x40rrFlEMQk1C8MTcDWWn+ig5njvd8AvywdL 65oBxvMDzsikexzYqOF8mdsZa+iV6LEIE58QzTxmHji3M3xENOW/NQEwrB8QWD6lVuG49g6ZE vnD/oE9B13WeLD0tN6B4cMGmv74Ndm1SeokX5mg7djdj14WRgKO+6cJ0X/B6E18pUshfP0jXy CcOBUd+2UAzH70L5jYy1gzLGJp3QDdf7w+uLQlR5vSPnobd1K9RCbJSUhbYotkEvT5s5n/SZO c2YstVeQNviWGQjvObkeZzOtXVrra+vCYydp3acOTxHoSjdS9V6NylLA4CAZX/+HGEs/70FFd +49WdUjTZi0L6NjZg3JqSkxaY8bTaKa9DOLOfrxBAsvEYZvui3SsdnHieOrV8BHbyGd+1u88R FOZNHC4R0NN1vcbfI X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 40268 Cc: 40268@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) > Thanks for reviewing. Besides the changes you requested, I changed the= > last condition in the cond form in `gdb-save-window-configuration=E2=80= =99 to > a catch-all condition (to avoid weird problem when loading it back). Pushed to master with my usual tweaks. Please have a look. Thanks, martin From debbugs-submit-bounces@debbugs.gnu.org Mon Apr 06 10:21:40 2020 Received: (at 40268) by debbugs.gnu.org; 6 Apr 2020 14:21:40 +0000 Received: from localhost ([127.0.0.1]:49016 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jLSdA-0000iv-7J for submit@debbugs.gnu.org; Mon, 06 Apr 2020 10:21:40 -0400 Received: from mail-qk1-f172.google.com ([209.85.222.172]:32852) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jLSd8-0000iN-O2 for 40268@debbugs.gnu.org; Mon, 06 Apr 2020 10:21:39 -0400 Received: by mail-qk1-f172.google.com with SMTP id v7so16333493qkc.0 for <40268@debbugs.gnu.org>; Mon, 06 Apr 2020 07:21:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=xVp2B7yEwNR2gvBtkFgyEde8KUsMbGaZ8MdexRMQB9s=; b=faSM9c/GzvkJvLWqM9De/yFE9hwy7p7hLQNQf4eTpeNAXOuxlDloFessnJaIaRYtju P1NygYjQIm5NiUCRBY0m0E07ip+nBD5EKNXH6gwlDBBjcwy9go1TstZNViMr/o6FQZ4l 7gCuUzYMd3YE9jUFYjkRaS3gX+rPySYJkoTfC0FssR9LpllyIYjT6bryayBwDSeJS9Bj Kx9XDfJgdkXy+nP9JBMNA9Kf023A/wP/7mpCRzL36j48zcKirRpfD/zNcIb+Y/1pEcP6 dziOCzdnsAO2RiGXYse5kGuwjISGDcvioVyYULPBT7q+sZxqa2ktrRMx/MUiqk5ZbE79 avwg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=xVp2B7yEwNR2gvBtkFgyEde8KUsMbGaZ8MdexRMQB9s=; b=bRSeeiDdYNM355nBKx4N0GYo8cJAyXzMpzg/EYoj2oMWKKPxvpPydeow+5dcCSCwNb OCqbnwKWNfKVSWT+BNxc+i/+4Nmmumos3MGpiQURNYFbJfNEV/s8ndDYGIiqVQxGc1Vd OD28WA1sK7ZWUoIX0HdpYtVKBf2I/OlTE3Bsum1r5ze92v9upVcSgAvhxOIIz2SuTWby 0Y+DAHwmWLhdPl5M4NKPOQmcJmgSi7wC72MM7A0kbYFZo2fo82gQsujPb12+h0k9tZO6 5mygr+MC2knA+CiiZAanORqJ3S9LGVRqI6ATetLWW6GKkz2fBxxX1XFchO766PsKOfBK NWWA== X-Gm-Message-State: AGi0PuYJ3Is61J8h+ieQgCEpzC3wBH3xrnFK8/wIaJgtGD3jLR4BMCG7 Y4jMhnHsoVkNLWa2pHBkCfQ= X-Google-Smtp-Source: APiQypIpyoVHT3+b359XXbw6b8guqA35yW2+1T+sMLSJA6YhCpnM/aZ/KX6TW2qvSaGdOpI9v4suKA== X-Received: by 2002:a05:620a:cc6:: with SMTP id b6mr21787405qkj.74.1586182893152; Mon, 06 Apr 2020 07:21:33 -0700 (PDT) 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 g29sm15503731qte.0.2020.04.06.07.21.31 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 06 Apr 2020 07:21:32 -0700 (PDT) Content-Type: text/plain; charset=utf-8 Mime-Version: 1.0 (Mac OS X Mail 13.4 \(3608.80.23.2.2\)) Subject: Re: bug#40268: 27.0.60; [PATCH] Unify and improve gdb-mi source window display From: Yuan Fu In-Reply-To: <029e636e-9dc1-339f-c09d-76f11b667372@gmx.at> Date: Mon, 6 Apr 2020 10:21:30 -0400 Content-Transfer-Encoding: quoted-printable Message-Id: <75FFAF75-3B56-4F8E-B097-982C4DAE5CB3@gmail.com> References: <63AC5BC7-CFFC-42DF-AD76-3414B631A6DE@gmail.com> <115885b9-ddfd-2752-0c8c-aa4f98aacaaf@gmx.at> <029e636e-9dc1-339f-c09d-76f11b667372@gmx.at> To: martin rudalics X-Mailer: Apple Mail (2.3608.80.23.2.2) X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 40268 Cc: 40268@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) > On Apr 6, 2020, at 5:04 AM, martin rudalics wrote: >=20 > > Thanks for reviewing. Besides the changes you requested, I changed = the > > last condition in the cond form in `gdb-save-window-configuration=E2=80= =99 to > > a catch-all condition (to avoid weird problem when loading it back). >=20 > Pushed to master with my usual tweaks. Please have a look. >=20 > Thanks, martin >=20 Thanks, I=E2=80=99ll try to address them next time. Yuan= From debbugs-submit-bounces@debbugs.gnu.org Mon Apr 13 21:10:02 2020 Received: (at 40268-done) by debbugs.gnu.org; 14 Apr 2020 01:10:02 +0000 Received: from localhost ([127.0.0.1]:32905 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jOA5S-00018m-DQ for submit@debbugs.gnu.org; Mon, 13 Apr 2020 21:10:02 -0400 Received: from mail-qk1-f181.google.com ([209.85.222.181]:40319) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jOA5Q-00018D-TW for 40268-done@debbugs.gnu.org; Mon, 13 Apr 2020 21:10:01 -0400 Received: by mail-qk1-f181.google.com with SMTP id w70so7421308qkb.7 for <40268-done@debbugs.gnu.org>; Mon, 13 Apr 2020 18:10:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:mime-version:subject:message-id:references:to:date; bh=lA8fPZ74Fc4Vvtt9nsXYEvGmSLUxVz/3wf3PXzVkIY8=; b=uemFPMU9ZBcrU+oRSC/nJhSrz9N9Pf4JWIhlOJwNGtq8nZ6CTsBjf0cNUzccUsJlxG wKr0dB17YeeZry28NeayCQ3Eh4tqA/hW5n3LvF7aHKNsY4aXh5m0fMUiDvFcxv+sIKXT UAGKNpcR8wT2dB38DpeV2LMMhBnXwjeJPLzSJ8tXNy+ctoqXeEUifeUhxjKLTFymOEUn zPdIfHhMDrA8QpbS3NkV1DaHPFPW+8ycDVvI5W/HRhG6FzOJWTtRup96Clok8hQeRlq/ 0a3C7lNm0nzr8Kr3cvDmCbVijDvJEEkfLuOAZ/VSpruI5oFYfcanqwR2moSMUUBB6v+F Q6Qw== 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:references :to:date; bh=lA8fPZ74Fc4Vvtt9nsXYEvGmSLUxVz/3wf3PXzVkIY8=; b=dHDiyX7yWCaFmcIqdpGNqUpn3ln4RRyeBv8S6/RL9Iu0d50+e9S6AH4zjnvewVCQbO RCTbe16Mixy7uCqkZ62xgvH85CS567XFgHDrEGDI/jfKP6eL5dBtA+aWGrxsEtZp4EJ/ xPgTleScZZbNNHVvzpVws1rKXkVYI5m4YkgWiOwdbL5bI+k2FtSr197i/k5oC7TXIV78 C45cArJVsM/MkzmnoaJ2bs0vkiIW17R2wOm9pxIFkCStumWjZZJSkR+4K2S8knS/ylZD eFRBfoDfbRWaGKzcZ18BnX9gllkHiVHexVgAReyqPuW3TeHVb0yLNCTYLUw02YLeWFh8 EE4g== X-Gm-Message-State: AGi0Pua1dO78tnCjybG1T4C/3tefLwnnfZLtIBiREQk08lsl4ASud3Vm RsuFMGJhqNviydJj8FMUQExRFJXcoj8cMA== X-Google-Smtp-Source: APiQypLCFvZA6SAcXKC7NiBsEBgfWVa0okaN4N5kHYrz1xxk6ZMYuLSWPpzuWwCrkDztIg9kuCenpA== X-Received: by 2002:a05:620a:16b0:: with SMTP id s16mr19428304qkj.204.1586826594985; Mon, 13 Apr 2020 18:09:54 -0700 (PDT) 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 y188sm6360078qkd.35.2020.04.13.18.09.54 for <40268-done@debbugs.gnu.org> (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Mon, 13 Apr 2020 18:09:54 -0700 (PDT) From: Yuan Fu Content-Type: multipart/alternative; boundary="Apple-Mail=_7FA9471C-0BC7-41C0-885B-873DE8A357DE" Mime-Version: 1.0 (Mac OS X Mail 13.4 \(3608.80.23.2.2\)) Subject: Fwd: bug#40268: 27.0.60; [PATCH] Unify and improve gdb-mi source window display Message-Id: References: <310914cd-1822-3fe9-19ae-6e47f8e72072@gmx.at> To: 40268-done@debbugs.gnu.org Date: Mon, 13 Apr 2020 21:09:53 -0400 X-Mailer: Apple Mail (2.3608.80.23.2.2) X-Spam-Score: -0.8 (/) X-Debbugs-Envelope-To: 40268-done X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.8 (-) --Apple-Mail=_7FA9471C-0BC7-41C0-885B-873DE8A357DE Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=utf-8 > Begin forwarded message: >=20 > From: martin rudalics > Subject: Re: bug#40268: 27.0.60; [PATCH] Unify and improve gdb-mi = source window display > Date: April 13, 2020 at 1:29:00 PM GMT-4 > To: Yuan Fu >=20 >> Thanks, I=E2=80=99ll try to address them next time. >> Yuan >=20 > Please consider marking this and maybe some other bug (Bug#39181?) > as done unless we should change something else too. >=20 > Thanks, martin >=20 >=20 >=20 --Apple-Mail=_7FA9471C-0BC7-41C0-885B-873DE8A357DE Content-Transfer-Encoding: quoted-printable Content-Type: text/html; charset=utf-8

Begin forwarded message:

From: = martin rudalics <rudalics@gmx.at>
Subject: = Re: bug#40268: = 27.0.60; [PATCH] Unify and improve gdb-mi source window display
Date: = April 13, 2020 at 1:29:00 PM = GMT-4
To: = Yuan Fu <casouri@gmail.com>

Thanks, I=E2=80=99ll try = to address them next time.
Yuan

Please consider marking this and = maybe some other bug (Bug#39181?)
as done unless we should = change something else too.

Thanks, = martin




= --Apple-Mail=_7FA9471C-0BC7-41C0-885B-873DE8A357DE-- From unknown Sat Aug 09 01:08:48 2025 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@debbugs.gnu.org From: Debbugs Internal Request Subject: Internal Control Message-Id: bug archived. Date: Tue, 12 May 2020 11:24:07 +0000 User-Agent: Fakemail v42.6.9 # This is a fake control message. # # The action: # bug archived. thanks # This fakemail brought to you by your local debbugs # administrator