changeset 47611:6bc56530304a

(fast-lock-mode, lazy-lock-mode, jit-lock-mode): Don't bind them variables. (font-lock-turn-off-thing-lock, font-lock-after-fontify-buffer) (font-lock-after-unfontify-buffer): Check that the vars are bound. (font-lock-dont-widen): New var. (font-lock-default-fontify-region): Use it.
author Stefan Monnier <monnier@iro.umontreal.ca>
date Wed, 25 Sep 2002 19:34:07 +0000
parents 8a24f7edde82
children 2d55f7e8ff64
files lisp/font-lock.el
diffstat 1 files changed, 20 insertions(+), 13 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/font-lock.el	Wed Sep 25 18:58:37 2002 +0000
+++ b/lisp/font-lock.el	Wed Sep 25 19:34:07 2002 +0000
@@ -788,9 +788,9 @@
   :version "21.1"
   :group 'font-lock)
 
-(defvar fast-lock-mode nil)
-(defvar lazy-lock-mode nil)
-(defvar jit-lock-mode nil)
+(defvar fast-lock-mode)
+(defvar lazy-lock-mode)
+(defvar jit-lock-mode)
 
 (defun font-lock-turn-on-thing-lock ()
   (let ((thing-mode (font-lock-value-in-major-mode font-lock-support-mode)))
@@ -811,26 +811,26 @@
 			      (not font-lock-keywords-only))))))
 
 (defun font-lock-turn-off-thing-lock ()
-  (cond (fast-lock-mode
+  (cond ((and (boundp 'fast-lock-mode) fast-lock-mode)
 	 (fast-lock-mode -1))
-	(jit-lock-mode
+	((and (boundp 'jit-lock-mode) jit-lock-mode)
 	 (jit-lock-unregister 'font-lock-fontify-region)
 	 ;; Reset local vars to the non-jit-lock case.
 	 (kill-local-variable 'font-lock-fontify-buffer-function))
-	(lazy-lock-mode
+	((and (boundp 'lazy-lock-mode) lazy-lock-mode)
 	 (lazy-lock-mode -1))))
 
 (defun font-lock-after-fontify-buffer ()
-  (cond (fast-lock-mode
+  (cond ((and (boundp 'fast-lock-mode) fast-lock-mode)
 	 (fast-lock-after-fontify-buffer))
 	;; Useless now that jit-lock intercepts font-lock-fontify-buffer.  -sm
 	;; (jit-lock-mode
 	;;  (jit-lock-after-fontify-buffer))
-	(lazy-lock-mode
+	((and (boundp 'lazy-lock-mode) lazy-lock-mode)
 	 (lazy-lock-after-fontify-buffer))))
 
 (defun font-lock-after-unfontify-buffer ()
-  (cond (fast-lock-mode
+  (cond ((and (boundp 'fast-lock-mode) fast-lock-mode)
 	 (fast-lock-after-unfontify-buffer))
 	;; Useless as well.  It's only called when:
 	;; - turning off font-lock: it does not matter if we leave spurious
@@ -840,7 +840,7 @@
 	;;
 	;; (jit-lock-mode
 	;;  (jit-lock-after-unfontify-buffer))
-	(lazy-lock-mode
+	((and (boundp 'lazy-lock-mode) lazy-lock-mode)
 	 (lazy-lock-after-unfontify-buffer))))
 
 ;;; End of Font Lock Support mode.
@@ -932,13 +932,18 @@
     (font-lock-after-unfontify-buffer)
     (setq font-lock-fontified nil)))
 
+(defvar font-lock-dont-widen nil
+  "If non-nil, font-lock will work on the non-widened buffer.
+Useful for things like RMAIL and Info where the whole buffer is not
+a very meaningful entity to highlight.")
+
 (defun font-lock-default-fontify-region (beg end loudly)
   (save-buffer-state
       ((parse-sexp-lookup-properties font-lock-syntactic-keywords)
        (old-syntax-table (syntax-table)))
     (unwind-protect
 	(save-restriction
-	  (widen)
+	  (unless font-lock-dont-widen (widen))
 	  ;; Use the fontification syntax table, if any.
 	  (when font-lock-syntax-table
 	    (set-syntax-table font-lock-syntax-table))
@@ -1025,7 +1030,8 @@
 	      (font-lock-fontify-region (point) (mark)))
 	  ((error quit) (message "Fontifying block...%s" error-data)))))))
 
-(define-key facemenu-keymap "\M-g" 'font-lock-fontify-block)
+(if (boundp 'facemenu-keymap)
+    (define-key facemenu-keymap "\M-g" 'font-lock-fontify-block))
 
 ;;; End of Fontification functions.
 
@@ -1312,7 +1318,8 @@
 
 (defun font-lock-fontify-keywords-region (start end &optional loudly)
   "Fontify according to `font-lock-keywords' between START and END.
-START should be at the beginning of a line."
+START should be at the beginning of a line.
+LOUDLY, if non-nil, allows progress-meter bar."
   (unless (eq (car font-lock-keywords) t)
     (setq font-lock-keywords
 	  (font-lock-compile-keywords font-lock-keywords t)))