Subject: Re: bug#38406: 27.0.50; post-self-insert-hook does not hold its contract in cc-mode derived modes

From: Alan Mackenzie <[email-masked]>
Date: Thu, 5 Dec 2019 19:14:59 +0000

Hello, Dmitry.

On Wed, Dec 04, 2019 at 23:04:27 +0200, Dmitry Gutov wrote:
> On 04.12.2019 22:41, Alan Mackenzie wrote:
> > +(defvar c--unsafe-post-self-insert-hook-functions
> > +  '(smie-blink-matching-open
> > +    electric-pair-post-self-insert-function
> > +    blink-paren-post-self-insert-function
> > +    electric-indent-post-self-insert-function
> > +    electric-layout-post-self-insert-function
> > +    electric-quote-post-self-insert-function)
> > +    "Known unsafe functions when members of `post-self-insert-hook' in CC Mode")

> I don't see how filtering out a bunch of popular consumers of 
> post-self-insert-hook can make it "act as per its contract again".

Think of it more as "filtering in" all functions on
post-self-insert-hook _except_ the ones mentioned, which are harmful in
CC Mode.

> More surprisingly, what did smie-blink-matching-open and 
> blink-paren-post-self-insert-function ever do so wrong? Neither of them 
> modifies the buffer's contents.

No, but if allowed to run, they would probably double the blink time on
the paren match, which would be a Bad Thing.

-- 
Alan Mackenzie (Nuremberg, Germany).