Mercurial > emacs
changeset 63024:ed96547a88b1
(font-lock-mode-major-mode): Compiler defvar.
(font-lock-mode): Update `font-lock-mode-major-mode'.
(font-lock-set-defaults): Compiler defvar.
(font-lock-default-function): Take `font-lock-mode-major-mode' into account.
author | Luc Teirlinck <teirllm@auburn.edu> |
---|---|
date | Sat, 04 Jun 2005 22:18:53 +0000 |
parents | cc9dd228e2e6 |
children | 36a997bd89f7 |
files | lisp/font-core.el |
diffstat | 1 files changed, 13 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/font-core.el Sat Jun 04 22:13:57 2005 +0000 +++ b/lisp/font-core.el Sat Jun 04 22:18:53 2005 +0000 @@ -88,6 +88,8 @@ It will be passed one argument, which is the current value of `font-lock-mode'.") +;; The mode for which font-lock was initialized, or nil if none. +(defvar font-lock-mode-major-mode) (define-minor-mode font-lock-mode "Toggle Font Lock mode. With arg, turn Font Lock mode off if and only if arg is a non-positive @@ -156,7 +158,9 @@ ;; Arrange to unfontify this buffer if we change major mode later. (if font-lock-mode (add-hook 'change-major-mode-hook 'font-lock-change-mode nil t) - (remove-hook 'change-major-mode-hook 'font-lock-change-mode t))) + (remove-hook 'change-major-mode-hook 'font-lock-change-mode t)) + (when font-lock-mode + (setq font-lock-mode-major-mode major-mode))) ;; Get rid of fontification for the old major mode. ;; We do this when changing major modes. @@ -175,6 +179,7 @@ '(font-lock-face))) (restore-buffer-modified-p modp))) +(defvar font-lock-set-defaults) (defun font-lock-default-function (mode) ;; Turn on Font Lock mode. (when mode @@ -201,9 +206,14 @@ ;; Only do hard work if the mode has specified stuff in ;; `font-lock-defaults'. (when (or font-lock-defaults - (and (boundp 'font-lock-keywords) font-lock-keywords) + (if (boundp 'font-lock-keywords) font-lock-keywords) (with-no-warnings - (cdr (assq major-mode font-lock-defaults-alist)))) + (cdr (assq major-mode font-lock-defaults-alist))) + (and mode + (boundp 'font-lock-set-defaults) + font-lock-set-defaults + font-lock-mode-major-mode + (not (eq font-lock-mode-major-mode major-mode)))) (font-lock-mode-internal mode))) (defun turn-on-font-lock ()