Bug#400771: vim-gtk loops in syntax_start()

Carlo Wood carlo at alinoe.com
Mon Dec 4 15:04:31 UTC 2006

On Mon, Dec 04, 2006 at 12:52:53AM -0500, James Vega wrote:
> On Tue, Nov 28, 2006 at 05:27:15PM +0100, Carlo Wood wrote:
> > vim uses 100% cpu while scrolling up (starting in a given state)
> > the attached file.
> > 
> > How to reproduce:
> > [snipped]
> Thanks for the detailed steps to reproduce and debugging, unfortunately
> I'm unable to reproduce the bug in unstable or testing.  Are you able to
> reproduce this if you start vim as "vim -u /etc/vim/vimrc -N", ":syntax
> on" and then follow the steps you listed?

No, if I do that I have to explicitely start

/usr/bin/vim.gtk -u /etc/vim/vimrc -N Makefile.am

then it reproduces (after a :syntax on).
If I do:

vim -u /etc/vim/vimrc -N Makefile.am

then it doesn't reproduce.

~>/usr/bin/vim.gtk --version
VIM - Vi IMproved 7.0 (2006 May 7, compiled Oct 10 2006 00:14:41)
Included patches: 1-122
Compiled by jamessan at debian.org
Big version with GTK2 GUI.  Features included (+) or not (-):
+arabic +autocmd +balloon_eval +browse ++builtin_terms +byte_offset +cindent
+clientserver +clipboard +cmdline_compl +cmdline_hist +cmdline_info +comments
+cryptv +cscope +cursorshape +dialog_con_gui +diff +digraphs +dnd -ebcdic
+emacs_tags +eval +ex_extra +extra_search +farsi +file_in_path +find_in_path
+folding -footer +fork() +gettext -hangul_input +iconv +insert_expand +jumplist
 +keymap +langmap +libcall +linebreak +lispindent +listcmds +localmap +menu
+mksession +modify_fname +mouse +mouseshape +mouse_dec +mouse_gpm
-mouse_jsbterm +mouse_netterm +mouse_xterm +multi_byte +multi_lang -mzscheme
+netbeans_intg -osfiletype +path_extra -perl +postscript +printer -profile
-python +quickfix +reltime +rightleft -ruby +scrollbind +signs +smartindent
-sniff +statusline -sun_workshop +syntax +tag_binary +tag_old_static
-tag_any_white -tcl +terminfo +termresponse +textobjects +title +toolbar
+user_commands +vertsplit +virtualedit +visual +visualextra +viminfo +vreplace
+wildignore +wildmenu +windows +writebackup +X11 -xfontset +xim +xsmp_interact
+xterm_clipboard -xterm_save
   system vimrc file: "$VIM/vimrc"
     user vimrc file: "$HOME/.vimrc"
      user exrc file: "$HOME/.exrc"
  system gvimrc file: "$VIM/gvimrc"
    user gvimrc file: "$HOME/.gvimrc"
    system menu file: "$VIMRUNTIME/menu.vim"
  fall-back for $VIM: "/usr/share/vim"
Compilation: gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/freetype2 -I/usr/include/libpng12     -O2 -g -Wall
Linking: gcc   -L/usr/local/lib -o vim   -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lm -lpangocairo-1.0 -lfontconfig -lXext -lXrender -lXinerama -lXi -lXrandr -lXcursor -lXfixes -lpango-1.0 -lcairo -lgobject-2.0 -lgmodule-2.0 -lglib-2.0   -lXt -lncurses -lgpm

Carlo Wood <carlo at alinoe.com>


'vim' is a personalized script here ;)

~>which vim

~>cat ~/bin/vim
FILE=`echo "$*" | sed -e 's/.* \([^: ]*\)[^ ]*$/\1/' -e 's/\([^:]*\):.*$/\1/'`
while shift 1; do
  ARGS+="`echo " \\"$ARG\\"" | sed -e 's/:"$/"/' -e 's/\(:[0-9][0-9]*\):[0-9][0-9]*"$/\1"/' -e 's/^\([^:]*\):\([0-9]*\)"$/\1" +\2/'`"
  ARGFILE=`echo "$ARG" | sed -e 's/.* \([^: ]*\)[^ ]*$/\1/' -e 's/\([^:]*\):.*$/\1/'`
  if test "$FILE" = "$ARGFILE"; then
    while expr match "$FILE" "\.\./.*" >/dev/null && test ! -f "$FILE"; do
      ARG=`echo "$ARG" | sed -e 's%^\.\./%%'`
      FILE=`echo "$FILE" | sed -e 's%^\.\./%%'`

eval /usr/bin/vim $ARGS

Running "/usr/bin/vim -u /etc/vim/vimrc -N Makefile.am" also reproduces.

More information about the pkg-vim-maintainers mailing list