changeset 13664:f64c5e636c9f v8.0.1704

patch 8.0.1704: 'backupskip' default doesn't work for Mac commit https://github.com/vim/vim/commit/b8e22a053b68774dfd86fd829d9dba2333f09c05 Author: Bram Moolenaar <Bram@vim.org> Date: Thu Apr 12 21:37:34 2018 +0200 patch 8.0.1704: 'backupskip' default doesn't work for Mac Problem: 'backupskip' default doesn't work for Mac. Solution: Use "/private/tmp". (Rainer M?ller, closes https://github.com/vim/vim/issues/2793)
author Christian Brabandt <cb@256bit.org>
date Thu, 12 Apr 2018 21:45:06 +0200
parents 137429f3fdd2
children 95a52068af9e
files runtime/doc/options.txt src/option.c src/testdir/test_options.vim src/version.c
diffstat 4 files changed, 25 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/runtime/doc/options.txt
+++ b/runtime/doc/options.txt
@@ -1087,7 +1087,9 @@ A jump table for the options with a shor
 <	Use 'backupdir' to put the backup in a different directory.
 
 						*'backupskip'* *'bsk'*
-'backupskip' 'bsk'	string	(default: "/tmp/*,$TMPDIR/*,$TMP/*,$TEMP/*")
+'backupskip' 'bsk'	string	(default: "$TMPDIR/*,$TMP/*,$TEMP/*"
+				 Unix: "/tmp/*,$TMPDIR/*,$TMP/*,$TEMP/*"
+				 Mac: "/private/tmp/*,$TMPDIR/*,$TMP/*,$TEMP/*")
 			global
 			{not in Vi}
 			{not available when compiled without the |+wildignore|
--- a/src/option.c
+++ b/src/option.c
@@ -3367,7 +3367,11 @@ set_init_1(int clean_arg)
 	    mustfree = FALSE;
 # ifdef UNIX
 	    if (*names[n] == NUL)
+#  ifdef MACOS_X
+		p = (char_u *)"/private/tmp";
+#  else
 		p = (char_u *)"/tmp";
+#  endif
 	    else
 # endif
 		p = vim_getenv((char_u *)names[n], &mustfree);
--- a/src/testdir/test_options.vim
+++ b/src/testdir/test_options.vim
@@ -332,3 +332,19 @@ func Test_set_indentexpr()
   call assert_equal('', &indentexpr)
   bwipe!
 endfunc
+
+func Test_backupskip()
+  if has("mac")
+    call assert_match('/private/tmp/\*', &bsk)
+  elseif has("unix")
+    call assert_match('/tmp/\*', &bsk)
+  endif
+
+  let bskvalue = substitute(&bsk, '\\', '/', 'g')
+  for var in  ['$TEMPDIR', '$TMP', '$TEMP']
+    if exists(var)
+      let varvalue = substitute(expand(var), '\\', '/', 'g')
+      call assert_match(varvalue . '.\*', bskvalue)
+    endif
+  endfor
+endfunc
--- a/src/version.c
+++ b/src/version.c
@@ -763,6 +763,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1704,
+/**/
     1703,
 /**/
     1702,