patch 8.1.0743: giving error messages is not flexible
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.
diff --git a/src/proto/message.pro b/src/proto/message.pro
index f8b6f68..9feeefb 100644
--- a/src/proto/message.pro
+++ b/src/proto/message.pro
@@ -10,13 +10,10 @@
int emsg_not_now(void);
void ignore_error_for_testing(char_u *error);
void do_perror(char *msg);
-int emsg(char_u *s);
-int emsg2(char_u *s, char_u *a1);
-int emsg3(char_u *s, char_u *a1, char_u *a2);
-int emsgn(char_u *s, long n);
-void iemsg(char_u *s);
-void iemsg2(char_u *s, char_u *a1);
-void iemsgn(char_u *s, long n);
+int emsg(char *s);
+int semsg(const char *s, ...);
+void iemsg(char *s);
+void siemsg(const char *s, ...);
void internal_error(char *where);
void emsg_invreg(int name);
char_u *msg_trunc_attr(char_u *s, int force, int attr);