Age | Commit message (Collapse) | Author |
|
Problem: Fix regression in {func} argument of reduce()
Solution: pass function name as string again
Before patch 9.0.0548, passing a string as {func} argument of reduce()
is treated as a function name, but after patch 9.0.0548 it is treated as
an expression instead, which is useless as reduce() doesn't set any v:
variables. This PR restores the behavior of {func} before that patch.
Also correct an emsg() call, as e_string_list_or_blob_required doesn't
contain format specifiers.
closes: #12824
Signed-off-by: Christian Brabandt <cb@256bit.org>
Co-authored-by: zeertzjq <zeertzjq@outlook.com>
|
|
Problem: Typo in name of type.
Solution: Change funccal_T to funccall_T. (closes #12265)
|
|
Problem: Crash when collection is modified when using filter().
Solution: Lock the list/dict/blob. (Ernie Rael, closes #12183)
|
|
Problem: Various typos.
Solution: Correct typos. (closes #11432)
|
|
Problem: readblob() returns empty when trying to read too much.
Solution: Return what is available.
|
|
Problem: readblob() cannot read from character device.
Solution: Use S_ISCHR() to not check the size. (Ken Takata, closes #11407)
|
|
Problem: readblob() always reads the whole file.
Solution: Add arguments to read part of the file. (Ken Takata,
closes #11402)
|
|
Problem: Calling function for reduce() has too much overhead.
Solution: Do not create a funccall_T every time.
|
|
Problem: Too much indent.
Solution: Return out early from a funtion. (Yegappan Lakshmanan,
close #11238)
|
|
Problem: reduce() with a compiled lambda could be faster.
Solution: Call eval_expr_typval() instead of call_func() directly.
|
|
Problem: Error message for wrong argument type is not specific.
Solution: Include more information in the error. (Yegappan Lakshmanan,
closes #11037)
|
|
Problem: Memory allocation failures for new tab page not tested.
Solution: Add tests with failing memory allocation. (Yegappan Lakshmanan,
closes #10067)
|
|
Problem: Some type casts are redundant.
Solution: Remove the type casts. (closes #9643)
|
|
Problem: Error messages are spread out.
Solution: Move more errors to errors.h.
|
|
Problem: Error messages are spread out.
Solution: Move more errors to errors.h.
|
|
Problem: Error messages are spread out.
Solution: Move more errors to errors.h.
|
|
Problem: List.c contains code for dict and blob.
Solution: Refactor to put code where it belongs. (Yegappan Lakshmanan,
closes #9386)
|
|
Problem: Illegal memory access when displaying a blob.
Solution: Append a NUL at the end. (Yegappan Lakshmanan, closes #9372)
|
|
Problem: Error messages are everywhere.
Solution: Move more error messages to errors.h and adjust the names.
|
|
Problem: Internal error when passing range() to list2blob().
Solution: Materialize the list first. (closes #9262)
|
|
Problem: Cannot manipulate blobs.
Solution: Add blob2list() and list2blob(). (Yegappan Lakshmanan,
closes #8868)
|
|
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)
|
|
Problem: Vim9: argument types are not checked at compile time.
Solution: Add several more type checks. (Yegappan Lakshmanan, closes #8611)
|
|
Problem: Vim9: argument types are not checked at compile time.
Solution: Add several more type checks, also at runtime. (Yegappan
Lakshmanan, closes #8587)
|
|
Problem: Memory access error in remove() for blob.
Solution: Adjust length for memmove().
|
|
Problem: Vim9: blob operations not tested in all ways.
Solution: Run tests with CheckLegacyAndVim9Success(). Make blob assign with
index work.
|
|
Problem: Compiler warning for unused argument.
Solution: Remove the argument.
|
|
Problem: Vim9: not all blob operations work.
Solution: Run more tests also with Vim9 script and :def functions. Fix what
doesn't work.
|
|
Problem: Vim9: blob tests for legacy and Vim9 script are separate.
Solution: Add CheckLegacyAndVim9Success(). Make blob index assign work.
|
|
Problem: Vim9: blob index and slice not implemented yet.
Solution: Implement blob index and slice.
|
|
Problem: Vim9: appending to pushed blob gives wrong result.
Solution: Set ga_maxlen when copying a blob.
|
|
Problem: Maintaining a Vim9 branch separately is more work.
Solution: Merge the Vim9 script changes.
|
|
Problem: Using old C style comments.
Solution: Use // comments where appropriate.
|
|
Problem: Evalfunc.c is still too big.
Solution: Move dict and list functions to a better place.
|
|
Problem: Copying a blob may result in it being locked.
Solution: Reset v_lock. (Ken Takata, closes #4648)
|
|
Problem: Alloc() returning "char_u *" causes a lot of type casts.
Solution: Have it return "void *". (Mike Williams) Define ALLOC_ONE() to
check the simple allocations.
|
|
Problem: May use NULL pointer when out of memory. (Coverity)
Solution: Check for blob_alloc() returning NULL.
|
|
Problem: Negative index doesn't work for Blob.
Solution: Make it work, add a test. (closes #3856)
|
|
Problem: Changing a blob while iterating over it works strangely.
Solution: Make a copy of the Blob before iterating.
|
|
Problem: String format of a Blob can't be parsed back.
Solution: Use 0z format.
|
|
Problem: Giving error messages is not flexible.
Solution: Add semsg(). Change argument from "char_u *" to "char *", also
for msg() and get rid of most MSG macros. (Ozaki Kiichi, closes
#3302) Also make emsg() accept a "char *" argument. Get rid of
an enormous number of type casts.
|
|
Problem: Viminfo with Blob is not tested.
Solution: Extend the viminfo test. Fix reading a blob. Fixed storing a
special variable value.
|
|
Problem: Code for Blob not sufficiently tested.
Solution: Add more tests. Fix uncovered crash. Add test_null_blob().
|
|
Problem: Cannot handle binary data.
Solution: Add the Blob type. (Yasuhiro Matsumoto, closes #3638)
|