]> git.eshelyaron.com Git - emacs.git/commitdiff
Ensure that font-local variables are buffer-local
authorLars Ingebrigtsen <larsi@gnus.org>
Thu, 31 Oct 2019 13:06:08 +0000 (14:06 +0100)
committerLars Ingebrigtsen <larsi@gnus.org>
Thu, 31 Oct 2019 13:06:08 +0000 (14:06 +0100)
* lisp/font-lock.el (font-lock-set-defaults): Ensure that the font
lock variables are buffer-local even when nil, so that they're
copied correctly by mhtml mode when changing sub-modes (bug#33937).

lisp/font-lock.el

index 4eb7bb8c2d45f7ea10120d8209795f7a06c9078c..875f5b0592d783414f93e2cbf857175fa01d3530 100644 (file)
@@ -1902,18 +1902,13 @@ Sets various variables using `font-lock-defaults' and
           (removed-keywords
            (cdr-safe (assq major-mode font-lock-removed-keywords-alist))))
       ;; Syntactic fontification?
-      (if (nth 1 defaults)
-          (set (make-local-variable 'font-lock-keywords-only) t)
-        (kill-local-variable 'font-lock-keywords-only))
+      (setq-local font-lock-keywords-only (nth 1 defaults))
       ;; Case fold during regexp fontification?
-      (if (nth 2 defaults)
-          (set (make-local-variable 'font-lock-keywords-case-fold-search) t)
-        (kill-local-variable 'font-lock-keywords-case-fold-search))
+      (setq-local font-lock-keywords-case-fold-search (nth 2 defaults))
       ;; Syntax table for regexp and syntactic fontification?
       (if (null (nth 3 defaults))
-          (kill-local-variable 'font-lock-syntax-table)
-       (set (make-local-variable 'font-lock-syntax-table)
-            (copy-syntax-table (syntax-table)))
+          (setq-local font-lock-syntax-table nil)
+       (setq-local font-lock-syntax-table (copy-syntax-table (syntax-table)))
        (dolist (selem (nth 3 defaults))
          ;; The character to modify may be a single CHAR or a STRING.
          (let ((syntax (cdr selem)))