# HG changeset patch # User Christian Brabandt # Date 1476288004 -7200 # Node ID c55a7232fb4874521329a4802519b1aa066e6e09 # Parent 8f43f94af8fb23bc8029813d5cce17f4dd67f0e2 commit https://github.com/vim/vim/commit/e8ef3a093453b73594e15462d4de50b011c8ba66 Author: Bram Moolenaar Date: Wed Oct 12 17:45:29 2016 +0200 patch 8.0.0031 Problem: After ":bwipeout" 'fileformat' is not set to the right default. Solution: Get the default from 'fileformats'. (Mike Williams) diff --git a/src/Makefile b/src/Makefile --- 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 --- 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 --- 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 --- /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 --- a/src/version.c +++ b/src/version.c @@ -765,6 +765,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 31, +/**/ 30, /**/ 29,