On 11/10/2016 20:06, Bram Moolenaar wrote:
> Mike Williams wrote:
>
>> I imagine this is pretty obscure but I have hit it a couple of times
>> this last week. If your fileformats string initial entry is different
>> to the fileformat default value then doing :bwipeout on the last buffer
>> results in the new buffer using the default fileformat and not the first
>> format from fileformats. Follow? Try the following on Windows:
>>
>> > vim -u NONE -U NONE --cmd 'set ffs=unix' -c 'set ff? | bw | set ff?'
>>
>> Prefer Unix? This shows the same effect:
>>
>> $ vim -u NONE -U NONE --cmd 'set ffs=dos' -c 'set ff? | bw | set ff?'
>>
>> You should see the fileformat change across the bwipeout.
>>
>> Attached is a patch that sets the new buffer's fileformat from an
>> existing fileformats in buf_copy_options() or the global default
>> fileformat if ffs is not set. It Works For Me(TM) but I don't know if
>> the side effects in set_fileformat() cause problems when called from
>> buf_copy_options().
>
> When using ":new" it does set the expected value. This happens in
> do_ecmd(), by calling set_file_options(). We could do the same in
> buf_copy_options().
New diff with just a call to set_file_options() added. Still working ok
for me.
> Can you please add a test?
New style test is included. The double bwipeout is needed to show the
original issue and change in behaviour. Test should work on dos, unix,
and mac - tested on linux apparently ok, tests hang on windows for me
still tracking down why, and not tested on mac.
HTH - TTFN
Mike
--
I just planted an Algebra tree. It has square roots.