mirror of
https://github.com/neovim/neovim.git
synced 2025-02-25 18:55:25 -06:00
vim-patch:8.1.2401: :cexpr does not handle | in expression
Problem: :cexpr does not handle | in expression.
Solution: Remove EX_TRLBAR and set nextcmd pointer.
88a3e2b2ac
This commit is contained in:
parent
3ad6fb804f
commit
779b188db6
@ -337,7 +337,7 @@ return {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
command='caddexpr',
|
command='caddexpr',
|
||||||
flags=bit.bor(NEEDARG, WORD1, NOTRLCOM, TRLBAR),
|
flags=bit.bor(NEEDARG, WORD1, NOTRLCOM),
|
||||||
addr_type=ADDR_LINES,
|
addr_type=ADDR_LINES,
|
||||||
func='ex_cexpr',
|
func='ex_cexpr',
|
||||||
},
|
},
|
||||||
@ -409,7 +409,7 @@ return {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
command='cexpr',
|
command='cexpr',
|
||||||
flags=bit.bor(NEEDARG, WORD1, NOTRLCOM, TRLBAR, BANG),
|
flags=bit.bor(NEEDARG, WORD1, NOTRLCOM, BANG),
|
||||||
addr_type=ADDR_LINES,
|
addr_type=ADDR_LINES,
|
||||||
func='ex_cexpr',
|
func='ex_cexpr',
|
||||||
},
|
},
|
||||||
@ -447,7 +447,7 @@ return {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
command='cgetexpr',
|
command='cgetexpr',
|
||||||
flags=bit.bor(NEEDARG, WORD1, NOTRLCOM, TRLBAR),
|
flags=bit.bor(NEEDARG, WORD1, NOTRLCOM),
|
||||||
addr_type=ADDR_LINES,
|
addr_type=ADDR_LINES,
|
||||||
func='ex_cexpr',
|
func='ex_cexpr',
|
||||||
},
|
},
|
||||||
@ -1299,7 +1299,7 @@ return {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
command='laddexpr',
|
command='laddexpr',
|
||||||
flags=bit.bor(NEEDARG, WORD1, NOTRLCOM, TRLBAR),
|
flags=bit.bor(NEEDARG, WORD1, NOTRLCOM),
|
||||||
addr_type=ADDR_LINES,
|
addr_type=ADDR_LINES,
|
||||||
func='ex_cexpr',
|
func='ex_cexpr',
|
||||||
},
|
},
|
||||||
@ -1389,7 +1389,7 @@ return {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
command='lexpr',
|
command='lexpr',
|
||||||
flags=bit.bor(NEEDARG, WORD1, NOTRLCOM, TRLBAR, BANG),
|
flags=bit.bor(NEEDARG, WORD1, NOTRLCOM, BANG),
|
||||||
addr_type=ADDR_LINES,
|
addr_type=ADDR_LINES,
|
||||||
func='ex_cexpr',
|
func='ex_cexpr',
|
||||||
},
|
},
|
||||||
@ -1427,7 +1427,7 @@ return {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
command='lgetexpr',
|
command='lgetexpr',
|
||||||
flags=bit.bor(NEEDARG, WORD1, NOTRLCOM, TRLBAR),
|
flags=bit.bor(NEEDARG, WORD1, NOTRLCOM),
|
||||||
addr_type=ADDR_LINES,
|
addr_type=ADDR_LINES,
|
||||||
func='ex_cexpr',
|
func='ex_cexpr',
|
||||||
},
|
},
|
||||||
|
@ -6377,7 +6377,7 @@ void ex_cexpr(exarg_T *eap)
|
|||||||
// Evaluate the expression. When the result is a string or a list we can
|
// Evaluate the expression. When the result is a string or a list we can
|
||||||
// use it to fill the errorlist.
|
// use it to fill the errorlist.
|
||||||
typval_T tv;
|
typval_T tv;
|
||||||
if (eval0(eap->arg, &tv, NULL, true) != FAIL) {
|
if (eval0(eap->arg, &tv, &eap->nextcmd, true) != FAIL) {
|
||||||
if ((tv.v_type == VAR_STRING && tv.vval.v_string != NULL)
|
if ((tv.v_type == VAR_STRING && tv.vval.v_string != NULL)
|
||||||
|| tv.v_type == VAR_LIST) {
|
|| tv.v_type == VAR_LIST) {
|
||||||
incr_quickfix_busy();
|
incr_quickfix_busy();
|
||||||
|
@ -95,7 +95,7 @@ func XlistTests(cchar)
|
|||||||
" Populate the list and then try
|
" Populate the list and then try
|
||||||
Xgetexpr ['non-error 1', 'Xtestfile1:1:3:Line1',
|
Xgetexpr ['non-error 1', 'Xtestfile1:1:3:Line1',
|
||||||
\ 'non-error 2', 'Xtestfile2:2:2:Line2',
|
\ 'non-error 2', 'Xtestfile2:2:2:Line2',
|
||||||
\ 'non-error 3', 'Xtestfile3:3:1:Line3']
|
\ 'non-error| 3', 'Xtestfile3:3:1:Line3']
|
||||||
|
|
||||||
" List only valid entries
|
" List only valid entries
|
||||||
let l = split(execute('Xlist', ''), "\n")
|
let l = split(execute('Xlist', ''), "\n")
|
||||||
@ -107,7 +107,7 @@ func XlistTests(cchar)
|
|||||||
let l = split(execute('Xlist!', ''), "\n")
|
let l = split(execute('Xlist!', ''), "\n")
|
||||||
call assert_equal([' 1: non-error 1', ' 2 Xtestfile1:1 col 3: Line1',
|
call assert_equal([' 1: non-error 1', ' 2 Xtestfile1:1 col 3: Line1',
|
||||||
\ ' 3: non-error 2', ' 4 Xtestfile2:2 col 2: Line2',
|
\ ' 3: non-error 2', ' 4 Xtestfile2:2 col 2: Line2',
|
||||||
\ ' 5: non-error 3', ' 6 Xtestfile3:3 col 1: Line3'], l)
|
\ ' 5: non-error| 3', ' 6 Xtestfile3:3 col 1: Line3'], l)
|
||||||
|
|
||||||
" List a range of errors
|
" List a range of errors
|
||||||
let l = split(execute('Xlist 3,6', ''), "\n")
|
let l = split(execute('Xlist 3,6', ''), "\n")
|
||||||
@ -507,7 +507,7 @@ func Xtest_browse(cchar)
|
|||||||
Xexpr ""
|
Xexpr ""
|
||||||
call assert_equal(0, g:Xgetlist({'idx' : 0}).idx)
|
call assert_equal(0, g:Xgetlist({'idx' : 0}).idx)
|
||||||
call assert_equal(0, g:Xgetlist({'size' : 0}).size)
|
call assert_equal(0, g:Xgetlist({'size' : 0}).size)
|
||||||
Xaddexpr ['foo', 'bar', 'baz', 'quux', 'shmoo']
|
Xaddexpr ['foo', 'bar', 'baz', 'quux', 'sh|moo']
|
||||||
call assert_equal(5, g:Xgetlist({'size' : 0}).size)
|
call assert_equal(5, g:Xgetlist({'size' : 0}).size)
|
||||||
Xlast
|
Xlast
|
||||||
call assert_equal(5, g:Xgetlist({'idx' : 0}).idx)
|
call assert_equal(5, g:Xgetlist({'idx' : 0}).idx)
|
||||||
@ -4067,13 +4067,13 @@ func Test_search_in_dirstack()
|
|||||||
\ "Xfile3:1:X3_L1\n" .
|
\ "Xfile3:1:X3_L1\n" .
|
||||||
\ "Entering dir c\n" .
|
\ "Entering dir c\n" .
|
||||||
\ "Xfile4:2:X4_L2\n" .
|
\ "Xfile4:2:X4_L2\n" .
|
||||||
\ "Leaving dir c\n" .
|
\ "Leaving dir c\n"
|
||||||
\ "Leaving dir Xtestdir\n"
|
|
||||||
set efm=%DEntering\ dir\ %f,%XLeaving\ dir\ %f,%f:%l:%m
|
set efm=%DEntering\ dir\ %f,%XLeaving\ dir\ %f,%f:%l:%m
|
||||||
cexpr lines
|
cexpr lines .. "Leaving dir Xtestdir|\n" | let next = 1
|
||||||
call assert_equal(11, getqflist({'size' : 0}).size)
|
call assert_equal(11, getqflist({'size' : 0}).size)
|
||||||
call assert_equal(4, getqflist({'idx' : 0}).idx)
|
call assert_equal(4, getqflist({'idx' : 0}).idx)
|
||||||
call assert_equal('X2_L2', getline('.'))
|
call assert_equal('X2_L2', getline('.'))
|
||||||
|
call assert_equal(1, next)
|
||||||
cnext
|
cnext
|
||||||
call assert_equal(6, getqflist({'idx' : 0}).idx)
|
call assert_equal(6, getqflist({'idx' : 0}).idx)
|
||||||
call assert_equal('X1_L2', getline('.'))
|
call assert_equal('X1_L2', getline('.'))
|
||||||
|
Loading…
Reference in New Issue
Block a user