Problem: Message test only runs with one encoding. (Dominique Pelle)
Solution: Run the test with "utf-8" and "latin1". Fix underflow. (related
to #5410)
Problem: Execution stack is incomplete and inefficient.
Solution: Introduce a proper execution stack and use it instead of
sourcing_name/sourcing_lnum. Create a string only when used.
Problem: With a long file name the hit-enter prompt appears. (J. Lewis
Muir)
Solution: When checking for text to wrap don't do this when outputing a CR.
Problem: Mouse support not always available.
Solution: Enable mouse support also in tiny version. Do not define
FEAT_MOUSE_XTERM on MS-Windows (didn't really work).
Problem: Using NULL pointer when out of memory.
Solution: Bail out or skip the code using the pointer. (Zu-Ming Jiang,
closes#4805, closes#4843, closes#4939, closes#4844)
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: Using "int" for alloc() often results in compiler warnings.
Solution: Use "size_t" and remove type casts. Remove alloc_check(), Vim
only works with 32 bit ints anyway.
Problem: Borland support is outdated and doesn't work.
Solution: Remove Borland support, there are other (free) compilers
available. (Thomas Dziedzic, Ken Takata, closes#4364)
Problem: Macros for MS-Windows are inconsistent, using "32", "3264 and
others.
Solution: Use MSWIN for all MS-Windows builds. Use FEAT_GUI_MSWIN for the
GUI build. (Hirohito Higashi, closes#3932)
Problem: MS-Windows: startup messages are not converted.
Solution: Convert messages when the current codepage differs from
'encoding'. (Yasuhiro Matsumoto, closes#3914)
Problem: Showing two characters for tab is limited.
Solution: Allow for a third character for "tab:" in 'listchars'. (Nathaniel
Braun, Ken Takata, closes#3810)
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: :echomsg and :echoerr do not handle List and Dict like :echo does.
(Daniel Hahler)
Solution: Be more tolerant about the expression result type.
Problem: Expression evaluation may repeat an error message. (Jason
Franklin)
Solution: Increment did_emsg and check for the value when giving an error
for the echo command.
Problem: Translators don't always understand the maintainer message.
Solution: Add a comment that ends up in the generated po file. (Christian
Brabandt, closes#3037)
Problem: In terminal window, typing : at more prompt, inserts ':' instead
of starting another Ex command.
Solution: Add skip_term_loop and set it when putting ':' in the typeahead
buffer.
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.