From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED.blaine.gmane.org!not-for-mail From: Lars Ingebrigtsen Newsgroups: gmane.emacs.bugs Subject: bug#9867: 24.0.90; quit-window should provide quit-window-hook Date: Fri, 30 Aug 2019 11:40:46 +0200 Message-ID: <87sgpjhty9.fsf@gnus.org> References: <861uu1ogxq.fsf@googlemail.com> <87d0h01sqf.fsf@mouse.gnus.org> <761cfbbf-88ef-d161-fb7b-a906c12e5307@gmx.at> <87mug2xoek.fsf@mouse.gnus.org> <2f9b873f-3ac0-0008-0c23-1add5eb82a03@gmx.at> <8736hsd9qm.fsf@mouse.gnus.org> <70aa4943-eb2d-ffa2-b6ee-4638181d1920@gmx.at> <87a7c0cnn2.fsf@gnus.org> <87zhjxakbs.fsf@gnus.org> <79f9288e-c518-3607-78a7-2e0e0939851d@gmx.at> Mime-Version: 1.0 Content-Type: text/plain Injection-Info: blaine.gmane.org; posting-host="blaine.gmane.org:195.159.176.226"; logging-data="252253"; mail-complaints-to="usenet@blaine.gmane.org" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (gnu/linux) Cc: Christoph Scholtes , 9867@debbugs.gnu.org To: martin rudalics Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Fri Aug 30 11:41:33 2019 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([209.51.188.17]) by blaine.gmane.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.89) (envelope-from ) id 1i3dPO-0013Pb-6w for geb-bug-gnu-emacs@m.gmane.org; Fri, 30 Aug 2019 11:41:30 +0200 Original-Received: from localhost ([::1]:57552 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1i3dPM-0007wn-GK for geb-bug-gnu-emacs@m.gmane.org; Fri, 30 Aug 2019 05:41:28 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:59921) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1i3dP2-0007vN-6g for bug-gnu-emacs@gnu.org; Fri, 30 Aug 2019 05:41:10 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1i3dOw-00060s-Uf for bug-gnu-emacs@gnu.org; Fri, 30 Aug 2019 05:41:07 -0400 Original-Received: from debbugs.gnu.org ([209.51.188.43]:44484) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1i3dOw-0005zx-LC for bug-gnu-emacs@gnu.org; Fri, 30 Aug 2019 05:41:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1i3dOw-0000eu-Hm for bug-gnu-emacs@gnu.org; Fri, 30 Aug 2019 05:41:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Lars Ingebrigtsen Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Fri, 30 Aug 2019 09:41:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 9867 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: fixed Original-Received: via spool by 9867-submit@debbugs.gnu.org id=B9867.15671580562513 (code B ref 9867); Fri, 30 Aug 2019 09:41:02 +0000 Original-Received: (at 9867) by debbugs.gnu.org; 30 Aug 2019 09:40:56 +0000 Original-Received: from localhost ([127.0.0.1]:53305 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1i3dOp-0000eT-Sc for submit@debbugs.gnu.org; Fri, 30 Aug 2019 05:40:56 -0400 Original-Received: from quimby.gnus.org ([80.91.231.51]:39030) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1i3dOn-0000eH-2F for 9867@debbugs.gnu.org; Fri, 30 Aug 2019 05:40:54 -0400 Original-Received: from cm-84.212.202.86.getinternet.no ([84.212.202.86] helo=marnie) by quimby.gnus.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.89) (envelope-from ) id 1i3dOh-0000Lm-ID; Fri, 30 Aug 2019 11:40:50 +0200 In-Reply-To: <79f9288e-c518-3607-78a7-2e0e0939851d@gmx.at> (martin rudalics's message of "Sun, 25 Aug 2019 10:11:16 +0200") X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 209.51.188.43 X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.org gmane.emacs.bugs:166075 Archived-At: martin rudalics writes: > Not normally. It's wrapped in an unwind protection form like > 'with-current-buffer'. The following untested snippet should be (1) > fairly optimal for the normal case where the selected window is quit > and (2) guard against the case where the function run on the hook does > soemthing unexpected with the window configuration: > > (let ((window (window-normalize-window window)) > (buffer (window-buffer window))) > (if (and (eq window (selected-window)) > (eq buffer (current-buffer))) > (run-hooks 'quit-window-hook) > ;; Select WINDOW for `quit-window-hook'. > (with-selected-window window > (run-hooks 'quit-window-hook))) > ;; Run 'quit-restore-window' only if 'quit-window-hook' has left > ;; WINDOW alone. > (when (and (window-live-p window) > (eq (window-buffer window) buffer)) > (quit-restore-window window (if kill 'kill 'bury)))) I think the semantics of the command becomes rather muddled with this change. We currently provide no guarantees for what or how the hook function should do, or whether it basically disables the command if it changes the window and so on (which is what this change will do). If you think this should be what the semantics are, then I won't argue, so please feel free to go ahead and make whatever changes you want here. -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no