]> code.delx.au - gnu-emacs/blobdiff - lisp/font-core.el
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-145
[gnu-emacs] / lisp / font-core.el
index 40f192bb5727ac3f87331d177e4aebb4a8573176..ea1880baac749604963e3cd50ab8574bb1b8f8be 100644 (file)
@@ -1,7 +1,7 @@
 ;;; font-core.el --- Core interface to font-lock
 
-;; Copyright (C) 1992, 93, 94, 95, 96, 97, 98, 1999, 2000, 2001, 2002
-;;  Free Software Foundation, Inc.
+;; Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
+;;   2002, 2003, 2005  Free Software Foundation, Inc.
 
 ;; Maintainer: FSF
 ;; Keywords: languages, faces
@@ -73,52 +73,9 @@ and those for buffer-specialized fontification functions,
 `font-lock-inhibit-thing-lock' and `font-lock-maximum-size'.")
 (make-variable-buffer-local 'font-lock-defaults)
 
-;; This variable is used where font-lock.el itself supplies the
-;; keywords.  Really, this shouldn't need to be in font-core.el, but
-;; we can't avoid it.  In the future, this stuff will hopefully be
-;; moved to cc-mode itself.
-(defvar font-lock-defaults-alist
-  (let (;; We use `beginning-of-defun', rather than nil, for SYNTAX-BEGIN.
-       ;; Thus the calculation of the cache is usually faster but not
-       ;; infallible, so we risk mis-fontification.  sm.
-       (c-mode-defaults
-        '((c-font-lock-keywords c-font-lock-keywords-1
-           c-font-lock-keywords-2 c-font-lock-keywords-3)
-          nil nil ((?_ . "w")) beginning-of-defun
-          (font-lock-syntactic-face-function
-           . c-font-lock-syntactic-face-function)
-          (font-lock-mark-block-function . mark-defun)))
-       (c++-mode-defaults
-        '((c++-font-lock-keywords c++-font-lock-keywords-1
-           c++-font-lock-keywords-2 c++-font-lock-keywords-3)
-          nil nil ((?_ . "w")) beginning-of-defun
-          (font-lock-syntactic-face-function
-           . c-font-lock-syntactic-face-function)
-          (font-lock-mark-block-function . mark-defun)))
-       (objc-mode-defaults
-        '((objc-font-lock-keywords objc-font-lock-keywords-1
-           objc-font-lock-keywords-2 objc-font-lock-keywords-3)
-          nil nil ((?_ . "w") (?$ . "w")) nil
-          (font-lock-syntactic-face-function
-           . c-font-lock-syntactic-face-function)
-          (font-lock-mark-block-function . mark-defun)))
-       (java-mode-defaults
-        '((java-font-lock-keywords java-font-lock-keywords-1
-           java-font-lock-keywords-2 java-font-lock-keywords-3)
-          nil nil ((?_ . "w") (?$ . "w")) nil
-          (font-lock-syntactic-face-function
-           . java-font-lock-syntactic-face-function)
-          (font-lock-mark-block-function . mark-defun))))
-    (list
-     (cons 'c-mode                     c-mode-defaults)
-     (cons 'c++-mode                   c++-mode-defaults)
-     (cons 'objc-mode                  objc-mode-defaults)
-     (cons 'java-mode                  java-mode-defaults)))
+(defvar font-lock-defaults-alist nil
   "Alist of fall-back Font Lock defaults for major modes.
 
-This variable should not be used any more.
-Set the buffer-local `font-lock-keywords' in the major mode instead.
-
 Each item should be a list of the form:
 
  (MAJOR-MODE . FONT-LOCK-DEFAULTS)
@@ -245,7 +202,9 @@ this function onto `change-major-mode-hook'."
   ;; Only do hard work if the mode has specified stuff in
   ;; `font-lock-defaults'.
   (when (or font-lock-defaults
-           (cdr (assq major-mode font-lock-defaults-alist)))
+           (and (boundp 'font-lock-keywords) font-lock-keywords)
+           (with-no-warnings
+            (cdr (assq major-mode font-lock-defaults-alist))))
     (font-lock-mode-internal mode)))
 
 (defun turn-on-font-lock ()
@@ -338,5 +297,5 @@ means that Font Lock mode is turned on for buffers in C and C++ modes only."
 
 (provide 'font-core)
 
+;; arch-tag: f8c286e1-02f7-41d9-b89b-1b67780aed71
 ;;; font-core.el ends here
-