GNU bug report logs - #38406
27.0.50; post-self-insert-hook does not hold its contract in cc-mode derived modes

Previous Next

Package: emacs;

Reported by: yyoncho <yyoncho <at> gmail.com>

Date: Wed, 27 Nov 2019 20:01:01 UTC

Severity: normal

Found in version 27.0.50

Done: Alan Mackenzie <acm <at> muc.de>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: Dmitry Gutov <dgutov <at> yandex.ru>
To: Alan Mackenzie <acm <at> muc.de>
Cc: Eli Zaretskii <eliz <at> gnu.org>, yyoncho <at> gmail.com, 38406 <at> debbugs.gnu.org
Subject: bug#38406: 27.0.50; post-self-insert-hook does not hold its contract in cc-mode derived modes
Date: Thu, 5 Dec 2019 22:44:55 +0200
On 05.12.2019 21:14, Alan Mackenzie wrote:

> 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.

blink-paren is harmful for CC Mode? Or is it reimplemented, like other 
features (e.g. electric-*), inside CC Mode?

In the latter case, I think CC Mode should just disable the respective 
minor modes/variables locally and call it a day (the hook won't be used 
them, so no need for filtering).

Of course, ideally users of recent enough Emacs would be able to disable 
these built-in features and switch on the generic ones instead.




This bug report was last modified 5 years and 168 days ago.

Previous Next


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