From 8f79acdf7ede2693fbda53c3c9693f16db4f193b Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Fri, 1 Jan 2016 14:48:20 +0100 Subject: patch 7.4.1017 Problem: When there is a backslash in an option ":set -=" doesn't work. Solution: Handle a backslash better. (Jacob Niehus) Add a new test, merge in old test. --- src/option.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) (limited to 'src/option.c') diff --git a/src/option.c b/src/option.c index c7ef6ee3c..aca0f315f 100644 --- a/src/option.c +++ b/src/option.c @@ -4839,9 +4839,15 @@ do_set(arg, opt_flags) || s[i] == NUL)) break; /* Count backslashes. Only a comma with an - * even number of backslashes before it is - * recognized as a separator */ - if (s > origval && s[-1] == '\\') + * even number of backslashes or a single + * backslash preceded by a comma before it + * is recognized as a separator */ + if ((s > origval + 1 + && s[-1] == '\\' + && s[-2] != ',') + || (s == origval + 1 + && s[-1] == '\\')) + ++bs; else bs = 0; -- cgit v1.2.1