GNU bug report logs -
#22256
25.0.50; multiline font-lock rules broken in C mode
Previous Next
Reported by: Anders Lindgren <andlind <at> gmail.com>
Date: Mon, 28 Dec 2015 10:20:01 UTC
Severity: normal
Found in version 25.0.50
Done: Alan Mackenzie <acm <at> muc.de>
Bug is archived. No further changes may be made.
Full log
View this message in rfc822 format
[Message part 1 (text/plain, inline)]
Hi!
I just tested this and I can verify that this solved my multiline problem.
Thanks!
-- Anders
On Sat, Jan 9, 2016 at 1:19 PM, Alan Mackenzie <acm <at> muc.de> wrote:
> Hello, Anders.
>
> Thanks for doing all the donkey work.
>
> On Fri, Jan 08, 2016 at 10:34:09PM +0100, Anders Lindgren wrote:
> > Hi Alan (and the list),
>
> > I made a "git bisect" and found the culprit:
>
> > --------
> > b31d359d182eb252a11f0468a7dc1ee1eafb28e9 is the first bad commit
> > commit b31d359d182eb252a11f0468a7dc1ee1eafb28e9
> > Author: Alan Mackenzie <acm <at> muc.de>
> > Date: Sun Feb 1 21:20:35 2015 +0000
>
> > CC Mode: Stop Font Lock forcing fontification from BOL. Fixes
> > debbugs#19669.
> > cc-mode.el (c-font-lock-init): Setq font-lock-extend-region-functions
> > to nil.
> > --------
>
> > The reason this breaks multiline keywords is that
> > `font-lock-extend-region-multiline' is normally part of
> > `font-lock-extend-region-functions'.
>
> OK. The fix is then fairly obvious: to remove the one function from
> `font-lock-extend-region-functions' which was causing the problem,
> leaving the other functions (in particular
> `font-lock-extend-region-multiline') in place.
>
> Could you try out this patch, please. It seems to work OK for me, here.
>
>
>
> diff -r a73bd5d1bd06 cc-mode.el
> --- a/cc-mode.el Fri Jan 08 22:25:59 2016 +0000
> +++ b/cc-mode.el Sat Jan 09 12:00:10 2016 +0000
> @@ -1324,12 +1324,13 @@
> . c-mark-function)))
>
> ;; Prevent `font-lock-default-fontify-region' extending the region it
> will
> - ;; fontify to whole lines by removing
> `font-lock-extend-region-whole-lines'
> - ;; (and, coincidentally, `font-lock-extend-region-multiline' (which we
> do
> - ;; not need)) from `font-lock-extend-region-functions'. (Emacs only).
> This
> - ;; fixes Emacs bug #19669.
> + ;; fontify to whole lines by removing
> `font-lock-extend-region-wholelines'
> + ;; from `font-lock-extend-region-functions'. (Emacs only). This fixes
> + ;; Emacs bug #19669.
> (when (boundp 'font-lock-extend-region-functions)
> - (setq font-lock-extend-region-functions nil))
> + (setq font-lock-extend-region-functions
> + (delq 'font-lock-extend-region-wholelines
> + font-lock-extend-region-functions)))
>
> (make-local-variable 'font-lock-fontify-region-function)
> (setq font-lock-fontify-region-function 'c-font-lock-fontify-region)
>
>
> > -- Anders
>
> --
> Alan Mackenzie (Nuremberg, Germany).
>
[Message part 2 (text/html, inline)]
This bug report was last modified 9 years and 219 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.