Mercurial > vim
changeset 7212:55c67e16e4fd v7.4.915
commit https://github.com/vim/vim/commit/174674743d9a2d7361c9cd89836f8dd8651edeeb
Author: Bram Moolenaar <Bram@vim.org>
Date: Tue Nov 10 17:50:24 2015 +0100
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)
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Tue, 10 Nov 2015 18:00:05 +0100 |
parents | 9f40a36fbcf3 |
children | 9725f5621a39 |
files | src/option.c src/testdir/test_options.in src/testdir/test_options.ok src/version.c |
diffstat | 4 files changed, 13 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- 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);
--- 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