GNU logs - #75949, boring messages


Message sent to rudalics@HIDDEN, bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#75949: kill-buffer-quit-windows breaks kill-buffer-hook
Resent-From: Juri Linkov <juri@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: rudalics@HIDDEN, bug-gnu-emacs@HIDDEN
Resent-Date: Thu, 30 Jan 2025 17:14:02 +0000
Resent-Message-ID: <handler.75949.B.173825718717326 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: report 75949
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: 
To: 75949 <at> debbugs.gnu.org
Cc: martin rudalics <rudalics@HIDDEN>
X-Debbugs-Original-To: bug-gnu-emacs@HIDDEN
X-Debbugs-Original-Xcc: martin rudalics <rudalics@HIDDEN>
Received: via spool by submit <at> debbugs.gnu.org id=B.173825718717326
          (code B ref -1); Thu, 30 Jan 2025 17:14:02 +0000
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 <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1tdY6F-0004VN-Cr
	for submit <at> 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 <juri@HIDDEN>) id 1tdY6C-0004Uo-9V
 for submit <at> 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 <juri@HIDDEN>) id 1tdY66-0000WO-NA
 for bug-gnu-emacs@HIDDEN; 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 <juri@HIDDEN>) id 1tdY64-00038s-Iw
 for bug-gnu-emacs@HIDDEN; Thu, 30 Jan 2025 12:12:58 -0500
Received: by mail.gandi.net (Postfix) with ESMTPSA id B78224428A
 for <bug-gnu-emacs@HIDDEN>; Thu, 30 Jan 2025 17:12:50 +0000 (UTC)
From: Juri Linkov <juri@HIDDEN>
Organization: LINKOV.NET
Date: Thu, 30 Jan 2025 19:04:09 +0200
Message-ID: <87cyg4wv1i.fsf@HIDDEN>
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@HIDDEN
Received-SPF: pass client-ip=2001:4b98:dc4:8::226;
 envelope-from=juri@HIDDEN; 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-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
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.




Message sent:


Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-Mailer: MIME-tools 5.505 (Entity 5.505)
Content-Type: text/plain; charset=utf-8
X-Loop: help-debbugs@HIDDEN
From: help-debbugs@HIDDEN (GNU bug Tracking System)
To: Juri Linkov <juri@HIDDEN>
Subject: bug#75949: Acknowledgement (kill-buffer-quit-windows breaks
 kill-buffer-hook)
Message-ID: <handler.75949.B.173825718717326.ack <at> debbugs.gnu.org>
References: <87cyg4wv1i.fsf@HIDDEN>
X-Gnu-PR-Message: ack 75949
X-Gnu-PR-Package: emacs
Reply-To: 75949 <at> debbugs.gnu.org
Date: Thu, 30 Jan 2025 17:14:02 +0000

Thank you for filing a new bug report with debbugs.gnu.org.

This is an automatically generated reply to let you know your message
has been received.

Your message is being forwarded to the package maintainers and other
interested parties for their attention; they will reply in due course.

As you requested using X-Debbugs-CC, your message was also forwarded to
  martin rudalics <rudalics@HIDDEN>
(after having been given a bug report number, if it did not have one).

Your message has been sent to the package maintainer(s):
 bug-gnu-emacs@HIDDEN

If you wish to submit further information on this problem, please
send it to 75949 <at> debbugs.gnu.org.

Please do not send mail to help-debbugs@HIDDEN unless you wish
to report a problem with the Bug-tracking system.

--=20
75949: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D75949
GNU Bug Tracking System
Contact help-debbugs@HIDDEN with problems


Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#75949: kill-buffer-quit-windows breaks kill-buffer-hook
Resent-From: martin rudalics <rudalics@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Fri, 31 Jan 2025 08:50:02 +0000
Resent-Message-ID: <handler.75949.B75949.173831339818965 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 75949
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: 
To: Juri Linkov <juri@HIDDEN>, 75949 <at> debbugs.gnu.org
Received: via spool by 75949-submit <at> debbugs.gnu.org id=B75949.173831339818965
          (code B ref 75949); Fri, 31 Jan 2025 08:50:02 +0000
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 <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1tdmis-0004vp-44
	for submit <at> 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 <rudalics@HIDDEN>) id 1tdmiq-0004vY-4v
 for 75949 <at> 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@HIDDEN;
 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: <a2cd0ac3-0810-4ebb-9fe8-0d7c17e62961@HIDDEN>
Date: Fri, 31 Jan 2025 09:49:48 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
References: <87cyg4wv1i.fsf@HIDDEN>
Content-Language: en-US
From: martin rudalics <rudalics@HIDDEN>
In-Reply-To: <87cyg4wv1i.fsf@HIDDEN>
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-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
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




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#75949: kill-buffer-quit-windows breaks kill-buffer-hook
Resent-From: Juri Linkov <juri@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Sat, 01 Feb 2025 17:28:02 +0000
Resent-Message-ID: <handler.75949.B75949.173843086529927 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 75949
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: 
To: martin rudalics <rudalics@HIDDEN>
Cc: 75949 <at> debbugs.gnu.org
Received: via spool by 75949-submit <at> debbugs.gnu.org id=B75949.173843086529927
          (code B ref 75949); Sat, 01 Feb 2025 17:28:02 +0000
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 <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1teHHV-0007md-0F
	for submit <at> 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 <juri@HIDDEN>)
 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 <juri@HIDDEN>
In-Reply-To: <a2cd0ac3-0810-4ebb-9fe8-0d7c17e62961@HIDDEN> (martin rudalics's
 message of "Fri, 31 Jan 2025 09:49:48 +0100")
Organization: LINKOV.NET
References: <87cyg4wv1i.fsf@HIDDEN>
 <a2cd0ac3-0810-4ebb-9fe8-0d7c17e62961@HIDDEN>
Date: Sat, 01 Feb 2025 19:25:47 +0200
Message-ID: <87msf5k25g.fsf@HIDDEN>
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@HIDDEN
X-Spam-Score: -0.7 (/)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
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.




Message received at control <at> debbugs.gnu.org:


Received: (at control) by debbugs.gnu.org; 1 Feb 2025 17:27:46 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Feb 01 12:27:46 2025
Received: from localhost ([127.0.0.1]:59818 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1teHHW-0007ml-Aa
	for submit <at> debbugs.gnu.org; Sat, 01 Feb 2025 12:27:46 -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 <juri@HIDDEN>)
 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 <juri@HIDDEN>
To: martin rudalics <rudalics@HIDDEN>
Subject: Re: bug#75949: kill-buffer-quit-windows breaks kill-buffer-hook
In-Reply-To: <a2cd0ac3-0810-4ebb-9fe8-0d7c17e62961@HIDDEN> (martin rudalics's
 message of "Fri, 31 Jan 2025 09:49:48 +0100")
Organization: LINKOV.NET
References: <87cyg4wv1i.fsf@HIDDEN>
 <a2cd0ac3-0810-4ebb-9fe8-0d7c17e62961@HIDDEN>
Date: Sat, 01 Feb 2025 19:25:47 +0200
Message-ID: <87msf5k25g.fsf@HIDDEN>
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@HIDDEN
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: control
Cc: 75949 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
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.





Last modified: Sat, 1 Feb 2025 17:30:02 UTC

GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997 nCipher Corporation Ltd, 1994-97 Ian Jackson.