1
0
forked from aniani/vim

updated for version 7.4.561

Problem:    Ex range handling is wrong for buffer-local user commands.
Solution:   Check for CMD_USER_BUF. (Marcin Szamotulski)
This commit is contained in:
Bram Moolenaar 2015-01-07 13:15:45 +01:00
parent e88b0033f6
commit abe382cd2a
4 changed files with 13 additions and 2 deletions

View File

@ -2133,12 +2133,13 @@ do_one_cmd(cmdlinep, sourcing,
if (ea.cmdidx != CMD_SIZE
#ifdef FEAT_USR_CMDS
&& ea.cmdidx != CMD_USER
&& ea.cmdidx != CMD_USER_BUF
#endif
)
ea.addr_type = cmdnames[(int)ea.cmdidx].cmd_addr_type;
else
#ifdef FEAT_USR_CMDS
if (ea.cmdidx != CMD_USER)
if (ea.cmdidx != CMD_USER && ea.cmdidx != CMD_USER_BUF)
#endif
ea.addr_type = ADDR_LINES;
/* ea.addr_type for user commands is set by find_ucmd */

View File

@ -3,7 +3,7 @@ Test for user command counts vim: set ft=vim :
STARTTEST
:let g:lines = []
:so tiny.vim
:com -range RangeLines :call add(g:lines, 'Rangeg:Lines '.<line1>.' '.<line2>)
:com -range=% RangeLines :call add(g:lines, 'RangeLines '.<line1>.' '.<line2>)
:com -range -addr=arguments RangeArguments :call add(g:lines, 'RangeArguments '.<line1>.' '.<line2>)
:com -range=% -addr=arguments RangeArgumentsAll :call add(g:lines, 'RangeArgumentsAll '.<line1>.' '.<line2>)
:com -range -addr=loaded_buffers RangeLoadedBuffers :call add(g:lines, 'RangeLoadedBuffers '.<line1>.' '.<line2>)
@ -42,6 +42,12 @@ STARTTEST
:%RangeTabs
:RangeTabsAll
:1tabonly
:s/\n/\r\r\r\r\r/
:2ma<
:$-ma>
:'<,'>RangeLines
:com -range=% -buffer LocalRangeLines :call add(g:lines, 'LocalRangeLines '.<line1>.' '.<line2>)
:'<,'>LocalRangeLines
:e! test.out
:call append(0, g:lines)
:w|qa!

View File

@ -14,4 +14,6 @@ RangeBuffersAll 1 5
RangeTabs 2 5
RangeTabs 1 5
RangeTabsAll 1 5
RangeLines 2 5
LocalRangeLines 2 5

View File

@ -741,6 +741,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
561,
/**/
560,
/**/