Problem: Writing tests for Vim script is hard.
Solution: Add assertEqual(), assertFalse() and assertTrue() functions. Add
the v:errors variable. Add the runtest script. Add a first new
style test script.
Problem: When running out of memory while copying a dict memory may be
freed twice. (ZyX)
Solution: Do not call the garbage collector when running out of memory.
Problem: When doing an upwards search without wildcards the search fails if
the initial directory doesn't exist.
Solution: Fix the non-wildcard case. (Stefan Kempf)
Problem: Crash when changing the 'tags' option from a remote command.
(Benjamin Fritz)
Solution: Instead of executing messages immediately, use a queue, like for
netbeans. (James Kolb)
Problem: Searching for a character matches an illegal byte and causes
invalid memory access. (Dominique Pelle)
Solution: Do not match an invalid byte when search for a character in a
string. Fix equivalence classes using negative numbers, which
result in illegal bytes.
Problem: Using getchar() in an expression mapping may result in
K_CURSORHOLD, which can't be recognized.
Solution: Add the <CursorHold> key. (Hirohito Higashi)
Problem: In some situations, when setting up an environment to trigger an
autocommand, the environment is not properly restored.
Solution: Check the return value of switch_win() and call restore_win()
always. (Daniel Hahler)
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: Cannot wrap lines taking indent into account.
Solution: Add the 'breakindent' option. (many authors, final improvements by
Christian Brabandt)
Problem: globpath() returns a string, making it difficult to get a list of
matches. (Greg Novack)
Solution: Add an optional argument like with glob(). (Adnan Zafar)
Problem: Some tests fail on MS-Windows.
Solution: Fix path separators in test 89 and 96. Omit test 97, escaping
works differently. Make findfile() work on MS-Windows.
Problem: findfile() directory matching does not work when a star follows
text. (Markus Braun)
Solution: Make a wildcard work properly. (Christian Brabandt)
Problem: Filename completion with 'fileignorecase' does not work for
multi-byte characters.
Solution: Make 'fileignorecase' work properly. (Hirohito Higashi)
Problem: On some systems case of file names is always ignored, on others
never.
Solution: Add the 'fileignorecase' option to control this at runtime.
Implies 'wildignorecase'.
Problem: Size of memory does not fit in 32 bit unsigned.
Solution: Use Kbyte instead of byte. Call GlobalMemoryStatusEx() instead of
GlobalMemoryStatus() when available.
Problem: Crash when a BufWinLeave autocommand closes the only other window.
(Daniel Hunt)
Solution: Abort closing a buffer when it becomes the only one.
Problem: Can't properly escape commands for cmd.exe.
Solution: Default 'shellxquote' to '('. Append ')' to make '(command)'.
No need to use "/s" for 'shellcmdflag'.
Problem: When xterm gets back the function keys it may delete the urxvt
mouse termcap code.
Solution: Check for the whole code, not just the start. (Egmont Koblinger)
Problem: ":helpgrep" does not work properly when 'encoding' is not utf-8 or
latin1.
Solution: Convert non-ascii lines to 'encoding'. (Yasuhiro Matsumoto)
Problem: The str2special() function doesn't handle multi-byte characters
properly.
Solution: Recognize multi-byte characters. (partly by Vladimir Vichniakov)