Debug message fix
[sxemacs] / lisp / fontl-hooks.el
1 ;;; fontl-hooks.el --- pre-loaded stuff for font-lock.
2
3 ;; Copyright (C) 1992, 1993, 1994, 1995 Free Software Foundation, Inc.
4 ;; Copyright (C) 1995 Amdahl Corporation.
5 ;; Copyright (C) 1996 Ben Wing.
6
7 ;; This file is part of SXEmacs.
8
9 ;; SXEmacs is free software: you can redistribute it and/or modify
10 ;; it under the terms of the GNU General Public License as published by
11 ;; the Free Software Foundation, either version 3 of the License, or
12 ;; (at your option) any later version.
13
14 ;; SXEmacs is distributed in the hope that it will be useful,
15 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
16 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17 ;; GNU General Public License for more details.
18
19 ;; You should have received a copy of the GNU General Public License
20 ;; along with this program.  If not, see <http://www.gnu.org/licenses/>.
21
22 ;;; Synched up with: FSF 19.30. (font-lock.el)
23
24 ;;; Commentary:
25
26 ;; The reason for the existence of this file is so that modes can
27 ;; call `font-lock-set-defaults' without worrying about whether
28 ;; font-lock is loaded.  We don't autoload this from font-lock.el
29 ;; because loading font-lock.el automatically turns font-lock on.
30
31 ;;; Code:
32
33 (defun font-lock-set-defaults (&optional explicit-defaults)
34   "Set fontification defaults appropriately for this mode.
35 Sets `font-lock-keywords', `font-lock-keywords-only', `font-lock-syntax-table',
36 `font-lock-beginning-of-syntax-function' and
37 `font-lock-keywords-case-fold-search'.
38
39 If `font-lock-defaults' is currently set, it is used.  Otherwise, the
40 symbol naming the major mode is examined for a `font-lock-defaults'
41 property.  If that is not present, but a variable `foo-mode-font-lock-keywords'
42 is, the value of that variable is used as the default for
43 `font-lock-keywords'.  Various other backward-compatible behaviors also
44 exist -- if you're curious, look at the source.
45
46 The value of `font-lock-maximum-decoration' is used to determine which
47 set of keywords applies, if more than one exists.
48
49 This will also put the buffer into Font Lock mode if any keywords exist
50 and if auto-fontification is called for, as determined by
51 `font-lock-auto-fontify', `font-lock-mode-enable-list', and
52 `font-lock-mode-disable-list'.
53
54 Calling this function multiple times in the same buffer is safe -- this
55 function keeps track of whether it has already been called in this
56 buffer, and does nothing if so.  This allows for multiple ways of getting
57 Font Lock properly initialized in a buffer, to deal with existing major
58 modes that do not call this function. (For example, Font Lock adds this
59 function to `find-file-hooks'.)
60
61 Major modes that have any font-lock defaults specified should call this
62 function during their initialization process, after they have set
63 the variable `major-mode'.
64
65 If EXPLICIT-DEFAULTS is t, this function will not check whether it
66 has already been run in this buffer, and will always do the full
67 computation.
68
69 If EXPLICIT-DEFAULTS is not nil and not t, it should be something
70 that is allowable as a value for `font-lock-defaults' and will be
71 used to initialize the Font Lock variables."
72
73   (with-boundp '(font-lock-auto-fontify
74                  font-lock-mode-disable-list font-lock-mode-enable-list
75                  font-lock-keywords)
76     (when
77         (and
78          (featurep 'font-lock)
79          (if font-lock-auto-fontify
80              (not (memq major-mode font-lock-mode-disable-list))
81            (memq major-mode font-lock-mode-enable-list))
82         (or (declare-fboundp (font-lock-set-defaults-1 explicit-defaults))
83             font-lock-defaults-computed)
84          font-lock-keywords)
85       (declare-fboundp (turn-on-font-lock)))))
86
87 (provide 'fontl-hooks)
88
89 ;;; fontl-hooks.el ends here