patch 7.4.1819
Problem:    Compiler warnings when sprintf() is a macro.
Solution:   Don't interrupt sprintf() with an #ifdef. (Michael Jarvis,
            closes #788)
diff --git a/src/term.c b/src/term.c
index 4af9aeb..b9af731 100644
--- a/src/term.c
+++ b/src/term.c
@@ -2630,12 +2630,12 @@
 		  || STRCMP(s + i + 1, "%dm") == 0)
 	      && (s[i] == '3' || s[i] == '4'))
     {
-	sprintf(buf,
 #ifdef TERMINFO
-		"%s%s%%p1%%dm",
+	char *format = "%s%s%%p1%%dm";
 #else
-		"%s%s%%dm",
+	char *format = "%s%s%%dm";
 #endif
+	sprintf(buf, format,
 		i == 2 ? IF_EB("\033[", ESC_STR "[") : "\233",
 		s[i] == '3' ? (n >= 16 ? "38;5;" : "9")
 			    : (n >= 16 ? "48;5;" : "10"));