bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#28098: 26.0.50; bad C fontification


From: Marti Bolivar
Subject: bug#28098: 26.0.50; bad C fontification
Date: Mon, 21 Aug 2017 12:32:30 -0700

Hi Alan,

Thanks for the patch.

On Wed, Aug 16, 2017 at 1:57 PM, Alan Mackenzie <acm@muc.de> wrote:
Hello again, Marti.

In article <mailman.13159.1502810889.21957.bug-gnu-emacs@gnu.org> you wrote:
> [-- text/plain, encoding 7bit, charset: UTF-8, 98 lines --]

> 1. From emacs -Q, open this file:


> https://github.com/zephyrproject-rtos/zephyr/blob/2de59023dc726e61244eb7cca17252294016c65a/subsys/net/lib/http/http_client.c

> 2. Observe incorrect syntax highlighting at beginning of file. Screenshot:

>    https://postimg.org/image/tzy8qgjjz/

>    (Note that loading a C file with just the #ifdefs and initial
>    comment which fail to highlight above doesn't reproduce the issue.)

I think the following patch should fix the bug.  Would you please apply
it, try it out, and either confirm to me that it fixes the bug, or tell
me what's still wrong:


diff -r 9533dc4cbda3 cc-mode.el
--- a/cc-mode.el        Thu Jul 27 17:37:02 2017 +0000
+++ b/cc-mode.el        Wed Aug 16 20:48:54 2017 +0000
@@ -1529,10 +1529,13 @@
     (c-backward-syntactic-ws)
     (when (setq pos1 (c-on-identifier))
       (goto-char pos1)
-      (when (and (c-forward-declarator)
-                (eq (c-forward-token-2) 0))
-       (c-backward-syntactic-ws)
-       (point)))))
+      (let ((lim (save-excursion
+                  (and (c-beginning-of-macro)
+                       (progn (c-end-of-macro) (point))))))
+       (when (and (c-forward-declarator lim)
+                  (eq (c-forward-token-2 1 nil lim) 0))
+         (c-backward-syntactic-ws)
+         (point))))))

 (defun c-change-expand-fl-region (beg end old-len)
   ;; Expand the region (c-new-BEG c-new-END) to an after-change font-lock

I couldn't manage to get this to apply, but I made the changes manually; git format-patch output for the relevant commit is attached. This did indeed resolve the issue.
 

Thanks for taking the trouble to report this bug.


Thanks for taking the time to investigate and fix it.

Marti
 
> In GNU Emacs 26.0.50 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.22.11)
>  of 2017-08-10 built on plop
> Repository revision: 81656add8117e8d1b7faab18b330d0706462b433
> Windowing system distributor 'The X.Org Foundation', version 11.0.11903000
> System Description: Ubuntu 17.04

--
Alan Mackenzie (Nuremberg, Germany).


Attachment: 0001-Test-c-fontification-fix.patch
Description: Text Data


reply via email to

[Prev in Thread] Current Thread [Next in Thread]