Merge pull request #4157 from watiko/vim-7.4.694

vim-patch:7.4.{662,694}
This commit is contained in:
Justin M. Keyes
2016-02-05 10:02:38 -05:00
3 changed files with 71 additions and 10 deletions

View File

@@ -3076,18 +3076,18 @@ current_block (
} else } else
old_end = VIsual; old_end = VIsual;
/* // Search backwards for unclosed '(', '{', etc..
* Search backwards for unclosed '(', '{', etc.. // Put this position in start_pos.
* Put this position in start_pos. // Ignore quotes here. Keep the "M" flag in 'cpo', as that is what the
* Ignore quotes here. // user wants.
*/
save_cpo = p_cpo; save_cpo = p_cpo;
p_cpo = (char_u *)"%"; p_cpo = (char_u *)(vim_strchr(p_cpo, CPO_MATCHBSL) != NULL ? "%M" : "%");
while (count-- > 0) { while (count-- > 0) {
if ((pos = findmatch(NULL, what)) == NULL) if ((pos = findmatch(NULL, what)) == NULL) {
break; break;
}
curwin->w_cursor = *pos; 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; p_cpo = save_cpo;

View File

@@ -594,7 +594,7 @@ static int included_patches[] = {
697, 697,
696, 696,
695, 695,
// 694, 694,
// 693, // 693,
// 692 NA // 692 NA
// 691 NA // 691 NA
@@ -626,7 +626,7 @@ static int included_patches[] = {
665, 665,
// 664 NA // 664 NA
// 663 NA // 663 NA
// 662, 662,
// 661 NA // 661 NA
660, 660,
659, 659,

View File

@@ -0,0 +1,61 @@
local helpers = require('test.functional.helpers')
local call = helpers.call
local clear = helpers.clear
local execute = helpers.execute
local expect = helpers.expect
local source = helpers.source
describe('Text object', function()
before_each(function()
clear()
execute('set shada=')
source([[
function SelectionOut(data)
new
call setline(1, a:data)
call setreg('"', '')
normal! ggfrmavi)y
$put =getreg('\"')
call setreg('"', '')
normal! `afbmavi)y
$put =getreg('\"')
call setreg('"', '')
normal! `afgmavi)y
$put =getreg('\"')
endfunction
]])
end)
it('Test for vi) without cpo-M', function()
execute('set cpo-=M')
call('SelectionOut', '(red \\(blue) green)')
expect([[
(red \(blue) green)
red \(blue
red \(blue
]])
end)
it('Test for vi) with cpo-M #1', function()
execute('set cpo+=M')
call('SelectionOut', '(red \\(blue) green)')
expect([[
(red \(blue) green)
red \(blue) green
blue
red \(blue) green]])
end)
it('Test for vi) with cpo-M #2', function()
execute('set cpo+=M')
call('SelectionOut', '(red (blue\\) green)')
expect([[
(red (blue\) green)
red (blue\) green
blue\
red (blue\) green]])
end)
end)