changeset 15791:15f3befe7705

(font-lock-mode): Don't add to after-change-functions if font-lock-fontify-region-function is `ignore'. (font-lock-inhibit-modes): New variable. (turn-on-font-lock-if-enabled): Test it.
author Richard M. Stallman <rms@gnu.org>
date Sat, 27 Jul 1996 20:23:55 +0000
parents fb5e87397205
children feeb1f7c1cec
files lisp/font-lock.el
diffstat 1 files changed, 7 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/font-lock.el	Sat Jul 27 16:19:46 1996 +0000
+++ b/lisp/font-lock.el	Sat Jul 27 20:23:55 1996 +0000
@@ -501,9 +501,10 @@
     (set (make-local-variable 'font-lock-mode) on-p)
     ;; Turn on Font Lock mode.
     (when on-p
-      (make-local-hook 'after-change-functions)
-      (add-hook 'after-change-functions 'font-lock-after-change-function nil t)
       (font-lock-set-defaults)
+      (unless (eq font-lock-fontify-region-function 'ignore)
+	(make-local-hook 'after-change-functions)
+	(add-hook 'after-change-functions 'font-lock-after-change-function nil t))
       (font-lock-turn-on-thing-lock)
       (run-hooks 'font-lock-mode-hook)
       ;; Fontify the buffer if we have to.
@@ -598,6 +599,9 @@
  (c-mode c++-mode)
 means that Font Lock mode is turned on for buffers in C and C++ modes only.")
 
+(defvar font-lock-inhibit-modes '(lisp-interaction-mode)
+  "Major modes for which Global Font Lock mode should not apply.")
+
 ;;;###autoload
 (defun global-font-lock-mode (&optional arg message)
   "Toggle Global Font Lock mode.
@@ -643,6 +647,7 @@
 	  (set-buffer (car font-lock-buffers))
 	  (if (and (or font-lock-defaults
 		       (assq major-mode font-lock-defaults-alist))
+		   (not (memq major-mode font-lock-inhibit-modes))
 		   (or (eq font-lock-global-modes t)
 		       (if (eq (car-safe font-lock-global-modes) 'not)
 			   (not (memq major-mode (cdr font-lock-global-modes)))