From 4a9b19ace80d218ca85e4e10a32ed8d0135a48a5 Mon Sep 17 00:00:00 2001
From: Bram Moolenaar <Bram@vim.org>
Date: Tue, 18 May 2010 21:17:10 +0200
Subject: [PATCH] Fix build on Cygwin and MingW.

---
 src/blowfish.c |  8 +++++---
 src/vim.h      | 12 +++++++++---
 2 files changed, 14 insertions(+), 6 deletions(-)

diff --git a/src/blowfish.c b/src/blowfish.c
index 10708871e0..ee64db65c9 100644
--- a/src/blowfish.c
+++ b/src/blowfish.c
@@ -41,7 +41,7 @@ static void bf_e_cblock __ARGS((char_u *block));
 static int bf_check_tables __ARGS((uint32_t ipa[18], uint32_t sbi[4][256], uint32_t val));
 static int bf_self_test __ARGS((void));
 
-// Blowfish code
+/* Blowfish code */
 static uint32_t pax[18];
 static uint32_t ipa[18] = {
     0x243f6a88u, 0x85a308d3u, 0x13198a2eu,
@@ -470,8 +470,10 @@ typedef struct {
     uint32_t keysum;
 } struct_bf_test_data;
 
-// Assert bf(password, plaintxt) is cryptxt.
-// Assert csum(pax sbx(password)) is keysum.
+/*
+ * Assert bf(password, plaintxt) is cryptxt.
+ * Assert csum(pax sbx(password)) is keysum.
+ */
 static struct_bf_test_data bf_test_data[] = {
   {
       "password",
diff --git a/src/vim.h b/src/vim.h
index 1264a84d70..fb999b290b 100644
--- a/src/vim.h
+++ b/src/vim.h
@@ -1980,6 +1980,12 @@ typedef int VimClipboard;	/* This is required for the prototypes. */
 
 #endif
 
+#if !defined(HAVE_CONFIG_H) && !defined(uint32_t) \
+	&& (defined(__CYGWIN32__) || defined(__MINGW32__))
+  /* Assuming that MingW and Cygwin do not typedef uint32_t. */
+# define uint32_t unsigned int
+#endif
+
 /* ISSYMLINK(mode) tests if a file is a symbolic link. */
 #if (defined(S_IFMT) && defined(S_IFLNK)) || defined(S_ISLNK)
 # define HAVE_ISSYMLINK
@@ -2067,9 +2073,9 @@ typedef int VimClipboard;	/* This is required for the prototypes. */
 
 /* uint32_t may be defined by configure, but perh.h may indirectly include
  * stdint.h which tries to typedef uint32_t and fails. */
-#ifdef uint32_t
-# undef uint32_t
-#endif
+# ifdef uint32_t
+#  undef uint32_t
+# endif
 
 # ifdef __BORLANDC__
   /* Borland has the structure stati64 but not _stati64 */
-- 
GitLab