diff options
author | ckelsel <ckelsel@hotmail.com> | 2017-12-02 15:25:24 +0800 |
---|---|---|
committer | ckelsel <ckelsel@hotmail.com> | 2017-12-02 15:40:57 +0800 |
commit | 585d664b7b0d5032082bdc3ca8a17bc7fa34a4e8 (patch) | |
tree | 59cc430f2429c027120b90b4e5548b33b466773a /src/nvim/ex_docmd.c | |
parent | 27f9b1c7b029d8f61723fd261bed76ea7a01e68d (diff) | |
download | rneovim-585d664b7b0d5032082bdc3ca8a17bc7fa34a4e8.tar.gz rneovim-585d664b7b0d5032082bdc3ca8a17bc7fa34a4e8.tar.bz2 rneovim-585d664b7b0d5032082bdc3ca8a17bc7fa34a4e8.zip |
vim-patch:8.0.0298
Problem: Ex command range with repeated search does not work. (Bruce
DeVisser)
Solution: Skip over \/, \? and \&.
https://github.com/vim/vim/commit/cbf20fbcd3e9bb006f694bcc35da859930fb12a2
Diffstat (limited to 'src/nvim/ex_docmd.c')
-rw-r--r-- | src/nvim/ex_docmd.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/nvim/ex_docmd.c b/src/nvim/ex_docmd.c index 5180420eff..801979a9cb 100644 --- a/src/nvim/ex_docmd.c +++ b/src/nvim/ex_docmd.c @@ -3484,8 +3484,14 @@ char_u *skip_range( { unsigned delim; - while (vim_strchr((char_u *)" \t0123456789.$%'/?-+,;", *cmd) != NULL) { - if (*cmd == '\'') { + 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 == '?') { |