Problem: When the last sign is deleted the signcolumn may not be removed
even though 'signcolumn' is "auto".
Solution: When deleting the last sign redraw the buffer. (Dominique Pelle,
closes#3803, closes#3804)
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: Windows are updated for every added/deleted sign.
Solution: Do not call update_debug_sign(). Only redraw when the line with
the sign is visible. (idea from neovim #9479)
Problem: ":sign place" only uses the current buffer.
Solution: List signs for all buffers when there is no buffer argument.
Fix error message for invalid buffer name in sign_place().
(Yegappan Lakshmanan, closes#3774)
Problem: Sign message not translated and inconsistent spacing.
Solution: Add _() for translation. Add a space. (Ken Takata) Also use
MSG_BUF_LEN instead of BUFSIZ.
Problem: ":sign place" requires the buffer argument.
Solution: Make the argument optional. Also update the help and clean up the
sign test. (Yegappan Lakshmanan, closes#3767)
Problem: Functionality for signs is spread out over several files.
Solution: Move most of the sign functionality into sign.c. (Yegappan
Lakshmanan, closes#3751)