diff options
author | Bram Moolenaar <Bram@vim.org> | 2015-11-10 17:50:24 +0100 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2015-11-10 17:50:24 +0100 |
commit | 174674743d9a2d7361c9cd89836f8dd8651edeeb (patch) | |
tree | cc9bee4c0a351541dd3ddfc1a236420c5f0df757 /src | |
parent | 98b30a473a58ae98c280e0383c8b1e08c0ebced5 (diff) | |
download | vim-174674743d9a2d7361c9cd89836f8dd8651edeeb.zip |
patch 7.4.915
Problem: When removing from 'path' and then adding, a comma may go missing.
(Malcolm Rowe)
Solution: Fix the check for P_ONECOMMA. (closes #471)
Diffstat (limited to 'src')
-rw-r--r-- | src/option.c | 7 | ||||
-rw-r--r-- | src/testdir/test_options.in | 6 | ||||
-rw-r--r-- | src/testdir/test_options.ok | 1 | ||||
-rw-r--r-- | src/version.c | 2 |
4 files changed, 13 insertions, 3 deletions
diff --git a/src/option.c b/src/option.c index db3a197af..bc44cb2d4 100644 --- a/src/option.c +++ b/src/option.c @@ -4883,9 +4883,10 @@ do_set(arg, opt_flags) { i = (int)STRLEN(origval); /* strip a trailing comma, would get 2 */ - if (comma && (flags & P_ONECOMMA) && i > 1 - && origval[i - 1] == ',' - && origval[i - 2] != '\\') + if (comma && i > 1 + && (flags & P_ONECOMMA) == P_ONECOMMA + && origval[i - 1] == ',' + && origval[i - 2] != '\\') i--; mch_memmove(newval + i + comma, newval, STRLEN(newval) + 1); diff --git a/src/testdir/test_options.in b/src/testdir/test_options.in index bf1232a22..6e56fa242 100644 --- a/src/testdir/test_options.in +++ b/src/testdir/test_options.in @@ -10,6 +10,12 @@ STARTTEST :endtry :buf 1 :$put =caught +:" +:" Test that changing 'path' keeps two commas. +:set path=foo,,bar +:set path-=bar +:set path+=bar +:$put =&path :/^result/,$w! test.out :qa! ENDTEST diff --git a/src/testdir/test_options.ok b/src/testdir/test_options.ok index a2e1494a1..07731526b 100644 --- a/src/testdir/test_options.ok +++ b/src/testdir/test_options.ok @@ -1,2 +1,3 @@ result ok +foo,,bar diff --git a/src/version.c b/src/version.c index 450892a5c..4fb004d72 100644 --- a/src/version.c +++ b/src/version.c @@ -742,6 +742,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 915, +/**/ 914, /**/ 913, |