GNU bug report logs - #79640
Buffer-local window-buffer-change-functions

Please note: This is a static page, with minimal formatting, updated once a day.
Click here to see this page with the latest information and nicer formatting.

Package: emacs; Reported by: Juri Linkov <juri@HIDDEN>; Done: Juri Linkov <juri@HIDDEN>; Maintainer for emacs is bug-gnu-emacs@HIDDEN.
bug marked as fixed in version 31.0.50, send any further explanations to 79640 <at> debbugs.gnu.org and Juri Linkov <juri@HIDDEN> Request was from Juri Linkov <juri@HIDDEN> to control <at> debbugs.gnu.org. Full text available.

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


Received: (at 79640) by debbugs.gnu.org; 19 Oct 2025 17:59:15 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sun Oct 19 13:59:15 2025
Received: from localhost ([127.0.0.1]:37425 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1vAXgY-0005KN-Vx
	for submit <at> debbugs.gnu.org; Sun, 19 Oct 2025 13:59:15 -0400
Received: from mout-p-201.mailbox.org ([2001:67c:2050:0:465::201]:38002)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <juri@HIDDEN>)
 id 1vAXgV-0005Jq-02; Sun, 19 Oct 2025 13:59:12 -0400
Received: from smtp1.mailbox.org (smtp1.mailbox.org [10.196.197.1])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by mout-p-201.mailbox.org (Postfix) with ESMTPS id 4cqRBt6Ywqz9smC;
 Sun, 19 Oct 2025 19:59:02 +0200 (CEST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linkov.net; s=MBO0001; 
 t=1760896742;
 h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
 in-reply-to:in-reply-to:references:references;
 bh=0d++XlBzuakz6FTdneNQ+YRGqFdU18juWlQIbphnCmM=;
 b=cWjhxa3fxL5nS21mtRliyQMEmWQfPFSkK+u1PKfvUGNtsWlnwQK+zWmJyUwHwMGogPnyeS
 dhxP0eX0bE4r7XnwIz1Pja2V8iT30F7DYolapS8HwB2OmT+l7KCJ0qwRkl+Rf+ckLAUf3N
 r2xIXy0hbPH78/5ph6waOf3OgsopB2xrZg5WpkBwrFGOVKd9nAR+k5YDXH6su2LIGhxyqS
 CnPIebPNAGxNLgF8z0Ry7217XWYDxIebfhU0DAGpADpy9csbYq4ikeek9lxryxlJBkjwru
 M+llB6rP12RL0Q97AiMy1NIIDlQVa6fJB5OxZCYDRkATGRCZN/6AqXMkr4x00A==
From: Juri Linkov <juri@HIDDEN>
To: martin rudalics <rudalics@HIDDEN>
Subject: Re: bug#79640: Buffer-local window-buffer-change-functions
In-Reply-To: <7b01439f-9cc1-4f32-96c9-94017d412550@HIDDEN>
Organization: LINKOV.NET
References: <87ecr2n9ev.fsf@HIDDEN>
 <d8cff817-1f35-4b80-a312-a0f577009fee@HIDDEN>
 <87wm4sytdz.fsf@HIDDEN>
 <7b01439f-9cc1-4f32-96c9-94017d412550@HIDDEN>
Date: Sun, 19 Oct 2025 20:56:55 +0300
Message-ID: <87zf9m7p5c.fsf@HIDDEN>
MIME-Version: 1.0
Content-Type: text/plain
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 79640
Cc: 79640 <at> debbugs.gnu.org, Stefan Monnier <monnier@HIDDEN>
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 79640 31.0.50
thanks

>>>>    (defun compilation--set-up-margin (w)
>>>>      "Setup the margin for \"=>\" in window W if it isn't already set up."
>>>> -  (set-window-margins w (+ (or (car (window-margins w)) 0) 2)))
>>>> +  (when (eq (window-buffer w) (current-buffer))
>>>> +    (set-window-margins w (+ (or (car (window-margins w)) 0) 2))))
>>>
>>> I'm not quite sure whether it does TRT when you show another buffer in
>>> that window and the margin should be removed.  And what if you then have
>>> yet another mode enabled that wants margins?
>>
>> Do you agree that this patch fixes the bug for the case of the
>> buffer-local 'window-buffer-change-functions'?
>
> FWIW, I agree.  I don't know enough about compilation mode, but your
> proposal should handle the case where a compilation window is made to
> show an unrelated buffer, 'window-buffer-change-functions' eventually
> kick in and set the margins of that other buffer.
>
>> It doesn't affect another buffer that is going to be displayed
>> in the same window.  When another buffer uses own margins,
>> then they will be displayed anyway after switching buffers.
>
> Unless 'set-window-buffer' is called with KEEP-MARGINS non-nil, I
> presume.  IIRC we do that only when splitting windows so it hopefully
> won't matter here.

Ok, so now pushed the patch and closed this bug report.

>> In bug#77313 we are creating a new function 'update-window-margins' that
>> will call a new hook 'window-margin-functions' to sum all margin widths
>> requested by different packages/modes, then just call 'set-window-margins'
>> with the calculated values.
>
> Who would run 'window-margin-functions'?  Wouldn't it be sufficient to
> have set_window_buffer check a buffer local variable and calculate the
> margins from that?  In which case modes like 'compilation-mode' would
> not need 'window-buffer-change-functions'.  Setting that variable and
> calling 'update-window-margins' when the mode is turned on or off would
> be sufficient.  And instead of 'update-window-margins' you could run the
> entire logic within 'set-window-margins' (which 'update-window-margins'
> would have to run anyway) with the 't' args I proposed earlier.
>
> But note the following small loophole: 'set-window-configuration' does
> not run set_window_buffer when a window's buffer has changed within an
> excursion and will merciless restore old margins.  If it did not restore
> margins, showing the previous buffer again would probably reuse the
> margins shown within the excursion.  This means that a mode turned
> off/on within an excursion would lose its margin settings.  OTOH we
> probably cannot have 'set-window-configuration' run set_window_buffer
> because we might not like any changes that come along with that.  And
> 'window-buffer-change-functions' might not catch this because the buffer
> of the window will not have changed if the excursion happens within two
> redisplays.  So to be on the safe side 'set-window-configuration' will
> have to update margins whenever a buffer has changed.  There might be
> similar cases too, you'd have to check all occurrences of wset_buffer in
> our sources.

Thanks for the explanations.  Let's move the designing of this new feature
to emacs-devel.  I'll start a new thread there.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#79640; Package emacs. Full text available.

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


Received: (at 79640) by debbugs.gnu.org; 19 Oct 2025 09:08:00 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sun Oct 19 05:08:00 2025
Received: from localhost ([127.0.0.1]:58037 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1vAPOR-0007yi-6Z
	for submit <at> debbugs.gnu.org; Sun, 19 Oct 2025 05:07:59 -0400
Received: from mout.gmx.net ([212.227.15.18]:38525)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <rudalics@HIDDEN>) id 1vAPOO-0007xy-QI
 for 79640 <at> debbugs.gnu.org; Sun, 19 Oct 2025 05:07:57 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.at;
 s=s31663417; t=1760864870; x=1761469670; i=rudalics@HIDDEN;
 bh=Qd5JAqRfsexy94mIFm3v8+OkwXqqR4n7mpzjHpuLUNU=;
 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=mz8yhHUGPq4s3h/DTuAn7IRkaY2qTPwZS4PBTx/C8XqY0DeIf3JkmX1s/2iv3Le0
 26bV3CHndTASeUWR/ZDuPupB5mICHMhGNs1knA3XrpK2tn0VAJx2XSbnPPwRtNB3B
 fDiHZtYykjFP8Rng4OO7GSEBTZcGOOY3ysUR97se95jPYSH+PPLcX/HLIaxV0amWr
 QnUBcgisWIpjWqq4ziMnyJaqkViWUkSv93cW1SmN88OhYB8tbKzlDb07iryXE7Lvc
 YucLKBQoayvPLnDlcNROJq2dqWt/LgkF98j/8a0pSt5/fFBH6TLuj9zBMEf6MCLYC
 lq1HaDqlcvQfZiFErA==
X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a
Received: from [192.168.31.113] ([213.162.86.250]) by mail.gmx.net (mrgmx005
 [212.227.17.190]) with ESMTPSA (Nemesis) id 1MbRfv-1udXcF0iSH-00gcrT; Sun, 19
 Oct 2025 11:07:50 +0200
Message-ID: <7b01439f-9cc1-4f32-96c9-94017d412550@HIDDEN>
Date: Sun, 19 Oct 2025 11:07:47 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: bug#79640: Buffer-local window-buffer-change-functions
To: Juri Linkov <juri@HIDDEN>
References: <87ecr2n9ev.fsf@HIDDEN>
 <d8cff817-1f35-4b80-a312-a0f577009fee@HIDDEN>
 <87wm4sytdz.fsf@HIDDEN>
Content-Language: en-US
From: martin rudalics <rudalics@HIDDEN>
In-Reply-To: <87wm4sytdz.fsf@HIDDEN>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-Provags-ID: V03:K1:UKdroP1wlCDmk4TmL/VY+X92rSP7w6uRUUUpXkS4bQtThWhoTG3
 S/3e9A3ipEvXdcSibfGQKjk+gzbVII5nbd+YJnI7cz6glXb1DejqDon1+tre1S25wlhaAzc
 CCASaZtqMT86ATAhQ7QPydEVLyVzxiVky4Jn2BmtNIj5ACm+kqco9VsqYdFNN1JJMDdxM04
 VrVcScITJI5mHWcLucRZg==
X-Spam-Flag: NO
UI-OutboundReport: notjunk:1;M01:P0:WKv4gjC32sY=;dj7vXJJgGvfvkmEqE7myJ+HGsMH
 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
 oylP9YWRobAzMva2BBALlDlrdU=
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 79640
Cc: 79640 <at> debbugs.gnu.org, Stefan Monnier <monnier@HIDDEN>
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 (-)

 >>>    (defun compilation--set-up-margin (w)
 >>>      "Setup the margin for \"=>\" in window W if it isn't already set up."
 >>> -  (set-window-margins w (+ (or (car (window-margins w)) 0) 2)))
 >>> +  (when (eq (window-buffer w) (current-buffer))
 >>> +    (set-window-margins w (+ (or (car (window-margins w)) 0) 2))))
 >>
 >> I'm not quite sure whether it does TRT when you show another buffer in
 >> that window and the margin should be removed.  And what if you then have
 >> yet another mode enabled that wants margins?
 >
 > Do you agree that this patch fixes the bug for the case of the
 > buffer-local 'window-buffer-change-functions'?

FWIW, I agree.  I don't know enough about compilation mode, but your
proposal should handle the case where a compilation window is made to
show an unrelated buffer, 'window-buffer-change-functions' eventually
kick in and set the margins of that other buffer.

 > It doesn't affect another buffer that is going to be displayed
 > in the same window.  When another buffer uses own margins,
 > then they will be displayed anyway after switching buffers.

Unless 'set-window-buffer' is called with KEEP-MARGINS non-nil, I
presume.  IIRC we do that only when splitting windows so it hopefully
won't matter here.

 > In bug#77313 we are creating a new function 'update-window-margins' that
 > will call a new hook 'window-margin-functions' to sum all margin widths
 > requested by different packages/modes, then just call 'set-window-margins'
 > with the calculated values.

Who would run 'window-margin-functions'?  Wouldn't it be sufficient to
have set_window_buffer check a buffer local variable and calculate the
margins from that?  In which case modes like 'compilation-mode' would
not need 'window-buffer-change-functions'.  Setting that variable and
calling 'update-window-margins' when the mode is turned on or off would
be sufficient.  And instead of 'update-window-margins' you could run the
entire logic within 'set-window-margins' (which 'update-window-margins'
would have to run anyway) with the 't' args I proposed earlier.

But note the following small loophole: 'set-window-configuration' does
not run set_window_buffer when a window's buffer has changed within an
excursion and will merciless restore old margins.  If it did not restore
margins, showing the previous buffer again would probably reuse the
margins shown within the excursion.  This means that a mode turned
off/on within an excursion would lose its margin settings.  OTOH we
probably cannot have 'set-window-configuration' run set_window_buffer
because we might not like any changes that come along with that.  And
'window-buffer-change-functions' might not catch this because the buffer
of the window will not have changed if the excursion happens within two
redisplays.  So to be on the safe side 'set-window-configuration' will
have to update margins whenever a buffer has changed.  There might be
similar cases too, you'd have to check all occurrences of wset_buffer in
our sources.

martin




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#79640; Package emacs. Full text available.

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


Received: (at 79640) by debbugs.gnu.org; 18 Oct 2025 18:11:03 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Oct 18 14:11:02 2025
Received: from localhost ([127.0.0.1]:47246 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1vABOQ-0002Pw-1X
	for submit <at> debbugs.gnu.org; Sat, 18 Oct 2025 14:11:02 -0400
Received: from mout-p-103.mailbox.org ([80.241.56.161]:42196)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <juri@HIDDEN>) id 1vABON-0002OK-1u
 for 79640 <at> debbugs.gnu.org; Sat, 18 Oct 2025 14:11:00 -0400
Received: from smtp202.mailbox.org (smtp202.mailbox.org [10.196.197.202])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by mout-p-103.mailbox.org (Postfix) with ESMTPS id 4cpqVw1h2bz9skp;
 Sat, 18 Oct 2025 20:10:48 +0200 (CEST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linkov.net; s=MBO0001; 
 t=1760811048;
 h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
 content-transfer-encoding:content-transfer-encoding:
 in-reply-to:in-reply-to:references:references;
 bh=WyI7k/aoEhdG7gN80I4IaXMwENkTnIEnVbKcXeamGgY=;
 b=QDmGa4gf26GcItskOU41fP3pR40FVP8fho9SHhpBU7zAwCTt1jFU4jLxgiWSnk9M7Mk1Pq
 BCDvT7zCdJW1WDV1aBiF4+zcCRvey0236dMHBtNzu0sK1Ljn+XSErLLd9Mbk1dYw4R4uVX
 rebzj6yCGrzRkAoxd2Xr6qKBKani9XM+1WeZPpjYkKFiudLPZACSYMx37ByLbgk1spO715
 oytovyhF5jn5jmLAwMMUFjNl43h34ZFCjG2fK+wHPGL4j+IFEeePmmBkZwgm4bAFohJnpS
 vDEQI6MD+iirxNvzH0gAummQwBd189iXRC0+cLvYoK8pnC0afwkVQ7ddJqAbOQ==
From: Juri Linkov <juri@HIDDEN>
To: martin rudalics <rudalics@HIDDEN>
Subject: Re: bug#79640: Buffer-local window-buffer-change-functions
In-Reply-To: <d8cff817-1f35-4b80-a312-a0f577009fee@HIDDEN>
Organization: LINKOV.NET
References: <87ecr2n9ev.fsf@HIDDEN>
 <d8cff817-1f35-4b80-a312-a0f577009fee@HIDDEN>
Date: Sat, 18 Oct 2025 21:08:56 +0300
Message-ID: <87wm4sytdz.fsf@HIDDEN>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 79640
Cc: 79640 <at> debbugs.gnu.org, Stefan Monnier <monnier@HIDDEN>
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 (-)

>> Martin, do you think we need to add a warning to the documentation of
>> 'window-buffer-change-functions' that for the case when a buffer
>> is removed from the window, then the buffer-local hook should use
>> something like this to detect the case that the buffer
>> with the buffer-local hook is displayed:
>>
>>    (eq (window-buffer w) (current-buffer))
>
> I now tried to explain that in the Elisp manual.

Thanks.

>>   (defun compilation--set-up-margin (w)
>>     "Setup the margin for \"=>\" in window W if it isn't already set up."
>> -  (set-window-margins w (+ (or (car (window-margins w)) 0) 2)))
>> +  (when (eq (window-buffer w) (current-buffer))
>> +    (set-window-margins w (+ (or (car (window-margins w)) 0) 2))))
>
> I'm not quite sure whether it does TRT when you show another buffer in
> that window and the margin should be removed.  And what if you then have
> yet another mode enabled that wants margins?

Do you agree that this patch fixes the bug for the case of the
buffer-local 'window-buffer-change-functions'?

It doesn't affect another buffer that is going to be displayed
in the same window.  When another buffer uses own margins,
then they will be displayed anyway after switching buffers.

> I think here and elsewhere we want something like the following: Reserve
> two buffer-local variables, say 'requested-left-margin-width' and
> 'requested-right-margin-width'.  A mode like 'compilation-mode' sets up
> or adds the number of columns it needs to either of these variables and
> subtracts that number when it is disabled or another buffer is shown in
> the window and then calls
>
> (set-window-margins
>    window requested-left-margin-width requested-right-margin-width)
>
> This means that whenever several modes simultaneously work on one and
> the same window, they have to update these variables accordingly and get
> margins of accumulated widths.
>
> We could also call
>
> (set-window-margins window t t)
>
> instead with the semantics that 'set-window-margins' takes the sizes of
> the margins from these values and refuses a call with numeric widths
> whenever either of the two variables was set to a non-nil, non-zero
> value in the window's buffer.
>
> Finally, we could make these variables alists where the cdr is the width
> and the car stands for a mode or whatever a caller wants to store there.
> ‘set-window-margins’ with the t arguments could then collect the sizes
> from the cdrs and modes could remove alist entries appropriately when
> they are turned off or disappear from a window.
>
> And obviously, each mode should decide what to do in a window that is
> not wide enough to show the margins.

In bug#77313 we are creating a new function 'update-window-margins' that
will call a new hook 'window-margin-functions' to sum all margin widths
requested by different packages/modes, then just call 'set-window-margins'
with the calculated values.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#79640; Package emacs. Full text available.

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


Received: (at 79640) by debbugs.gnu.org; 17 Oct 2025 09:14:03 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Fri Oct 17 05:14:03 2025
Received: from localhost ([127.0.0.1]:47296 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1v9gXC-0006ld-BI
	for submit <at> debbugs.gnu.org; Fri, 17 Oct 2025 05:14:02 -0400
Received: from mout.gmx.net ([212.227.15.18]:55751)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <rudalics@HIDDEN>) id 1v9gWZ-0006hr-Na
 for 79640 <at> debbugs.gnu.org; Fri, 17 Oct 2025 05:13:25 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.at;
 s=s31663417; t=1760692384; x=1761297184; i=rudalics@HIDDEN;
 bh=05Eyx6K8qnWiDnUZ6p3QMt4CbKblH/5a62bNaPgN9/o=;
 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=XLKg/mEv4ERqVhF2dgW2T+A/mGqv+4ynRoacJeq5AXkiT93Gdsx/T6VGtDOv+7oB
 lyiD5ufF8/WpwcyEBCYtE35onD5wNzHpYkCCWPO15TYUdFMuo629jXDp21lu2tHea
 w8OC028S/MKYluwibvyPZKwfJ3qoR3DwlSi5aP44bm1deeFQlTZIkMETFy3VbV0M3
 1tQwkyxID62Cn07aNL573K+CrMipqYO5kQQjeEUIb5HpM4LR1pqkkq+B4sfpdL0MG
 gW60eRfME4SnA6fSPFMwZBhVffOshKndsFl7jNn6J6ori0CI4NxLbODa5j740Zxkh
 yrZoO3qMqX8MSz2Zsg==
X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a
Received: from [192.168.31.113] ([213.162.84.91]) by mail.gmx.net (mrgmx004
 [212.227.17.190]) with ESMTPSA (Nemesis) id 1N1Obh-1uCFT92GFP-016D9T; Fri, 17
 Oct 2025 11:13:04 +0200
Message-ID: <d8cff817-1f35-4b80-a312-a0f577009fee@HIDDEN>
Date: Fri, 17 Oct 2025 11:13:01 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: bug#79640: Buffer-local window-buffer-change-functions
To: Juri Linkov <juri@HIDDEN>, 79640 <at> debbugs.gnu.org
References: <87ecr2n9ev.fsf@HIDDEN>
Content-Language: en-US
From: martin rudalics <rudalics@HIDDEN>
In-Reply-To: <87ecr2n9ev.fsf@HIDDEN>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: base64
X-Provags-ID: V03:K1:S5S46J011WKE2/w1Sh7q3hQU7dgUPzK3LDfT4OQQqRa3n8wHvvr
 xQuvYK6w/sZOAhj421z/WT8rd1iunUnhgTWEbRXAAIEBaHRe6t35wFjZewcTA6V36d7wQn2
 SloutDqO1WQy6ko2BLpAEUnHuYC7Y/atffMBeDJQ3JyCdgGfCtjaG8cnW6dsxslzu7bP59H
 0ARQt+GvAjmoz0qH6bEAg==
X-Spam-Flag: NO
UI-OutboundReport: notjunk:1;M01:P0:taoC6vUeDLU=;wb6KuvYdwJObZD7EpVUxWp23GCL
 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
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 79640
Cc: Stefan Monnier <monnier@HIDDEN>
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 (-)

ID4gTWFydGluLCBkbyB5b3UgdGhpbmsgd2UgbmVlZCB0byBhZGQgYSB3YXJuaW5nIHRvIHRo
ZSBkb2N1bWVudGF0aW9uIG9mDQogPiAnd2luZG93LWJ1ZmZlci1jaGFuZ2UtZnVuY3Rpb25z
JyB0aGF0IGZvciB0aGUgY2FzZSB3aGVuIGEgYnVmZmVyDQogPiBpcyByZW1vdmVkIGZyb20g
dGhlIHdpbmRvdywgdGhlbiB0aGUgYnVmZmVyLWxvY2FsIGhvb2sgc2hvdWxkIHVzZQ0KID4g
c29tZXRoaW5nIGxpa2UgdGhpcyB0byBkZXRlY3QgdGhlIGNhc2UgdGhhdCB0aGUgYnVmZmVy
DQogPiB3aXRoIHRoZSBidWZmZXItbG9jYWwgaG9vayBpcyBkaXNwbGF5ZWQ6DQogPg0KID4g
ICAgKGVxICh3aW5kb3ctYnVmZmVyIHcpIChjdXJyZW50LWJ1ZmZlcikpDQoNCkkgbm93IHRy
aWVkIHRvIGV4cGxhaW4gdGhhdCBpbiB0aGUgRWxpc3AgbWFudWFsLg0KDQogPiBCZWxvdyBp
cyBhIHBhdGNoIHRoYXQgZml4ZXMgdGhlIGJ1ZyBpbiBjb21waWxhdGlvbi1tb2RlDQogPiBm
b3Igc3VjaCB0ZXN0IGNhc2U6DQogPg0KID4gMS4gRGlzYWJsZSBmcmluZ2VzLg0KID4gMi4g
U2V0IGNvbXBpbGF0aW9uLWNvbnRleHQtbGluZXMgdG8gdC4NCiA+IDMuIFZpc2l0IGEgY29t
cGlsYXRpb24gZXJyb3IgdG8gcmVzaXplIHRoZSBtYXJnaW4uDQogPiA0LiBWaXNpdCBhbm90
aGVyIGJ1ZmZlci4NCiA+DQogPiBUaGUgbWFyZ2luIGlzIHJlc2l6ZWQgaW4gYW4gdW5yZWxh
dGVkIGJ1ZmZlciB0aGF0IGRvZXNuJ3QgaGF2ZQ0KID4gYSBidWZmZXItbG9jYWwgaG9vay4g
IEhlcmUgaXMgdGhlIGZpeDoNCiA+DQogPiBkaWZmIC0tZ2l0IGEvbGlzcC9wcm9nbW9kZXMv
Y29tcGlsZS5lbCBiL2xpc3AvcHJvZ21vZGVzL2NvbXBpbGUuZWwNCiA+IGluZGV4IDhjZmE3
OTNjZmM2Li4wMTE1MjMyODU3NyAxMDA2NDQNCiA+IC0tLSBhL2xpc3AvcHJvZ21vZGVzL2Nv
bXBpbGUuZWwNCiA+ICsrKyBiL2xpc3AvcHJvZ21vZGVzL2NvbXBpbGUuZWwNCiA+IEBAIC0z
MDYyLDcgKzMwNjIsOCBAQCBjb21waWxhdGlvbi0tZHVtbXktc3RyaW5nDQogPg0KID4gICAo
ZGVmdW4gY29tcGlsYXRpb24tLXNldC11cC1tYXJnaW4gKHcpDQogPiAgICAgIlNldHVwIHRo
ZSBtYXJnaW4gZm9yIFwiPT5cIiBpbiB3aW5kb3cgVyBpZiBpdCBpc24ndCBhbHJlYWR5IHNl
dCB1cC4iDQogPiAtICAoc2V0LXdpbmRvdy1tYXJnaW5zIHcgKCsgKG9yIChjYXIgKHdpbmRv
dy1tYXJnaW5zIHcpKSAwKSAyKSkpDQogPiArICAod2hlbiAoZXEgKHdpbmRvdy1idWZmZXIg
dykgKGN1cnJlbnQtYnVmZmVyKSkNCiA+ICsgICAgKHNldC13aW5kb3ctbWFyZ2lucyB3ICgr
IChvciAoY2FyICh3aW5kb3ctbWFyZ2lucyB3KSkgMCkgMikpKSkNCiA+DQogPiAgIChkZWZ1
biBjb21waWxhdGlvbi0tdGVhci1kb3duLW1hcmdpbiAodykNCiA+ICAgICAiUmVtb3ZlIHRo
ZSBtYXJnaW4gZm9yIFwiPT5cIiBpZiBpdCBpcyBzZXR1cCBpbiB3aW5kb3cgVy4iDQoNCkkn
bSBub3QgcXVpdGUgc3VyZSB3aGV0aGVyIGl0IGRvZXMgVFJUIHdoZW4geW91IHNob3cgYW5v
dGhlciBidWZmZXIgaW4NCnRoYXQgd2luZG93IGFuZCB0aGUgbWFyZ2luIHNob3VsZCBiZSBy
ZW1vdmVkLiAgQW5kIHdoYXQgaWYgeW91IHRoZW4gaGF2ZQ0KeWV0IGFub3RoZXIgbW9kZSBl
bmFibGVkIHRoYXQgd2FudHMgbWFyZ2lucz8NCg0KSSB0aGluayBoZXJlIGFuZCBlbHNld2hl
cmUgd2Ugd2FudCBzb21ldGhpbmcgbGlrZSB0aGUgZm9sbG93aW5nOiBSZXNlcnZlDQp0d28g
YnVmZmVyLWxvY2FsIHZhcmlhYmxlcywgc2F5ICdyZXF1ZXN0ZWQtbGVmdC1tYXJnaW4td2lk
dGgnIGFuZA0KJ3JlcXVlc3RlZC1yaWdodC1tYXJnaW4td2lkdGgnLiAgQSBtb2RlIGxpa2Ug
J2NvbXBpbGF0aW9uLW1vZGUnIHNldHMgdXANCm9yIGFkZHMgdGhlIG51bWJlciBvZiBjb2x1
bW5zIGl0IG5lZWRzIHRvIGVpdGhlciBvZiB0aGVzZSB2YXJpYWJsZXMgYW5kDQpzdWJ0cmFj
dHMgdGhhdCBudW1iZXIgd2hlbiBpdCBpcyBkaXNhYmxlZCBvciBhbm90aGVyIGJ1ZmZlciBp
cyBzaG93biBpbg0KdGhlIHdpbmRvdyBhbmQgdGhlbiBjYWxscw0KDQooc2V0LXdpbmRvdy1t
YXJnaW5zDQogICAgd2luZG93IHJlcXVlc3RlZC1sZWZ0LW1hcmdpbi13aWR0aCByZXF1ZXN0
ZWQtcmlnaHQtbWFyZ2luLXdpZHRoKQ0KDQpUaGlzIG1lYW5zIHRoYXQgd2hlbmV2ZXIgc2V2
ZXJhbCBtb2RlcyBzaW11bHRhbmVvdXNseSB3b3JrIG9uIG9uZSBhbmQNCnRoZSBzYW1lIHdp
bmRvdywgdGhleSBoYXZlIHRvIHVwZGF0ZSB0aGVzZSB2YXJpYWJsZXMgYWNjb3JkaW5nbHkg
YW5kIGdldA0KbWFyZ2lucyBvZiBhY2N1bXVsYXRlZCB3aWR0aHMuDQoNCldlIGNvdWxkIGFs
c28gY2FsbA0KDQooc2V0LXdpbmRvdy1tYXJnaW5zIHdpbmRvdyB0IHQpDQoNCmluc3RlYWQg
d2l0aCB0aGUgc2VtYW50aWNzIHRoYXQgJ3NldC13aW5kb3ctbWFyZ2lucycgdGFrZXMgdGhl
IHNpemVzIG9mDQp0aGUgbWFyZ2lucyBmcm9tIHRoZXNlIHZhbHVlcyBhbmQgcmVmdXNlcyBh
IGNhbGwgd2l0aCBudW1lcmljIHdpZHRocw0Kd2hlbmV2ZXIgZWl0aGVyIG9mIHRoZSB0d28g
dmFyaWFibGVzIHdhcyBzZXQgdG8gYSBub24tbmlsLCBub24temVybw0KdmFsdWUgaW4gdGhl
IHdpbmRvdydzIGJ1ZmZlci4NCg0KRmluYWxseSwgd2UgY291bGQgbWFrZSB0aGVzZSB2YXJp
YWJsZXMgYWxpc3RzIHdoZXJlIHRoZSBjZHIgaXMgdGhlIHdpZHRoDQphbmQgdGhlIGNhciBz
dGFuZHMgZm9yIGEgbW9kZSBvciB3aGF0ZXZlciBhIGNhbGxlciB3YW50cyB0byBzdG9yZSB0
aGVyZS4NCuKAmHNldC13aW5kb3ctbWFyZ2luc+KAmSB3aXRoIHRoZSB0IGFyZ3VtZW50cyBj
b3VsZCB0aGVuIGNvbGxlY3QgdGhlIHNpemVzDQpmcm9tIHRoZSBjZHJzIGFuZCBtb2RlcyBj
b3VsZCByZW1vdmUgYWxpc3QgZW50cmllcyBhcHByb3ByaWF0ZWx5IHdoZW4NCnRoZXkgYXJl
IHR1cm5lZCBvZmYgb3IgZGlzYXBwZWFyIGZyb20gYSB3aW5kb3cuDQoNCkFuZCBvYnZpb3Vz
bHksIGVhY2ggbW9kZSBzaG91bGQgZGVjaWRlIHdoYXQgdG8gZG8gaW4gYSB3aW5kb3cgdGhh
dCBpcw0Kbm90IHdpZGUgZW5vdWdoIHRvIHNob3cgdGhlIG1hcmdpbnMuDQoNCm1hcnRpbg0K





Information forwarded to bug-gnu-emacs@HIDDEN:
bug#79640; Package emacs. Full text available.

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


Received: (at 79640) by debbugs.gnu.org; 16 Oct 2025 18:33:54 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Oct 16 14:33:54 2025
Received: from localhost ([127.0.0.1]:38038 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1v9SnM-0001Qx-Ba
	for submit <at> debbugs.gnu.org; Thu, 16 Oct 2025 14:33:54 -0400
Received: from mout.gmx.net ([212.227.17.22]:53193)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <rudalics@HIDDEN>) id 1v9SnF-0001QY-TJ
 for 79640 <at> debbugs.gnu.org; Thu, 16 Oct 2025 14:33:43 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.at;
 s=s31663417; t=1760639604; x=1761244404; i=rudalics@HIDDEN;
 bh=WZaLWzA5mwxt6ol194IepZNYg1aVEnHHhQ6uqurjWPE=;
 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=IqQ9FW1M8jWXPfA7hNznmY+vBTJZgoub0jExlYMnorb36qhwSS8UgdzazEZTQrT+
 e8gG5GklJueCwhZevtA3EoFcf/Ucr9oeYYYaDCxrSlp2IVd6sUZmru4Y/Lm3MVq0Y
 mGg9SMCB0Dwf/TftN46qWcAAUvcJGFFt+2eNiI0nNtpGIaeuhu0yBh/fl7ZhjqXNl
 jJmIacH7K8bngJe2vHOa/P9GH6Nf2MlcKKSKdDOfWF8lAd8GX4iVf5ZSSP/F8g/rs
 Hc5/TOKkhO9C5nAOOXtARCkVFXnVnZN3h9OJ6FbPGTs0OUxD8W1pAUeK91JFupPcQ
 mB8Rs3r74qSTpWdKTg==
X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a
Received: from [192.168.31.113] ([213.162.85.159]) by mail.gmx.net (mrgmx105
 [212.227.17.168]) with ESMTPSA (Nemesis) id 1N5mGB-1u85UN05al-0182Qk; Thu, 16
 Oct 2025 20:33:24 +0200
Message-ID: <3acce825-fa90-4f3d-98f7-e893980c0297@HIDDEN>
Date: Thu, 16 Oct 2025 20:33:23 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: bug#79640: Buffer-local window-buffer-change-functions
To: Juri Linkov <juri@HIDDEN>, 79640 <at> debbugs.gnu.org
References: <87ecr2n9ev.fsf@HIDDEN>
Content-Language: en-US
From: martin rudalics <rudalics@HIDDEN>
In-Reply-To: <87ecr2n9ev.fsf@HIDDEN>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-Provags-ID: V03:K1:Rgdl5nTqg7hkEKhRnTTlhOxBRdabEIFm5tRWl5/8txWmAEhMCH/
 4safqCa6+taGwj0dYoEER0En6F98+FWz2hO/AiocJtHNwE3x+i5B0j9itJe7raLSuTE+Y90
 Mk/M7LgC0x//8PUCs/dawn/OEqsDERz6C0KuvTasNCTDS3bZDmSb7veoBtSeDRHDltgV7J3
 4+PjuETvkmh6gP/dFX+Og==
X-Spam-Flag: NO
UI-OutboundReport: notjunk:1;M01:P0:LE2Ni8FnZ1A=;1PZS+xOBAgjE9EMx6l2wMoc+1jO
 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
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 79640
Cc: Stefan Monnier <monnier@HIDDEN>
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 (-)

 > Martin, do you think we need to add a warning to the documentation of
 > 'window-buffer-change-functions' that for the case when a buffer
 > is removed from the window, then the buffer-local hook should use
 > something like this to detect the case that the buffer
 > with the buffer-local hook is displayed:
 >
 >    (eq (window-buffer w) (current-buffer))

Maybe: The local version of 'window-buffer-change-functions' may be now
called twice - once for the removed buffer and once for the buffer that
is now displayed there.  In the former case you probably want to check

(eq (window-old-buffer w) (current-buffer))

and in the latter what you wrote above.  I'll try to explain that.

martin




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#79640; Package emacs. Full text available.

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


Received: (at submit) by debbugs.gnu.org; 16 Oct 2025 15:47:22 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Oct 16 11:47:22 2025
Received: from localhost ([127.0.0.1]:36699 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1v9QCI-0001SY-1K
	for submit <at> debbugs.gnu.org; Thu, 16 Oct 2025 11:47:22 -0400
Received: from lists.gnu.org ([2001:470:142::17]:50874)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <juri@HIDDEN>) id 1v9QBj-0001PF-GN
 for submit <at> debbugs.gnu.org; Thu, 16 Oct 2025 11:46:48 -0400
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 1v9QBd-0003GJ-JY
 for bug-gnu-emacs@HIDDEN; Thu, 16 Oct 2025 11:46:41 -0400
Received: from mout-p-101.mailbox.org ([2001:67c:2050:0:465::101])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_CHACHA20_POLY1305:256)
 (Exim 4.90_1) (envelope-from <juri@HIDDEN>) id 1v9QBM-0007Qd-7m
 for bug-gnu-emacs@HIDDEN; Thu, 16 Oct 2025 11:46:38 -0400
Received: from smtp102.mailbox.org (smtp102.mailbox.org
 [IPv6:2001:67c:2050:b231:465::102])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by mout-p-101.mailbox.org (Postfix) with ESMTPS id 4cnXP56HhXz9tLJ
 for <bug-gnu-emacs@HIDDEN>; Thu, 16 Oct 2025 17:46:17 +0200 (CEST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linkov.net; s=MBO0001; 
 t=1760629577;
 h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
 to:to:cc:mime-version:mime-version:content-type:content-type;
 bh=/TT+QeTAKxJcFDzgiahNI7Rf2ZPBP3G3nYZ2xUfIbxg=;
 b=2CPvNTI3zylcyveukqyRSVG8L54GNNp5Z0ZFUg5Bq8Jomr5K27yLH9XhV9lCeHtUR9aVHf
 CRmbIJAcENvJkAaNi9loaxKYupT+H90alMR+sYqBUjlFQxWuQ9ZU+qS7FnRiM0BPyO4feb
 33hvQi2QywGoJ+rpaUPGKpyNGuWRHBGVRdBaVfZ4prPW0Af4RHbestOLsF4EdtpmdBtmKK
 kGKh77C3Ewoc8yOKOWBfR4HxZNCrfUFOiwBsNYM0RDM0fQTgf8R8grm2Q1v38SAKcgDL1b
 vbCCMCXTaVrqe1IZ1caiRyp2uc91g2M9oVshFCcAYizqkht3s1GIr9Ckuy1l8g==
Authentication-Results: outgoing_mbo_mout; dkim=none;
 spf=pass (outgoing_mbo_mout: domain of juri@HIDDEN designates
 2001:67c:2050:b231:465::102 as permitted sender)
 smtp.mailfrom=juri@HIDDEN
From: Juri Linkov <juri@HIDDEN>
To: bug-gnu-emacs@HIDDEN
Subject: Buffer-local window-buffer-change-functions
Organization: LINKOV.NET
X-Debbugs-Cc: martin rudalics <rudalics@HIDDEN>,  Stefan Monnier
 <monnier@HIDDEN>
Date: Thu, 16 Oct 2025 18:45:04 +0300
Message-ID: <87ecr2n9ev.fsf@HIDDEN>
MIME-Version: 1.0
Content-Type: text/plain
X-Rspamd-Queue-Id: 4cnXP56HhXz9tLJ
Received-SPF: pass client-ip=2001:67c:2050:0:465::101;
 envelope-from=juri@HIDDEN; helo=mout-p-101.mailbox.org
X-Spam_score_int: -27
X-Spam_score: -2.8
X-Spam_bar: --
X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1,
 DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1,
 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: 1.0 (+)
X-Debbugs-Envelope-To: submit
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.0 (/)

Martin, do you think we need to add a warning to the documentation of
'window-buffer-change-functions' that for the case when a buffer
is removed from the window, then the buffer-local hook should use
something like this to detect the case that the buffer
with the buffer-local hook is displayed:

  (eq (window-buffer w) (current-buffer))

Below is a patch that fixes the bug in compilation-mode
for such test case:

1. Disable fringes.
2. Set compilation-context-lines to t.
3. Visit a compilation error to resize the margin.
4. Visit another buffer.

The margin is resized in an unrelated buffer that doesn't have
a buffer-local hook.  Here is the fix:

diff --git a/lisp/progmodes/compile.el b/lisp/progmodes/compile.el
index 8cfa793cfc6..01152328577 100644
--- a/lisp/progmodes/compile.el
+++ b/lisp/progmodes/compile.el
@@ -3062,7 +3062,8 @@ compilation--dummy-string
 
 (defun compilation--set-up-margin (w)
   "Setup the margin for \"=>\" in window W if it isn't already set up."
-  (set-window-margins w (+ (or (car (window-margins w)) 0) 2)))
+  (when (eq (window-buffer w) (current-buffer))
+    (set-window-margins w (+ (or (car (window-margins w)) 0) 2))))
 
 (defun compilation--tear-down-margin (w)
   "Remove the margin for \"=>\" if it is setup in window W."




Acknowledgement sent to Juri Linkov <juri@HIDDEN>:
New bug report received and forwarded. Copy sent to rudalics@HIDDEN, monnier@HIDDEN, bug-gnu-emacs@HIDDEN. Full text available.
Report forwarded to rudalics@HIDDEN, monnier@HIDDEN, bug-gnu-emacs@HIDDEN:
bug#79640; Package emacs. Full text available.
Please note: This is a static page, with minimal formatting, updated once a day.
Click here to see this page with the latest information and nicer formatting.
Last modified: Sun, 19 Oct 2025 18:15:01 UTC

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