Mercurial > emacs
changeset 73903:f0343b6fc846
(c-font-lock-declarations): Don't overwrite fontification for "case"
and "default" keywords.
author | Chong Yidong <cyd@stupidchicken.com> |
---|---|
date | Fri, 10 Nov 2006 16:58:27 +0000 |
parents | 8c826e10b91b |
children | fe0e3c5e9303 |
files | lisp/progmodes/cc-fonts.el |
diffstat | 1 files changed, 32 insertions(+), 14 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/progmodes/cc-fonts.el Fri Nov 10 16:58:10 2006 +0000 +++ b/lisp/progmodes/cc-fonts.el Fri Nov 10 16:58:27 2006 +0000 @@ -1170,21 +1170,39 @@ (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)))