Mercurial > emacs
diff lisp/font-lock.el @ 12047:e6001f10daad
Made font-lock-compile-keywords not compile if it looks like it already has.
author | Simon Marshall <simon@gnu.org> |
---|---|
date | Thu, 01 Jun 1995 09:08:29 +0000 |
parents | a4ab2659db4f |
children | f22803cfdc5c |
line wrap: on
line diff
--- a/lisp/font-lock.el Wed May 31 21:18:55 1995 +0000 +++ b/lisp/font-lock.el Thu Jun 01 09:08:29 1995 +0000 @@ -497,25 +497,27 @@ ;;; Fontifying arbitrary patterns -(defun font-lock-compile-keywords () +(defun font-lock-compile-keywords (&optional keywords) ;; Compile `font-lock-keywords' into the form (t KEYWORD ...) where KEYWORD ;; is the (MATCHER HIGHLIGHT ...) shown in the variable's doc string. - (setq font-lock-keywords - (cons t - (mapcar (function - (lambda (item) - (cond ((nlistp item) - (list item '(0 font-lock-keyword-face))) - ((numberp (cdr item)) - (list (car item) (list (cdr item) - 'font-lock-keyword-face))) - ((symbolp (cdr item)) - (list (car item) (list 0 (cdr item)))) - ((nlistp (nth 1 item)) - (list (car item) (cdr item))) - (t - item)))) - font-lock-keywords)))) + (let ((keywords (or keywords font-lock-keywords))) + (setq font-lock-keywords + (if (eq (car-safe keywords) t) + keywords + (cons t + (mapcar + (function (lambda (item) + (cond ((nlistp item) + (list item '(0 font-lock-keyword-face))) + ((numberp (cdr item)) + (list (car item) (list (cdr item) 'font-lock-keyword-face))) + ((symbolp (cdr item)) + (list (car item) (list 0 (cdr item)))) + ((nlistp (nth 1 item)) + (list (car item) (cdr item))) + (t + item)))) + keywords)))))) (defsubst font-lock-apply-highlight (highlight) "Apply HIGHLIGHT following a match. See `font-lock-keywords'."