view src/testdir/test_paste.vim @ 10688:3d1872fbecc4 v8.0.0234

patch 8.0.0234: crash when using put in Visual mode commit https://github.com/vim/vim/commit/941c12da3c087fd04aa6c120a76bf28f19349d96 Author: Bram Moolenaar <Bram@vim.org> Date: Tue Jan 24 19:55:43 2017 +0100 patch 8.0.0234: crash when using put in Visual mode Problem: When several lines are visually selected and one of them is short, using put may cause a crash. (Axel Bender) Solution: Check for a short line. (Christian Brabandt)
author Christian Brabandt <cb@256bit.org>
date Tue, 24 Jan 2017 20:00:04 +0100
parents 23ada4caa13b
children 689e88afdd11
line wrap: on
line source

" Tests for bracketed paste.

" Bracketed paste only works with "xterm".  Not in GUI.
if has('gui_running')
  finish
endif
set term=xterm

func Test_paste_normal_mode()
  new
  call setline(1, ['a', 'b', 'c'])
  2
  call feedkeys("\<Esc>[200~foo\<CR>bar\<Esc>[201~", 'xt')
  call assert_equal('bfoo', getline(2))
  call assert_equal('bar', getline(3))
  call assert_equal('c', getline(4))

  normal .
  call assert_equal('barfoo', getline(3))
  call assert_equal('bar', getline(4))
  call assert_equal('c', getline(5))
  bwipe!
endfunc

func Test_paste_insert_mode()
  new
  call setline(1, ['a', 'b', 'c'])
  2
  call feedkeys("i\<Esc>[200~foo\<CR>bar\<Esc>[201~ done\<Esc>", 'xt')
  call assert_equal('foo', getline(2))
  call assert_equal('bar doneb', getline(3))
  call assert_equal('c', getline(4))

  normal .
  call assert_equal('bar donfoo', getline(3))
  call assert_equal('bar doneeb', getline(4))
  call assert_equal('c', getline(5))
  bwipe!
endfunc

func Test_paste_cmdline()
  call feedkeys(":a\<Esc>[200~foo\<CR>bar\<Esc>[201~b\<Home>\"\<CR>", 'xt')
  call assert_equal("\"afoo\<CR>barb", getreg(':'))
endfunc