mirror of
https://github.com/neovim/neovim
synced 2025-07-21 13:52:23 +00:00
[release-0.4] paste: fix handling of "<" in cmdline (#11094)
Fixes https://github.com/neovim/neovim/issues/11088.
This commit is contained in:
@ -189,7 +189,7 @@ paste = (function()
|
|||||||
if mode == 'c' and not got_line1 then -- cmdline-mode: paste only 1 line.
|
if mode == 'c' and not got_line1 then -- cmdline-mode: paste only 1 line.
|
||||||
got_line1 = (#lines > 1)
|
got_line1 = (#lines > 1)
|
||||||
vim.api.nvim_set_option('paste', true) -- For nvim_input().
|
vim.api.nvim_set_option('paste', true) -- For nvim_input().
|
||||||
local line1, _ = string.gsub(lines[1], '[\r\n\012\027]', ' ') -- Scrub.
|
local line1 = lines[1]:gsub('<', '<lt>'):gsub('[\r\n\012\027]', ' ') -- Scrub.
|
||||||
vim.api.nvim_input(line1)
|
vim.api.nvim_input(line1)
|
||||||
vim.api.nvim_set_option('paste', false)
|
vim.api.nvim_set_option('paste', false)
|
||||||
elseif mode ~= 'c' then -- Else: discard remaining cmdline-mode chunks.
|
elseif mode ~= 'c' then -- Else: discard remaining cmdline-mode chunks.
|
||||||
|
@ -578,6 +578,23 @@ describe('TUI', function()
|
|||||||
]])
|
]])
|
||||||
end)
|
end)
|
||||||
|
|
||||||
|
it('paste: less-than sign in cmdline #11088', function()
|
||||||
|
local expected = '<'
|
||||||
|
feed_data(':')
|
||||||
|
wait_for_mode('c')
|
||||||
|
-- "bracketed paste"
|
||||||
|
feed_data('\027[200~'..expected..'\027[201~')
|
||||||
|
screen:expect{grid=[[
|
||||||
|
|
|
||||||
|
{4:~ }|
|
||||||
|
{4:~ }|
|
||||||
|
{4:~ }|
|
||||||
|
{5:[No Name] }|
|
||||||
|
:<{1: } |
|
||||||
|
{3:-- TERMINAL --} |
|
||||||
|
]]}
|
||||||
|
end)
|
||||||
|
|
||||||
it('paste: big burst of input', function()
|
it('paste: big burst of input', function()
|
||||||
feed_data(':set ruler\n')
|
feed_data(':set ruler\n')
|
||||||
local t = {}
|
local t = {}
|
||||||
|
Reference in New Issue
Block a user