Commit Graph

16 Commits

Author SHA1 Message Date
VVKot
6f72236a00 vim-patch:8.2.3855: illegal memory access when displaying a blob
Problem:    Illegal memory access when displaying a blob.
Solution:   Append a NUL at the end. (Yegappan Lakshmanan, closes vim/vim#9372)
bc404bfb32
2021-12-19 19:50:59 +00:00
Sean Dewar
e88961943b fix(eval): partially port v8.2.3284
These were issues that I found while porting that I fixed upstream. :^)

Very little of the patch can be exactly ported as we're a bit behind on
dependant patches (we also can't use the exact :for emsg, as we don't
support iterating over Strings yet), so just translate the fixes as best
as we can for now.

Include latest relevant doc changes from:
- v8.1.0815
- v8.2.2658
2021-09-16 00:14:46 +01:00
Sean Dewar
19232593ba fix(f_insert): partially port v8.2.0634
Fixes a crash in f_insert() when inserting into a NULL blob.
Include blob-related test changes and some other simple changes.
2021-09-15 22:57:54 +01:00
Sean Dewar
9b5c9dbfa7 vim-patch:8.2.0521: crash when reading a blob fails
Problem:    Crash when reading a blob fails.
Solution:   Avoid keeping a pointer to a freed blob object. (Dominique Pelle,
            closes vim/vim#5890)  Adjust error messages.
15352dc6ec
2021-09-15 22:57:54 +01:00
Sean Dewar
53f28f024c vim-patch:8.2.0184: blob test fails
Problem:    Blob test fails.
Solution:   Check for different error when float feature is missing.
92be6e3f46

Nvim always has the float feature, but include the changes to the test
anyway.
2021-09-15 22:57:53 +01:00
Sean Dewar
ef76238548 vim-patch:8.2.0121: filter() and map() on blob don't work
Problem:    filter() and map() on blob don't work.
Solution:   Correct the code. (closes vim/vim#5483)
49c57ce500
2021-09-15 22:57:53 +01:00
Sean Dewar
726b255288 vim-patch:8.1.1671: copying a blob may result in it being locked
Problem:    Copying a blob may result in it being locked.
Solution:   Reset v_lock. (Ken Takata, closes vim/vim#4648)
b7b9efbccf
2021-09-15 22:57:53 +01:00
Sean Dewar
bd9c787b4f vim-patch:8.1.0802: negative index doesn't work for Blob
Problem:    Negative index doesn't work for Blob.
Solution:   Make it work, add a test. (closes vim/vim#3856)
a5be9b6248

Leave tv_blob_get()'s return type untouched.
2021-09-15 22:57:47 +01:00
Sean Dewar
23f5999d28 vim-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.
dd29ea1805
2021-09-15 22:30:31 +01:00
Sean Dewar
c57132ec2a vim-patch:8.1.0793: incorrect error messages for functions that take a Blob
Problem:    Incorrect error messages for functions that now take a Blob
            argument.
Solution:   Adjust the error messages. (Dominique Pelle, closes vim/vim#3846)
0d17f0d1c0
2021-09-15 22:30:31 +01:00
Sean Dewar
6a02ccc222 vim-patch:8.1.0765: string format of a Blob can't be parsed back
Problem:    String format of a Blob can't be parsed back.
Solution:   Use 0z format.
4131fd5509
2021-09-15 22:30:30 +01:00
Sean Dewar
2b98bdd75b vim-patch:8.1.0756: copy() does not make a copy of a Blob
Problem:    copy() does not make a copy of a Blob.
Solution:   Make a copy.
3d28b58c51

Replace vim_memsave() with xmemdup().
2021-09-15 21:54:00 +01:00
Sean Dewar
c1b8731ece vim-patch:8.1.0755: error message for get() on a Blob with invalid index
Problem:    Error message for get() on a Blob with invalid index.
Solution:   Return an empty Blob, like get() on a List does.
2ea773b468
2021-09-15 21:54:00 +01:00
Sean Dewar
d346ac536f vim-patch:8.1.0742: not all Blob operations are tested
Problem:    Not all Blob operations are tested.
Solution:   Add more testing for Blob.
05500ece62

Test_readfile_binary is already ported.
2021-09-15 21:53:38 +01:00
Sean Dewar
bfeecd0b41 vim-patch:8.1.0736: code for Blob not sufficiently tested
Problem:    Code for Blob not sufficiently tested.
Solution:   Add more tests.  Fix uncovered crash.  Add test_null_blob().
c0f5a78c15

eval0 and ex_echo's emsg-specific changes have already been ported.
These tests uncover another crash that was fixed in v8.1.0738.
2021-09-15 21:19:29 +01:00
Sean Dewar
9095101743 vim-patch:8.1.0735: cannot handle binary data
Problem:    Cannot handle binary data.
Solution:   Add the Blob type. (Yasuhiro Matsumoto, closes vim/vim#3638)
6e5ea8d2a9

Nvim-specific Blob conversions are implemented in future commits.

Refactor write_blob() to use a FileDescriptor, as f_writefile() was
refactored to use one (does not apply to read_blob()).

Use var_check_lock() in f_add() for Blobs from v8.1.0897.

Add a modeline to test_blob.vim and fix some doc typos.

Include if_perl.txt's VIM::Blob() documentation. Interestingly, this
function already worked before this port, as it just returns a Blob
string literal, not an actual Blob object.

N/A patches for version.c:

vim-patch:8.1.0741: viminfo with Blob is not tested

Problem:    Viminfo with Blob is not tested.
Solution:   Extend the viminfo test.  Fix reading a blob.  Fixed storing a
            special variable value.
8c8b8bb56c

vim-patch:8.1.1022: may use NULL pointer when out of memory

Problem:    May use NULL pointer when out of memory. (Coverity)
Solution:   Check for blob_alloc() returning NULL.
e142a9467a
2021-09-15 21:19:22 +01:00