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)

438b64ab71
This commit is contained in:
watiko
2016-02-03 06:53:43 +09:00
parent 4f4b8ea448
commit 924cacd2fc
5 changed files with 66 additions and 9 deletions

View File

@@ -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;