After a single backslash is added as an item in a comma-separation option, the
items
after the backslash can't be removed without removing the backslash first.
For example:
set iskeyword+=\\,!
--> iskeyword=@,48-57,_,192-255,\,!
set iskeyword-=!
--> iskeyword=@,48-57,_,192-255,\,!
set iskeyword-=\\
--> iskeyword=@,48-57,_,192-255,!
set iskeyword-=!
--> iskeyword=@,48-57,_,192-255
This also happens for &cinkeys, &dictionary, etc. The change below fixes the
problem and didn't cause any obvious new problems.
-Jacob Niehus
diff --git a/src/option.c b/src/option.c
index c7ef6ee..743e070 100644
--- a/src/option.c
+++ b/src/option.c
@@ -4839,9 +4839,14 @@ 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;
--
--
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php
---
You received this message because you are subscribed to the Google Groups
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.