changeset 17039:d726d8cce996 v8.1.1519

patch 8.1.1519: 'backupskip' may contain duplicates commit https://github.com/vim/vim/commit/06e2c81f6d213d197aa60019b33a263cd5176d68 Author: Bram Moolenaar <Bram@vim.org> Date: Wed Jun 12 19:05:48 2019 +0200 patch 8.1.1519: 'backupskip' may contain duplicates Problem: 'backupskip' may contain duplicates. Solution: Add the P_NODUP flag. (Tom Ryder)
author Bram Moolenaar <Bram@vim.org>
date Wed, 12 Jun 2019 19:15:06 +0200
parents 3f2ac157af87
children 5ed044bdf675
files src/option.c src/testdir/test_options.vim src/version.c
diffstat 3 files changed, 14 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/src/option.c
+++ b/src/option.c
@@ -616,7 +616,7 @@ static struct vimoption options[] =
 			    (char_u *)"~",
 #endif
 					    (char_u *)0L} SCTX_INIT},
-    {"backupskip",  "bsk",  P_STRING|P_VI_DEF|P_ONECOMMA,
+    {"backupskip",  "bsk",  P_STRING|P_VI_DEF|P_ONECOMMA|P_NODUP,
 #ifdef FEAT_WILDIGN
 			    (char_u *)&p_bsk, PV_NONE,
 			    {(char_u *)"", (char_u *)0L}
@@ -4807,7 +4807,8 @@ do_set(
 			     * hex numbers. */
 			    vim_str2nr(arg, NULL, &i, STR2NR_ALL,
 						     &value, NULL, 0, TRUE);
-			    if (i == 0 || (arg[i] != NUL && !VIM_ISWHITE(arg[i])))
+			    if (i == 0 || (arg[i] != NUL
+						      && !VIM_ISWHITE(arg[i])))
 			    {
 				errmsg = N_("E521: Number required after =");
 				goto skip;
--- a/src/testdir/test_options.vim
+++ b/src/testdir/test_options.vim
@@ -419,6 +419,15 @@ func Test_backupskip()
       call assert_true(found, var . ' (' . varvalue . ') not in option bsk: ' . &bsk)
     endif
   endfor
+
+  " Duplicates should be filtered out (option has P_NODUP)
+  let backupskip = &backupskip
+  set backupskip=
+  set backupskip+=/test/dir
+  set backupskip+=/other/dir
+  set backupskip+=/test/dir
+  call assert_equal('/test/dir,/other/dir', &backupskip)
+  let &backupskip = backupskip
 endfunc
 
 func Test_copy_winopt()
--- a/src/version.c
+++ b/src/version.c
@@ -778,6 +778,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1519,
+/**/
     1518,
 /**/
     1517,