changeset 10268:c55a7232fb48 v8.0.0031

commit https://github.com/vim/vim/commit/e8ef3a093453b73594e15462d4de50b011c8ba66 Author: Bram Moolenaar <Bram@vim.org> 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)
author Christian Brabandt <cb@256bit.org>
date Wed, 12 Oct 2016 18:00:04 +0200
parents 8f43f94af8fb
children 46c0661f1a29
files src/Makefile src/option.c src/testdir/test_alot.vim src/testdir/test_fileformat.vim src/version.c
diffstat 5 files changed, 35 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- 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 \
--- 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;
--- 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
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
--- 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,