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: When writing viminfo merging current history with history in
viminfo may drop recent history entries.
Solution: Add new format for viminfo lines, use it for history entries. Use
a timestamp for ordering the entries. Add test_settime().
Add the viminfo version. Does not do merging on timestamp yet.
Problem: Leaking memory when there is a cycle involving a job and a
partial.
Solution: Add a copyID to job and channel. Set references in items referred
by them. Go through all jobs and channels to find unreferenced
items. Also, decrement reference counts when garbage collecting.
Problem: The versplit feature makes the code uneccessary complicated.
Solution: Remove FEAT_VERTSPLIT, always support vertical splits when
FEAT_WINDOWS is defined.
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.
Problem: It is not possible to test code that is only reached when memory
allocation fails.
Solution: Add the alloc_fail() function. Try it out with :vimgrep.
Problem: The default conceal character is documented to be a space but it's
initially a dash. (Christian Brabandt)
Solution: Make the intial value a space.
Problem: Having CTRL-C interrupt or not does not check the mode of the
mapping. (Ingo Karkat)
Solution: Use a bitmask with the map mode. (Christian Brabandt)
Problem: Encryption implementation is messy. Blowfish encryption has a
weakness.
Solution: Refactor the encryption, store the state in an allocated struct
instead of using a save/restore mechanism. Introduce the
"blowfish2" method, which does not have the weakness and encrypts
the whole undo file. (largely by David Leadbeater)
Problem: Still sometimes Vim enters Replace mode when starting up.
Solution: Use a different solution in detecting the termresponse and
location response. (Hayaki Saito)
Problem: Possible crash when an BufLeave autocommand deletes the buffer.
Solution: Check for the window pointer being valid. Postpone freeing the
window until autocommands are done. (Yasuhiro Matsumoto)
Problem: Making 'ttymouse' empty after the xterm version was requested
causes problems. (Elijah Griffin)
Solution: Do not check for DEC mouse sequences when the xterm version was
requested. Also don't request the xterm version when DEC mouse
was enabled.
Problem: Crash when BufAdd autocommand wipes out the buffer.
Solution: Check for buffer to still be valid. Postpone freeing the buffer
structure. (Hirohito Higashi)
Problem: Using "gf" in a changed buffer suggests adding "!", which is not
possible. (Tim Chase)
Solution: Pass a flag to check_changed() wether adding ! make sense.
Problem: Matchparen does not update match when using auto-indenting.
(Marc Aldorasi)
Solution: Add the TextChanged and TextChangedI autocommand events.
Problem: Clipboard does not work on Win32 when compiled with Cygwin.
Solution: Move the Win32 clipboard code to a separate file and use it when
building with os_unix.c. (Frodak Baksik, Ken Takata)
Problem: Cannot catch the error caused by a foldopen when there is no fold.
(ZyX, Issue 48)
Solution: Do not break out of the loop early when inside try/catch.
(Christian Brabandt) Except when there is a syntax error.
Problem: 'clipboard' "autoselect" only applies to the * register. (Sergey
Vakulenko)
Solution: Make 'autoselect' work for the + register. (Christian Brabant)
Add the "autoselectplus" option in 'clipboard' and the "P" flag in
'guioptions'.
Problem: With '$' in 'cpoptions' the $ is not displayed in the first
column.
Solution: Use -1 instead of 0 as a special value. (Hideki Eiraku and
Hirohito Higashi)
Problem: When the clipboard isn't supported: ":yank*" gives a confusing
error message.
Solution: Specifically mention that the register name is invalid.
(Jean-Rene David)
Problem: When writing a file in binary mode it may be missing the final EOL
if a file previously read was missing the EOL. (Kevin Goodsell)
Solution: Move the write_no_eol_lnum into the buffer struct.