From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: martin rudalics Newsgroups: gmane.emacs.bugs Subject: bug#54438: 27.2; inconsistent-behavior-global-vs-local-hook Date: Fri, 18 Mar 2022 09:36:51 +0100 Message-ID: References: Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="12518"; mail-complaints-to="usenet@ciao.gmane.io" To: dalanicolai , 54438@debbugs.gnu.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Fri Mar 18 09:38:19 2022 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1nV87n-00038s-Eg for geb-bug-gnu-emacs@m.gmane-mx.org; Fri, 18 Mar 2022 09:38:19 +0100 Original-Received: from localhost ([::1]:44832 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nV87m-0006nz-25 for geb-bug-gnu-emacs@m.gmane-mx.org; Fri, 18 Mar 2022 04:38:18 -0400 Original-Received: from eggs.gnu.org ([209.51.188.92]:48930) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nV87V-0006nb-Vg for bug-gnu-emacs@gnu.org; Fri, 18 Mar 2022 04:38:02 -0400 Original-Received: from debbugs.gnu.org ([209.51.188.43]:34093) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1nV87V-0004RT-N7 for bug-gnu-emacs@gnu.org; Fri, 18 Mar 2022 04:38:01 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1nV87V-0000qz-Iz for bug-gnu-emacs@gnu.org; Fri, 18 Mar 2022 04:38:01 -0400 X-Loop: help-debbugs@gnu.org Resent-From: martin rudalics Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Fri, 18 Mar 2022 08:38:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 54438 X-GNU-PR-Package: emacs Original-Received: via spool by 54438-submit@debbugs.gnu.org id=B54438.16475926243196 (code B ref 54438); Fri, 18 Mar 2022 08:38:01 +0000 Original-Received: (at 54438) by debbugs.gnu.org; 18 Mar 2022 08:37:04 +0000 Original-Received: from localhost ([127.0.0.1]:56218 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nV86a-0000pT-3O for submit@debbugs.gnu.org; Fri, 18 Mar 2022 04:37:04 -0400 Original-Received: from mout.gmx.net ([212.227.17.21]:58803) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nV86X-0000oy-RB for 54438@debbugs.gnu.org; Fri, 18 Mar 2022 04:37:03 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=badeba3b8450; t=1647592615; bh=qv5FrSZk/eEcxFcRegD7oPh9aizc51wLIjRUy3fa/uA=; h=X-UI-Sender-Class:Date:Subject:To:References:From:In-Reply-To; b=Xw40K2f+9U51RMWW07ExA76G8aCAjTG17bhVKZdGhFovvAATgaDG4vScLuHbh4i+6 GSnp37uynIVP3zC8Kj/0St/yjkhXU8knGyEWpUbu5MbjF8e9jd9na3NTS9KGKBofe3 u7dKhUEUtCbgwj7m2iWymwaVQg1CdOcx9XamzuuY= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Original-Received: from [192.168.1.101] ([212.95.5.195]) by mail.gmx.net (mrgmx105 [212.227.17.168]) with ESMTPSA (Nemesis) id 1MYeMt-1naLB72t6p-00VjSr; Fri, 18 Mar 2022 09:36:55 +0100 Content-Language: en-US In-Reply-To: X-Provags-ID: V03:K1:+AEgoG/VZw46/KJ1qNU9qtz9rRVNUID/M2WXwfWbOp3UsjVL4Qo 9tEZz/ZTp+bxRjWkaEqVfv+0VZj5+4XLfWVeQ7HwD9wozDRXB4QdJzQJ6PVhDoeHxe3pJDe Djhic2XcUOvcCCy6scnrRpXYowVBjJhbnYYSv9e4BDgY/clrAW3Hzwdt6g43McTDjWNMZjX 8uvclt6kw9Bm+gdfIjVRw== X-UI-Out-Filterresults: notjunk:1;V03:K0:iXLU4SX1IVw=:+wQy5YIjooJYAIIIUj1gHI sJx3OYIBkodzMvGRM2c57blVGOIOcfdB6hAdV/r3cKIZgNyz+YvyQLtTNFJ3AQbFey1W75ee1 /KXciGaCiv+V4YGVZiXAMLSgSc0BdmXRln++tbVNOtYV6tsGduxUBLUHmZeBnPUAvMYYyiQmA O5I6+okyoQcCCwj95J3YYM8xjeDZhc6XAFkurBsfs9X8lOlVgdt959gCupuzT0vO2Dt9FPmFN OYPIHIPngIZnDt4g/xUjcxUzmUIQuTA/Hr96dtRNpPeheWr9wX+0wsCwivxFcDPXijuE4nW18 Ql1tpeGDL/zqAzY+9f3yIARBEu8/zc+nB8cTWTXGcfnJRGFSbIdhCTzAZkZZwHeyoWh0coZan SUT0LML96/yvtFdZu56uXntGVdzxKjY2khxctibbkCgzz7x47BRteGdKz6otdzm+0pio8vovn UJ9uec0SH+hQ0bdX/vxOBqULbekSQWGBawjP3tPCk+8Upw3+OgeCOg8C1DcoyXhcTkeS6cqBF BHwRIrlfug0kPO3lLE8G/5nwilrIg2d2HAc1rTudehHfNOtxebh6vWl7fxhqJohvVhx/0XMD0 +jdif6Q6xz58vIiS/miFewpfAIxDYskXsQ9I6O/MAR8eDrpXSydalB2SsSeWtWFghkPRmoJRG iqFAVru+RGlY8lA5uQ33anTcrHv9M2PSLfFPmysc5C4x1Nis0Ka7N8K31Zg1akCnWlqwKvyWo W/YNqExcAKguWk/CrryJVaYAEOLWfn3jXPvyMs81P9KnqBVcuLT9ZZJQC4m1wWFNvhfMjMbU X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.io gmane.emacs.bugs:228531 Archived-At: > I have used the following test code: > > (defun pop-up () > (pop-to-buffer "pop-up")) > > (defun test () > (interactive) > (with-current-buffer (get-buffer-create "test") > (add-hook 'window-configuration-change-hook #'pop-up))) > ;; (add-hook 'window-configuration-change-hook #'pop-up nil t) > > ;; the following line triggers the `pop-up` hook function > (pop-to-buffer "test"))) What is the last paren here supposed to close? Please provide two separate test sequences - one for the local and one for the global hook case. > ;; evaluate code to remove the (global) hook > (remove-hook 'window-configuration-change-hook #'pop-up) > > So you can start from emacs -Q, evaluate the above code, and do `M-x > test`, as expected the 'pop-up' buffer will be selected. > > Now remove the hook (by evaluating the last line), then comment out the > global hook and uncomment the local hook. Again do `M-x test`, this > time, the 'test' buffer, wrongly and inconsistently, will be selected. > To me this behavior looks like a bug. I'd recommend to use 'window-configuration-change-hook' only when you want the window/buffer of concern to be selected/made current while running the hook. Otherwise, you will inevitably run into problems when - OT1H you want to select another window (that for "pop-up") while running the hook, and - OTOH the mechanism at the end of run_window_configuration_change_hook (in window.c) restores the window selected before running the hook (apparently that for "test" in your case) which is certainly not a new window that popped up while running the hook. martin