Gustavo Niemeyer wrote:

> For lack of luck, below is a patch to fix the bug.
> 
> The problem is caused by the fact that the syncing processes the line
> til the end, so the second call to sync_finish_line() refuses to
> process it again (current_finished == TRUE).
> 
> Sorry for the trouble.
> 
> --- syntax.c  2011-01-26 20:08:25.620861002 -0200
> +++ syntax.c.orig     2011-01-26 20:07:44.710861007 -0200
> @@ -927,8 +927,6 @@
>                       update_si_end(cur_si, (int)current_col, TRUE);
>                       check_keepend();
>                   }
> -                 // Must restart the line to process highlighting now.
> -                 syn_start_line();
>                   current_col = found_m_endpos.col;
>                   current_lnum = found_m_endpos.lnum;
>                   (void)syn_finish_line(FALSE);

That doesn't look like the right solution, since it restarts from the
start of the line instead of using the column from the match.

You say that current_finished is set. I wonder where it gets set.
If it's not set correctly that should be fixed.  Otherwise perhaps this
flag needs to be reset.

-- 
hundred-and-one symptoms of being an internet addict:
155. You forget to eat because you're too busy surfing the net.

 /// Bram Moolenaar -- [email protected] -- http://www.Moolenaar.net   \\\
///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\  an exciting new programming language -- http://www.Zimbu.org        ///
 \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///

-- 
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

Raspunde prin e-mail lui