Bram Moolenaar schrieb:
Andy Wokula wrote:

GVim runs into an endless loop if I do the following:

    " clean startup
    :new                 " at least two windows
    :windo throw "foo"

    Error detected while processing :
    E605: Exception not caught: foo
    E605: Exception not caught: foo
    E605: Exception not caught: foo
    E605: Exception not caught: foo
    ...

See patch below.

Another example:

   " clean startup
   :set modified
   :bot new
   :try
   :  windo enew

   " -> go and kill GVim in the task manager

(does not happen if  :bot new  is replaced by  :abo new )

Solved with the same patch.  Please verify.


*** ../vim-7.0.240/src/ex_cmds2.c       Tue Feb 13 06:21:24 2007
--- src/ex_cmds2.c      Wed May  2 22:04:38 2007
***************
*** 2287,2292 ****
--- 2287,2294 ----
                if (!win_valid(wp))
                    break;
                win_goto(wp);
+               if (curwin != wp)
+                   break;  /* something must be wrong */
                wp = curwin->w_next;
            }
            else if (eap->cmdidx == CMD_tabdo)

Great, the patch works (examples tested).

--
Thanks,
Andy

EOM

Reply via email to