I did a bit of debugging with latest vim-7.1 (patches 1-166). 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 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 posted this to the vim_dev mailing list: http://groups.google.com/group/vim_dev/browse_thread/thread/157f265102c48127/5550df9950274543?lnk=st&q=#5550df9950274543 -- Vim locks up while editing a specific file (file attached) https://bugs.launchpad.net/bugs/68960 You received this bug notification because you are a member of Ubuntu Bugs, which is the bug contact for Ubuntu. -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs