mirror of
https://github.com/neovim/neovim.git
synced 2026-02-20 01:09:56 +10:00
Merge pull request #17272 from zeertzjq/vim-8.1.0846
vim-patch:8.1.{0846,0878,0884,2358},8.2.{0305,0352,0687,3797}
This commit is contained in:
@@ -63,6 +63,15 @@ func CheckUnix()
|
||||
endif
|
||||
endfunc
|
||||
|
||||
" Command to check for not running on a BSD system.
|
||||
" TODO: using this checks should not be needed
|
||||
command CheckNotBSD call CheckNotBSD()
|
||||
func CheckNotBSD()
|
||||
if has('bsd')
|
||||
throw 'Skipped: does not work on BSD'
|
||||
endif
|
||||
endfunc
|
||||
|
||||
" Command to check that making screendumps is supported.
|
||||
" Caller must source screendump.vim
|
||||
command CheckScreendump call CheckScreendump()
|
||||
|
||||
@@ -6,7 +6,6 @@
|
||||
|
||||
source test_charsearch_utf8.vim
|
||||
source test_expr_utf8.vim
|
||||
source test_matchadd_conceal_utf8.vim
|
||||
source test_mksession_utf8.vim
|
||||
source test_regexp_utf8.vim
|
||||
source test_source_utf8.vim
|
||||
|
||||
@@ -1377,6 +1377,36 @@ func Test_func_exists_on_reload()
|
||||
delfunc ExistingFunction
|
||||
endfunc
|
||||
|
||||
func Test_platform_name()
|
||||
" The system matches at most only one name.
|
||||
let names = ['amiga', 'beos', 'bsd', 'hpux', 'linux', 'mac', 'qnx', 'sun', 'vms', 'win32', 'win32unix']
|
||||
call assert_inrange(0, 1, len(filter(copy(names), 'has(v:val)')))
|
||||
|
||||
" Is Unix?
|
||||
call assert_equal(has('beos'), has('beos') && has('unix'))
|
||||
call assert_equal(has('bsd'), has('bsd') && has('unix'))
|
||||
call assert_equal(has('hpux'), has('hpux') && has('unix'))
|
||||
call assert_equal(has('linux'), has('linux') && has('unix'))
|
||||
call assert_equal(has('mac'), has('mac') && has('unix'))
|
||||
call assert_equal(has('qnx'), has('qnx') && has('unix'))
|
||||
call assert_equal(has('sun'), has('sun') && has('unix'))
|
||||
call assert_equal(has('win32'), has('win32') && !has('unix'))
|
||||
call assert_equal(has('win32unix'), has('win32unix') && has('unix'))
|
||||
|
||||
if has('unix') && executable('uname')
|
||||
let uname = system('uname')
|
||||
call assert_equal(uname =~? 'BeOS', has('beos'))
|
||||
" GNU userland on BSD kernels (e.g., GNU/kFreeBSD) don't have BSD defined
|
||||
call assert_equal(uname =~? '\%(GNU/k\w\+\)\@<!BSD\|DragonFly', has('bsd'))
|
||||
call assert_equal(uname =~? 'HP-UX', has('hpux'))
|
||||
call assert_equal(uname =~? 'Linux', has('linux'))
|
||||
call assert_equal(uname =~? 'Darwin', has('mac'))
|
||||
call assert_equal(uname =~? 'QNX', has('qnx'))
|
||||
call assert_equal(uname =~? 'SunOS', has('sun'))
|
||||
call assert_equal(uname =~? 'CYGWIN\|MSYS', has('win32unix'))
|
||||
endif
|
||||
endfunc
|
||||
|
||||
sandbox function Fsandbox()
|
||||
normal ix
|
||||
endfunc
|
||||
@@ -1519,24 +1549,31 @@ func Test_libcall_libcallnr()
|
||||
let libc = 'msvcrt.dll'
|
||||
elseif has('mac')
|
||||
let libc = 'libSystem.B.dylib'
|
||||
elseif system('uname -s') =~ 'SunOS'
|
||||
" Set the path to libc.so according to the architecture.
|
||||
let test_bits = system('file ' . GetVimProg())
|
||||
let test_arch = system('uname -p')
|
||||
if test_bits =~ '64-bit' && test_arch =~ 'sparc'
|
||||
let libc = '/usr/lib/sparcv9/libc.so'
|
||||
elseif test_bits =~ '64-bit' && test_arch =~ 'i386'
|
||||
let libc = '/usr/lib/amd64/libc.so'
|
||||
else
|
||||
let libc = '/usr/lib/libc.so'
|
||||
endif
|
||||
elseif system('uname -s') =~ 'OpenBSD'
|
||||
let libc = 'libc.so'
|
||||
else
|
||||
elseif executable('ldd')
|
||||
let libc = matchstr(split(system('ldd ' . GetVimProg())), '/libc\.so\>')
|
||||
endif
|
||||
if get(l:, 'libc', '') ==# ''
|
||||
" On Unix, libc.so can be in various places.
|
||||
" Interestingly, using an empty string for the 1st argument of libcall
|
||||
" allows to call functions from libc which is not documented.
|
||||
let libc = ''
|
||||
if has('linux')
|
||||
" There is not documented but regarding the 1st argument of glibc's
|
||||
" dlopen an empty string and nullptr are equivalent, so using an empty
|
||||
" string for the 1st argument of libcall allows to call functions.
|
||||
let libc = ''
|
||||
elseif has('sun')
|
||||
" Set the path to libc.so according to the architecture.
|
||||
let test_bits = system('file ' . GetVimProg())
|
||||
let test_arch = system('uname -p')
|
||||
if test_bits =~ '64-bit' && test_arch =~ 'sparc'
|
||||
let libc = '/usr/lib/sparcv9/libc.so'
|
||||
elseif test_bits =~ '64-bit' && test_arch =~ 'i386'
|
||||
let libc = '/usr/lib/amd64/libc.so'
|
||||
else
|
||||
let libc = '/usr/lib/libc.so'
|
||||
endif
|
||||
else
|
||||
" Unfortunately skip this test until a good way is found.
|
||||
return
|
||||
endif
|
||||
endif
|
||||
|
||||
if has('win32')
|
||||
|
||||
@@ -284,10 +284,10 @@ func Test_relativenumber_colors()
|
||||
" Default colors
|
||||
call VerifyScreenDump(buf, 'Test_relnr_colors_1', {})
|
||||
|
||||
call term_sendkeys(buf, ":hi LineNrAbove ctermfg=blue\<CR>")
|
||||
call term_sendkeys(buf, ":hi LineNrAbove ctermfg=blue\<CR>:\<CR>")
|
||||
call VerifyScreenDump(buf, 'Test_relnr_colors_2', {})
|
||||
|
||||
call term_sendkeys(buf, ":hi LineNrBelow ctermfg=green\<CR>")
|
||||
call term_sendkeys(buf, ":hi LineNrBelow ctermfg=green\<CR>:\<CR>")
|
||||
call VerifyScreenDump(buf, 'Test_relnr_colors_3', {})
|
||||
|
||||
call term_sendkeys(buf, ":hi clear LineNrAbove\<CR>")
|
||||
|
||||
@@ -1914,6 +1914,7 @@ func Test_switchbuf()
|
||||
|
||||
" If opening a file changes 'switchbuf', then the new value should be
|
||||
" retained.
|
||||
set modeline&vim
|
||||
call writefile(["vim: switchbuf=split"], 'Xqftestfile1')
|
||||
enew | only
|
||||
set switchbuf&vim
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
" Test the :source! command
|
||||
source check.vim
|
||||
|
||||
func Test_source_utf8()
|
||||
" check that sourcing a script with 0x80 as second byte works
|
||||
@@ -31,24 +32,24 @@ endfunc
|
||||
|
||||
" Test for sourcing a file with CTRL-V's at the end of the line
|
||||
func Test_source_ctrl_v()
|
||||
call writefile(['map __1 afirst',
|
||||
\ 'map __2 asecond',
|
||||
\ 'map __3 athird',
|
||||
\ 'map __4 afourth',
|
||||
\ 'map __5 afifth',
|
||||
\ "map __1 asd\<C-V>",
|
||||
\ "map __2 asd\<C-V>\<C-V>",
|
||||
\ "map __3 asd\<C-V>\<C-V>",
|
||||
\ "map __4 asd\<C-V>\<C-V>\<C-V>",
|
||||
\ "map __5 asd\<C-V>\<C-V>\<C-V>",
|
||||
\ ], 'Xtestfile')
|
||||
call writefile(['map __1 afirst',
|
||||
\ 'map __2 asecond',
|
||||
\ 'map __3 athird',
|
||||
\ 'map __4 afourth',
|
||||
\ 'map __5 afifth',
|
||||
\ "map __1 asd\<C-V>",
|
||||
\ "map __2 asd\<C-V>\<C-V>",
|
||||
\ "map __3 asd\<C-V>\<C-V>",
|
||||
\ "map __4 asd\<C-V>\<C-V>\<C-V>",
|
||||
\ "map __5 asd\<C-V>\<C-V>\<C-V>",
|
||||
\ ], 'Xtestfile')
|
||||
source Xtestfile
|
||||
enew!
|
||||
exe "normal __1\<Esc>\<Esc>__2\<Esc>__3\<Esc>\<Esc>__4\<Esc>__5\<Esc>"
|
||||
exe "%s/\<C-J>/0/g"
|
||||
call assert_equal(['sd',
|
||||
\ "map __2 asd\<Esc>secondsd\<Esc>sd0map __5 asd0fifth"],
|
||||
\ getline(1, 2))
|
||||
\ "map __2 asd\<Esc>secondsd\<Esc>sd0map __5 asd0fifth"],
|
||||
\ getline(1, 2))
|
||||
|
||||
enew!
|
||||
call delete('Xtestfile')
|
||||
|
||||
@@ -86,6 +86,9 @@ endfunc
|
||||
" test that g~ap changes one paragraph only.
|
||||
func Test_gap()
|
||||
new
|
||||
call feedkeys("iabcd\n\ndefggg0g~ap", "tx")
|
||||
" setup text
|
||||
call feedkeys("iabcd\<cr>\<cr>defg", "tx")
|
||||
" modify only first line
|
||||
call feedkeys("gg0g~ap", "tx")
|
||||
call assert_equal(["ABCD", "", "defg"], getline(1,3))
|
||||
endfunc
|
||||
|
||||
@@ -43,7 +43,7 @@ func Test_writefile_fails_gently()
|
||||
endfunc
|
||||
|
||||
func Test_writefile_fails_conversion()
|
||||
if !has('iconv') || system('uname -s') =~ 'SunOS'
|
||||
if !has('iconv') || has('sun')
|
||||
return
|
||||
endif
|
||||
" Without a backup file the write won't happen if there is a conversion
|
||||
|
||||
Reference in New Issue
Block a user