]> git.eshelyaron.com Git - emacs.git/commitdiff
Fix loss of documentation face in certain CC Mode doc comment situations
authorAlan Mackenzie <acm@muc.de>
Thu, 21 Dec 2017 17:18:40 +0000 (17:18 +0000)
committerAlan Mackenzie <acm@muc.de>
Thu, 21 Dec 2017 17:18:40 +0000 (17:18 +0000)
* 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.

lisp/progmodes/cc-fonts.el

index 7b99c2f54e530d718ee3d470856d4893ac7d68fa..83038e07ca66ed0373cfcf6dded8edd472d04aa2 100644 (file)
@@ -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))