diff options
author | Alan Mackenzie <acm@muc.de> | 2022-10-04 16:19:33 +0000 |
---|---|---|
committer | Alan Mackenzie <acm@muc.de> | 2022-10-04 16:19:33 +0000 |
commit | 4bd8ad2bc5cce8024f1bdecdf6b553e3d43a2f4c (patch) | |
tree | 72f55327a76efe4bc34b18d409acb71c6afc4347 | |
parent | a36ecc408a30c76d287351b38956f998f84cb8a7 (diff) | |
download | emacs-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.el | 2 | ||||
-rw-r--r-- | lisp/progmodes/cc-fonts.el | 8 |
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)) |