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: Functionality for signs is spread out over several files.
Solution: Move most of the sign functionality into sign.c. (Yegappan
Lakshmanan, closes#3751)
Problem: Deleting signs and completion for :sign is insufficient.
Solution: Add deleting signs in a specified or any group from the current
cursor location. Add group and priority to sign command
completion. Add tests for different sign unplace commands. Update
help text. Add tests for sign jump with group. Update help for
sign jump. (Yegappan Lakshmanan, closes#3731)
Problem: Placing signs can be complicated.
Solution: Add functions for defining and placing signs. Introduce a group
name to avoid different plugins using the same signs. (Yegappan
Lakshmanan, closes#3652)
Problem: :argedit does not reuse an empty unnamed buffer.
Solution: Add the BLN_CURBUF flag and fix all the side effects. (Christian
Brabandt, closes#2713)
Problem: Get "no write since last change" error in terminal window.
Solution: Use another message when closing a terminal window. Make ":quit!"
also end the job.
Problem: There may be side effects when a channel appends to a buffer that
is not the current buffer.
Solution: Properly switch to another buffer before appending. (Yasuhiro
Matsumoto, closes#1926, closes#1937)
Problem: When Python adds lines to another buffer the cursor position is
wrong, it might be below the last line causing ml_get errors.
(Vlad Irnov)
Solution: Temporarily change the current window, so that marks are corrected
properly.
Problem: Crash when a BufWinLeave autocommand closes the only other window.
(Daniel Hunt)
Solution: Abort closing a buffer when it becomes the only one.