(font-lock-add-keywords): Make it work even if font-lock-mode is nil,
so that it can be used more easily in <foo>-mode-hook. Also make sure
to avoid duplicate entries.
(font-lock-update-removed-keyword-alist): Renamed `major-mode'->`mode'.
(font-lock-remove-keywords): Just as was done for `add', allow it to
work even if font-lock-mode is nil. Also make sure we don't modify
any pre-existing list by forcing a copy-sequence. Finally rename
`major-mode' to `mode'.
(font-lock-fontify-syntactic-anchored-keywords)
(font-lock-fontify-anchored-keywords)
(font-lock-fontify-keywords-region): Use line-end-position.
Don't make `font-lock-multiline' local (it's now done in
font-lock-set-defaults).
(font-lock-set-defaults): Make `font-lock-multiline' local. Also
move the `font-lock-fontified' creation to inside the `unless'.
Both local (previously added keyword) and global keywords
can be removed.
(font-lock-remove-keywords): New user-level function.
(font-lock-update-removed-keyword-alist): New internal function.
(font-lock-removed-keywords-alist): New variable.
(font-lock-add-keywords): Updates `font-lock-removed-keywords-alist'.
Empty `font-lock-keywords-alist' when `append' is `set' to avoid
growing datastructures.
(font-lock-set-defaults): Removes keywords stored in
`font-lock-removed-keywords-alist' after local keywords added.
(c-keywords, c++-keywords): Better "case" support for
complex constant expressions, e.g. "case 1<<A_BIT_NO:".
(c-keywords): Only highlight preprocessor
directives when spelled correctly.
(font-lock-match-c++-structor-declaration,
c++-keywords): Fontify constructors and destructors with function
face inside C++ class declarations.
(font-lock-add-keywords): Rename `major-mode' into `mode'.
(font-lock-remove-keywords): Added a dummy `mode' argument for
potential future support.
(font-lock-fontify-anchored-keywords,
(font-lock-fontify-keywords-region): Only handle multiline strings
if necessary (avoids a pathological behavior in (f.ex) diff-mode).
off-by-one problem that could force re-fontifying the whole buffer.
(font-lock-remove-keywords): New function.
(font-lock-add-keywords): Use the new function to ensure idempotence.
a boolean to indicate if the char is part of a multiline match.
(font-lock-default-fontify-region): Extend the region appropriately
for multiline keywords.
(font-lock-default-unfontify-region): Also remove the new
font-lock-multiline text property.
(font-lock-fontify-anchored-keywords): Mark multiline anchored matches.
(font-lock-fontify-keywords-region): Mark multiline regexp matches.
correctly an object declared via a constructor from a method.
(font-lock-defaults-alist): Don't give `.' word syntax for Java.
(java-font-lock-keywords-1): Fontify package names individually.
(java-font-lock-extra-types): Ensure regexp matches capitalised types only.
(java-font-lock-keywords-2): Simplify type fontification.
(java-font-lock-keywords-3): Likewise.
(lisp-font-lock-keywords-2): Fontify abort, assert, etc., separately.
({c,c++,objc,java}-font-lock-keywords-{2,3}): Fontify only type/class
names with font-lock-type-face. Fontify type specs, etc., with
font-lock-keyword-face.
`restart-*', `*-bind', `abort', `the', `break', `compiler-let'
`symbol-macrolet' etc.
(lisp-font-lock-keywords-1): Support `define-*-macro',
`define-condition', `define-setf-expander' etc.