From af3d4246e08b6a8831cdd912486e5458c7fa4643 Mon Sep 17 00:00:00 2001 From: Stefan Monnier Date: Fri, 30 Dec 2005 04:38:52 +0000 Subject: [PATCH] (font-lock-compile-keywords): Signal an error when font-lock-set-defaults hasn't been called. --- lisp/ChangeLog | 25 +++++++++++++------------ lisp/font-lock.el | 7 +++++++ 2 files changed, 20 insertions(+), 12 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index c270c7f0bdd..60d329d0b9a 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,8 @@ +2005-12-29 Stefan Monnier + + * font-lock.el (font-lock-compile-keywords): Signal an error when + font-lock-set-defaults hasn't been called. + 2005-12-29 Luc Teirlinck * subr.el (noreturn, 1value): Doc fixes. @@ -12,15 +17,13 @@ * textmodes/bibtex.el (bibtex-entry-type-whitespace) (bibtex-entry-type-str, bibtex-empty-field-re) (bibtex-search-backward-string, bibtex-preamble-prefix) - (bibtex-search-entry, bibtex-enclosing-entry-maybe-empty-head): - Removed. + (bibtex-search-entry, bibtex-enclosing-entry-maybe-empty-head): Remove. (bibtex-any-valid-entry-type): New variable. (bibtex-parse-field-name): Simplify. - (bibtex-parse-string, bibtex-search-forward-string): New arg - empty-key. + (bibtex-parse-string, bibtex-search-forward-string): New arg empty-key. (bibtex-preamble-prefix): Include left delimiter. - (bibtex-search-forward-field, bibtex-search-backward-field): Allow - unbounded search past entry boundaries (required by bibtex-pop). + (bibtex-search-forward-field, bibtex-search-backward-field): + Allow unbounded search past entry boundaries (required by bibtex-pop). (bibtex-text-in-field-bounds): Use push. (bibtex-text-in-field): Do not use bibtex-narrow-to-entry. (bibtex-parse-preamble, bibtex-valid-entry) @@ -35,8 +38,8 @@ (bibtex-pop): Use bibtex-beginning-of-entry and bibtex-end-of-entry to initiate the search. Insert empty field if we found ourselves. - (bibtex-print-help-message): New args field and comma. Handle - entry keys. + (bibtex-print-help-message): New args field and comma. + Handle entry keys. (bibtex-make-field): Use bibtex-beginning-of-entry. (bibtex-end-of-entry): Use bibtex-valid-entry. Recognize any invalid entry. @@ -51,8 +54,7 @@ (bibtex-fill-field): Simplify. (bibtex-fill-entry): Use bibtex-beginning-first-field and bibtex-parse-field. - (bibtex-convert-alien): Do not wait before calling - bibtex-validate. + (bibtex-convert-alien): Do not wait before calling bibtex-validate. (bibtex-complete): Use bibtex-parse-preamble. 2005-12-29 Nick Roberts @@ -68,8 +70,7 @@ 2005-12-28 Bill Wohler - * simple.el (mh-e-user-agent): Move to mh-e/mh-comp.el and - autoload. + * simple.el (mh-e-user-agent): Move to mh-e/mh-comp.el and autoload. 2005-12-28 Stefan Monnier diff --git a/lisp/font-lock.el b/lisp/font-lock.el index ca0848bd561..c05de2bc0b5 100644 --- a/lisp/font-lock.el +++ b/lisp/font-lock.el @@ -1507,6 +1507,13 @@ Here each COMPILED is of the form (MATCHER HIGHLIGHT ...) as shown in the `font-lock-keywords' doc string. If REGEXP is non-nil, it means these keywords are used for `font-lock-keywords' rather than for `font-lock-syntactic-keywords'." + (if (not font-lock-set-defaults) + ;; This should never happen. But some external packages sometimes + ;; call font-lock in unexpected and incorrect ways. It's important to + ;; stop processing at this point, otherwise we may end up changing the + ;; global value of font-lock-keywords and break highlighting in many + ;; other buffers. + (error "Font-lock trying to use keywords before setting them up")) (if (eq (car-safe keywords) t) keywords (setq keywords -- 2.11.4.GIT