Subject: Re: bug#31042: Emacs 27. Inserting a character doesn't always "deactivate" the mark.

From: Alan Mackenzie <[email-masked]>
Date: Tue, 3 Apr 2018 14:39:12 +0000

Hello, Eli.

On Tue, Apr 03, 2018 at 17:08:00 +0300, Eli Zaretskii wrote:
> > Date: Tue, 3 Apr 2018 13:42:46 +0000
> > From: Alan Mackenzie <[email-masked]>

> > On a related note, it appears that in the same function, the file
> > locking is done for the first change in a buffer.  This locking would
> > appear not to be done if that first change to the buffer happens when
> > inhibit-modification-hooks is non-nil.  I haven't tested this, but it
> > would appear to be part of the same bug.

> This is a feature, see the doc string of inhibit-modification-hooks.

Yes, the whole thing is a feature.  :-(

I now see that inhibit-modification-hooks is a special purpose facility,
only suited for applying text properties to the buffer.  Perhaps it has
other uses, too.

It is most definitely not suitable for when "real" buffer modifications
are done.  For that, presumably, one needs to bind
before/after-change-functions to nil, as used to be done before i-m-h
was invented.

I will need to modify the new combine-change-calls, which is no great
hardship.

How about me modifying the documentation and the doc string to point out
the disadvantages of inhibit-modification-hooks when used for actual
textual buffer changes?

I will close this bug.

-- 
Alan Mackenzie (Nuremberg, Germany).