From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Juri Linkov Newsgroups: gmane.emacs.bugs Subject: bug#1744: bug-reference-mode doesn't fontify when called from mode hook Date: Mon, 12 Jan 2009 02:57:09 +0200 Organization: JURTA Message-ID: <871vv9jrmq.fsf@jurta.org> References: <877i5hfctm.fsf@jurta.org> Reply-To: Juri Linkov , 1744@emacsbugs.donarmstrong.com NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: ger.gmane.org 1231723433 23141 80.91.229.12 (12 Jan 2009 01:23:53 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Mon, 12 Jan 2009 01:23:53 +0000 (UTC) Cc: 1744@emacsbugs.donarmstrong.com To: Glenn Morris Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Mon Jan 12 02:25:04 2009 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by lo.gmane.org with esmtp (Exim 4.50) id 1LMBY3-0005Ni-F0 for geb-bug-gnu-emacs@m.gmane.org; Mon, 12 Jan 2009 02:24:59 +0100 Original-Received: from localhost ([127.0.0.1]:50186 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1LMBWm-0002ZO-Rh for geb-bug-gnu-emacs@m.gmane.org; Sun, 11 Jan 2009 20:23:40 -0500 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1LMBWa-0002Sx-TB for bug-gnu-emacs@gnu.org; Sun, 11 Jan 2009 20:23:28 -0500 Original-Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1LMBWa-0002ST-9v for bug-gnu-emacs@gnu.org; Sun, 11 Jan 2009 20:23:28 -0500 Original-Received: from [199.232.76.173] (port=56320 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1LMBWZ-0002SD-Ut for bug-gnu-emacs@gnu.org; Sun, 11 Jan 2009 20:23:28 -0500 Original-Received: from rzlab.ucr.edu ([138.23.92.77]:44281) by monty-python.gnu.org with esmtps (TLS-1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.60) (envelope-from ) id 1LMBWZ-0007xV-GB for bug-gnu-emacs@gnu.org; Sun, 11 Jan 2009 20:23:27 -0500 Original-Received: from rzlab.ucr.edu (rzlab.ucr.edu [127.0.0.1]) by rzlab.ucr.edu (8.13.8/8.13.8/Debian-3) with ESMTP id n0C1NPUf001192; Sun, 11 Jan 2009 17:23:25 -0800 Original-Received: (from debbugs@localhost) by rzlab.ucr.edu (8.13.8/8.13.8/Submit) id n0C155Wu028945; Sun, 11 Jan 2009 17:05:05 -0800 X-Loop: owner@emacsbugs.donarmstrong.com Resent-From: Juri Linkov Resent-To: bug-submit-list@donarmstrong.com Resent-CC: Emacs Bugs Resent-Date: Mon, 12 Jan 2009 01:05:05 +0000 Resent-Message-ID: Resent-Sender: owner@emacsbugs.donarmstrong.com X-Emacs-PR-Message: followup 1744 X-Emacs-PR-Package: emacs X-Emacs-PR-Keywords: Original-Received: via spool by 1744-submit@emacsbugs.donarmstrong.com id=B1744.123172195426867 (code B ref 1744); Mon, 12 Jan 2009 01:05:05 +0000 Original-Received: (at 1744) by emacsbugs.donarmstrong.com; 12 Jan 2009 00:59:14 +0000 X-Spam-Bayes: score:0.5 Bayes not run. spammytokens:Tokens not available. hammytokens:Tokens not available. Original-Received: from relay01.kiev.sovam.com (relay01.kiev.sovam.com [62.64.120.200]) by rzlab.ucr.edu (8.13.8/8.13.8/Debian-3) with ESMTP id n0C0x6R8026859 for <1744@emacsbugs.donarmstrong.com>; Sun, 11 Jan 2009 16:59:07 -0800 Original-Received: from [83.170.232.243] (helo=smtp.svitonline.com) by relay01.kiev.sovam.com with esmtp (Exim 4.67) (envelope-from ) id 1LMB9C-000G6Y-BL; Mon, 12 Jan 2009 02:59:18 +0200 In-Reply-To: (Glenn Morris's message of "Thu, 08 Jan 2009 20:48:28 -0500") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/23.0.60 (x86_64-pc-linux-gnu) X-Scanner-Signature: b72b012eade34d4806fecc225a7d7ed8 X-DrWeb-checked: yes X-SpamTest-Envelope-From: juri@jurta.org X-SpamTest-Group-ID: 00000000 X-SpamTest-Header: Trusted X-SpamTest-Info: Profiles 6713 [Jan 12 2009] X-SpamTest-Info: {received from trusted relay: common white list} X-SpamTest-Info: {HEADERS: header Content-Type found without required header Content-Transfer-Encoding} X-SpamTest-Method: white ip list X-SpamTest-Rate: 10 X-SpamTest-Status: Trusted X-SpamTest-Status-Extended: trusted X-SpamTest-Version: SMTP-Filter Version 3.0.0 [0278], KAS30/Release X-detected-operating-system: by monty-python.gnu.org: GNU/Linux 2.6 (newer, 3) Resent-Date: Sun, 11 Jan 2009 20:23:28 -0500 X-BeenThere: bug-gnu-emacs@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.bugs:24008 Archived-At: > This reminds me a bit of bug#347. How about something like this: > > *** bug-reference.el 5 Jan 2009 03:23:16 -0000 1.6 > --- bug-reference.el 9 Jan 2009 01:47:30 -0000 > *************** > *** 114,121 **** > "" > nil > (if bug-reference-mode > (when bug-reference-url-format > ! (jit-lock-register #'bug-reference-fontify)) > (jit-lock-unregister #'bug-reference-fontify) > (save-restriction > (widen) > --- 114,125 ---- > "" > nil > (if bug-reference-mode > + (progn > + (let ((enable-local-variables :safe) > + (enable-local-eval nil)) > + (hack-local-variables)) I think it's a fairly brittle solution to deal with direct hacking of local variables. I propose a simpler solution that postpones checking for non-nil bug-reference-url-format in bug-reference-fontify that gets called after bug-reference-url-format is set from the local variables section. A good side of it is that even when bug-reference-url-format is still not specified for the moment of font-locking, bug numbers are still highlighted. I've verified that the following patch works also when `mode: bug-reference' is located before `bug-reference-url-format: "..."' in ChangeLog files: Index: lisp/progmodes/bug-reference.el =================================================================== RCS file: /sources/emacs/emacs/lisp/progmodes/bug-reference.el,v retrieving revision 1.6 diff -u -w -b -r1.6 bug-reference.el --- lisp/progmodes/bug-reference.el 5 Jan 2009 03:23:16 -0000 1.6 +++ lisp/progmodes/bug-reference.el 12 Jan 2009 00:52:15 -0000 @@ -85,9 +85,11 @@ (let ((overlay (make-overlay (match-beginning 0) (match-end 0) nil t nil))) (overlay-put overlay 'category 'bug-reference) + ;; Don't put a link if format is undefined + (when bug-reference-url-format (overlay-put overlay 'bug-reference-url (format bug-reference-url-format - (match-string-no-properties 1))))))))) + (match-string-no-properties 1)))))))))) ;; Taken from button.el. (defun bug-reference-push-button (&optional pos use-mouse-action) @@ -108,14 +110,12 @@ ;;;###autoload (define-minor-mode bug-reference-mode - "Minor mode to buttonize bugzilla references in the current buffer. -Requires `bug-reference-url-format' to be set in the buffer." + "Minor mode to buttonize bugzilla references in the current buffer." nil "" nil (if bug-reference-mode - (when bug-reference-url-format - (jit-lock-register #'bug-reference-fontify)) + (jit-lock-register #'bug-reference-fontify) (jit-lock-unregister #'bug-reference-fontify) (save-restriction (widen) @@ -128,8 +128,7 @@ "" nil (if bug-reference-prog-mode - (when bug-reference-url-format - (jit-lock-register #'bug-reference-fontify)) + (jit-lock-register #'bug-reference-fontify) (jit-lock-unregister #'bug-reference-fontify) (save-restriction (widen) -- Juri Linkov http://www.jurta.org/emacs/