| To: vim_dev@googlegroups.com |
| Subject: Patch 7.4.561 |
| Fcc: outbox |
| From: Bram Moolenaar <Bram@moolenaar.net> |
| Mime-Version: 1.0 |
| Content-Type: text/plain; charset=UTF-8 |
| Content-Transfer-Encoding: 8bit |
| |
| |
| Patch 7.4.561 |
| Problem: Ex range handling is wrong for buffer-local user commands. |
| Solution: Check for CMD_USER_BUF. (Marcin Szamotulski) |
| Files: src/ex_docmd.c, src/testdir/test_command_count.in, |
| src/testdir/test_command_count.ok |
| |
| |
| |
| |
| |
| *** 2133,2144 **** |
| if (ea.cmdidx != CMD_SIZE |
| #ifdef FEAT_USR_CMDS |
| && ea.cmdidx != CMD_USER |
| #endif |
| ) |
| ea.addr_type = cmdnames[(int)ea.cmdidx].cmd_addr_type; |
| else |
| #ifdef FEAT_USR_CMDS |
| ! if (ea.cmdidx != CMD_USER) |
| #endif |
| ea.addr_type = ADDR_LINES; |
| /* ea.addr_type for user commands is set by find_ucmd */ |
| --- 2133,2145 ---- |
| 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 && ea.cmdidx != CMD_USER_BUF) |
| #endif |
| ea.addr_type = ADDR_LINES; |
| /* ea.addr_type for user commands is set by find_ucmd */ |
| |
| |
| |
| *** 3,9 **** |
| STARTTEST |
| :let g:lines = [] |
| :so tiny.vim |
| ! :com -range RangeLines :call add(g:lines, 'Rangeg:Lines '.<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>) |
| --- 3,9 ---- |
| STARTTEST |
| :let g:lines = [] |
| :so tiny.vim |
| ! :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,47 **** |
| --- 42,53 ---- |
| :%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! |
| |
| |
| |
| *** 14,17 **** |
| --- 14,19 ---- |
| RangeTabs 2 5 |
| RangeTabs 1 5 |
| RangeTabsAll 1 5 |
| + RangeLines 2 5 |
| + LocalRangeLines 2 5 |
| |
| |
| |
| |
| *** 743,744 **** |
| --- 743,746 ---- |
| { /* Add new patch number below this line */ |
| + /**/ |
| + 561, |
| /**/ |
| |
| -- |
| Q: What is a patch 22? |
| A: A patch you need to include to make it possible to include patches. |
| |
| /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ |
| /// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ |
| \\\ an exciting new programming language -- http://www.Zimbu.org /// |
| \\\ help me help AIDS victims -- http://ICCF-Holland.org /// |