From 167632fcddd32656a737fa5568504fff12d04f70 Mon Sep 17 00:00:00 2001
From: Bram Moolenaar <Bram@vim.org>
Date: Wed, 26 May 2010 21:42:54 +0200
Subject: [PATCH] Fix definition of UINT_PTR for 64 bit systems.

---
 runtime/doc/todo.txt  | 4 ++++
 src/GvimExt/gvimext.h | 2 +-
 src/gui_w32.c         | 5 +++--
 src/if_ole.cpp        | 3 ++-
 4 files changed, 10 insertions(+), 4 deletions(-)

diff --git a/runtime/doc/todo.txt b/runtime/doc/todo.txt
index b1e58be671..572a4fa5f9 100644
--- a/runtime/doc/todo.txt
+++ b/runtime/doc/todo.txt
@@ -36,6 +36,10 @@ to not run autocommands when leaving Vim? (James Vega, 2010 May 23)
 Invalid memory access when deleting funcref variable.  Patch by Lech Lorens,
 2010 May 25.
 
+Fixes for broken URLs:
+    Benjamin Haskell, 2010 May 25
+    Christian Brabandt, 2010 May 26, two messages
+
 Cursor positioning wrong with 0x200e character. (John Becket, 2010 May 6)
 
 E315 when trying to change a file in FileChangedRO autocommand event.
diff --git a/src/GvimExt/gvimext.h b/src/GvimExt/gvimext.h
index 3b6b40b104..59747c90f8 100644
--- a/src/GvimExt/gvimext.h
+++ b/src/GvimExt/gvimext.h
@@ -44,7 +44,7 @@
 #include <shlobj.h>
 
 /* Accommodate old versions of VC that don't have a modern Platform SDK */
-#if defined(_MSC_VER) && _MSC_VER < 1300
+#if (defined(_MSC_VER) && _MSC_VER < 1300) || !defined(MAXULONG_PTR)
 # undef  UINT_PTR
 # define UINT_PTR UINT
 #endif
diff --git a/src/gui_w32.c b/src/gui_w32.c
index 9739815775..8a663d98bd 100644
--- a/src/gui_w32.c
+++ b/src/gui_w32.c
@@ -183,9 +183,10 @@
 # define ID_BEVAL_TOOLTIP   200
 # define BEVAL_TEXT_LEN	    MAXPATHL
 
-#if _MSC_VER < 1300 || !defined(UINT_PTR)
+#if (defined(_MSC_VER) && _MSC_VER < 1300) || !defined(MAXULONG_PTR)
 /* Work around old versions of basetsd.h which wrongly declares
  * UINT_PTR as unsigned long. */
+# undef  UINT_PTR
 # define UINT_PTR UINT
 #endif
 
@@ -4697,7 +4698,7 @@ gui_mch_enable_beval_area(beval)
     if (beval == NULL)
 	return;
     // TRACE0("gui_mch_enable_beval_area {{{");
-    BevalTimerId = SetTimer(s_textArea, 0, p_bdlay / 2, BevalTimerProc);
+    BevalTimerId = SetTimer(s_textArea, 0, (UINT)(p_bdlay / 2), BevalTimerProc);
     // TRACE0("gui_mch_enable_beval_area }}}");
 }
 
diff --git a/src/if_ole.cpp b/src/if_ole.cpp
index fc3077dfe0..1e5eee65a1 100644
--- a/src/if_ole.cpp
+++ b/src/if_ole.cpp
@@ -34,9 +34,10 @@ extern HWND s_hwnd;
 extern HWND vim_parent_hwnd;
 }
 
-#if _MSC_VER < 1300
+#if (defined(_MSC_VER) && _MSC_VER < 1300) || !defined(MAXULONG_PTR)
 /* Work around old versions of basetsd.h which wrongly declares
  * UINT_PTR as unsigned long */
+# undef UINT_PTR
 # define UINT_PTR UINT
 #endif
 
-- 
GitLab