Problem: When making a character lower case with tolower() changes the byte
cound, it is not made lower case.
Solution: Add strlow_save(). (Dominique Pelle, closes#1406)
Problem: Vim defines a mch_memmove() function but it doesn't work, thus is
always unused.
Solution: Remove the mch_memmove implementation. (suggested by Dominique
Pelle)
Problem: The buffer used to store a key name theoreticaly could be too
small. (Coverity)
Solution: Count all possible modifier characters. Add a check for the
length just in case.
Problem: When a channel callback consumes a lot of time Vim becomes
unresponsive. (skywind)
Solution: Bail out of checking channel readahead after 100 msec.
Problem: Cannot make Vim fail on an internal error.
Solution: Add IEMSG() and IEMSG2(). (Domenique Pelle) Avoid reporting an
internal error without mentioning where.
Problem: Code for MS-Windows is complicated because of the exceptions for
old systems.
Solution: Drop support for MS-Windows older than Windows XP. (Ken Takata)
Problem: Cannot map <M-">. (Stephen Riehm)
Solution: Solve the memory access problem in another way. (Dominique Pelle)
Allow for using <M-\"> in a string.
Problem: Using function() with a name will find another function when it is
redefined.
Solution: Add funcref(). Refer to lambda using a partial. Fix several
reference counting issues.
Problem: On MS-Windows large files (> 2Gbyte) cause problems.
Solution: Use "off_T" instead of "off_t". Use "stat_T" instead of "struct
stat". Use 64 bit system functions if available. (Ken Takata)
Problem: Using 32-bit Perl with 64-bit time_t causes memory corruption.
(Christian Brabandt)
Solution: Use time_T instead of time_t for global variables. (Ken Takata)
Problem: The versplit feature makes the code uneccessary complicated.
Solution: Remove FEAT_VERTSPLIT, always support vertical splits when
FEAT_WINDOWS is defined.
Problem: Channel test fails on Win32 console.
Solution: Don't sleep when timeout is zero. Call channel_wait() before
channel_read(). Channels are not polled during ":sleep". (Yukihiro
Nakadaira)
Problem: New lines in the viminfo file are dropped.
Solution: Copy lines starting with "|". Fix that when using :rviminfo in a
function global variables were restored as function-local
variables.
Problem: Need several lines to verify a command produces an error.
Solution: Add assert_fails(). (suggested by Nikolay Pavlov)
Make the quickfix alloc test actually work.
Problem: Alloc_id depends on numbers, may use the same one twice. It's not
clear from the number what it's for.
Solution: Use an enum. Add a function to lookup the enum value from the
name.