From: Alan Mackenzie Date: Thu, 21 Dec 2017 17:18:40 +0000 (+0000) Subject: Fix loss of documentation face in certain CC Mode doc comment situations X-Git-Tag: emacs-26.0.91~98 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=293720e930ac33e007d3402b677d6c482d0a3dbf;p=emacs.git Fix loss of documentation face in certain CC Mode doc comment situations * lisp/progmodes/cc-fonts.el (c-font-lock-doc-comments): Take into account the possibility of font-lock-comment-delimiter-face. Test rigorously for "/**" (etc.) being itself inside a literal, rather than just depending on the face of the previous character. --- diff --git a/lisp/progmodes/cc-fonts.el b/lisp/progmodes/cc-fonts.el index 7b99c2f54e5..83038e07ca6 100644 --- a/lisp/progmodes/cc-fonts.el +++ b/lisp/progmodes/cc-fonts.el @@ -2670,8 +2670,8 @@ need for `pike-font-lock-extra-types'.") ;; This function might do hidden buffer changes. (let (comment-beg region-beg) - (if (eq (get-text-property (point) 'face) - 'font-lock-comment-face) + (if (memq (get-text-property (point) 'face) + '(font-lock-comment-face font-lock-comment-delimiter-face)) ;; Handle the case when the fontified region starts inside a ;; comment. (let ((start (c-literal-start))) @@ -2691,8 +2691,15 @@ need for `pike-font-lock-extra-types'.") (or (not (c-got-face-at comment-beg c-literal-faces)) (and (/= comment-beg (point-min)) + ;; Cheap check which is unreliable (the previous + ;; character could be the end of a previous + ;; comment). (c-got-face-at (1- comment-beg) - c-literal-faces)))) + c-literal-faces) + ;; Expensive reliable check. + (save-excursion + (goto-char comment-beg) + (c-in-literal))))) (setq comment-beg nil)) (setq region-beg comment-beg))