Mercurial > vim
changeset 6464:82c6a3bddb23 v7.4.561
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)
author | Bram Moolenaar <bram@vim.org> |
---|---|
date | Wed, 07 Jan 2015 13:15:45 +0100 |
parents | ab36689121ad |
children | 616912dd90aa |
files | src/ex_docmd.c src/testdir/test_command_count.in src/testdir/test_command_count.ok src/version.c |
diffstat | 4 files changed, 13 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/src/ex_docmd.c +++ b/src/ex_docmd.c @@ -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 */
--- a/src/testdir/test_command_count.in +++ b/src/testdir/test_command_count.in @@ -3,7 +3,7 @@ Test for user command counts vim: se 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!