From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED.blaine.gmane.org!not-for-mail From: Alan Mackenzie Newsgroups: gmane.emacs.bugs Subject: bug#38406: 27.0.50; post-self-insert-hook does not hold its contract in cc-mode derived modes Date: Fri, 6 Dec 2019 18:28:42 +0000 Message-ID: <20191206182842.GA3999@ACM> References: <20191201150738.GB5085@ACM> <83imn0lyed.fsf@gnu.org> <20191201192709.GE5085@ACM> <83blsrn58a.fsf@gnu.org> <20191204204159.GA7587@ACM> <83immuj0g7.fsf@gnu.org> <20191205190951.GA6252@ACM> <83pnh2h8x1.fsf@gnu.org> <20191205201713.GC6252@ACM> <83eexhho8o.fsf@gnu.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Injection-Info: blaine.gmane.org; posting-host="blaine.gmane.org:195.159.176.226"; logging-data="135121"; mail-complaints-to="usenet@blaine.gmane.org" User-Agent: Mutt/1.10.1 (2018-07-13) Cc: yyoncho@gmail.com, 38406@debbugs.gnu.org To: Eli Zaretskii Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Fri Dec 06 20:03:47 2019 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([209.51.188.17]) by blaine.gmane.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.89) (envelope-from ) id 1idItF-000YyI-KL for geb-bug-gnu-emacs@m.gmane.org; Fri, 06 Dec 2019 20:03:45 +0100 Original-Received: from localhost ([::1]:44170 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1idItD-00011Y-Sr for geb-bug-gnu-emacs@m.gmane.org; Fri, 06 Dec 2019 14:03:43 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:35956) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1idILf-0004Mf-PB for bug-gnu-emacs@gnu.org; Fri, 06 Dec 2019 13:29:05 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1idILe-0007bg-HJ for bug-gnu-emacs@gnu.org; Fri, 06 Dec 2019 13:29:03 -0500 Original-Received: from debbugs.gnu.org ([209.51.188.43]:41072) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1idILe-0007b0-1m for bug-gnu-emacs@gnu.org; Fri, 06 Dec 2019 13:29:02 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1idILd-0005Wy-U0 for bug-gnu-emacs@gnu.org; Fri, 06 Dec 2019 13:29:01 -0500 X-Loop: help-debbugs@gnu.org Resent-From: Alan Mackenzie Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Fri, 06 Dec 2019 18:29:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 38406 X-GNU-PR-Package: emacs Original-Received: via spool by 38406-submit@debbugs.gnu.org id=B38406.157565692821100 (code B ref 38406); Fri, 06 Dec 2019 18:29:01 +0000 Original-Received: (at 38406) by debbugs.gnu.org; 6 Dec 2019 18:28:48 +0000 Original-Received: from localhost ([127.0.0.1]:47045 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1idILP-0005To-TU for submit@debbugs.gnu.org; Fri, 06 Dec 2019 13:28:48 -0500 Original-Received: from colin.muc.de ([193.149.48.1]:25173 helo=mail.muc.de) by debbugs.gnu.org with smtp (Exim 4.84_2) (envelope-from ) id 1idILP-0005Th-0E for 38406@debbugs.gnu.org; Fri, 06 Dec 2019 13:28:47 -0500 Original-Received: (qmail 63569 invoked by uid 3782); 6 Dec 2019 18:28:45 -0000 Original-Received: from acm.muc.de (p4FE15A40.dip0.t-ipconnect.de [79.225.90.64]) by colin.muc.de (tmda-ofmipd) with ESMTP; Fri, 06 Dec 2019 19:28:42 +0100 Original-Received: (qmail 5171 invoked by uid 1000); 6 Dec 2019 18:28:42 -0000 Content-Disposition: inline In-Reply-To: <83eexhho8o.fsf@gnu.org> X-Delivery-Agent: TMDA/1.1.12 (Macallan) X-Primary-Address: acm@muc.de X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 209.51.188.43 X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.org gmane.emacs.bugs:172979 Archived-At: Hello, Eli. On Fri, Dec 06, 2019 at 10:06:31 +0200, Eli Zaretskii wrote: > > Date: Thu, 5 Dec 2019 20:17:13 +0000 > > Cc: yyoncho@gmail.com, 38406@debbugs.gnu.org > > From: Alan Mackenzie > > > We never provide any "safety nets" for silly hook functions, so we > > > shouldn't do that here as well. OTOH, if someone puts a function > > > on those hooks which does something legitimate, we should meet > > > their expectations and let those functions run, as the contract > > > says. > > I think that, with my latest patch, that is the case. > > > So I think you shouldn't filter anything from the hook before you > > > run it. > > I thought you were urging me to do precisely that two or three posts > > ago. > > I just tried taking a particular function off of > > c--unsafe-post-self-insert-hook-functions and enabling electric-pair > > mode. On typing a brace, electric-pair-mode threw an obscure error. > > It doesn't make sense to call electric-pair-post-self-insert-function > > twice for one keypress. That is a good reason for having that > > function filtered out of the hook. > There might be a misunderstanding on my part here. Could you please > explain how come electric-pair-post-self-insert-function is called > twice if it isn't removed from the hook? where's the second (or the > first) call? The first call is an explicit call from c-electric-brace to electric-pair-post-self-insert-function. Depending on the changes to the buffer this call causes (amongst other things), differing electric actions are performed by c-electric-brace. This call is itself a workaround, there being no purpose designed function for this purpose in elec-pair.el. The second call happens when c-electric-brace run-hook's post-self-insert-hook - _if_ electric-pair-post-self-insert-function hasn't been filtered out of that hook. > > The root of the problem is the hook post-self-insert-hook. It is a > > thoroughly bad idea. The implications of introducing it a few years ago > > weren't thought through. > That might be so, but I think it's too late for removing it now. > > Assuming that removing this hook from Emacs isn't an option, we are > > left with ugly ad-hoc workarounds, such as the patch we're currently > > discussing. > Yes. -- Alan Mackenzie (Nuremberg, Germany).