0
0
mirror of https://github.com/vim/vim.git synced 2025-09-25 03:54:15 -04:00

patch 8.1.1045: E315 ml_get error when using Python and hidden buffer

Problem:    E315 ml_get error when using Python and hidden buffer.
Solution:   Make sure the cursor position is valid. (Ben Jackson,
            closes #4153, closes #4154)
This commit is contained in:
Bram Moolenaar
2019-03-23 17:41:59 +01:00
parent c3e92c161d
commit 63dbfd33c1
4 changed files with 178 additions and 2 deletions

View File

@@ -71,3 +71,87 @@ func Test_skipped_python_command_does_not_affect_pyxversion()
endif
call assert_equal(0, &pyxversion) " This assertion would have failed with Vim 8.0.0251. (pyxversion was introduced in 8.0.0251.)
endfunc
func _SetUpHiddenBuffer()
py import vim
new
edit hidden
setlocal bufhidden=hide
enew
let lnum = 0
while lnum < 10
call append( 1, string( lnum ) )
let lnum = lnum + 1
endwhile
normal G
call assert_equal( line( '.' ), 11 )
endfunc
func Test_Write_To_HiddenBuffer_Does_Not_Fix_Cursor_Clear()
call _SetUpHiddenBuffer()
py vim.buffers[ int( vim.eval( 'bufnr("hidden")' ) ) ][:] = None
call assert_equal( line( '.' ), 11 )
bwipe!
endfunc
func Test_Write_To_HiddenBuffer_Does_Not_Fix_Cursor_List()
call _SetUpHiddenBuffer()
py vim.buffers[ int( vim.eval( 'bufnr("hidden")' ) ) ][:] = [ 'test' ]
call assert_equal( line( '.' ), 11 )
bwipe!
endfunc
func Test_Write_To_HiddenBuffer_Does_Not_Fix_Cursor_Str()
call _SetUpHiddenBuffer()
py vim.buffers[ int( vim.eval( 'bufnr("hidden")' ) ) ][0] = 'test'
call assert_equal( line( '.' ), 11 )
bwipe!
endfunc
func Test_Write_To_HiddenBuffer_Does_Not_Fix_Cursor_ClearLine()
call _SetUpHiddenBuffer()
py vim.buffers[ int( vim.eval( 'bufnr("hidden")' ) ) ][0] = None
call assert_equal( line( '.' ), 11 )
bwipe!
endfunc
func _SetUpVisibleBuffer()
py import vim
new
let lnum = 0
while lnum < 10
call append( 1, string( lnum ) )
let lnum = lnum + 1
endwhile
normal G
call assert_equal( line( '.' ), 11 )
endfunc
func Test_Write_To_Current_Buffer_Fixes_Cursor_Clear()
call _SetUpVisibleBuffer()
py vim.current.buffer[:] = None
call assert_equal( line( '.' ), 1 )
bwipe!
endfunc
func Test_Write_To_Current_Buffer_Fixes_Cursor_List()
call _SetUpVisibleBuffer()
py vim.current.buffer[:] = [ 'test' ]
call assert_equal( line( '.' ), 1 )
bwipe!
endfunction
func Test_Write_To_Current_Buffer_Fixes_Cursor_Str()
call _SetUpVisibleBuffer()
py vim.current.buffer[-1] = None
call assert_equal( line( '.' ), 10 )
bwipe!
endfunction