From unknown Sun Jun 22 22:45:00 2025 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-Mailer: MIME-tools 5.509 (Entity 5.509) Content-Type: text/plain; charset=utf-8 From: bug#75949 <75949@debbugs.gnu.org> To: bug#75949 <75949@debbugs.gnu.org> Subject: Status: kill-buffer-quit-windows breaks kill-buffer-hook Reply-To: bug#75949 <75949@debbugs.gnu.org> Date: Mon, 23 Jun 2025 05:45:00 +0000 retitle 75949 kill-buffer-quit-windows breaks kill-buffer-hook reassign 75949 emacs submitter 75949 Juri Linkov severity 75949 normal thanks From debbugs-submit-bounces@debbugs.gnu.org Thu Jan 30 12:13:07 2025 Received: (at submit) by debbugs.gnu.org; 30 Jan 2025 17:13:07 +0000 Received: from localhost ([127.0.0.1]:47506 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tdY6F-0004VN-Cr for submit@debbugs.gnu.org; Thu, 30 Jan 2025 12:13:07 -0500 Received: from lists.gnu.org ([2001:470:142::17]:58302) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1tdY6C-0004Uo-9V for submit@debbugs.gnu.org; Thu, 30 Jan 2025 12:13:04 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tdY66-0000WO-NA for bug-gnu-emacs@gnu.org; Thu, 30 Jan 2025 12:12:58 -0500 Received: from relay6-d.mail.gandi.net ([2001:4b98:dc4:8::226]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tdY64-00038s-Iw for bug-gnu-emacs@gnu.org; Thu, 30 Jan 2025 12:12:58 -0500 Received: by mail.gandi.net (Postfix) with ESMTPSA id B78224428A for ; Thu, 30 Jan 2025 17:12:50 +0000 (UTC) From: Juri Linkov To: bug-gnu-emacs@gnu.org Subject: kill-buffer-quit-windows breaks kill-buffer-hook Organization: LINKOV.NET X-Debbugs-Cc: martin rudalics Date: Thu, 30 Jan 2025 19:04:09 +0200 Message-ID: <87cyg4wv1i.fsf@mail.linkov.net> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/31.0.50 (x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain X-GND-State: clean X-GND-Score: 0 X-GND-Cause: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgdeifeelucetufdoteggodetrfdotffvucfrrhhofhhilhgvmecuifetpfffkfdpucggtfgfnhhsuhgsshgtrhhisggvnecuuegrihhlohhuthemuceftddunecunecujfgurhephffvufhofffkfgggtgesthdtredttdertdenucfhrhhomheplfhurhhiucfnihhnkhhovhcuoehjuhhriheslhhinhhkohhvrdhnvghtqeenucggtffrrghtthgvrhhnpeejgffgtddthfelteejkeejueegvdekgfdufffgtdehvddtkeetveehgfffjeeuteenucfkphepledurdduvdelrdeliedrledtnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehinhgvthepledurdduvdelrdeliedrledtpdhhvghlohepmhgrihhlrdhgrghnughirdhnvghtpdhmrghilhhfrhhomhepjhhurhhisehlihhnkhhovhdrnhgvthdpnhgspghrtghpthhtohepuddprhgtphhtthhopegsuhhgqdhgnhhuqdgvmhgrtghssehgnhhurdhorhhg X-GND-Sasl: juri@linkov.net Received-SPF: pass client-ip=2001:4b98:dc4:8::226; envelope-from=juri@linkov.net; helo=relay6-d.mail.gandi.net X-Spam_score_int: -25 X-Spam_score: -2.6 X-Spam_bar: -- X-Spam_report: (-2.6 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: 0.7 (/) 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.3 (/) Please try to evaluate in the *scratch* buffer: (progn (setopt kill-buffer-quit-windows t) (view-echo-area-messages) (pop-to-buffer-same-window (get-buffer-create "foo")) (add-hook 'kill-buffer-hook (lambda () (message "%S" (current-buffer)))) (add-hook 'kill-buffer-hook (lambda () (kill-buffer (get-buffer "bar"))) nil t) (display-buffer (get-buffer-create "bar")) (switch-to-buffer (get-buffer "*scratch*")) (kill-buffer (get-buffer "foo"))) Then observe in the *Messages* buffer that the hook 'kill-buffer-hook' is run in the *scratch* buffer that is never killed. Afterwards try to set kill-buffer-quit-windows back to the default value nil, and evaluate again. Then everything is correct. It seems that kill-buffer-quit-windows somehow messes up the current buffer while running 'kill-buffer-hook'. This is a distilled test case from the real problem in treesit--explorer-kill-explorer-buffer that prevents (add-hook 'kill-buffer-hook #'save-place-to-alist) from saving places in the right buffer. From debbugs-submit-bounces@debbugs.gnu.org Fri Jan 31 03:49:58 2025 Received: (at 75949) by debbugs.gnu.org; 31 Jan 2025 08:49:58 +0000 Received: from localhost ([127.0.0.1]:49919 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tdmis-0004vp-44 for submit@debbugs.gnu.org; Fri, 31 Jan 2025 03:49:58 -0500 Received: from mout.gmx.net ([212.227.15.15]:45265) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1tdmiq-0004vY-4v for 75949@debbugs.gnu.org; Fri, 31 Jan 2025 03:49:57 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.at; s=s31663417; t=1738313389; x=1738918189; i=rudalics@gmx.at; bh=SSJ78h2LRFygly7uHuV/eAsuspwDQL+Rb5bhVWYM6DE=; h=X-UI-Sender-Class:Message-ID:Date:MIME-Version:Subject:To: References:From:In-Reply-To:Content-Type: Content-Transfer-Encoding:cc:content-transfer-encoding: content-type:date:from:message-id:mime-version:reply-to:subject: to; b=dO4B11N+mdbrdtVZ1vaMgP705MPal9YU3nVISnbYnJ3SesQuUTqXok/v/uW8tvCm VThLzOMowl4Ws21I7DYUjC/3EEmUI6NnDF1BY+VrR62vckA083fYjBZ8/ot1UkWlt KfQBoAn2yNE+2rAQY257VW/2zH/pgmKW6OkJxc+PiAm0Y8/pyA1lBrFMZylXNGld+ VobHg/q5qUDdojsJtLyzVitxtN+9kapdJyPhgbm1pUIChLtezocN5Ohl2z2ePX8tO yWdqqRmh4mWWC5Hoi2s1T65oKckhgkCUYGEf+jkGkB5lQa/pfDINjRSW1Yu4NTlj/ 0t5LANcVn6V/QAU5Nw== X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a Received: from [192.168.31.113] ([213.142.96.23]) by mail.gmx.net (mrgmx005 [212.227.17.190]) with ESMTPSA (Nemesis) id 1MbzuH-1t1xat3gKd-00pzBj; Fri, 31 Jan 2025 09:49:48 +0100 Message-ID: Date: Fri, 31 Jan 2025 09:49:48 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: bug#75949: kill-buffer-quit-windows breaks kill-buffer-hook To: Juri Linkov , 75949@debbugs.gnu.org References: <87cyg4wv1i.fsf@mail.linkov.net> Content-Language: en-US From: martin rudalics In-Reply-To: <87cyg4wv1i.fsf@mail.linkov.net> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Provags-ID: V03:K1:S5Rcb8ijYmxIRyFapEui8yHL346w1JXiyLolYbDioCCPUhMct2t 5lHzf7xe9Mwq7J/+pL7NN9omAzm4UFAyA9BlMJxrtm64/rroWQY7G8M9hlw9PIvU51WmMgZ bpR7slKUlnEV9j4Aol4Z7iKZstRDc1gTjp7fOzuBwUmJbbr1PSf3Oa5oTrRT8X4vP9s4JMN FY8U3MA4rtgj2BoOq8Ozg== X-Spam-Flag: NO UI-OutboundReport: notjunk:1;M01:P0:5jraIHPc+3Y=;woXMESXxkaIe/O20PxLKWTOpGYy 6cyl9dZu3lp9ZfY7WoOmOsb4O3kkHsCekshUgYDkhje+lEtbxOfbv///A268/53eGoNGU8zA0 tSyKST7x1Uy+AtVxTG3tJhH4bWoIY+0xTKRtayUjkER1gd+pUoAG5MdGfK+kPpAMTWWMSOJt6 2208rmXwXA1bg606s8CtKla6ytr5Gxn5oxuY5KAasfcIdqSqFcg3iNY1wSlv1pH/bcpyYe4jP UmcOz51wZvRy67IALkDNhUuvYK61DW4SH87W5OcoMusq03VK9BFKD5hKVjCu/zYUTna7rEObV Q9xMYhwUr6B508tS+swKq57G4OanPSmfmu56+86Iq6MDr2hd70aNOS9TT8G8xn00aMg7qnbAx ar3XmOyNrYjxzB4zAk9yjcBmSUjPzhBCAycz3AE0KSpVGdAkphi3CzbGvBjwH1+E6bt62rgpr eB5t/YBZqqmyY9NDnzKdDqkkvqZo/hdO2Oo1szbBiqMHqoZGTWSDu4vA7ftmooR62bqpdGjfM 4T/+geom9IAolxY9C5MELKbKo+u8n1QbAhFnPUftKOFNJN3TOaOBk+TllXDAwYqQ5kYKQFpHj zDj5kQ0LrMgK20xc60neIKxRlmeXNDlGEC3k+iTIDvWXShNqbwBDqKRo9X3jc8nKAZSkgSF7v 0k75ASYMvhdXTaH9vxPLxYK8M9egSyJp+MEQxwGWOKNE7bl+CsmtxI9+KJ1swvz6a6jOhD1i0 hhUmFbMUODdaopiQ7QIO0lQ3d29SqavRkobdSsMEtLUePx5BlNYfHjTPHXSwYwu1ezpGoZjDi hvn9vG3YhRE0mw7mvjXrNJtMmt639IBwxSPzcl4jgA5t0EtGitgAa2w5vhuZnfzWlSfF2TcKz XNppVp98ysO91xcqZNqBRNrxx2rykvYCTMn0xOG5H1cJDw+Z3Q+Q22rD6LRQDhVdRqIpq3Lhj MrlMEqrcu+FT11nSGkZrgXfijGKk95idkvQQwx4FgOeFwc2y9cieyDLLioZW7eKNKiZ5ieQud Iu7FemZLaBO/jtl0UD4BMigyH6WHjSn2dSfYEq0n9LYpHsLYOcmHFyzWZdvKSmgAoZgHHRvfi /NsCVH3zvBe0tazALv2GrtSwLSTEYYHg8T6si2+ng4g4/KREymbOO7F+WUqwaOYe+dAMfKoQR Jh/sdPxGfnedBzly8wX/nkF1GOxD7c/KF2kdN8JxONs12ouIzabWjJvBwagFoma3o0LuWkoyF Ou4PoUsEUqVWBw2DBQi/0QdjnPq6sLmKTKzFiZyO9Zah/xyFiskqdnc4OhUOmh4e0qYZ5OuX+ C4Rpry0VcXfWJ7+1RBOWnRB4kqDWUPKuUumsuTPdDJQzkY= X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 75949 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 (-) > Then observe in the *Messages* buffer that the hook 'kill-buffer-hook' > is run in the *scratch* buffer that is never killed. > > Afterwards try to set kill-buffer-quit-windows back to the default value nil, > and evaluate again. Then everything is correct. > > It seems that kill-buffer-quit-windows somehow messes up the current buffer > while running 'kill-buffer-hook'. I checked in a fix. In general, no function on 'kill-buffer-hook' can be sure that the buffer to be killed is current because another function on that hook might have changed the current buffer (or even killed it) before. That promise, like similar ones in 'window-configuration-change-hook', should never have been made. An appropriate fix could be possibly made in run_hook_with_args. But that might change behaviors that rely on hook-2 running after hook-1 changed the current buffer. Ideally, we'd have 'kill-buffer-functions' with the buffer to be killed as sole argument (and the function on the hook would still have to check whether that buffer is alive). Thanks, martin From debbugs-submit-bounces@debbugs.gnu.org Sat Feb 01 12:27:45 2025 Received: (at 75949) by debbugs.gnu.org; 1 Feb 2025 17:27:45 +0000 Received: from localhost ([127.0.0.1]:59816 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1teHHV-0007md-0F for submit@debbugs.gnu.org; Sat, 01 Feb 2025 12:27:45 -0500 Received: from relay3-d.mail.gandi.net ([2001:4b98:dc4:8::223]:53927) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1teHHS-0007mL-A3; Sat, 01 Feb 2025 12:27:43 -0500 Received: by mail.gandi.net (Postfix) with ESMTPSA id 7C06B204A5; Sat, 1 Feb 2025 17:27:33 +0000 (UTC) From: Juri Linkov To: martin rudalics Subject: Re: bug#75949: kill-buffer-quit-windows breaks kill-buffer-hook In-Reply-To: (martin rudalics's message of "Fri, 31 Jan 2025 09:49:48 +0100") Organization: LINKOV.NET References: <87cyg4wv1i.fsf@mail.linkov.net> Date: Sat, 01 Feb 2025 19:25:47 +0200 Message-ID: <87msf5k25g.fsf@mail.linkov.net> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/31.0.50 (x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain X-GND-State: clean X-GND-Score: -100 X-GND-Cause: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgdduvdeffecutefuodetggdotefrodftvfcurfhrohhfihhlvgemucfitefpfffkpdcuggftfghnshhusghstghrihgsvgenuceurghilhhouhhtmecufedtudenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujfgurhephffvvefujghofhffkfgfgggtsehttdertddtredtnecuhfhrohhmpefluhhrihcunfhinhhkohhvuceojhhurhhisehlihhnkhhovhdrnhgvtheqnecuggftrfgrthhtvghrnhepffegteefveelhfeljeefueehieduiedtfffhuddtkeeffffghfevheetgeeukeehnecukfhppeeluddruddvledrleeirdeltdenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepihhnvghtpeeluddruddvledrleeirdeltddphhgvlhhopehmrghilhdrghgrnhguihdrnhgvthdpmhgrihhlfhhrohhmpehjuhhriheslhhinhhkohhvrdhnvghtpdhnsggprhgtphhtthhopeefpdhrtghpthhtoheptghonhhtrhholhesuggvsggsuhhgshdrghhnuhdrohhrghdprhgtphhtthhopeejheelgeelseguvggssghughhsrdhgnhhurdhorhhgpdhrtghpthhtoheprhhuuggrlhhitghssehgmhigrdgrth X-GND-Sasl: juri@linkov.net X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 75949 Cc: 75949@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 (-) close 75949 31.0.50 thanks >> Then observe in the *Messages* buffer that the hook 'kill-buffer-hook' >> is run in the *scratch* buffer that is never killed. >> >> Afterwards try to set kill-buffer-quit-windows back to the default value nil, >> and evaluate again. Then everything is correct. >> >> It seems that kill-buffer-quit-windows somehow messes up the current buffer >> while running 'kill-buffer-hook'. > > I checked in a fix. Thanks, I confirm there is no problem anymore. > In general, no function on 'kill-buffer-hook' can be sure > that the buffer to be killed is current because another function > on that hook might have changed the current buffer (or even killed it) > before. That promise, like similar ones in > 'window-configuration-change-hook', should never have been made. > > An appropriate fix could be possibly made in run_hook_with_args. But > that might change behaviors that rely on hook-2 running after hook-1 > changed the current buffer. Ideally, we'd have 'kill-buffer-functions' > with the buffer to be killed as sole argument (and the function on the > hook would still have to check whether that buffer is alive). Since a new argument can't be added, another variant would be at least to set the current buffer before every call of the hook functions. I.e. instead of (run-hooks 'kill-buffer-hook) to do something like (run-hook-wrapped 'kill-buffer-hook (lambda (fun) (with-current-buffer current-buffer (funcall fun)) nil)) But this won't help when buffers are switched inside hook functions. From debbugs-submit-bounces@debbugs.gnu.org Sun Feb 02 03:52:59 2025 Received: (at 75949) by debbugs.gnu.org; 2 Feb 2025 08:52:59 +0000 Received: from localhost ([127.0.0.1]:33038 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1teVit-0004Ef-9F for submit@debbugs.gnu.org; Sun, 02 Feb 2025 03:52:59 -0500 Received: from mout.gmx.net ([212.227.17.21]:40837) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1teViq-0004EP-R7 for 75949@debbugs.gnu.org; Sun, 02 Feb 2025 03:52:57 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.at; s=s31663417; t=1738486370; x=1739091170; i=rudalics@gmx.at; bh=2P4aEp0Fx2rOkP/kaDg1Z7RgSwKNrGZovtJPqbhsdOk=; h=X-UI-Sender-Class:Message-ID:Date:MIME-Version:Subject:To:Cc: References:From:In-Reply-To:Content-Type: Content-Transfer-Encoding:cc:content-transfer-encoding: content-type:date:from:message-id:mime-version:reply-to:subject: to; b=A303Oe2apf+fCmHBzlgcLq7z5ceAPfRmeczGRWlTGpsWbYs0nyV9tELszG0lC/oA 2EninVZZqVNeTOPLFGaW8B/VR6gpV0HlOKfEB08Nq+DRorvKYLi7S1H49+DSyMRzq PPCKlUe0Q9pbo27sWwKRThpfGWkA263MnShkHPEDaQr5k+V0VlwI2rtUgBRKIb2MY zKag/XqoTmbnqkBtt1bqDLnnGT7T0vYUHJPD0AxJWyohZpNdxBYzi+JZK9HqqHjSz IKp8/gMKoL1b+ja2SJzwXSTjmyHEWkF8/ZrmUDJtrQy5+fEj244DBdrfAJqjnOHw9 SDYcpJy/zgVDofzoyQ== X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a Received: from [192.168.31.113] ([213.142.97.190]) by mail.gmx.net (mrgmx104 [212.227.17.168]) with ESMTPSA (Nemesis) id 1M42jQ-1teVij4Bzk-00DR8o; Sun, 02 Feb 2025 09:52:50 +0100 Message-ID: <044cd9b7-bdd3-472c-8361-463dc461d543@gmx.at> Date: Sun, 2 Feb 2025 09:52:49 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: bug#75949: kill-buffer-quit-windows breaks kill-buffer-hook To: Juri Linkov References: <87cyg4wv1i.fsf@mail.linkov.net> <87msf5k25g.fsf@mail.linkov.net> Content-Language: en-US From: martin rudalics In-Reply-To: <87msf5k25g.fsf@mail.linkov.net> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Provags-ID: V03:K1:gyuDOEKxCW0GmOWI9023eH3ebuZGW2Id9X2WY8YMx3zbkBdlNpt DZ50qC9GPrwIPCOyyyzFLbRzKndKePCL9FLRZP+7E5OkEk0O8Ww36EI+LZ3/HYgNWYA3/7m gm5w8D+ferJQbESUvMA0bGuGnjEanJScdIepYLzjmPRDorIUCHdzPXN4bEstptPwtq76GEY h4pLL+L2/pnhpxNt7Lxhg== X-Spam-Flag: NO UI-OutboundReport: notjunk:1;M01:P0:KwzpIn1Vcjs=;AW/Fz2SCCINtHxe3mJmwdFmhI0E cWE+Ge5DUs/38mPhfE04CIglvwMRD/F7o05JLxPgLzc+aH6T4Xovyf1cfSwj1R7rQmb+/drcV HLEVROD2fozkGjSe3O+/QIS9ruyQm8/nOeDo0B1ko5hp5v5RmgQld8iRGxm3o70VP4ynoIyg6 sJisPc5uC0wQyLWXEdqYZM/6KpQXQjKQW6dCXw/hWvZFIslEKbOWe2yq5BkxDBOGAoJUswy7t G7SGGARzBx4vEWm7JsdNqidq2Kg0CAKLtoRFSOmMtVx6eAihuOTYWsLEoc1e8r4yCqXaGiqrm g4HyFhYiPdFeMKD0agp1nh8/Sh0p71DUrGd4yxeVzBvrVhoblbtaLRdYjwPJHf0fgl7SthgWT dLtI/jts2DSO2MnlF3PaFaqoXAENeMKB+pytVZk6IjTia5U7IwIqDPSwprgZmZOMfJYOs9pMr bHGyLVUYRjVK6NBD8qCuMz91as3+AiBu8URWY9FDlV/UV6tukCkah5us19I5jYsestGcGtMuT Yw90qjMgpbU8z6cmOkw6rZfaaqk4hBbbx1kO7fBdjgogVrt2mTHNjXUTri7kK7Eun6xvFcNpU R543TZfeYc9WihsVaXvYqWmu2AaKMlDfQQrN8oDyYR948XAAVKTDeKAoudX5eUrnxaX7D7JSl scMQ2kzWEAjmKwv3dypZWLB/WFwU46Pw2/VFrFyrKaKpAd7iNUpOYaUuUFag18dwsmb5l6Yy0 Rtk4jTs9VObqHxx0S+wSvU00QzUdPKt17lbZQ2w8nU66RP6DGSDD/qeWGdT5vmm3mtgIDJpbS Dv0SXp8cM89SFm6Mg5gnHL8BDxgAqwueBMHO/qW+C0/5UiiFYLAIeQ9uilJ63djAyCmKtyJSX Jq875iI4QIIisxhl749pPTv//hx1UlenVlvs3xjoShVPQ7UGHdahzYq1cQR34Ws8dAwUItnKh smucsCQS+gpYYLLrEUj5ynQMfPYMrPtPUoYja9Lb/Hq7dQ8hYBDFVnBfPSb65sriSXEclMYG5 6Xzt9ZspvKA8shzgwJPdNQww6C08f6NtFU5FqoOORennk8E/PWLxX3xiT4l+UGGRCLI8K26Cg nYOeBcN1PVx0MU3bodz1a6KcfyxtYYbR+luvKDhLCUmfI6k6Q/eBl3T8KqP7x2E0tbkvU9Qlk gyyLPkMmG5e0hL3QTXO6EJdtuxx/eYo7zeRDpTyqtA/sYJmfj7gEkUpLQVOmRuHl4j9GiPj1o DoOX7x02U3Z0DqigN9QoK+Dk/FIVEvn+ZqBzLTowV2R9N0Yxw8U9TmiaejhxIsbzeWQdEbvlm OlzAxC9w3jDEGzojooPomRrsLFNC5+d5JCkAtnx3IZn6Jw= X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 75949 Cc: 75949@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 (-) > Since a new argument can't be added, another variant would be at least > to set the current buffer before every call of the hook functions. > I.e. instead of > > (run-hooks 'kill-buffer-hook) > > to do something like > > (run-hook-wrapped 'kill-buffer-hook > (lambda (fun) > (with-current-buffer current-buffer > (funcall fun)) > nil)) > > But this won't help when buffers are switched inside hook functions. The problem is that we run hooks completely in C so wrapping is at least not that simple. Whatever it is, nesting 'kill-buffer-hook' as in (add-hook 'kill-buffer-hook (lambda () (kill-buffer (get-buffer "bar"))) nil t) is not really recommended. martin From debbugs-submit-bounces@debbugs.gnu.org Mon Feb 03 02:58:38 2025 Received: (at 75949) by debbugs.gnu.org; 3 Feb 2025 07:58:38 +0000 Received: from localhost ([127.0.0.1]:37590 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1terLq-0001WO-B0 for submit@debbugs.gnu.org; Mon, 03 Feb 2025 02:58:38 -0500 Received: from relay3-d.mail.gandi.net ([217.70.183.195]:43383) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1terLn-0001Vu-Ch for 75949@debbugs.gnu.org; Mon, 03 Feb 2025 02:58:35 -0500 Received: by mail.gandi.net (Postfix) with ESMTPSA id 8CFBB204A8; Mon, 3 Feb 2025 07:58:28 +0000 (UTC) From: Juri Linkov To: martin rudalics Subject: Re: bug#75949: kill-buffer-quit-windows breaks kill-buffer-hook In-Reply-To: <044cd9b7-bdd3-472c-8361-463dc461d543@gmx.at> (martin rudalics's message of "Sun, 2 Feb 2025 09:52:49 +0100") Organization: LINKOV.NET References: <87cyg4wv1i.fsf@mail.linkov.net> <87msf5k25g.fsf@mail.linkov.net> <044cd9b7-bdd3-472c-8361-463dc461d543@gmx.at> Date: Mon, 03 Feb 2025 09:52:47 +0200 Message-ID: <87frkv5usw.fsf@mail.linkov.net> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/31.0.50 (x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain X-GND-State: clean X-GND-Score: -100 X-GND-Cause: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgddujedtgecutefuodetggdotefrodftvfcurfhrohhfihhlvgemucfitefpfffkpdcuggftfghnshhusghstghrihgsvgenuceurghilhhouhhtmecufedtudenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujfgurhephffvvefujghofhffkfgfgggtsehttdertddtredtnecuhfhrohhmpefluhhrihcunfhinhhkohhvuceojhhurhhisehlihhnkhhovhdrnhgvtheqnecuggftrfgrthhtvghrnhepffegteefveelhfeljeefueehieduiedtfffhuddtkeeffffghfevheetgeeukeehnecukfhppeeluddruddvledrleeirdeltdenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepihhnvghtpeeluddruddvledrleeirdeltddphhgvlhhopehmrghilhdrghgrnhguihdrnhgvthdpmhgrihhlfhhrohhmpehjuhhriheslhhinhhkohhvrdhnvghtpdhnsggprhgtphhtthhopedvpdhrtghpthhtohepjeehleegleesuggvsggsuhhgshdrghhnuhdrohhrghdprhgtphhtthhopehruhgurghlihgtshesghhmgidrrght X-GND-Sasl: juri@linkov.net X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 75949 Cc: 75949@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 (-) > Whatever it is, nesting 'kill-buffer-hook' as in > > (add-hook 'kill-buffer-hook (lambda () (kill-buffer (get-buffer "bar"))) > nil t) > > is not really recommended. What is a recommended way to do this? This is a valid use case when killing one buffer requires also killing a dependent buffer. From debbugs-submit-bounces@debbugs.gnu.org Mon Feb 03 03:33:56 2025 Received: (at 75949) by debbugs.gnu.org; 3 Feb 2025 08:33:56 +0000 Received: from localhost ([127.0.0.1]:37674 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1teru0-0006Ee-9y for submit@debbugs.gnu.org; Mon, 03 Feb 2025 03:33:56 -0500 Received: from mout.gmx.net ([212.227.17.22]:43529) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1tertx-0006EJ-LQ for 75949@debbugs.gnu.org; Mon, 03 Feb 2025 03:33:54 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.at; s=s31663417; t=1738571626; x=1739176426; i=rudalics@gmx.at; bh=6fIn3afFI7FLTUbbSMtCZi/sxf194uBqwj6N7N1lc3Y=; h=X-UI-Sender-Class:Message-ID:Date:MIME-Version:Subject:To:Cc: References:From:In-Reply-To:Content-Type: Content-Transfer-Encoding:cc:content-transfer-encoding: content-type:date:from:message-id:mime-version:reply-to:subject: to; b=skUPaUU4l+AO/FwEAvbGhW5AHehCc6eZxXRx2vPsOrYSMLezKBjuhJHngCbHTcCa hHoe0yPmszUEV+zVTvgfWoMbEP8nZWoe/qRzaAKTmhl2e4irSUZeG2fHgAe+pgskE q/zCklK+zox/T0bi+wA5svIb1VjhuQ4dhrQXg6q3xaLOtKVJLJ7G+kvxovbrAwfzg N1AKxvELJdBvA3I255m6R2m7Imn04ydsN558bUZEzs45ffVVpptg0xlKBauz+ed7I Z/4Wi31dVyM4ldItXvyEWEwDDMqs2oTRUSFrjoKHOqz7oLdEWQyxw6GOC0ZYGbDlh 13PyZeWLsmSX7TBVFw== X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a Received: from [192.168.31.113] ([46.125.249.108]) by mail.gmx.net (mrgmx104 [212.227.17.168]) with ESMTPSA (Nemesis) id 1McYCb-1t9Mxw3nzR-00q5hO; Mon, 03 Feb 2025 09:33:46 +0100 Message-ID: <972c42ed-7038-4e94-a802-b1db513714ce@gmx.at> Date: Mon, 3 Feb 2025 09:33:45 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: bug#75949: kill-buffer-quit-windows breaks kill-buffer-hook To: Juri Linkov References: <87cyg4wv1i.fsf@mail.linkov.net> <87msf5k25g.fsf@mail.linkov.net> <044cd9b7-bdd3-472c-8361-463dc461d543@gmx.at> <87frkv5usw.fsf@mail.linkov.net> Content-Language: en-US From: martin rudalics In-Reply-To: <87frkv5usw.fsf@mail.linkov.net> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Provags-ID: V03:K1:C+7XCPUtevyIv+oCJZG0/PyikUKMdbbHYKM1KpYnVaaFYiZntOI EocleczZixzzrVtUF2HOvNJsj+E0pO/LbzdU1yunlf8P2DtkeU6qYmgt78iczGokhT+C+js VBrjeVH8D0PGoc9jvsUPMJQb/XaQfagETq8dH4eQhvOvkXv2k2SPlOxIMylA74rOwzhs1HQ iJbz8ibYJA2hgvAjmpt9A== X-Spam-Flag: NO UI-OutboundReport: notjunk:1;M01:P0:0YawKRnBCFM=;Mzid580ALVmidr1fHAOiFbud5S2 F2X2LOjRCPDniwAIrCD7TbSBErc0QRr4Vk/QLkTZiLIODTt1wIBHPBi7wSF+zk7qsGwCTTSkG mSUixcfpMO0/yqRKSPSpnzL51UMVzzHvc1AQOXhbfjC9X/U6zecm7KCpTVftqp+BfPneNg/Vf b/0BKyWCPplKiszxRxgZ9aX4bb2UPvOzknF1/Hnf3Zb+Rv+VpPaF3jGf71iZbO8GLL5xI/SMS rgemd8ExEg4ryduW/FBjB7nRhX+SJO/Z8wiDnZZpf1LuixLD3B+cJIFst0A9WjW1qsrIfThFk GK+7qfUBQPaOpVlaXhWWSZnqj74R2jznJDzrptwoAAqfNuMxaIik49w6lLZD+SYavd8kl+O3A nimJXKl7qvhtdJLTDLBF132srYiTgy00TLY3/o5vuyUI6WOKBOcEVaoYvgOs7mjw/O4UcakWG pWfTMCrrODXDXmqI/R+PM3hp8nWKg3eCUGrYvYroySupUktGitJJGTV7CVIaiQrGeUhkRug9B EqxHLXIYsbWBnEDaW3xRg5AnRXMxD8JzQOgZMW0L3aDgn+GW8lKL3vTDefPhPY4eMR70nkyQv kp86MTpCJAZQRcT9WU2t02ySPWVeWnaaFbQQ9OokItfy20p2PIb5Js+ZbpyJHHohXlJQew5h4 nsXy5YZ0BdLGA4TqFQflFe5bSHuSOXO3xtt4mPDDC+R5HRf4nQSe6GAa7Zmr/yOB+mGmuSlSH oBvd1e72L02sgLgILRzJbb+oeLjskSNKYUXAq00jeZvwMTLFyZUAuKTqoMGX7RUOD9aPaXnDC 2Y4mYWxqs0xLYQZ4Mv9jdGIa1M1A84qo6t6/WtFASBm1TDiDYifUqx9oBeMu6fn0nNJr8ijcF xx+z7W5hFwIZkKPmHM3n8o3vxrkgc2hyecA6QW5258a49/SmE6FEtktOPuvyGpRLodhEiJRu9 ITNwksxLmFTgPESVTO02bFXIfP0pIt/MYNr8rqg8D4CJB9OuHZ47wtwCmjULuBtubnYTcJ/dk C+OpjkHFzsNHML4ZPyXZNFEo+/hrdd8GzYJivKA/vPbtSCSB5vF12++IWZjn0BFb2k3dowH9Y tVhiSPYDiTkJAfIW8ttEtl6xH6crq8ObQITkC1vsPg6p+Lz+EQ+WehVDfotIj8tA+5TKomCLx 22BvQs+bzsqTGkOn9hWhLhU9RsluhuNFz0nLazi5ASN4sXYSwR3uVn9nPdIy+IBS/7OoBkOeR FK33+e0tlpwlfH9Q2bqW+v3MyVrC7jnTnlXpOAM/wxEGjBIC6mSYIB+T/xOOIj+F5kgi85383 uZVoL6lZmcxwWLaGFN4e/kgvsjp+Ne/VR4D+QA13GLBCS6266lNOEACxJLgQtwvpNUC X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 75949 Cc: 75949@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 (-) >> Whatever it is, nesting 'kill-buffer-hook' as in >> >> (add-hook 'kill-buffer-hook (lambda () (kill-buffer (get-buffer "bar"))) >> nil t) >> >> is not really recommended. > > What is a recommended way to do this? This is a valid use case > when killing one buffer requires also killing a dependent buffer. Any function on any hook that changes the corresponding infrastructure should preserve the state around any such change. The basic values that should remain unchanged are the selected window, the selected window of each frame and the current buffer (unless the function deletes them). martin From unknown Sun Jun 22 22:45:00 2025 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@debbugs.gnu.org From: Debbugs Internal Request Subject: Internal Control Message-Id: bug archived. Date: Mon, 03 Mar 2025 12:24:10 +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