From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Stefan Monnier Newsgroups: gmane.emacs.bugs Subject: bug#16759: CC Mode modes: mode hooks are called twice. Date: Wed, 19 Feb 2014 13:49:43 -0500 Message-ID: References: <20140214220934.GA3645@acm.acm> <51k3crxb7v.fsf@fencepost.gnu.org> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: ger.gmane.org 1392835826 23052 80.91.229.3 (19 Feb 2014 18:50:26 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Wed, 19 Feb 2014 18:50:26 +0000 (UTC) Cc: Alan Mackenzie , 16759@debbugs.gnu.org To: Glenn Morris Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Wed Feb 19 19:50:33 2014 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1WGCE4-0003Vb-Ta for geb-bug-gnu-emacs@m.gmane.org; Wed, 19 Feb 2014 19:50:33 +0100 Original-Received: from localhost ([::1]:33097 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WGCE4-00078E-DG for geb-bug-gnu-emacs@m.gmane.org; Wed, 19 Feb 2014 13:50:32 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:57256) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WGCDq-00076e-Mn for bug-gnu-emacs@gnu.org; Wed, 19 Feb 2014 13:50:25 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1WGCDj-0004T3-Cy for bug-gnu-emacs@gnu.org; Wed, 19 Feb 2014 13:50:18 -0500 Original-Received: from debbugs.gnu.org ([140.186.70.43]:59367) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WGCDb-0004Hh-1M; Wed, 19 Feb 2014 13:50:03 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.80) (envelope-from ) id 1WGCDa-00058L-NQ; Wed, 19 Feb 2014 13:50:02 -0500 X-Loop: help-debbugs@gnu.org Resent-From: Stefan Monnier Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org, bug-cc-mode@gnu.org Resent-Date: Wed, 19 Feb 2014 18:50:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 16759 X-GNU-PR-Package: emacs,cc-mode X-GNU-PR-Keywords: Original-Received: via spool by 16759-submit@debbugs.gnu.org id=B16759.139283579119711 (code B ref 16759); Wed, 19 Feb 2014 18:50:02 +0000 Original-Received: (at 16759) by debbugs.gnu.org; 19 Feb 2014 18:49:51 +0000 Original-Received: from localhost ([127.0.0.1]:60549 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WGCDO-00057r-SQ for submit@debbugs.gnu.org; Wed, 19 Feb 2014 13:49:51 -0500 Original-Received: from ironport2-out.teksavvy.com ([206.248.154.181]:42675) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WGCDN-00057Y-4L for 16759@debbugs.gnu.org; Wed, 19 Feb 2014 13:49:49 -0500 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Av4EABK/CFFLd/8D/2dsb2JhbABEvw4Xc4IeAQEEAVYjBQsLDiYSFBgNJC6HcAbBLZEKA4hhnBmBXoMV X-IPAS-Result: Av4EABK/CFFLd/8D/2dsb2JhbABEvw4Xc4IeAQEEAVYjBQsLDiYSFBgNJC6HcAbBLZEKA4hhnBmBXoMV X-IronPort-AV: E=Sophos;i="4.84,565,1355115600"; d="scan'208";a="48159590" Original-Received: from 75-119-255-3.dsl.teksavvy.com (HELO pastel.home) ([75.119.255.3]) by ironport2-out.teksavvy.com with ESMTP/TLS/ADH-AES256-SHA; 19 Feb 2014 13:49:43 -0500 Original-Received: by pastel.home (Postfix, from userid 20848) id 305846138C; Wed, 19 Feb 2014 13:49:43 -0500 (EST) In-Reply-To: <51k3crxb7v.fsf@fencepost.gnu.org> (Glenn Morris's message of "Wed, 19 Feb 2014 12:29:24 -0500") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3.50 (gnu/linux) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x X-Received-From: 140.186.70.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-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.bugs:85901 Archived-At: >> The cause of this is that there is an invocation of run-mode-hooks >> generated by the macro define-derived-mode as well as an explicit call to >> run-mode-hooks which is not at the end of the mode function. > IIUC, this is because you want to run some C-mode stuff after the hooks. More specifically, it's always c-update-modeline, AFAICT. A good solution would be to get rid of it and use something like (let ((lighters '("/" (c-electric-flag "l") (c-electric-flag (c-auto-newline "a")) (c-hungry-delete-key "h") (subword-mode "w")))) (setq c-mode-options-format `(c-electric-flag ,lighters (c-hungry-delete-key ,lighters) (subword-mode ,lighters))) (cond ((memq 'c-mode-options-format mode-line-process) nil) ((equal "" (car-safe mode-line-process)) (push 'c-mode-options-format (cdr mode-line-process))) (t (setq mode-line-process `("" c-mode-options-format ,mode-line-process))))) > A simple solution would be to add :after-hook to define-derived-mode. > You already did this for define-minor-mode. > It would be good for symmetry/consistency if nothing else, and seems > pre-approved: I wouldn't say pre-approved. But, yes, I guess it'd be OK. Stefan