Hi Alex!

On Fr, 25 Mai 2012, Alex Efros wrote:

> Hi!
> 
> On Thu, May 24, 2012 at 10:14:41PM +0200, Christian Brabandt wrote:
> > I have noticed something similar in my NrrwRgn plugin.
> > I am not sure, this is a bug, because at the time you issue :q the 
> > location list ist still open and in case another window is open, :q does 
> > not exit Vim.
> 
> I'm not really understood what you mean, sorry.
> 
> I can see reason for 'E855: Autocommands caused command to abort'
> when something bad happens in a loop, for example like this:
> 
>     :autocmd BufWinLeave * lclose
> 
> when it run with open location-list and result in calling :lclose
> again while executing BufWinLeave as result of :lclose.
> 
> But I don't see any reason why E855 happens using this:
> 
>     $ vi -u /dev/null --noplugin
>     :autocmd BufWinLeave * if empty(getbufvar(0+expand('<abuf>'), '&bt')) | 
> lclose | endif
>     :lexpr system('echo :1:some')
>     :lopen
>     :wincmd p
>     :q
>     E855: Autocommands caused command to abort
> 
> So, is this a bug or not?

I don't think so, but Bram has the final saying. I would certainly find 
it unexpected, if this would quit my vim. The error is simply telling 
you, that an autocommand closed a window/buffer and that's why Vim 
aborts executing the :q command.

> > > This happens on 7.3.515. Versions before 7.3.449 behave differently
> > > without tabs, but with tabs they all crash.
> > 
> > Attached patch fixes this issue.
> 
> Thanks! But, sorry, I just found another simple way to crash 7.3.530
> without tabs:
> 
>     $ vi -u /dev/null --noplugin
>     :autocmd BufWinLeave * if empty(getbufvar(0+expand('<abuf>'), '&bt')) | 
> lclose | endif
>     :lexpr system('echo :1:some')
>     :lopen
>     :wincmd p
>     :bd
>     Vim: Caught deadly signal SEGV
>     Segmentation fault

I'll look into it.

regards,
Christian

-- 
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