0
0
mirror of https://github.com/vim/vim.git synced 2025-10-04 05:25:06 -04:00

patch 8.2.3284: no error for insert() or remove() changing a locked blob

Problem:    No error for insert() or remove() changing a locked blob.
Solution:   Check a blob is not locked before changing it. (Sean Dewar,
            closes #8696)
This commit is contained in:
Sean Dewar
2021-08-04 19:25:54 +02:00
committed by Bram Moolenaar
parent 0eec851942
commit 80d7395dcf
8 changed files with 80 additions and 37 deletions

View File

@@ -428,6 +428,23 @@ func Test_blob_func_remove()
call remove(test_null_blob(), 1, 2)
END
call CheckLegacyAndVim9Failure(lines, 'E979:')
let lines =<< trim END
let b = 0zDEADBEEF
lockvar b
call remove(b, 0)
unlockvar b
END
call CheckScriptFailure(lines, 'E741:')
" can only check at script level, not in a :def function
let lines =<< trim END
vim9script
var b = 0zDEADBEEF
lockvar b
remove(b, 0)
END
call CheckScriptFailure(lines, 'E741:')
endfunc
func Test_blob_read_write()
@@ -543,6 +560,22 @@ func Test_blob_insert()
insert(test_null_blob(), 0x33)
END
call CheckDefExecAndScriptFailure(lines, 'E1131:')
let lines =<< trim END
let b = 0zDEADBEEF
lockvar b
call insert(b, 3)
unlockvar b
END
call CheckScriptFailure(lines, 'E741:')
let lines =<< trim END
vim9script
var b = 0zDEADBEEF
lockvar b
insert(b, 3)
END
call CheckScriptFailure(lines, 'E741:')
endfunc
func Test_blob_reverse()