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

patch 8.1.0798: changing a blob while iterating over it works strangely

Problem:    Changing a blob while iterating over it works strangely.
Solution:   Make a copy of the Blob before iterating.
This commit is contained in:
Bram Moolenaar
2019-01-23 21:56:21 +01:00
parent bf821bccf1
commit dd29ea1805
5 changed files with 50 additions and 23 deletions

View File

@@ -154,6 +154,7 @@ func Test_blob_for_loop()
call assert_equal(i, byte)
let i += 1
endfor
call assert_equal(4, i)
let blob = 0z00
call remove(blob, 0)
@@ -161,6 +162,19 @@ func Test_blob_for_loop()
for byte in blob
call assert_error('loop over empty blob')
endfor
let blob = 0z0001020304
let i = 0
for byte in blob
call assert_equal(i, byte)
if i == 1
call remove(blob, 0)
elseif i == 3
call remove(blob, 3)
endif
let i += 1
endfor
call assert_equal(5, i)
endfunc
func Test_blob_concatenate()