summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlan Mackenzie <acm@muc.de>2022-10-04 16:19:33 +0000
committerAlan Mackenzie <acm@muc.de>2022-10-04 16:19:33 +0000
commit4bd8ad2bc5cce8024f1bdecdf6b553e3d43a2f4c (patch)
tree72f55327a76efe4bc34b18d409acb71c6afc4347
parenta36ecc408a30c76d287351b38956f998f84cb8a7 (diff)
downloademacs-4bd8ad2bc5cce8024f1bdecdf6b553e3d43a2f4c.tar.gz
emacs-4bd8ad2bc5cce8024f1bdecdf6b553e3d43a2f4c.tar.bz2
emacs-4bd8ad2bc5cce8024f1bdecdf6b553e3d43a2f4c.zip
CC Mode: Optimize c-fontify-new-found-type and amend a debug spec
* lisp/progmodes/cc-fonts.el (c-fontify-new-found-type): Write the `face' property directly, rather than removing `fontified' properties and letting font-lock do the work. * lisp/progmodes/cc-defs.el (cc-eval-when-compile): Amend the debug spec from t to (&rest body), in line with the fix to bug #16184.
-rw-r--r--lisp/progmodes/cc-defs.el2
-rw-r--r--lisp/progmodes/cc-fonts.el8
2 files changed, 7 insertions, 3 deletions
diff --git a/lisp/progmodes/cc-defs.el b/lisp/progmodes/cc-defs.el
index 77aa3e62bb1..4f1a08cfa06 100644
--- a/lisp/progmodes/cc-defs.el
+++ b/lisp/progmodes/cc-defs.el
@@ -125,7 +125,7 @@ The result of the body appears to the compiler as a quoted constant.
This variant works around bugs in `eval-when-compile' in various
\(X)Emacs versions. See cc-defs.el for details."
- (declare (indent 0) (debug t))
+ (declare (indent 0) (debug (&rest def-form)))
(if c-inside-eval-when-compile
;; XEmacs 21.4.6 has a bug in `eval-when-compile' in that it
;; evaluates its body at macro expansion time if it's nested
diff --git a/lisp/progmodes/cc-fonts.el b/lisp/progmodes/cc-fonts.el
index 8f930c54377..2e71285cb36 100644
--- a/lisp/progmodes/cc-fonts.el
+++ b/lisp/progmodes/cc-fonts.el
@@ -2479,8 +2479,12 @@ higher."
(widen)
(goto-char (point-min))
(while (re-search-forward target-re nil t)
- (put-text-property (match-beginning 0) (match-end 0)
- 'fontified nil)
+ (when (and
+ (get-text-property (match-beginning 0) 'fontified)
+ (not (memq (c-get-char-property (match-beginning 0) 'face)
+ c-literal-faces)))
+ (c-put-font-lock-face (match-beginning 0) (match-end 0)
+ font-lock-type-face))
(dolist (win-boundary window-boundaries)
(when (and (< (match-beginning 0) (cdr win-boundary))
(> (match-end 0) (car win-boundary))