From e8ef3a093453b73594e15462d4de50b011c8ba66 Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Wed, 12 Oct 2016 17:45:29 +0200 Subject: [PATCH] patch 8.0.0031 Problem: After ":bwipeout" 'fileformat' is not set to the right default. Solution: Get the default from 'fileformats'. (Mike Williams) --- src/Makefile | 1 + src/option.c | 14 +++++++++++++- src/testdir/test_alot.vim | 3 ++- src/testdir/test_fileformat.vim | 17 +++++++++++++++++ src/version.c | 2 ++ 5 files changed, 35 insertions(+), 2 deletions(-) create mode 100644 src/testdir/test_fileformat.vim diff --git a/src/Makefile b/src/Makefile index ec984b7ad..1589fbad7 100644 --- a/src/Makefile +++ b/src/Makefile @@ -2081,6 +2081,7 @@ test_arglist \ test_farsi \ test_feedkeys \ test_file_perm \ + test_fileformat \ test_filter_cmd \ test_filter_map \ test_fnameescape \ diff --git a/src/option.c b/src/option.c index ecac17550..ebf443b84 100644 --- a/src/option.c +++ b/src/option.c @@ -10729,7 +10729,19 @@ buf_copy_options(buf_T *buf, int flags) #ifdef FEAT_MBYTE buf->b_p_fenc = vim_strsave(p_fenc); #endif - buf->b_p_ff = vim_strsave(p_ff); + switch (*p_ffs) + { + case 'm': + buf->b_p_ff = vim_strsave((char_u *)FF_MAC); break; + case 'd': + buf->b_p_ff = vim_strsave((char_u *)FF_DOS); break; + case 'u': + buf->b_p_ff = vim_strsave((char_u *)FF_UNIX); break; + default: + buf->b_p_ff = vim_strsave(p_ff); + } + if (buf->b_p_ff != NULL) + buf->b_start_ffc = *buf->b_p_ff; #if defined(FEAT_QUICKFIX) buf->b_p_bh = empty_option; buf->b_p_bt = empty_option; diff --git a/src/testdir/test_alot.vim b/src/testdir/test_alot.vim index e57439112..d24b97fb9 100644 --- a/src/testdir/test_alot.vim +++ b/src/testdir/test_alot.vim @@ -12,10 +12,11 @@ source test_expand.vim source test_expr.vim source test_expand_dllpath.vim source test_feedkeys.vim -source test_fnamemodify.vim source test_file_perm.vim +source test_fileformat.vim source test_filter_cmd.vim source test_filter_map.vim +source test_fnamemodify.vim source test_glob2regpat.vim source test_goto.vim source test_help_tagjump.vim diff --git a/src/testdir/test_fileformat.vim b/src/testdir/test_fileformat.vim new file mode 100644 index 000000000..584f20cdf --- /dev/null +++ b/src/testdir/test_fileformat.vim @@ -0,0 +1,17 @@ +" Test behavior of fileformat after bwipeout of last buffer + +func Test_fileformat_after_bw() + bwipeout + set fileformat& + if &fileformat == 'dos' + let test_fileformats = 'unix' + elseif &fileformat == 'unix' + let test_fileformats = 'mac' + else " must be mac + let test_fileformats = 'dos' + endif + exec 'set fileformats='.test_fileformats + bwipeout! + call assert_equal(test_fileformats, &fileformat) + set fileformats& +endfunc diff --git a/src/version.c b/src/version.c index 07b3da794..39662f63e 100644 --- a/src/version.c +++ b/src/version.c @@ -764,6 +764,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 31, /**/ 30, /**/ -- 2.50.1