From mboxrd@z Thu Jan 1 00:00:00 1970 Path: main.gmane.org!not-for-mail From: "Stefan Monnier" Newsgroups: gmane.emacs.devel Subject: Re: problem with mh-e and 2002-08-20 change to font-core.el Date: Fri, 30 Aug 2002 09:42:49 -0400 Sender: emacs-devel-admin@gnu.org Message-ID: <200208301342.g7UDgng18121@rum.cs.yale.edu> References: <200208260738.g7Q7c8S23362@localhost.localdomain> <200208262151.g7QLpN812743@wijiji.santafe.edu> <200208262209.g7QM9cx26500@rum.cs.yale.edu> <200208280653.g7S6r4p13393@wijiji.santafe.edu> <200208281355.g7SDtUl03773@rum.cs.yale.edu> <200208291525.g7TFPgG10906@rum.cs.yale.edu> NNTP-Posting-Host: localhost.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: main.gmane.org 1030715039 20891 127.0.0.1 (30 Aug 2002 13:43:59 GMT) X-Complaints-To: usenet@main.gmane.org NNTP-Posting-Date: Fri, 30 Aug 2002 13:43:59 +0000 (UTC) Cc: monnier+gnu/emacs@rum.cs.yale.edu, y@mit.edu, mh-e-devel@lists.sourceforge.net, emacs-devel@gnu.org Return-path: Original-Received: from quimby.gnus.org ([80.91.224.244]) by main.gmane.org with esmtp (Exim 3.35 #1 (Debian)) id 17km46-0005Qq-00 for ; Fri, 30 Aug 2002 15:43:58 +0200 Original-Received: from monty-python.gnu.org ([199.232.76.173]) by quimby.gnus.org with esmtp (Exim 3.12 #1 (Debian)) id 17kmat-0005da-00 for ; Fri, 30 Aug 2002 16:17:51 +0200 Original-Received: from localhost ([127.0.0.1] helo=monty-python.gnu.org) by monty-python.gnu.org with esmtp (Exim 4.10) id 17km5U-0004u7-00; Fri, 30 Aug 2002 09:45:24 -0400 Original-Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.10) id 17km33-0004jv-00 for emacs-devel@gnu.org; Fri, 30 Aug 2002 09:42:53 -0400 Original-Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.10) id 17km30-0004jF-00 for emacs-devel@gnu.org; Fri, 30 Aug 2002 09:42:52 -0400 Original-Received: from rum.cs.yale.edu ([128.36.229.169]) by monty-python.gnu.org with esmtp (Exim 4.10) id 17km30-0004j3-00; Fri, 30 Aug 2002 09:42:50 -0400 Original-Received: (from monnier@localhost) by rum.cs.yale.edu (8.11.6/8.11.6) id g7UDgng18121; Fri, 30 Aug 2002 09:42:49 -0400 X-Mailer: exmh version 2.4 06/23/2000 with nmh-1.0.4 Original-To: Richard Stallman Errors-To: emacs-devel-admin@gnu.org X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.0.11 Precedence: bulk List-Help: List-Post: List-Subscribe: , List-Id: Emacs development discussions. List-Unsubscribe: , List-Archive: Xref: main.gmane.org gmane.emacs.devel:7164 X-Report-Spam: http://spam.gmane.org/gmane.emacs.devel:7164 > > font-lock-face properties go in mode-specific places. > > But do the properties belong to the text or to the mode. > > I am not sure that question makes real sense, but the > font-lock-face property is not specific to any one mode. > The right font-lock-face properties for one mode are wrong > for some others. > > I have the impression that most of those font-lock-face properties > are added together with the corresponding text and that they can't > be recovered just from the text. I.e. erasing them might not > be the right thing to do since it loses information. > > For Occur mode, this is correct. Info mode automatically applies > the properties to the text. > > With the current code, changing from Occur mode to Fundamental mode > and back to Occur mode would lose the font-lock-face properties. > That is a bug. > > With the change you propose, changing from Occur mode to Fundamental > mode and then to Info mode would leave you with font-lock-face > properties left over from Occur mode. That would be a bug. I'm not sure how important this is, really. > Is there any way to make both cases work right? I think we can't make it work "automatically", but instead we need to change `info.el' such that (font-lock-mode 1) or (font-lock-mode 0) in info-mode begins by clearing the font-lock-face property. We can maybe do it with something like (add-hook 'font-lock-mode (lambda () (remove-face-properties (point-min) (point-max) '(font-lock-face)))) but that might be run too late. So maybe we should add some support in font-core.el to make it easier for a mode to tell "erase font-lock-face property when font-lock-mode is changed". Of course, another alternative is to make info.el use font-lock-keywords (and the `face' property) rather than do all the looping&matching by hand. That seems much better. > The "erase the font-lock-face property when changing-mode" hook you > added is only added when you turn on font-lock-mode, so the > font-lock-face property will stay if you don't turn on font-lock-mode > before changing major-mode. > > Now I understand. Is there a method that fixes this too? First, I think that the change-major-mode-hook should run (font-lock-mode -1) and that if it doesn't do the right thing, then we should fix (font-lock-mode -1) rather than change the change-major-mode-hook. Stefan