changeset 45713:57fbb3200dc6

(font-lock-default-function): If `font-lock-core-only' is non-nil, don't use big font-lock machinery.
author Colin Walters <walters@gnu.org>
date Sun, 09 Jun 2002 00:41:11 +0000
parents 3d25fe242d2a
children 7057566fa4c1
files lisp/font-core.el
diffstat 1 files changed, 8 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/font-core.el	Sun Jun 09 00:40:25 2002 +0000
+++ b/lisp/font-core.el	Sun Jun 09 00:41:11 2002 +0000
@@ -225,7 +225,8 @@
 	(push (list 'face 'font-lock-face) char-property-alias-alist)))
     ;; Only do hard work if the mode has specified stuff in
     ;; `font-lock-defaults'.
-    (when font-lock-defaults
+    (when (and font-lock-defaults
+	       (not font-lock-core-only))
       (add-hook 'after-change-functions 'font-lock-after-change-function t t)
       (font-lock-turn-on-thing-lock)
       ;; Fontify the buffer if we have to.
@@ -247,7 +248,8 @@
 	(setcdr elt (remq 'font-lock-face (cdr elt)))
 	(when (null (cdr elt))
 	  (setq char-property-alias-alist (delq elt char-property-alias-alist)))))
-    (when font-lock-defaults
+    (when (and font-lock-defaults
+	       (not font-lock-core-only))
       (remove-hook 'after-change-functions 'font-lock-after-change-function t)
       (font-lock-unfontify-buffer)
       (font-lock-turn-off-thing-lock))))
@@ -269,11 +271,13 @@
     (make-local-variable 'font-lock-multiline)
     (let ((defaults (or font-lock-defaults
 			(assq major-mode font-lock-defaults-alist))))
+      ;; Variable alist?
+      (dolist (x (nthcdr 5 defaults))
+	(set (make-local-variable (car x)) (cdr x)))
       (when (and defaults
 		 ;; Detect if this is a simple mode, which doesn't use
 		 ;; any syntactic fontification functions.
-		 (not (cdr (assq 'font-lock-core-only
-				 (nthcdr 5 defaults)))))
+		 (not font-lock-core-only))
 	(require 'font-lock)
 	(font-lock-set-defaults-1)))))