diff options
author | Chong Yidong <cyd@stupidchicken.com> | 2006-11-10 16:58:27 +0000 |
---|---|---|
committer | Chong Yidong <cyd@stupidchicken.com> | 2006-11-10 16:58:27 +0000 |
commit | 97bd827ab200f1f3e9d9266ae5cc457baee22909 (patch) | |
tree | 8de5e71555c2339ef3c364fd42ffd73a4eabe174 /lisp/progmodes/cc-fonts.el | |
parent | 719106a318d84561d21f06411f8a93a3d9975ed3 (diff) | |
download | emacs-97bd827ab200f1f3e9d9266ae5cc457baee22909.tar.gz |
(c-font-lock-declarations): Don't overwrite fontification for "case"
and "default" keywords.
Diffstat (limited to 'lisp/progmodes/cc-fonts.el')
-rw-r--r-- | lisp/progmodes/cc-fonts.el | 46 |
1 files changed, 32 insertions, 14 deletions
diff --git a/lisp/progmodes/cc-fonts.el b/lisp/progmodes/cc-fonts.el index 9c051506888..d8fd78af44d 100644 --- a/lisp/progmodes/cc-fonts.el +++ b/lisp/progmodes/cc-fonts.el @@ -1170,21 +1170,39 @@ casts and declarations are fontified. Used on level 2 and higher." (c-fontify-recorded-types-and-refs) nil)) - ;; It was a false alarm. Check if we're in a label instead. + ;; It was a false alarm. (goto-char start-pos) - (when (c-forward-label t match-pos nil) - ;; Can't use `c-fontify-types-and-refs' here since we - ;; should use the label face. - (let (elem) - (while c-record-ref-identifiers - (setq elem (car c-record-ref-identifiers) - c-record-ref-identifiers (cdr c-record-ref-identifiers)) - (c-put-font-lock-face (car elem) (cdr elem) - c-label-face-name))) - ;; `c-forward-label' probably has added a `c-decl-end' - ;; marker, so return t to `c-find-decl-spots' to signal - ;; that. - t)))) + ;; The below code attempts to fontify the case constants in + ;; c-label-face-name, but it cannot catch every case [sic]. + ;; And do we want to fontify case constants anyway? + nil +;;; (when (c-forward-label t match-pos nil) +;;; ;; Can't use `c-fontify-types-and-refs' here since we +;;; ;; should use the label face. +;;; (save-excursion +;;; (while c-record-ref-identifiers +;;; (let ((elem (car c-record-ref-identifiers)) +;;; c-record-type-identifiers) +;;; (goto-char (cdr elem)) +;;; ;; Find the end of any label. +;;; (while (and (re-search-forward "\\sw\\|:" nil t) +;;; (progn (backward-char 1) t) +;;; (or (re-search-forward +;;; "\\=0[Xx][0-9A-Fa-f]+\\|\\([0-9]+\\)" nil t) +;;; (c-forward-name))) +;;; (c-backward-syntactic-ws) +;;; (let ((end (point))) +;;; ;; Now find the start of the bit we regard as the label. +;;; (when (and (c-simple-skip-symbol-backward) +;;; (not (c-get-char-property (point) 'face))) +;;; (c-put-font-lock-face (point) end c-label-face-name)) +;;; (goto-char end)))) +;;; (setq c-record-ref-identifiers (cdr c-record-ref-identifiers)))) +;;; ;; `c-forward-label' probably has added a `c-decl-end' +;;; ;; marker, so return t to `c-find-decl-spots' to signal +;;; ;; that. +;;; t) + ))) nil))) |