To: vim_dev@googlegroups.com Subject: Patch 8.2.4213 Fcc: outbox From: Bram Moolenaar Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ------------ Patch 8.2.4213 Problem: Too much code for supporting old MSVC versions. Solution: Remove MSVC 2003 support. (Ken Takata, closes #9623) Files: Filelist, src/INSTALLpc.txt, src/Make_mvc.mak, src/gui_w32.c, src/msvcsetup.bat, src/os_win32.c *** ../vim-8.2.4212/Filelist 2022-01-20 12:44:23.519631795 +0000 --- Filelist 2022-01-25 10:26:13.251528915 +0000 *************** *** 543,549 **** tools/rename.bat \ src/bigvim.bat \ src/bigvim64.bat \ - src/msvcsetup.bat \ src/msvc2008.bat \ src/msvc2010.bat \ src/msvc2015.bat \ --- 543,548 ---- *** ../vim-8.2.4212/src/INSTALLpc.txt 2021-06-20 13:01:25.976924630 +0100 --- src/INSTALLpc.txt 2022-01-25 10:29:40.311368526 +0000 *************** *** 33,44 **** 10. Building with Perl support 11. Building with Ruby support 12. Building with Tcl support ! 13. Building with Terminal support ! 14. Building with DirectX (DirectWrite) support ! 15. Windows 3.1 ! 16. MS-DOS ! 17. Installing after building from sources The currently recommended way (that means it has been verified to work) is --- 33,43 ---- 10. Building with Perl support 11. Building with Ruby support 12. Building with Tcl support ! 13. Building with DirectX (DirectWrite) support ! 14. Windows 3.1 ! 15. MS-DOS ! 16. Installing after building from sources The currently recommended way (that means it has been verified to work) is *************** *** 156,238 **** 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|. Visual C++ 2005 Express Edition *msvc-2005-express* --- 155,162 ---- 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 2005 one ! |msvc-2005-express|, and use the source code before 8.0.0029. Visual C++ 2005 Express Edition *msvc-2005-express* *************** *** 285,291 **** Execute: $ pacman -Syu ! And restart MSYS2 console (select "MSYS2 MSYS" icon from the Start Menu). Then execute: $ pacman -Su --- 209,216 ---- Execute: $ pacman -Syu ! And restart MSYS2 console (select "MSYS2 MSYS 32-Bit" icon from the Start ! Menu for building 32 bit Vim, otherwise select "MSYS2 MinGW 64-Bit"). Then execute: $ pacman -Su *************** *** 384,390 **** Once you have downloaded the compiler binaries, unpack them on your hard disk somewhere, and put them on your PATH. Go to the Control Panel, (Performance and Maintenance), System, Advanced, and edit the environment from there. If ! you use the standalone MinGW-w64 compiler, the path may depends on your installation. If you use msys2 compilers, set your installed paths (normally one of the following): --- 309,315 ---- Once you have downloaded the compiler binaries, unpack them on your hard disk somewhere, and put them on your PATH. Go to the Control Panel, (Performance and Maintenance), System, Advanced, and edit the environment from there. If ! you use the standalone MinGW-w64 compiler, the path may depend on your installation. If you use msys2 compilers, set your installed paths (normally one of the following): *************** *** 887,909 **** TCL=C:/Tcl86 DYNAMIC_TCL=yes TCL_VER=86 TCL_VER_LONG=8.6 ! 13. Building with Terminal support ! ================================== ! ! Vim with Terminal support can be built with either MSVC, MinGW or Cygwin. ! This uses the included libvterm and winpty. No extra header files or ! libraries are needed for building. Just set TERMINAL to yes. ! ! E.g. When using MSVC: ! ! nmake -f Make_mvc.mak TERMINAL=yes ! ! Or when using MinGW: ! ! mingw32-make -f Make_ming.mak TERMINAL=yes ! ! ! 14. Building with DirectX (DirectWrite) support =============================================== Vim with DirectX (DirectWrite) support can be built with either MSVC or MinGW. --- 812,818 ---- TCL=C:/Tcl86 DYNAMIC_TCL=yes TCL_VER=86 TCL_VER_LONG=8.6 ! 13. Building with DirectX (DirectWrite) support =============================================== Vim with DirectX (DirectWrite) support can be built with either MSVC or MinGW. *************** *** 937,956 **** mingw32-make -f Make_ming.mak DIRECTX=yes ! 15. Windows 3.1x ================ The Windows 3.1x support was removed in patch 7.4.1364. ! 16. MS-DOS ========== The MS-DOS support was removed in patch 7.4.1399. Only very old Vim versions work on MS-DOS because of the limited amount of memory available. ! 17. Installing after building from sources ========================================== [provided by Michael Soyka, updated by Ken Takata] --- 846,865 ---- mingw32-make -f Make_ming.mak DIRECTX=yes ! 14. Windows 3.1x ================ The Windows 3.1x support was removed in patch 7.4.1364. ! 15. MS-DOS ========== The MS-DOS support was removed in patch 7.4.1399. Only very old Vim versions work on MS-DOS because of the limited amount of memory available. ! 16. Installing after building from sources ========================================== [provided by Michael Soyka, updated by Ken Takata] *************** *** 958,1001 **** After you've built the Vim binaries as described above, you're ready to install Vim on your system. However, if you've obtained the Vim sources using Git, Mercurial or by downloading them as a unix tar file, you must ! first create a "vim81" directory. If you instead downloaded the sources as zip files, you can skip this setup as the zip archives already have the correct directory structure. ! A. Create a Vim "runtime" subdirectory named "vim81" ----------------------------------------------------- If you obtained your Vim sources as zip files, you can skip this step. Otherwise, continue reading. Go to the directory that contains the Vim "src" and "runtime" ! directories and create a new subdirectory named "vim81". ! Copy the "runtime" files into "vim81": ! copy runtime\* vim81 ! B. Copy the new binaries into the "vim81" directory ---------------------------------------------------- Regardless of how you installed the Vim sources, you need to copy the ! new binaries you created above into "vim81": ! copy src\*.exe vim81 ! copy src\tee\tee.exe vim81 ! copy src\xxd\xxd.exe vim81 To install the "Edit with Vim" popup menu, you need both 32-bit and 64-bit ! versions of gvimext.dll. They should be copied to "vim81\GvimExt32" and ! "vim81\GvimExt64" respectively. First, build the 32-bit version, then: ! mkdir vim81\GvimExt32 ! copy src\GvimExt\gvimext.dll vim81\GvimExt32 Next, clean the 32-bit version and build the 64-bit version, then: ! mkdir vim81\GvimExt64 ! copy src\GvimExt\gvimext.dll vim81\GvimExt64 ! C. Copy gettext and iconv DLLs into the "vim81" directory ---------------------------------------------------------- Get gettext and iconv DLLs from the following site: https://github.com/mlocati/gettext-iconv-windows/releases --- 867,911 ---- After you've built the Vim binaries as described above, you're ready to install Vim on your system. However, if you've obtained the Vim sources using Git, Mercurial or by downloading them as a unix tar file, you must ! first create a "vim82" directory. If you instead downloaded the sources as zip files, you can skip this setup as the zip archives already have the correct directory structure. ! A. Create a Vim "runtime" subdirectory named "vim82" ----------------------------------------------------- If you obtained your Vim sources as zip files, you can skip this step. Otherwise, continue reading. Go to the directory that contains the Vim "src" and "runtime" ! directories and create a new subdirectory named "vim82". ! Copy the "runtime" files into "vim82": ! copy runtime\* vim82 ! xcopy /s runtime\* vim82 ! B. Copy the new binaries into the "vim82" directory ---------------------------------------------------- Regardless of how you installed the Vim sources, you need to copy the ! new binaries you created above into "vim82": ! copy src\*.exe vim82 ! copy src\tee\tee.exe vim82 ! copy src\xxd\xxd.exe vim82 To install the "Edit with Vim" popup menu, you need both 32-bit and 64-bit ! versions of gvimext.dll. They should be copied to "vim82\GvimExt32" and ! "vim82\GvimExt64" respectively. First, build the 32-bit version, then: ! mkdir vim82\GvimExt32 ! copy src\GvimExt\gvimext.dll vim82\GvimExt32 Next, clean the 32-bit version and build the 64-bit version, then: ! mkdir vim82\GvimExt64 ! copy src\GvimExt\gvimext.dll vim82\GvimExt64 ! C. Copy gettext and iconv DLLs into the "vim82" directory ---------------------------------------------------------- Get gettext and iconv DLLs from the following site: https://github.com/mlocati/gettext-iconv-windows/releases *************** *** 1003,1009 **** Download the files gettextX.X.X.X-iconvX.XX-shared-{32,64}.zip, extract DLLs and place them as follows: ! vim81\ | libintl-8.dll | libiconv-2.dll | libgcc_s_sjlj-1.dll (only for 32-bit) --- 913,919 ---- Download the files gettextX.X.X.X-iconvX.XX-shared-{32,64}.zip, extract DLLs and place them as follows: ! vim82\ | libintl-8.dll | libiconv-2.dll | libgcc_s_sjlj-1.dll (only for 32-bit) *************** *** 1017,1034 **** libintl-8.dll libiconv-2.dll ! The DLLs in the "vim81" should be the same bitness with the (g)vim.exe. ! D. Move the "vim81" directory into the Vim installation subdirectory --------------------------------------------------------------------- ! Move the "vim81" subdirectory into the subdirectory where you want Vim to be installed. Typically, this subdirectory will be named "vim". ! If you already have a "vim81" subdirectory in "vim", delete it first by running its uninstall.exe program. E. Install Vim --------------- ! "cd" to your Vim installation subdirectory "vim\vim81" and run the "install.exe" program. It will ask you a number of questions about how you would like to have your Vim setup. Among these are: - You can tell it to write a "_vimrc" file with your preferences in the --- 927,944 ---- libintl-8.dll libiconv-2.dll ! The DLLs in the "vim82" should be the same bitness with the (g)vim.exe. ! D. Move the "vim82" directory into the Vim installation subdirectory --------------------------------------------------------------------- ! Move the "vim82" subdirectory into the subdirectory where you want Vim to be installed. Typically, this subdirectory will be named "vim". ! If you already have a "vim82" subdirectory in "vim", delete it first by running its uninstall.exe program. E. Install Vim --------------- ! "cd" to your Vim installation subdirectory "vim\vim82" and run the "install.exe" program. It will ask you a number of questions about how you would like to have your Vim setup. Among these are: - You can tell it to write a "_vimrc" file with your preferences in the *** ../vim-8.2.4212/src/Make_mvc.mak 2022-01-20 12:44:23.519631795 +0000 --- src/Make_mvc.mak 2022-01-25 10:26:13.255528833 +0000 *************** *** 305,314 **** 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 --- 305,310 ---- *************** *** 707,714 **** CFLAGS = $(CFLAGS) /MD LIBC = msvcrt.lib ! else - LIBC = libcmt.lib CFLAGS = $(CFLAGS) /Zl /MT ! endif !else # DEBUG --- 703,710 ---- CFLAGS = $(CFLAGS) /MD LIBC = msvcrt.lib ! else CFLAGS = $(CFLAGS) /Zl /MT + LIBC = libcmt.lib ! endif !else # DEBUG *************** *** 719,736 **** ! 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 LIBC = /fixed:no - ! endif ! ifdef USE_MSVCRT CFLAGS = $(CFLAGS) /MDd LIBC = $(LIBC) msvcrtd.lib ! else - LIBC = $(LIBC) libcmtd.lib CFLAGS = $(CFLAGS) /Zl /MTd ! endif !endif # DEBUG --- 715,728 ---- ! endif CFLAGS = $(CFLAGS) -D_DEBUG -DDEBUG /Od RCFLAGS = $(rcflags) $(rcvars) -D_DEBUG -DDEBUG ! # The /fixed:no is needed for Quantify. LIBC = /fixed:no ! ifdef USE_MSVCRT CFLAGS = $(CFLAGS) /MDd LIBC = $(LIBC) msvcrtd.lib ! else CFLAGS = $(CFLAGS) /Zl /MTd + LIBC = $(LIBC) libcmtd.lib ! endif !endif # DEBUG *************** *** 799,805 **** $(OUTDIR)\hashtab.obj \ $(OUTDIR)\help.obj \ $(OUTDIR)\highlight.obj \ ! $(OBJDIR)\if_cscope.obj \ $(OUTDIR)\indent.obj \ $(OUTDIR)\insexpand.obj \ $(OUTDIR)\json.obj \ --- 791,797 ---- $(OUTDIR)\hashtab.obj \ $(OUTDIR)\help.obj \ $(OUTDIR)\highlight.obj \ ! $(OUTDIR)\if_cscope.obj \ $(OUTDIR)\indent.obj \ $(OUTDIR)\insexpand.obj \ $(OUTDIR)\json.obj \ *** ../vim-8.2.4212/src/gui_w32.c 2022-01-24 11:23:59.855900536 +0000 --- src/gui_w32.c 2022-01-25 10:26:13.255528833 +0000 *************** *** 218,231 **** #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 --- 218,223 ---- *************** *** 288,297 **** 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); --- 280,285 ---- *************** *** 966,974 **** 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) --- 954,959 ---- *************** *** 2448,2457 **** 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); --- 2433,2438 ---- *************** *** 2585,2594 **** 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); --- 2566,2571 ---- *************** *** 3418,3427 **** 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. --- 3395,3400 ---- *************** *** 3905,4017 **** # 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 --- 3878,3883 ---- *************** *** 4021,4032 **** #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 --- 3887,3892 ---- *************** *** 4034,4119 **** 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: --- 3894,3901 ---- *************** *** 4279,4297 **** 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 --- 4061,4066 ---- *************** *** 5522,5533 **** #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 --- 5291,5296 ---- *************** *** 7903,7913 **** #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 --- 7666,7671 ---- *************** *** 8421,8430 **** static void make_tooltip(BalloonEval *beval, char *text, POINT pt) { ! TOOLINFOW_NEW *pti; ! RECT rect; ! pti = alloc(sizeof(TOOLINFOW_NEW)); if (pti == NULL) return; --- 8179,8188 ---- static void make_tooltip(BalloonEval *beval, char *text, POINT pt) { ! TOOLINFOW *pti; ! RECT rect; ! pti = alloc(sizeof(TOOLINFOW)); if (pti == NULL) return; *************** *** 8436,8442 **** SetWindowPos(beval->balloon, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE | SWP_NOACTIVATE); ! pti->cbSize = sizeof(TOOLINFOW_NEW); pti->uFlags = TTF_SUBCLASS; pti->hwnd = beval->target; pti->hinst = 0; // Don't use string resources --- 8194,8200 ---- SetWindowPos(beval->balloon, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE | SWP_NOACTIVATE); ! pti->cbSize = sizeof(TOOLINFOW); pti->uFlags = TTF_SUBCLASS; pti->hwnd = beval->target; pti->hinst = 0; // Don't use string resources *************** *** 8628,8634 **** case TTN_GETDISPINFO: { // if you get there then we have new common controls ! NMTTDISPINFO_NEW *info = (NMTTDISPINFO_NEW *)pnmh; info->lpszText = (LPSTR)info->lParam; info->uFlags |= TTF_DI_SETITEM; } --- 8386,8392 ---- case TTN_GETDISPINFO: { // if you get there then we have new common controls ! NMTTDISPINFO *info = (NMTTDISPINFO *)pnmh; info->lpszText = (LPSTR)info->lParam; info->uFlags |= TTF_DI_SETITEM; } *************** *** 8636,8642 **** case TTN_GETDISPINFOW: { // if we get here then we have new common controls ! NMTTDISPINFOW_NEW *info = (NMTTDISPINFOW_NEW *)pnmh; info->lpszText = (LPWSTR)info->lParam; info->uFlags |= TTF_DI_SETITEM; } --- 8394,8400 ---- case TTN_GETDISPINFOW: { // if we get here then we have new common controls ! NMTTDISPINFOW *info = (NMTTDISPINFOW *)pnmh; info->lpszText = (LPWSTR)info->lParam; info->uFlags |= TTF_DI_SETITEM; } *** ../vim-8.2.4212/src/msvcsetup.bat 2010-05-15 12:04:11.000000000 +0100 --- src/msvcsetup.bat 1970-01-01 00:00:00.000000000 +0000 *************** *** 1,12 **** - 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% --- 0 ---- *** ../vim-8.2.4212/src/os_win32.c 2022-01-24 11:23:59.859900461 +0000 --- src/os_win32.c 2022-01-25 10:26:13.255528833 +0000 *************** *** 2690,2702 **** 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: --- 2690,2695 ---- *** ../vim-8.2.4212/src/version.c 2022-01-24 22:32:24.559939355 +0000 --- src/version.c 2022-01-25 10:28:39.164598371 +0000 *************** *** 752,753 **** --- 752,755 ---- { /* Add new patch number below this line */ + /**/ + 4213, /**/ -- bashian roulette: $ ((RANDOM%6)) || rm -rf ~ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ /// \\\ \\\ sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ /// \\\ help me help AIDS victims -- http://ICCF-Holland.org ///