changeset 14516:9360c3107669

Moved `supported' from turn-on-font-lock-if-supported to turn-on-font-lock.
author Simon Marshall <simon@gnu.org>
date Thu, 08 Feb 1996 10:08:08 +0000
parents b35134a0e47a
children 8b88e5c2a6d5
files lisp/font-lock.el
diffstat 1 files changed, 23 insertions(+), 27 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/font-lock.el	Thu Feb 08 10:04:55 1996 +0000
+++ b/lisp/font-lock.el	Thu Feb 08 10:08:08 1996 +0000
@@ -402,10 +402,6 @@
 
  (add-hook 'c-mode-hook 'turn-on-font-lock)
 
-Or for any visited file with the following in your ~/.emacs:
-
- (add-hook 'find-file-hooks 'turn-on-font-lock)
-
 Alternatively, you can use Global Font Lock mode to automagically turn on Font
 Lock mode in buffers whose major mode supports it, or in buffers whose major
 mode is one of `font-lock-global-modes'.  For example, put in your ~/.emacs:
@@ -480,8 +476,12 @@
 
 ;;;###autoload
 (defun turn-on-font-lock ()
-  "Turn on Font Lock mode, if the terminal can display it."
-  (if window-system (font-lock-mode t)))
+  "Turn on Font Lock mode conditionally.
+Turn on only if the buffer mode supports it and the terminal can display it."
+  (if (and window-system
+	   (not font-lock-mode)
+	   (or font-lock-defaults (assq major-mode font-lock-defaults-alist)))
+      (font-lock-mode t)))
 
 ;; Code for Global Font Lock mode.
 
@@ -500,7 +500,7 @@
 ;; hook is run, the major mode is in the process of being changed and we do not
 ;; know what the final major mode will be.  So, `font-lock-change-major-mode'
 ;; only (a) notes the name of the current buffer, and (b) adds our function
-;; `turn-on-font-lock-if-supported' to the hook variable `post-command-hook'.
+;; `turn-on-font-lock-if-enabled' to the hook variable `post-command-hook'.
 ;; By the time the functions on `post-command-hook' are run, the new major mode
 ;; is assumed to be in place.
 
@@ -545,33 +545,29 @@
 	(memq 'font-lock-change-major-mode change-major-mode-hook))
       (remove-hook 'change-major-mode-hook 'font-lock-change-major-mode)
     (add-hook 'change-major-mode-hook 'font-lock-change-major-mode)
-    (add-hook 'post-command-hook 'turn-on-font-lock-if-supported)
+    (add-hook 'post-command-hook 'turn-on-font-lock-if-enabled)
     (setq font-lock-cache-buffers (buffer-list))))
 
 (defun font-lock-change-major-mode ()
   ;; Gross hack warning: Delicate readers should avert eyes now.
   ;; Something is running `kill-all-local-variables', which generally means
-  ;; the major mode is being changed.  Run `turn-on-font-lock-if-supported'
-  ;; after the current command has finished.
-  (add-hook 'post-command-hook 'turn-on-font-lock-if-supported)
+  ;; the major mode is being changed.  Run `turn-on-font-lock-if-enabled' after
+  ;; the current command has finished.
+  (add-hook 'post-command-hook 'turn-on-font-lock-if-enabled)
   (add-to-list 'font-lock-cache-buffers (current-buffer)))
 
-(defun turn-on-font-lock-if-supported ()
+(defun turn-on-font-lock-if-enabled ()
   ;; Gross hack warning: Delicate readers should avert eyes now.
-  ;; Turn on Font Lock mode if (a) it's not already on, (b) the major mode
-  ;; supports Font Lock mode, and (c) it's one of `font-lock-global-modes'.
-  (remove-hook 'post-command-hook 'turn-on-font-lock-if-supported)
+  ;; Turn on Font Lock mode if it's one of `font-lock-global-modes'.
+  (remove-hook 'post-command-hook 'turn-on-font-lock-if-enabled)
   (while font-lock-cache-buffers
-    (if (buffer-name (car font-lock-cache-buffers))
+    (if (buffer-live-p (car font-lock-cache-buffers))
 	(save-excursion
 	  (set-buffer (car font-lock-cache-buffers))
-	  (if (and (not font-lock-mode)
-		   (or font-lock-defaults
-		       (assq major-mode font-lock-defaults-alist))
-		   (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)))
-			 (memq major-mode font-lock-global-modes))))
+	  (if (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)))
+		    (memq major-mode font-lock-global-modes)))
 	      (turn-on-font-lock))))
     (setq font-lock-cache-buffers (cdr font-lock-cache-buffers))))
 
@@ -672,12 +668,12 @@
 (defun font-lock-fontify-block (&optional arg)
   "Fontify some lines the way `font-lock-fontify-buffer' would.
 The lines could be a function or paragraph, or a specified number of lines.
+If ARG is given, fontify that many lines before and after point, or 16 lines if
+no ARG is given and `font-lock-mark-block-function' is nil.
 If `font-lock-mark-block-function' non-nil and no ARG is given, it is used to
-delimit the region to fontify.
-If ARG is given, fontify that many lines before and after point, or 16 lines if
-no ARG is given and `font-lock-mark-block-function' is nil."
+delimit the region to fontify."
   (interactive "P")
-  (let ((font-lock-beginning-of-syntax-function nil))
+  (let (font-lock-beginning-of-syntax-function deactivate-mark)
     ;; Make sure we have the right `font-lock-keywords' etc.
     (if (not font-lock-mode) (font-lock-set-defaults))
     (save-excursion