Problem: Recursive use of getcmdline() still not protected.
Solution: Instead of saving the command buffer when making a call which may
cause recursiveness, save the buffer when actually being called
recursively.
Problem: Cannot get the script line number when executing a function.
Solution: Store the line number besides the script ID. (Ozaki Kiichi,
closes#3362) Also display the line number with ":verbose set".
Problem: When a mapping to <Nop> times out the next mapping is skipped.
Solution: Reset "timedout" when waiting for a character. (Christian
Brabandt, closes#2921)
Problem: Cannot tell whether a register is being used for executing or
recording.
Solution: Add reg_executing() and reg_recording(). (Hirohito Higashi,
closes#2745) Rename the global variables for consistency. Store
the register name in reg_executing.
Problem: Using one item array size declaration is misleading.
Solution: Instead of using "[1]" and actually using a larger array, use
"[]". This is to verify that this C99 feature works for all
compilers.
Problem: Slow redrawing with DirectX.
Solution: Avoid calling gui_mch_flush() unnecessarily, especially when
updating the cursor. (Ken Takata, closes#2560)
Problem: balloon_show() only works in terminal when compiled with the GUI.
Solution: Add FEAT_BEVAL_GUI and refactor to move common code out of the GUI
specific file.
Problem: Cannot use 'balloonexpr' in a terminal.
Solution: Add 'balloonevalterm' and add code to handle mouse movements in a
terminal. Initial implementation for Unix with GUI.
Problem: Mac features are confusing.
Solution: Make feature names more consistent, add "osxdarwin". Rename
feature flags, cleanup Mac code. (Kazunobu Kuriyama, closes#2178)
Problem: FEAT_WINDOWS adds a lot of #ifdefs while it is nearly always
enabled and only adds 7% to the binary size of the tiny build.
Solution: Graduate FEAT_WINDOWS.
Problem: When a function invoked from a timer calls confirm() and the user
types CTRL-C then Vim hangs.
Solution: Reset typebuf_was_filled. (Ozaki Kiichi, closes#1791)
Problem: Cursor disappears after silent mapping. (Ramel Eshed)
Solution: Do restore the cursor when it was changed, but don't change it in
the first place for a silent mapping.
Problem: Saving the redo buffer only works one time, resulting in the "."
command not working well for a function call inside another
function call. (Ingo Karkat)
Solution: Save the redo buffer at every user function call. (closes#1619)
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: :filter does not work for many commands. Can only get matching
messages.
Solution: Make :filter work for :command, :map, :list, :number and :print.
Make ":filter!" show non-matching lines.
Problem: Sourcing a script where a character has 0x80 as a second byte does
not work. (Filipe L B Correia)
Solution: Turn 0x80 into K_SPECIAL KS_SPECIAL KE_FILLER. (Christian
Brabandt, closes#728) Add a test case.
Problem: When waiting for a character is interrupted by receiving channel
data and the first character of a mapping was typed, the mapping
times out. (Ramel Eshed)
Solution: When dealing with channel data don't return from mch_inchar().
Problem: Using old function name in comment. More functions should start
with test_.
Solution: Rename function in comment. (Higashi Higashi) Rename
disable_char_avail_for_testing() to test_disable_char_avail().
And alloc_fail() to test_alloc_fail().
Problem: Cannot detect a crash in tests when caused by garbagecollect().
Solution: Add garbagecollect_for_testing(). Do not free a job if is still
useful.