On 23-Apr-2014 17:37 +0200, Christian Brabandt wrote:

> Am 2014-04-23 16:28, schrieb Bram Moolenaar:
>> Ingo Karkat wrote:
>>
>>> I've noticed a regression:
>>>
>>>     :s/.*/\="foo\nbar"/
>>>
>>> This correctly replaces the current line with two lines containing "foo"
>>> and "bar", respectively. Now add the confirm flag, and accept the
>>> replacement:
>>>
>>>     :s/.*/\="foo\nbar"/c
>>>
>>> This replaces the current line with a single line containing "foo^@bar"
>>> (where ^@ is <Nul>). This is inconsistent and unexpected. Replacing with
>>> \r instead works (with and without the flag), and can be used as a
>>> workaround.
>>>
>>> Using the attached scriptlet, I've bisected this to the following patch:
>>>
>>> ,----[ bad change ]----
>>> | 7.3.225  "\n" in a substitute() inside ":s" not handled correctly
>>> `----
>>>
>>> The problem therefore can be seen in this and all following Vim
>>> versions, verified up to the latest 7.4.258. (I've used a HUGE build on
>>> both Windows/x64 and Linux/x64.)
>>
>> I cannot reproduce this problem.
> 
> I see the problem with vim-airline. I think, it is caused by the
> evaluation of the statusline resetting reg_line_lbr when displaying the
> confirmation message. Attached patch fixes this, but I think one should
> also reset all the other internal static variables.

Thanks Christian, that patch indeed fixes the problem for me. Good hunch
about the statusline, that is indeed a necessary condition (as I have
added in my updated message).

You seem to be really knowledgable about Vim's internals. The question I
have in mind right now is whether you still feel comfortable about those
"internal static variables", or whether you think this poses long-term
risks to Vim's stability. At least some people think so, and have
suggested / started a complete rewrite (in a language like C++ that has
better means to avoid such). Is there anything (apart from more test
coverage) that we can do with the current code base?!

-- regards, ingo

-- 
-- 
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 vim_dev+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Raspunde prin e-mail lui