From b8e22a053b68774dfd86fd829d9dba2333f09c05 Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Thu, 12 Apr 2018 21:37:34 +0200 Subject: [PATCH] patch 8.0.1704: 'backupskip' default doesn't work for Mac MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Problem: 'backupskip' default doesn't work for Mac. Solution: Use "/private/tmp". (Rainer Müller, closes #2793) --- runtime/doc/options.txt | 4 +++- src/option.c | 4 ++++ src/testdir/test_options.vim | 16 ++++++++++++++++ src/version.c | 2 ++ 4 files changed, 25 insertions(+), 1 deletion(-) diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt index 93efaec16d..cc19e253de 100644 --- a/runtime/doc/options.txt +++ b/runtime/doc/options.txt @@ -1087,7 +1087,9 @@ A jump table for the options with a short description can be found at |Q_op|. < 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| diff --git a/src/option.c b/src/option.c index 48432bb322..5ef346c8d4 100644 --- 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); diff --git a/src/testdir/test_options.vim b/src/testdir/test_options.vim index 5d2033a5df..0f2908fcb3 100644 --- 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 diff --git a/src/version.c b/src/version.c index fdaa1dc6cc..8d7049d5fd 100644 --- a/src/version.c +++ b/src/version.c @@ -762,6 +762,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 1704, /**/ 1703, /**/