]> git.eshelyaron.com Git - emacs.git/commitdiff
* lisp/hi-lock.el: Don't call font-lock-remove-keywords if not needed.
authorStefan Monnier <monnier@iro.umontreal.ca>
Wed, 11 Feb 2015 21:37:49 +0000 (16:37 -0500)
committerStefan Monnier <monnier@iro.umontreal.ca>
Wed, 11 Feb 2015 21:37:49 +0000 (16:37 -0500)
Fixes: debbugs:19737
(hi-lock-unface-buffer): Don't call font-lock-remove-keywords if not needed.

lisp/ChangeLog
lisp/hi-lock.el

index 7e45b9db64cc6b865d363fad8c09edc67cf6329e..34e4e9d1c2b803d8acfbc2a8b543797209354d36 100644 (file)
@@ -1,3 +1,8 @@
+2015-02-11  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * hi-lock.el (hi-lock-unface-buffer): Don't call
+       font-lock-remove-keywords if not needed (bug#19737).
+
 2015-02-11  Nicolas Petton <nicolas@petton.fr>
 
        * emacs-lisp/seq.el (seq-reverse): Add a backward-compatible
@@ -8,8 +13,7 @@
 
        * frame.el (toggle-frame-maximized, toggle-frame-fullscreen):
        Rename frame parameter `maximized' to `fullscreen-restore'.
-       Restore fullwidth/-height after fullboth state.  Update
-       doc-strings.
+       Restore fullwidth/-height after fullboth state.  Update doc-strings.
 
 2015-02-11  Lars Ingebrigtsen  <larsi@gnus.org>
 
@@ -23,8 +27,8 @@
 
        * net/shr.el (shr-use-fonts): New variable.
        (shr-fill-text): Rename from "fold".
-       (shr-pixel-column, shr-pixel-region, shr-string-pixel-width): New
-       functions.
+       (shr-pixel-column, shr-pixel-region, shr-string-pixel-width):
+       New functions.
        (shr-insert): Just insert, don't fill the text.  Filling is now
        done afterwards per display unit.
        (shr-fill-lines, shr-fill-line): New functions to fill text on a
index 65a4561e3ab232eae3c77914fd84c0a0300c2904..d74664a845ff8adde3bb00920655bd3d21208007 100644 (file)
@@ -596,7 +596,12 @@ then remove all hi-lock highlighting."
         ;; Make `face' the next one to use by default.
         (when (symbolp face)          ;Don't add it if it's a list (bug#13297).
           (add-to-list 'hi-lock--unused-faces (face-name face))))
-      (font-lock-remove-keywords nil (list keyword))
+      ;; FIXME: Calling `font-lock-remove-keywords' causes
+      ;; `font-lock-specified-p' to go from nil to non-nil (because it
+      ;; calls font-lock-set-defaults).  This is yet-another bug in
+      ;; font-lock-add/remove-keywords, which we circumvent here by
+      ;; testing `font-lock-fontified' (bug#19737).
+      (if font-lock-fontified (font-lock-remove-keywords nil (list keyword)))
       (setq hi-lock-interactive-patterns
             (delq keyword hi-lock-interactive-patterns))
       (remove-overlays