patch 8.0.1681: the format attribute fails with MinGW
Problem: The format attribute fails with MinGW. (John Marriott)
Solution: Don't use the format attribute with MinGW.
diff --git a/src/channel.c b/src/channel.c
index 0f2e52b..88c53b7 100644
--- a/src/channel.c
+++ b/src/channel.c
@@ -179,8 +179,8 @@
static void
ch_error(channel_T *ch, const char *fmt, ...)
-#ifdef __GNUC__
-__attribute__((format(printf, 2, 3)))
+#ifdef USE_PRINTF_FORMAT_ATTRIBUTE
+ __attribute__((format(printf, 2, 3)))
#endif
;
diff --git a/src/proto.h b/src/proto.h
index 231c53f..655b72c 100644
--- a/src/proto.h
+++ b/src/proto.h
@@ -120,7 +120,7 @@
_RTLENTRYF
# endif
vim_snprintf_add(char *, size_t, char *, ...)
-#ifdef __GNUC__
+#ifdef USE_PRINTF_FORMAT_ATTRIBUTE
__attribute__((format(printf, 3, 4)))
#endif
;
@@ -130,7 +130,7 @@
_RTLENTRYF
# endif
vim_snprintf(char *, size_t, char *, ...)
-#ifdef __GNUC__
+#ifdef USE_PRINTF_FORMAT_ATTRIBUTE
__attribute__((format(printf, 3, 4)))
#endif
;
@@ -223,7 +223,7 @@
/* Not generated automatically, to add extra attribute. */
void ch_log(channel_T *ch, const char *fmt, ...)
-#ifdef __GNUC__
+#ifdef USE_PRINTF_FORMAT_ATTRIBUTE
__attribute__((format(printf, 2, 3)))
#endif
;
diff --git a/src/version.c b/src/version.c
index f0a21b3..d162de5 100644
--- a/src/version.c
+++ b/src/version.c
@@ -763,6 +763,8 @@
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 1681,
+/**/
1680,
/**/
1679,
diff --git a/src/vim.h b/src/vim.h
index 626c0ad..4b41857 100644
--- a/src/vim.h
+++ b/src/vim.h
@@ -2085,6 +2085,10 @@
typedef struct stat stat_T;
#endif
+#if defined(__GNUC__) && !defined(__MINGW32__)
+# define USE_PRINTF_FORMAT_ATTRIBUTE
+#endif
+
typedef enum
{
ASSERT_EQUAL,