changeset 27370:584f91cc2508 v8.2.4213

patch 8.2.4213: too much code for supporting old MSVC versions Commit: https://github.com/vim/vim/commit/76687d27173e64d739ea371751697c03ad0821ef Author: K.Takata <kentkt@csc.jp> Date: Tue Jan 25 10:31:37 2022 +0000 patch 8.2.4213: too much code for supporting old MSVC versions Problem: Too much code for supporting old MSVC versions. Solution: Remove MSVC 2003 support. (Ken Takata, closes https://github.com/vim/vim/issues/9623)
author Bram Moolenaar <Bram@vim.org>
date Tue, 25 Jan 2022 11:45:06 +0100
parents 914c181ea864
children 718b899f73ea
files Filelist src/INSTALLpc.txt src/Make_mvc.mak src/gui_w32.c src/msvcsetup.bat src/os_win32.c src/version.c
diffstat 7 files changed, 15 insertions(+), 358 deletions(-) [+]
line wrap: on
line diff
--- a/Filelist
+++ b/Filelist
@@ -543,7 +543,6 @@ SRC_DOS =	\
 		tools/rename.bat \
 		src/bigvim.bat \
 		src/bigvim64.bat \
-		src/msvcsetup.bat \
 		src/msvc2008.bat \
 		src/msvc2010.bat \
 		src/msvc2015.bat \
--- a/src/INSTALLpc.txt
+++ b/src/INSTALLpc.txt
@@ -155,83 +155,8 @@ OLDER VERSIONS
 The minimal supported version is Windows XP. Building with older compilers
 might still work, but these instructions might be outdated.
 
-If you need the executable to run on Windows 98 or ME, use the 2003 one
-|msvc-2003-toolkit| or |msvc-2005-express|, and use the source code before
-8.0.0029.
-
-Visual C++ Toolkit 2003				*msvc-2003-toolkit*
------------------------
-
-NOTE: this most likely does not work
-
-You could download the Microsoft Visual C++ Toolkit 2003 from
-    http://msdn.microsoft.com/visualc/vctoolkit2003/
-Unfortunately this URL is no longer valid.  Unofficial downloads appear to be
-available from links mentioned on these pages (use at your own risk):
-   http://www.filewatcher.com/m/VCToolkitSetup.exe.32952488.0.0.html
-   http://feargame.net/wiki/index.php?title=Building_Source_with_the_VC2003_Toolkit
-
-This contains the command-line tools (compiler, linker, CRT headers,
-and libraries) for Visual Studio .NET 2003, but not the Visual Studio IDE.
-To compile and debug Vim with the VC2003 Toolkit, you will also need
-|ms-platform-sdk|, |dotnet-1.1-redist|, |dotnet-1.1-sdk|,
-and |windbg-download|.
-
-It's easier to download Visual C++ 2008 Express Edition, |msvc-2008-express|,
-which is freely available in perpetuity.
-
-The free Code::Blocks IDE works with the VC2003 Toolkit, as described at
-    http://wiki.codeblocks.org/index.php?title=Integrating_Microsoft_Visual_Toolkit_2003_with_Code::Blocks_IDE
-(This site also takes you through configuring a number of other
-free C compilers for Win32.)
-
-To compile Vim using the VC2003 Toolkit and Make_mvc.mak, you must first
-execute the following commands in a cmd.exe window (the msvcsetup.bat batch
-file can be used):
-
-    set PATH=%SystemRoot%\Microsoft.NET\Framework\v1.1.4322;%PATH%
-    call "%VCToolkitInstallDir%vcvars32.bat"
-    set MSVCVer=7.1
-    call "%ProgramFiles%\Microsoft Platform SDK\SetEnv.Cmd"
-    set LIB=%ProgramFiles%\Microsoft Visual Studio .NET 2003\Vc7\lib;%LIB%
-
-Now you can build Vim with Make_mvc.mak.
-
-
-Getting the Windows Platform SDK	    *ms-platform-sdk*
-
-You will also need a copy of the Windows Platform SDK.  Specifically, you need
-the Windows Core SDK subset of the Platform SDK, which contains the Windows
-headers and libraries.  You need to search for it, Microsoft keeps changing
-the URL.
-
-
-Getting the .NET Framework 1.1 Runtime      *dotnet-1.1-redist*
-
-You need the .NET Framework 1.1 Redistributable Package from
-    http://www.microsoft.com/downloads/details.aspx?familyid=262d25e3-f589-4842-8157-034d1e7cf3a3
-or from Windows Update:
-    http://windowsupdate.microsoft.com/
-This is needed to install |dotnet-1.1-sdk|. It also contains cvtres.exe,
-which is needed to link Vim.
-
-
-Getting the .NET Framework 1.1 SDK	    *dotnet-1.1-sdk*
-
-You need the .NET Framework 1.1 SDK from
-    http://www.microsoft.com/downloads/details.aspx?familyid=9b3a2ca6-3647-4070-9f41-a333c6b9181d
-This contains some additional libraries needed to compile Vim,
-such as msvcrt.lib. You must install |dotnet-1.1-redist| before
-installing the .NET 1.1 SDK.
-
-
-Getting the WinDbg debugger		    *windbg-download*
-
-The Debugging Tools for Windows can be downloaded from
-    http://www.microsoft.com/whdc/devtools/debugging/default.mspx
-This includes the WinDbg debugger, which you will want if you ever need
-to debug Vim itself. An earlier version of the Debugging Tools
-is also available through the Platform SDK, |ms-platform-sdk|.
+If you need the executable to run on Windows 98 or ME, use the 2005 one
+|msvc-2005-express|, and use the source code before 8.0.0029.
 
 
 Visual C++ 2005 Express Edition       *msvc-2005-express*
--- a/src/Make_mvc.mak
+++ b/src/Make_mvc.mak
@@ -305,10 +305,6 @@ MSVCRT_NAME = msvcr$(MSVCRT_VER)
 MSVCRT_NAME = vcruntime$(MSVCRT_VER)
 !endif
 
-!if $(MSVC_MAJOR) == 6
-CPU = ix86
-!endif
-
 ### Set the default $(WINVER) to make it work with VC++7.0 (VS.NET)
 !ifndef WINVER
 WINVER = 0x0501
@@ -707,8 +703,8 @@ RCFLAGS = $(rcflags) $(rcvars) -DNDEBUG
 CFLAGS = $(CFLAGS) /MD
 LIBC = msvcrt.lib
 ! else
+CFLAGS = $(CFLAGS) /Zl /MT
 LIBC = libcmt.lib
-CFLAGS = $(CFLAGS) /Zl /MT
 ! endif
 
 !else  # DEBUG
@@ -719,18 +715,14 @@ DEBUGINFO = /ZI
 ! endif
 CFLAGS = $(CFLAGS) -D_DEBUG -DDEBUG /Od
 RCFLAGS = $(rcflags) $(rcvars) -D_DEBUG -DDEBUG
-# The /fixed:no is needed for Quantify. Assume not 4.? as unsupported in VC4.0.
-! if $(MSVC_MAJOR) == 4
-LIBC =
-! else
+# The /fixed:no is needed for Quantify.
 LIBC = /fixed:no
-! endif
 ! ifdef USE_MSVCRT
 CFLAGS = $(CFLAGS) /MDd
 LIBC = $(LIBC) msvcrtd.lib
 ! else
+CFLAGS = $(CFLAGS) /Zl /MTd
 LIBC = $(LIBC) libcmtd.lib
-CFLAGS = $(CFLAGS) /Zl /MTd
 ! endif
 
 !endif # DEBUG
@@ -799,7 +791,7 @@ OBJ = \
 	$(OUTDIR)\hashtab.obj \
 	$(OUTDIR)\help.obj \
 	$(OUTDIR)\highlight.obj \
-	$(OBJDIR)\if_cscope.obj \
+	$(OUTDIR)\if_cscope.obj \
 	$(OUTDIR)\indent.obj \
 	$(OUTDIR)\insexpand.obj \
 	$(OUTDIR)\json.obj \
--- a/src/gui_w32.c
+++ b/src/gui_w32.c
@@ -218,14 +218,6 @@ gui_mch_set_rendering_options(char_u *s)
 
 #define DLG_NONBUTTON_CONTROL	5000	// First ID of non-button controls
 
-#ifndef WM_XBUTTONDOWN // For Win2K / winME ONLY
-# define WM_XBUTTONDOWN		0x020B
-# define WM_XBUTTONUP		0x020C
-# define WM_XBUTTONDBLCLK	0x020D
-# define MK_XBUTTON1		0x0020
-# define MK_XBUTTON2		0x0040
-#endif
-
 #ifndef WM_DPICHANGED
 # define WM_DPICHANGED		0x02E0
 #endif
@@ -288,10 +280,6 @@ typedef int COLORREF;
 typedef int HCURSOR;
 #endif
 
-#ifndef GET_X_LPARAM
-# define GET_X_LPARAM(lp) ((int)(short)LOWORD(lp))
-#endif
-
 static void _OnPaint(HWND hwnd);
 static void fill_rect(const RECT *rcp, HBRUSH hbr, COLORREF color);
 static void clear_rect(RECT *rcp);
@@ -966,9 +954,6 @@ char_to_string(int ch, char_u *string, i
 	button = MOUSE_RIGHT;
     else if (s_uMsg == WM_XBUTTONDOWN || s_uMsg == WM_XBUTTONDBLCLK)
     {
-#ifndef GET_XBUTTON_WPARAM
-# define GET_XBUTTON_WPARAM(wParam)	(HIWORD(wParam))
-#endif
 	button = ((GET_XBUTTON_WPARAM(s_wParam) == 1) ? MOUSE_X1 : MOUSE_X2);
     }
     else if (s_uMsg == WM_CAPTURECHANGED)
@@ -2448,10 +2433,6 @@ gui_mch_show_toolbar(int showit)
 
     if (showit)
     {
-# ifndef TB_SETUNICODEFORMAT
-    // For older compilers.  We assume this never changes.
-#  define TB_SETUNICODEFORMAT 0x2005
-# endif
 	// Enable unicode support
 	SendMessage(s_toolbarhwnd, TB_SETUNICODEFORMAT, (WPARAM)TRUE,
 								(LPARAM)0);
@@ -2585,10 +2566,6 @@ gui_mch_update_tabline(void)
     if (s_tabhwnd == NULL)
 	return;
 
-# ifndef CCM_SETUNICODEFORMAT
-    // For older compilers.  We assume this never changes.
-#  define CCM_SETUNICODEFORMAT 0x2005
-# endif
     // Enable unicode support
     SendMessage(s_tabhwnd, CCM_SETUNICODEFORMAT, (WPARAM)TRUE, (LPARAM)0);
 
@@ -3418,10 +3395,6 @@ gui_mch_init_font(char_u *font_name, int
     return OK;
 }
 
-#ifndef WPF_RESTORETOMAXIMIZED
-# define WPF_RESTORETOMAXIMIZED 2   // just in case someone doesn't have it
-#endif
-
 /*
  * Return TRUE if the GUI window is maximized, filling the whole screen.
  * Also return TRUE if the window is snapped.
@@ -3905,113 +3878,6 @@ gui_mch_browsedir(char_u *title, char_u 
 # include "xpm_w32.h"
 #endif
 
-#ifdef __MINGW32__
-/*
- * Add a lot of missing defines.
- * They are not always missing, we need the #ifndef's.
- */
-# ifndef IsMinimized
-#  define     IsMinimized(hwnd)		IsIconic(hwnd)
-# endif
-# ifndef IsMaximized
-#  define     IsMaximized(hwnd)		IsZoomed(hwnd)
-# endif
-# ifndef SelectFont
-#  define     SelectFont(hdc, hfont)  ((HFONT)SelectObject((hdc), (HGDIOBJ)(HFONT)(hfont)))
-# endif
-# ifndef GetStockBrush
-#  define     GetStockBrush(i)     ((HBRUSH)GetStockObject(i))
-# endif
-# ifndef DeleteBrush
-#  define     DeleteBrush(hbr)     DeleteObject((HGDIOBJ)(HBRUSH)(hbr))
-# endif
-
-# ifndef HANDLE_WM_RBUTTONDBLCLK
-#  define HANDLE_WM_RBUTTONDBLCLK(hwnd, wParam, lParam, fn) \
-    ((fn)((hwnd), TRUE, (int)(short)LOWORD(lParam), (int)(short)HIWORD(lParam), (UINT)(wParam)), 0L)
-# endif
-# ifndef HANDLE_WM_MBUTTONUP
-#  define HANDLE_WM_MBUTTONUP(hwnd, wParam, lParam, fn) \
-    ((fn)((hwnd), (int)(short)LOWORD(lParam), (int)(short)HIWORD(lParam), (UINT)(wParam)), 0L)
-# endif
-# ifndef HANDLE_WM_MBUTTONDBLCLK
-#  define HANDLE_WM_MBUTTONDBLCLK(hwnd, wParam, lParam, fn) \
-    ((fn)((hwnd), TRUE, (int)(short)LOWORD(lParam), (int)(short)HIWORD(lParam), (UINT)(wParam)), 0L)
-# endif
-# ifndef HANDLE_WM_LBUTTONDBLCLK
-#  define HANDLE_WM_LBUTTONDBLCLK(hwnd, wParam, lParam, fn) \
-    ((fn)((hwnd), TRUE, (int)(short)LOWORD(lParam), (int)(short)HIWORD(lParam), (UINT)(wParam)), 0L)
-# endif
-# ifndef HANDLE_WM_RBUTTONDOWN
-#  define HANDLE_WM_RBUTTONDOWN(hwnd, wParam, lParam, fn) \
-    ((fn)((hwnd), FALSE, (int)(short)LOWORD(lParam), (int)(short)HIWORD(lParam), (UINT)(wParam)), 0L)
-# endif
-# ifndef HANDLE_WM_MOUSEMOVE
-#  define HANDLE_WM_MOUSEMOVE(hwnd, wParam, lParam, fn) \
-    ((fn)((hwnd), (int)(short)LOWORD(lParam), (int)(short)HIWORD(lParam), (UINT)(wParam)), 0L)
-# endif
-# ifndef HANDLE_WM_RBUTTONUP
-#  define HANDLE_WM_RBUTTONUP(hwnd, wParam, lParam, fn) \
-    ((fn)((hwnd), (int)(short)LOWORD(lParam), (int)(short)HIWORD(lParam), (UINT)(wParam)), 0L)
-# endif
-# ifndef HANDLE_WM_MBUTTONDOWN
-#  define HANDLE_WM_MBUTTONDOWN(hwnd, wParam, lParam, fn) \
-    ((fn)((hwnd), FALSE, (int)(short)LOWORD(lParam), (int)(short)HIWORD(lParam), (UINT)(wParam)), 0L)
-# endif
-# ifndef HANDLE_WM_LBUTTONUP
-#  define HANDLE_WM_LBUTTONUP(hwnd, wParam, lParam, fn) \
-    ((fn)((hwnd), (int)(short)LOWORD(lParam), (int)(short)HIWORD(lParam), (UINT)(wParam)), 0L)
-# endif
-# ifndef HANDLE_WM_LBUTTONDOWN
-#  define HANDLE_WM_LBUTTONDOWN(hwnd, wParam, lParam, fn) \
-    ((fn)((hwnd), FALSE, (int)(short)LOWORD(lParam), (int)(short)HIWORD(lParam), (UINT)(wParam)), 0L)
-# endif
-# ifndef HANDLE_WM_SYSCHAR
-#  define HANDLE_WM_SYSCHAR(hwnd, wParam, lParam, fn) \
-    ((fn)((hwnd), (TCHAR)(wParam), (int)(short)LOWORD(lParam)), 0L)
-# endif
-# ifndef HANDLE_WM_ACTIVATEAPP
-#  define HANDLE_WM_ACTIVATEAPP(hwnd, wParam, lParam, fn) \
-    ((fn)((hwnd), (BOOL)(wParam), (DWORD)(lParam)), 0L)
-# endif
-# ifndef HANDLE_WM_WINDOWPOSCHANGING
-#  define HANDLE_WM_WINDOWPOSCHANGING(hwnd, wParam, lParam, fn) \
-    (LRESULT)(DWORD)(BOOL)(fn)((hwnd), (LPWINDOWPOS)(lParam))
-# endif
-# ifndef HANDLE_WM_VSCROLL
-#  define HANDLE_WM_VSCROLL(hwnd, wParam, lParam, fn) \
-    ((fn)((hwnd), (HWND)(lParam), (UINT)(LOWORD(wParam)),  (int)(short)HIWORD(wParam)), 0L)
-# endif
-# ifndef HANDLE_WM_SETFOCUS
-#  define HANDLE_WM_SETFOCUS(hwnd, wParam, lParam, fn) \
-    ((fn)((hwnd), (HWND)(wParam)), 0L)
-# endif
-# ifndef HANDLE_WM_KILLFOCUS
-#  define HANDLE_WM_KILLFOCUS(hwnd, wParam, lParam, fn) \
-    ((fn)((hwnd), (HWND)(wParam)), 0L)
-# endif
-# ifndef HANDLE_WM_HSCROLL
-#  define HANDLE_WM_HSCROLL(hwnd, wParam, lParam, fn) \
-    ((fn)((hwnd), (HWND)(lParam), (UINT)(LOWORD(wParam)), (int)(short)HIWORD(wParam)), 0L)
-# endif
-# ifndef HANDLE_WM_DROPFILES
-#  define HANDLE_WM_DROPFILES(hwnd, wParam, lParam, fn) \
-    ((fn)((hwnd), (HDROP)(wParam)), 0L)
-# endif
-# ifndef HANDLE_WM_CHAR
-#  define HANDLE_WM_CHAR(hwnd, wParam, lParam, fn) \
-    ((fn)((hwnd), (TCHAR)(wParam), (int)(short)LOWORD(lParam)), 0L)
-# endif
-# ifndef HANDLE_WM_SYSDEADCHAR
-#  define HANDLE_WM_SYSDEADCHAR(hwnd, wParam, lParam, fn) \
-    ((fn)((hwnd), (TCHAR)(wParam), (int)(short)LOWORD(lParam)), 0L)
-# endif
-# ifndef HANDLE_WM_DEADCHAR
-#  define HANDLE_WM_DEADCHAR(hwnd, wParam, lParam, fn) \
-    ((fn)((hwnd), (TCHAR)(wParam), (int)(short)LOWORD(lParam)), 0L)
-# endif
-#endif // __MINGW32__
-
 
 // Some parameters for tearoff menus.  All in pixels.
 #define TEAROFF_PADDING_X	2
@@ -4021,12 +3887,6 @@ gui_mch_browsedir(char_u *title, char_u 
 #define TEAROFF_COLUMN_PADDING	3	// # spaces to pad column with.
 
 
-// For the Intellimouse:
-#ifndef WM_MOUSEWHEEL
-# define WM_MOUSEWHEEL	0x20a
-#endif
-
-
 #ifdef FEAT_BEVAL_GUI
 # define ID_BEVAL_TOOLTIP   200
 # define BEVAL_TEXT_LEN	    MAXPATHL
@@ -4034,86 +3894,8 @@ gui_mch_browsedir(char_u *title, char_u 
 static BalloonEval  *cur_beval = NULL;
 static UINT_PTR	    BevalTimerId = 0;
 static DWORD	    LastActivity = 0;
-
-
-typedef struct tagNMTTDISPINFO_NEW
-{
-    NMHDR      hdr;
-    LPSTR      lpszText;
-    char       szText[80];
-    HINSTANCE  hinst;
-    UINT       uFlags;
-    LPARAM     lParam;
-} NMTTDISPINFO_NEW;
-
-typedef struct tagTOOLINFOW_NEW
-{
-    UINT       cbSize;
-    UINT       uFlags;
-    HWND       hwnd;
-    UINT_PTR   uId;
-    RECT       rect;
-    HINSTANCE  hinst;
-    LPWSTR     lpszText;
-    LPARAM     lParam;
-    void       *lpReserved;
-} TOOLINFOW_NEW;
-
-typedef struct tagNMTTDISPINFOW_NEW
-{
-    NMHDR      hdr;
-    LPWSTR     lpszText;
-    WCHAR      szText[80];
-    HINSTANCE  hinst;
-    UINT       uFlags;
-    LPARAM     lParam;
-} NMTTDISPINFOW_NEW;
-
-
-# ifndef TTM_SETMAXTIPWIDTH
-#  define TTM_SETMAXTIPWIDTH	(WM_USER+24)
-# endif
-
-# ifndef TTF_DI_SETITEM
-#  define TTF_DI_SETITEM		0x8000
-# endif
-
-# ifndef TTN_GETDISPINFO
-#  define TTN_GETDISPINFO	(TTN_FIRST - 0)
-# endif
-
 #endif // defined(FEAT_BEVAL_GUI)
 
-#if defined(FEAT_TOOLBAR) || defined(FEAT_GUI_TABLINE)
-// Older MSVC compilers don't have LPNMTTDISPINFO[AW] thus we need to define
-// it here if LPNMTTDISPINFO isn't defined.
-// MinGW doesn't define LPNMTTDISPINFO but typedefs it.  Thus we need to check
-// _MSC_VER.
-# if !defined(LPNMTTDISPINFO) && defined(_MSC_VER)
-typedef struct tagNMTTDISPINFOA {
-    NMHDR	hdr;
-    LPSTR	lpszText;
-    char	szText[80];
-    HINSTANCE	hinst;
-    UINT	uFlags;
-    LPARAM	lParam;
-} NMTTDISPINFOA, *LPNMTTDISPINFOA;
-#  define LPNMTTDISPINFO LPNMTTDISPINFOA
-
-typedef struct tagNMTTDISPINFOW {
-    NMHDR	hdr;
-    LPWSTR	lpszText;
-    WCHAR	szText[80];
-    HINSTANCE	hinst;
-    UINT	uFlags;
-    LPARAM	lParam;
-} NMTTDISPINFOW, *LPNMTTDISPINFOW;
-# endif
-#endif
-
-#ifndef TTN_GETDISPINFOW
-# define TTN_GETDISPINFOW	(TTN_FIRST - 10)
-#endif
 
 // Local variables:
 
@@ -4279,19 +4061,6 @@ gui_mswin_get_menu_height(
     static void
 init_mouse_wheel(void)
 {
-
-#ifndef SPI_GETWHEELSCROLLLINES
-# define SPI_GETWHEELSCROLLLINES    104
-#endif
-#ifndef SPI_SETWHEELSCROLLLINES
-# define SPI_SETWHEELSCROLLLINES    105
-#endif
-
-#define VMOUSEZ_CLASSNAME  "MouseZ"		// hidden wheel window class
-#define VMOUSEZ_TITLE      "Magellan MSWHEEL"	// hidden wheel window title
-#define VMSH_MOUSEWHEEL    "MSWHEEL_ROLLMSG"
-#define VMSH_SCROLL_LINES  "MSH_SCROLL_LINES_MSG"
-
     mouse_scroll_lines = 3;	// reasonable default
 
     // if NT 4.0+ (or Win98) get scroll lines directly from system
@@ -5522,12 +5291,6 @@ gui_mch_init(void)
 #endif
 
 #ifdef FEAT_EVAL
-# if !defined(_MSC_VER) || (_MSC_VER < 1400)
-// Define HandleToLong for old MS and non-MS compilers if not defined.
-#  ifndef HandleToLong
-#   define HandleToLong(h) ((long)(intptr_t)(h))
-#  endif
-# endif
     // set the v:windowid variable
     set_vim_var_nr(VV_WINDOWID, HandleToLong(s_hwnd));
 #endif
@@ -7903,11 +7666,6 @@ gui_mch_tearoff(
 #if defined(FEAT_TOOLBAR) || defined(PROTO)
 # include "gui_w32_rc.h"
 
-// This not defined in older SDKs
-# ifndef TBSTYLE_FLAT
-#  define TBSTYLE_FLAT		0x0800
-# endif
-
 /*
  * Create the toolbar, initially unpopulated.
  *  (just like the menu, there are no defaults, it's all
@@ -8421,10 +8179,10 @@ gui_mch_destroy_sign(void *sign)
     static void
 make_tooltip(BalloonEval *beval, char *text, POINT pt)
 {
-    TOOLINFOW_NEW   *pti;
-    RECT	    rect;
-
-    pti = alloc(sizeof(TOOLINFOW_NEW));
+    TOOLINFOW	*pti;
+    RECT	rect;
+
+    pti = alloc(sizeof(TOOLINFOW));
     if (pti == NULL)
 	return;
 
@@ -8436,7 +8194,7 @@ make_tooltip(BalloonEval *beval, char *t
     SetWindowPos(beval->balloon, HWND_TOPMOST, 0, 0, 0, 0,
 	    SWP_NOMOVE | SWP_NOSIZE | SWP_NOACTIVATE);
 
-    pti->cbSize = sizeof(TOOLINFOW_NEW);
+    pti->cbSize = sizeof(TOOLINFOW);
     pti->uFlags = TTF_SUBCLASS;
     pti->hwnd = beval->target;
     pti->hinst = 0; // Don't use string resources
@@ -8628,7 +8386,7 @@ Handle_WM_Notify(HWND hwnd UNUSED, LPNMH
 	case TTN_GETDISPINFO:
 	    {
 		// if you get there then we have new common controls
-		NMTTDISPINFO_NEW *info = (NMTTDISPINFO_NEW *)pnmh;
+		NMTTDISPINFO *info = (NMTTDISPINFO *)pnmh;
 		info->lpszText = (LPSTR)info->lParam;
 		info->uFlags |= TTF_DI_SETITEM;
 	    }
@@ -8636,7 +8394,7 @@ Handle_WM_Notify(HWND hwnd UNUSED, LPNMH
 	case TTN_GETDISPINFOW:
 	    {
 		// if we get here then we have new common controls
-		NMTTDISPINFOW_NEW *info = (NMTTDISPINFOW_NEW *)pnmh;
+		NMTTDISPINFOW *info = (NMTTDISPINFOW *)pnmh;
 		info->lpszText = (LPWSTR)info->lParam;
 		info->uFlags |= TTF_DI_SETITEM;
 	    }
deleted file mode 100644
--- a/src/msvcsetup.bat
+++ /dev/null
@@ -1,12 +0,0 @@
-rem To be used on MS-Windows when using the Visual C++ Toolkit 2003
-rem See INSTALLpc.txt for information.
-
-set PATH=%SystemRoot%\Microsoft.NET\Framework\v1.1.4322;%PATH%
-call "%VCToolkitInstallDir%vcvars32.bat"
-set MSVCVer=7.1
-
-rem The platform SDK can be installed elsewhere, adjust the path.
-call "%ProgramFiles%\Microsoft Platform SDK\SetEnv.Cmd"
-rem call "e:\Microsoft Platform SDK\SetEnv.Cmd"
-
-set LIB=%ProgramFiles%\Microsoft Visual Studio .NET 2003\Vc7\lib;%LIB%
--- a/src/os_win32.c
+++ b/src/os_win32.c
@@ -2690,13 +2690,6 @@ static HICON g_hOrigIcon = NULL;
 static HICON g_hVimIcon = NULL;
 static BOOL g_fCanChangeIcon = FALSE;
 
-// ICON* are not defined in VC++ 4.0
-# ifndef ICON_SMALL
-#  define ICON_SMALL 0
-# endif
-# ifndef ICON_BIG
-#  define ICON_BIG 1
-# endif
 /*
  * GetConsoleIcon()
  * Description:
--- a/src/version.c
+++ b/src/version.c
@@ -751,6 +751,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    4213,
+/**/
     4212,
 /**/
     4211,