Dominique Pelle wrote:
> Hi > > I can reproduce a vim bug filed in Ubuntu launchpad using the latest > vim-7.1 (Patches 1-166). Here is a link to the original bug description: > > https://bugs.launchpad.net/ubuntu/+source/vim/+bug/68960 > > Here is how I can reproduce it. I did not use '-u NONE', because > standard plugins need to be loaded to reproduce that bug. > ".vimrc" file only needs to contain "syntax on" to reproduce it: > > $ cat ~/.vimrc > syntax on > > $ vim +89 vim_testcase # file "vim_testcase" is attached > > ... then, when moving cursor around closing parentheses at > line 89, observe that vim freezes and takes 100% of CPU (it > can be interrupted with Ctrl-C). > > Trying to debug, I found that vim loops forever in a while(...) > loop in syntax.c in function syntax_start(): > > syntax.c: > > 562 while (current_lnum < lnum) > 563 { > ... > ... > 596 load_current_state(prev); > ... > ... > 609 line_breakcheck(); > 610 if (got_int) > 611 { > 612 current_lnum = lnum; > 613 break; > 614 } > 615 } > > This while loop never ends with attached "vim_testcase" file. > Adding some printf(), I can see that: > > - Before entering above while loop: > - current_lnum == 65 > - lnum == 80 > > - Then when iterating in the while loop: > - lnum remains unchanged (80) > - current_lnum becomes: > > 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, > 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, > 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, > etc. > > current_lnum never reaches lnum (80) so loop never ends. > > current_lnum goes back from 78 to 65 when calling > load_current_state(prev) at line 596. > > I do not understand the idea behind load_current_state() and > store_current_state() to go beyond and come up with fix for this. > > I'm using vim-7.1 (Patches 1-166) on Linux x86, built with > 'configure --with-features=huge'. I can reproduce it. Looks like a problem with the matchparen plugin when getting a syntax ID, combined with the syntax stack being wrong. This will be difficult to figure out, I'll put it in the todo list. -- hundred-and-one symptoms of being an internet addict: 172. You join listservers just for the extra e-mail. /// Bram Moolenaar -- [EMAIL PROTECTED] -- http://www.Moolenaar.net \\\ /// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ \\\ download, build and distribute -- http://www.A-A-P.org /// \\\ help me help AIDS victims -- http://ICCF-Holland.org /// --~--~---------~--~----~------------~-------~--~----~ You received this message from the "vim_dev" maillist. For more information, visit http://www.vim.org/maillist.php -~----------~----~----~----~------~----~------~--~---
