On 01/27/2015 11:26 AM, Bram Moolenaar wrote:
>
> Xavier de Gaye wrote:
>
>> On 01/25/2015 03:59 PM, Bram Moolenaar wrote:
>> > Xavier de Gaye wrote:
>> >> In the following test case, 'foobar' and 'dummy_file' are two
>> >> non-existent files:
>> >>
>> >> gvim -o foobar dummy_file
>> >> :set buftype=nofile
>> >> :call append(1, "second line") -> foobar contains now two lines
>> >> <CTRL-W> W
>> >> :edit foobar -> a) foobar still contains two
lines
>> >> :edit foobar -> b) Ooops... foobar contains no
lines now !
>> >>
>> >> The problem is that do_ecmd() does not handle this case in a consistent
way, whether:
>> >> 1) foobar is not curbuf and therefore 'other_file' is true (in case (a)
above)
>> >> 2) or foobar is curbuf and therefore 'other_file' is false (in case (b)
above) in which case buf_clear_file(curbuf) is invoked by do_ecmd()
>> >
>> > If you do this with a file then the same thing happens, except that you
>> > will get an error at the second ":edit foobar", since the buffer was
>> > changed and you are trying to drop the changes.
>> >
>> > It may seem a bit inconsistant, but changing this will most likely cause
>> > some plugins to fail in a weird way. Better just keep it as it is.
>>
>>
>> When the user ':edit' or ':'tabedit' a buffer that is managed by an
>> application using netbeans to control the buffer (with the netbeans
>> 'editFile' command for example), the buffer may be cleared
>> without the knowledge of the application. This is annoying and it is
>> the reason why I have submitted this problem.
>>
>> It may make sense that ':edit' should attempt to reload the buffer
>> when it is a file, but it is strange that this command may (or may
>> not) clear the buffer when there is no file to reload from, and
>> very strange that this behavior depends on the position of the cursor.
>
> Well, I suppose what we could do, without causing too much trouble, is
> making ":e foobar" a no-op for a file where 'buftype' is "nofile" and
> "foobar" is already the current buffer. It would be unexpected that a
> plugin relies on this edit command to make the buffer empty.
>
> I'll make a patch that does it this way, let's see if someone complains.
>
That would be very nice, thanks.
Xavier
--
--
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.