GNU bug report logs - #66181
Subject: 29.1; Occur changes don't affect Dired buffer

Previous Next

Package: emacs;

Reported by: Maske <kediez <at> gmail.com>

Date: Sun, 24 Sep 2023 14:52:01 UTC

Severity: normal

Tags: confirmed

Full log


Message #25 received at 66181 <at> debbugs.gnu.org (full text, mbox):

From: Stefan Monnier <monnier <at> iro.umontreal.ca>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: 66181 <at> debbugs.gnu.org, kediez <at> gmail.com
Subject: Re: bug#66181: Subject: 29.1; Occur changes don't affect Dired buffer
Date: Mon, 25 Sep 2023 09:52:36 -0400
>> > Stefan, do we have any safe means of running the hooks in this case?
>> > I thought about running the buffer-local values of before- and
>> > after-change-functions by hand from occur-after-change-function,
>> > skipping the t entry, but I'm not sure this is safe.  It is certainly
>> > messy, so if there's a more elegant way, I'd like to know.
>> 
>> Arguably, the `inhibit-modification-hooks` let-binding that surrounds
>> code run from within modification hooks should be buffer-local, which
>> would solve these problems, AFAIK.
>
> Not sure I understand: we let-bind inhibit-modification-hooks in C,
> via specbind, and that binds the global value, since
> inhibit-modification-hooks is not a per-buffer variable.  Or am I
> missing something.

You're right that's what we currently do.

> Do you mean we should add a new specbind_local function that makes
> only a buffer-local let-binding?

For example, yes.  Or we could call `Fmake_local_variable` before the
`specbind`, or we could make `inhibit-modification-hooks` into one of
those vars that are "really always" buffer-local, like `major-mode`,
`buffer-file-name` and a few others.


        Stefan





This bug report was last modified 1 year and 265 days ago.

Previous Next


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