Hi Bram!

On Sa, 06 Sep 2014, Bram Moolenaar wrote:

> > I recently stumbled over an ml_get: invalid lnum error in my NrrwRgn 
> > plugin (when writing changes back). I have not been able to reproduce 
> > the issue without the plugin.
> > 
> > What it does however is, it switches to a different buffer in the same 
> > window, moves to a certain position and replaces part or the buffer and 
> > switches back to the original buffer. The problem is, that when 
> > restoring the buffer and windows in aucmd_restbuf() the cursor position 
> > is not validated.
> > 
> > This patch fixes the issue:
> 
> Thanks.  Does the plugin somehow change the buffer that was previously
> in the window?  Otherwise I don't see how the cursor can become invalid.

Not sure, which previous buffer you mean. It works like this:

1) single window 1 with buffer a loaded
2) plugin loads buffer b, moves the cursor to a certain position
   and modifies its content.
3) plugin goes back to buffer a (here at that stage, I get ml_get error,
   because buffer a does not have as many lines as buffer b.

The error actually occurred in the showcmd function, which I assumed, 
means after the plugin finished and successfully loaded back the 
original buffer a, but the cursor was still at the previous location and 
hasn't been reset. I could workaround the issue by adding a 
winsaveview() winrestview() call around step1/3 but I figured, this 
should be fixed within Vim.

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

--- 
You received this message because you are subscribed to the Google Groups 
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Raspunde prin e-mail lui