aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/search.c
diff options
context:
space:
mode:
authorwatiko <service@mail.watiko.net>2016-02-03 06:53:43 +0900
committerwatiko <service@mail.watiko.net>2016-02-03 21:56:22 +0900
commit924cacd2fcf4e2f84886761ad458a9ac4e6407fa (patch)
tree6405c6da7693fd1f8fd0a7df5c0a531251ee58d3 /src/nvim/search.c
parent4f4b8ea4489b445d0f9e0b8e1b9885555d0d861f (diff)
downloadrneovim-924cacd2fcf4e2f84886761ad458a9ac4e6407fa.tar.gz
rneovim-924cacd2fcf4e2f84886761ad458a9ac4e6407fa.tar.bz2
rneovim-924cacd2fcf4e2f84886761ad458a9ac4e6407fa.zip
vim-patch:7.4.662
Problem: When 'M' is in the 'cpo' option then selecting a text object in parenthesis does not work correctly. Solution: Keep 'M' in 'cpo' when finding a match. (Hirohito Higashi) https://github.com/vim/vim/commit/438b64ab71cd724129c4eec840be16c52602ebc8
Diffstat (limited to 'src/nvim/search.c')
-rw-r--r--src/nvim/search.c16
1 files changed, 8 insertions, 8 deletions
diff --git a/src/nvim/search.c b/src/nvim/search.c
index d393ee7d02..2dd0201259 100644
--- a/src/nvim/search.c
+++ b/src/nvim/search.c
@@ -3076,18 +3076,18 @@ current_block (
} else
old_end = VIsual;
- /*
- * Search backwards for unclosed '(', '{', etc..
- * Put this position in start_pos.
- * Ignore quotes here.
- */
+ // Search backwards for unclosed '(', '{', etc..
+ // Put this position in start_pos.
+ // Ignore quotes here. Keep the "M" flag in 'cpo', as that is what the
+ // user wants.
save_cpo = p_cpo;
- p_cpo = (char_u *)"%";
+ p_cpo = (char_u *)(vim_strchr(p_cpo, CPO_MATCHBSL) != NULL ? "%M" : "%");
while (count-- > 0) {
- if ((pos = findmatch(NULL, what)) == NULL)
+ if ((pos = findmatch(NULL, what)) == NULL) {
break;
+ }
curwin->w_cursor = *pos;
- start_pos = *pos; /* the findmatch for end_pos will overwrite *pos */
+ start_pos = *pos; // the findmatch for end_pos will overwrite *pos
}
p_cpo = save_cpo;