From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: martin rudalics Newsgroups: gmane.emacs.bugs Subject: bug#21649: 25.0.50; [PATCH] Allow M-x man to reuse an existing window Date: Tue, 01 Mar 2016 18:04:08 +0100 Message-ID: <56D5CB88.7000900@gmx.at> References: <86r3l09t3u.fsf@members.fsf.org> <86y4f6v2r2.fsf@members.fsf.org> <561E1736.7070706@gmx.at> <86wpufc8n8.fsf@members.fsf.org> <56290200.1000700@gmx.at> <86bnbqd80z.fsf@members.fsf.org> <5629E96C.3090307@gmx.at> <861t7unqq4.fsf@members.fsf.org> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: quoted-printable X-Trace: ger.gmane.org 1456851928 18813 80.91.229.3 (1 Mar 2016 17:05:28 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Tue, 1 Mar 2016 17:05:28 +0000 (UTC) Cc: "21649@debbugs.gnu.org" <21649@debbugs.gnu.org> To: Nicolas Richard Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Tue Mar 01 18:05:17 2016 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1aanjY-0004hy-GN for geb-bug-gnu-emacs@m.gmane.org; Tue, 01 Mar 2016 18:05:16 +0100 Original-Received: from localhost ([::1]:51199 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aanjX-000760-VW for geb-bug-gnu-emacs@m.gmane.org; Tue, 01 Mar 2016 12:05:15 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:41235) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aanjQ-00072M-DW for bug-gnu-emacs@gnu.org; Tue, 01 Mar 2016 12:05:12 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aanjK-0003nw-Ne for bug-gnu-emacs@gnu.org; Tue, 01 Mar 2016 12:05:08 -0500 Original-Received: from debbugs.gnu.org ([208.118.235.43]:59426) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aanjK-0003nk-KV for bug-gnu-emacs@gnu.org; Tue, 01 Mar 2016 12:05:02 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84) (envelope-from ) id 1aanjK-0008Ct-Ec for bug-gnu-emacs@gnu.org; Tue, 01 Mar 2016 12:05:02 -0500 X-Loop: help-debbugs@gnu.org Resent-From: martin rudalics Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 01 Mar 2016 17:05:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 21649 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch Original-Received: via spool by 21649-submit@debbugs.gnu.org id=B21649.145685186831499 (code B ref 21649); Tue, 01 Mar 2016 17:05:02 +0000 Original-Received: (at 21649) by debbugs.gnu.org; 1 Mar 2016 17:04:28 +0000 Original-Received: from localhost ([127.0.0.1]:56552 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aanil-0008Bz-QK for submit@debbugs.gnu.org; Tue, 01 Mar 2016 12:04:27 -0500 Original-Received: from mout.gmx.net ([212.227.17.21]:52548) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aanik-0008Bm-Hg for 21649@debbugs.gnu.org; Tue, 01 Mar 2016 12:04:26 -0500 Original-Received: from [192.168.1.101] ([212.95.7.58]) by mail.gmx.com (mrgmx102) with ESMTPSA (Nemesis) id 0MKbZD-1aZydi1pod-001wwH; Tue, 01 Mar 2016 18:04:17 +0100 In-Reply-To: <861t7unqq4.fsf@members.fsf.org> X-Provags-ID: V03:K0:1ZQfGCF/hYXPwlQqO4s+Y+qufrjVQ3V81lbo2GguVFsNll5E5bD pHWiH/DesRHUJKH/bO0gwebOy/U4Ip5lCtdfdXbszSwbt9i5pyW8zUGUZigPNZ47Cp/5GuW frhbVXsPDmE8jrV7ZhMYI03XpWZG6si5+tcM9ejVoZDqjVpsaBtidloCToWvtgYq0dKGNGe X7Tayqvux0Ahvp0HsReEg== X-UI-Out-Filterresults: notjunk:1;V01:K0:BmCulQe5DiE=:YByEFBYjV0RU2PWYOPPnYj LXudo6eXVnIx1amsn3BK5Krr0CMeSYOCiCiU9iXaAmdzN7shBA/srbSsA/T4cYZ66j7+V7Hr6 W3Sg3dg8cYqLIogl0jJWx4NU5AAkgTnLG4lZTCfcpDccNsIeuzyN3ppeBgbyuD9We8wL7zlqh w6U2Oq5s9tsDJpNSDGwlGqysBYs/c+zrk+aZAOLea+naeuuJco6p8pNBLP8aiA3ha3s6DEMfm rV17lVgVaVSgQK0pqPNQvd2lXa9k464jrVll2KgwEC1l39gGZtrZH3fst8M5DD+pT4EARbqBG qgpgnZOXts69iuctY/3tKJ/vf3FBEbO/jO0DjM4E51rEbGoV1IF+ROkHMcnC1bsOkL2BlGVj6 SFnyhEyoQk2N9xcrgztdtxhmdN1Knen7tf4hU4V+X+rFvs5Mt4EYl0T4DscT5PoDjp8Zq0n7Y iPzL5YDuqmdOmIGNvobF+sct6CqpTfsCGBZZhQQLSaqNkkhtaJ3khx4RbDINn5Q9MIqpJOknZ 5xkknfSGOziRwuIUcsYnn1R26UAccCzLE7JxtlwpF2WaDyBMo1wvv6h6XidxT+S94qiEgCxGI CfVFMsoF30cD3jfzniQaijnki2zFM2Rf30aytUWcb6N1xHv+itgPtg+6N3ma13CdzzbB0EiQK 8Fh1CrMcPTPjvp7KkbpbOd88yrrhaNK/+dAOjFlg1NAAKkUXKDIVTpeR180rDOPlSPWQ2QVCM KM/seI98oxIRiULCCwjSUR0irYHNAs8dlV7d8s0wlOKWMo+tNQbsBpnVdi/7GUmGW+FW0eRO 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: 208.118.235.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.org@gnu.org Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.bugs:114259 Archived-At: > Well, it took a bit of time but here I am ! Could you please review th= e > following patch ? Thanks for the patch! +(defun display-buffer-reuse-mode-window (buffer alist) + "Return a window based on the mode of the buffer it displays. +Display BUFFER in the returned window. Return nil if no usable ^ +window is found. + +If ALIST contains a `mode' entry, its value is a major mode (a +symbol) or a list of modes. A window is a candidate if it +displays a buffer that derives from one of the given modes. When ^ +ALIST contains no `mode' entry, the current major mode of BUFFER +is used. Please consistently use two spaces after each sentence in doc-strings, comments etc. + (dolist (window windows) + (let ((window-mode (with-current-buffer + (window-buffer window) + major-mode)) + mode? frame?) + (setq mode? + (cond ((memq window-mode allowed-modes) + 'same) + ((let ((major-mode window-mode)) + (derived-mode-p allowed-modes)) + 'derived))) It's not nice to bind a buffer-local variable like =E2=80=98major-mode=E2= =80=99 in a completely unrelated buffer just for calling =E2=80=98derived-mode-p=E2=80= =99. Please do that either within the =E2=80=98with-current-buffer=E2=80=99 form abov= e, somehow like (dolist (window windows) (let (window-mode window-derived-mode mode? frame?) (with-current-buffer (window-buffer window) (setq window-mode major-mode) (setq window-derived-mode (derived-mode-p allowed-modes))) (setq mode? (cond ((memq window-mode allowed-modes) 'same) (window-derived-mode 'derived))) or simply write ((with-current-buffer (window-buffer window)) (derived-mode-p allowed-modes)) 'derived))) instead. + (let ((window (first (nconc same-mode-same-frame This gets me In end of data: window.el:8617:1:Warning: the function =E2=80=98first=E2=80=99 is not kno= wn to be defined. here. Thanks again, martin