GNU bug report logs - #78221
31.0.50; Improving *-change-functions notifications

Previous Next

Package: emacs;

Reported by: Stefan Monnier <monnier <at> iro.umontreal.ca>

Date: Fri, 2 May 2025 21:49:02 UTC

Severity: normal

Found in version 31.0.50

Full log


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

From: Stefan Monnier <monnier <at> iro.umontreal.ca>
To: Ihor Radchenko <yantar92 <at> posteo.net>
Cc: 78221 <at> debbugs.gnu.org, Alan Mackenzie <acm <at> muc.de>
Subject: Re: bug#78221: 31.0.50; Improving *-change-functions notifications
Date: Sat, 03 May 2025 22:48:10 -0400
>>   Or we could rely on a (symbol) property being set on the functions
>>   added to `*-change-functions` to tell whether they want to know about
>>   changes to text-properties or not.
>>   Or maybe a more crude way would be a buffer-local variable controlling
>>   whether `*-change-functions` are called for text-property changes.
> Or pass a 4th parameter to *-change-functions indicating whether the
> change involved actual text edits or it only touched text-properties.

But many functions used on this hook don't accept 4 parameters, so
that's not backward compatible.

[ FWIW: In my local Emacs, I used another incompatible approach which is
  to pass `t` for the `oldlen` argument, since text-property changes
  don't change the length.  It seems not to cause too much trouble: most
  hooks don't pay attention to `oldlen` and most text-property changes
  are wrapped in `inhibit-modification-hooks`, but I did have to tweak
  the code at a few spots.  ]

> Org mode currently has to resort to (eq
> org-fold-core--last-buffer-chars-modified-tick
> (buffer-chars-modified-tick)) checks to filter out changes in
> text properties.

Interesting.  What made you do that?  IME, it's fairly rare for
text-property changes to trigger such notifications.


        Stefan





This bug report was last modified 32 days ago.

Previous Next


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