aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/ex_docmd.c
diff options
context:
space:
mode:
authorZyX <kp-pav@yandex.ru>2017-12-03 16:19:40 +0300
committerZyX <kp-pav@yandex.ru>2017-12-03 16:19:40 +0300
commit7af8601db4bba355753241c2326b80410b187350 (patch)
treeaf56b809a3a24be5b1d5d0de12ee23dc0bc1f2b8 /src/nvim/ex_docmd.c
parent62993323494d846190590606d37aff1136421671 (diff)
parent27a577586eace687c47e7398845178208cae524a (diff)
downloadrneovim-7af8601db4bba355753241c2326b80410b187350.tar.gz
rneovim-7af8601db4bba355753241c2326b80410b187350.tar.bz2
rneovim-7af8601db4bba355753241c2326b80410b187350.zip
Merge branch 'master' into expression-parser
Hoping that could fix the LSAN issue: no idea what it is talking about.
Diffstat (limited to 'src/nvim/ex_docmd.c')
-rw-r--r--src/nvim/ex_docmd.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/src/nvim/ex_docmd.c b/src/nvim/ex_docmd.c
index 3202f8a848..f6a5f59676 100644
--- a/src/nvim/ex_docmd.c
+++ b/src/nvim/ex_docmd.c
@@ -3484,10 +3484,17 @@ char_u *skip_range(
{
unsigned delim;
- while (vim_strchr((char_u *)" \t0123456789.$%'/?-+,;", *cmd) != NULL) {
- if (*cmd == '\'') {
- if (*++cmd == NUL && ctx != NULL)
+ while (vim_strchr((char_u *)" \t0123456789.$%'/?-+,;\\", *cmd) != NULL) {
+ if (*cmd == '\\') {
+ if (cmd[1] == '?' || cmd[1] == '/' || cmd[1] == '&') {
+ cmd++;
+ } else {
+ break;
+ }
+ } else if (*cmd == '\'') {
+ if (*++cmd == NUL && ctx != NULL) {
*ctx = EXPAND_NOTHING;
+ }
} else if (*cmd == '/' || *cmd == '?') {
delim = *cmd++;
while (*cmd != NUL && *cmd != delim)