diff --git a/7.1.282 b/7.1.282 new file mode 100644 index 0000000..7bb125c --- /dev/null +++ b/7.1.282 @@ -0,0 +1,549 @@ +To: vim-dev@vim.org +Subject: Patch 7.1.282 (extra) +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.282 (extra) +Problem: Win64: Edit with Vim context menu isn't installed correctly. + Compiler warnings and a few other things. +Solution: Add [ and ] to entry of class name. Use UINT_PTR instead of UINT. + And a fixes for the other things. (George V. Reilly) +Files: src/GvimExt/Makefile, src/dosinst.c, src/if_ole.cpp, src/if_ole.h, + src/if_ole.idl, src/INSTALLpc.txt, src/Make_mvc.mak, + src/os_win32.c, + + +*** ../vim-7.1.281/src/GvimExt/Makefile Sat May 5 12:51:46 2007 +--- src/GvimExt/Makefile Tue Jul 10 16:18:18 2007 +*************** +*** 24,30 **** + gvimext.obj: gvimext.h + + .cpp.obj: +! $(cc) $(cflags) -DFEAT_GETTEXT $(cvarsdll) $*.cpp + + gvimext.res: gvimext.rc + $(rc) $(rcflags) $(rcvars) gvimext.rc +--- 24,30 ---- + gvimext.obj: gvimext.h + + .cpp.obj: +! $(cc) $(cflags) -DFEAT_GETTEXT $(cvarsmt) $*.cpp + + gvimext.res: gvimext.rc + $(rc) $(rcflags) $(rcvars) gvimext.rc +*** ../vim-7.1.281/src/dosinst.c Thu May 10 20:54:39 2007 +--- src/dosinst.c Tue Jul 10 16:07:16 2007 +*************** +*** 1365,1371 **** + + printf("Creating \"Edit with Vim\" popup menu entry\n"); + +! fprintf(fd, "HKEY_CLASSES_ROOT\\CLSID\\%s\n", vim_ext_clsid); + fprintf(fd, "@=\"%s\"\n", vim_ext_name); + fprintf(fd, "[HKEY_CLASSES_ROOT\\CLSID\\%s\\InProcServer32]\n", + vim_ext_clsid); +--- 1365,1371 ---- + + printf("Creating \"Edit with Vim\" popup menu entry\n"); + +! fprintf(fd, "[HKEY_CLASSES_ROOT\\CLSID\\%s]\n", vim_ext_clsid); + fprintf(fd, "@=\"%s\"\n", vim_ext_name); + fprintf(fd, "[HKEY_CLASSES_ROOT\\CLSID\\%s\\InProcServer32]\n", + vim_ext_clsid); +*** ../vim-7.1.281/src/if_ole.cpp Wed Aug 16 17:34:09 2006 +--- src/if_ole.cpp Tue Sep 25 16:44:44 2007 +*************** +*** 34,39 **** +--- 34,45 ---- + extern HWND vim_parent_hwnd; + } + ++ #if _MSC_VER < 1300 ++ /* Work around old versions of basetsd.h which wrongly declares ++ * UINT_PTR as unsigned long */ ++ # define UINT_PTR UINT ++ #endif ++ + #include "if_ole.h" // Interface definitions + #include "iid_ole.c" // UUID definitions (compile here) + +*************** +*** 107,113 **** + STDMETHOD(SendKeys)(BSTR keys); + STDMETHOD(Eval)(BSTR expr, BSTR *result); + STDMETHOD(SetForeground)(void); +! STDMETHOD(GetHwnd)(UINT *result); + + private: + // Constructor is private - create using CVim::Create() +--- 113,119 ---- + STDMETHOD(SendKeys)(BSTR keys); + STDMETHOD(Eval)(BSTR expr, BSTR *result); + STDMETHOD(SetForeground)(void); +! STDMETHOD(GetHwnd)(UINT_PTR *result); + + private: + // Constructor is private - create using CVim::Create() +*************** +*** 288,296 **** + } + + STDMETHODIMP +! CVim::GetHwnd(UINT *result) + { +! *result = (UINT) s_hwnd; + return S_OK; + } + +--- 294,302 ---- + } + + STDMETHODIMP +! CVim::GetHwnd(UINT_PTR *result) + { +! *result = (UINT_PTR)s_hwnd; + return S_OK; + } + +*** ../vim-7.1.281/src/if_ole.h Sun Jun 13 17:46:29 2004 +--- src/if_ole.h Tue Jul 10 16:21:18 2007 +*************** +*** 79,85 **** + virtual HRESULT STDMETHODCALLTYPE SetForeground( void) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetHwnd( +! /* [retval][out] */ UINT __RPC_FAR *result) = 0; + + }; + +--- 79,85 ---- + virtual HRESULT STDMETHODCALLTYPE SetForeground( void) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetHwnd( +! /* [retval][out] */ UINT_PTR __RPC_FAR *result) = 0; + + }; + +*************** +*** 143,149 **** + + HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetHwnd )( + IVim __RPC_FAR * This, +! /* [retval][out] */ UINT __RPC_FAR *result); + + END_INTERFACE + } IVimVtbl; +--- 143,149 ---- + + HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetHwnd )( + IVim __RPC_FAR * This, +! /* [retval][out] */ UINT_PTR __RPC_FAR *result); + + END_INTERFACE + } IVimVtbl; +*************** +*** 236,242 **** + + HRESULT STDMETHODCALLTYPE IVim_GetHwnd_Proxy( + IVim __RPC_FAR * This, +! /* [retval][out] */ UINT __RPC_FAR *result); + + + void __RPC_STUB IVim_GetHwnd_Stub( +--- 236,242 ---- + + HRESULT STDMETHODCALLTYPE IVim_GetHwnd_Proxy( + IVim __RPC_FAR * This, +! /* [retval][out] */ UINT_PTR __RPC_FAR *result); + + + void __RPC_STUB IVim_GetHwnd_Stub( +*** ../vim-7.1.281/src/if_ole.idl Sun Jun 13 17:22:03 2004 +--- src/if_ole.idl Tue Jul 10 16:21:45 2007 +*************** +*** 20,26 **** + HRESULT SendKeys([in]BSTR keys); + HRESULT Eval([in]BSTR expr, [out, retval]BSTR* result); + HRESULT SetForeground(void); +! HRESULT GetHwnd([out, retval]UINT* result); + }; + + // Component and type library definitions +--- 20,26 ---- + HRESULT SendKeys([in]BSTR keys); + HRESULT Eval([in]BSTR expr, [out, retval]BSTR* result); + HRESULT SetForeground(void); +! HRESULT GetHwnd([out, retval]UINT_PTR* result); + }; + + // Component and type library definitions +*** ../vim-7.1.281/src/INSTALLpc.txt Sun Apr 30 20:29:26 2006 +--- src/INSTALLpc.txt Wed Mar 12 15:01:37 2008 +*************** +*** 82,90 **** + |ms-platform-sdk|, |dotnet-1.1-redist|, |dotnet-1.1-sdk|, + and |windbg-download|. + +! It's easier to download Visual C++ 2005 Express Edition, |msvc-2005-express|. +! The advantage of the VC 2003 Toolkit is that it will be freely available +! long after VC 2005 Express Edition stops being free in November 2006. + + 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 +--- 82,89 ---- + |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 +*************** +*** 152,157 **** +--- 151,164 ---- + http://msdn.microsoft.com/vstudio/express/visualc/usingpsdk/default.aspx + + ++ Visual C++ 2008 Express Edition *msvc-2008-express* ++ ------------------------------- ++ ++ Visual C++ 2008 Express Edition can be downloaded for free from: ++ http://msdn2.microsoft.com/en-us/express/default.aspx ++ This includes the IDE and the debugger. You can build Vim with Make_mvc.mak. ++ ++ + 2. MinGW + ======== + +*** ../vim-7.1.281/src/Make_mvc.mak Wed Oct 3 13:28:40 2007 +--- src/Make_mvc.mak Wed Mar 12 15:09:55 2008 +*************** +*** 1,6 **** + # Makefile for Vim on Win32 (Windows NT/2000/XP/2003 and Windows 95/98/Me) + # and Win64, using the Microsoft Visual C++ compilers. Known to work with +! # VC5, VC6 (VS98), VC7.0 (VS2002), VC7.1 (VS2003), and VC8 (VS2005). + # + # To build using other Windows compilers, see INSTALLpc.txt + # +--- 1,7 ---- + # Makefile for Vim on Win32 (Windows NT/2000/XP/2003 and Windows 95/98/Me) + # and Win64, using the Microsoft Visual C++ compilers. Known to work with +! # VC5, VC6 (VS98), VC7.0 (VS2002), VC7.1 (VS2003), VC8 (VS2005), +! # and VC9 (VS2008). + # + # To build using other Windows compilers, see INSTALLpc.txt + # +*************** +*** 285,291 **** + # need shell32.lib for ExtractIcon() + # gdi32.lib and comdlg32.lib for printing support + # ole32.lib and uuid.lib are needed for FEAT_SHORTCUT +! CON_LIB = advapi32.lib shell32.lib gdi32.lib comdlg32.lib ole32.lib uuid.lib + !if "$(DELAYLOAD)" == "yes" + CON_LIB = $(CON_LIB) /DELAYLOAD:comdlg32.dll /DELAYLOAD:ole32.dll DelayImp.lib + !endif +--- 286,293 ---- + # need shell32.lib for ExtractIcon() + # gdi32.lib and comdlg32.lib for printing support + # ole32.lib and uuid.lib are needed for FEAT_SHORTCUT +! CON_LIB = oldnames.lib kernel32.lib advapi32.lib shell32.lib gdi32.lib \ +! comdlg32.lib ole32.lib uuid.lib /machine:$(CPU) /nodefaultlib + !if "$(DELAYLOAD)" == "yes" + CON_LIB = $(CON_LIB) /DELAYLOAD:comdlg32.dll /DELAYLOAD:ole32.dll DelayImp.lib + !endif +*************** +*** 331,336 **** +--- 333,339 ---- + !endif + !if "$(_NMAKE_VER)" == "6.00.8168.0" + MSVCVER = 6.0 ++ CPU = ix86 + !endif + !if "$(_NMAKE_VER)" == "7.00.9466" + MSVCVER = 7.0 +*************** +*** 344,349 **** +--- 347,355 ---- + !if "$(_NMAKE_VER)" == "8.00.50727.762" + MSVCVER = 8.0 + !endif ++ !if "$(_NMAKE_VER)" == "9.00.20706.01" ++ MSVCVER = 9.0 ++ !endif + !endif + + # Abort bulding VIM if version of VC is unrecognised. +*************** +*** 352,364 **** + !message Cannot determine Visual C version being used. If you are using the + !message Windows SDK then you must have the environment variable MSVCVER set to + !message your version of the VC compiler. If you are not using the Express +! !message version of Visual C you van either set MSVCVER or update this makefile +! !message to handle the new value for _NMAKE_VER. + !error Make aborted. + !endif + + # Convert processor ID to MVC-compatible number +! !if "$(MSVCVER)" != "8.0" + !if "$(CPUNR)" == "i386" + CPUARG = /G3 + !elseif "$(CPUNR)" == "i486" +--- 358,370 ---- + !message Cannot determine Visual C version being used. If you are using the + !message Windows SDK then you must have the environment variable MSVCVER set to + !message your version of the VC compiler. If you are not using the Express +! !message version of Visual C, you can either set MSVCVER or update this makefile +! !message to handle the new value for _NMAKE_VER, "$(_NMAKE_VER)". + !error Make aborted. + !endif + + # Convert processor ID to MVC-compatible number +! !if ("$(MSVCVER)" != "8.0") && ("$(MSVCVER)" != "9.0") + !if "$(CPUNR)" == "i386" + CPUARG = /G3 + !elseif "$(CPUNR)" == "i486" +*************** +*** 373,379 **** + CPUARG = + !endif + !else +! # VC8 only allows specifying SSE architecture + !if "$(CPUNR)" == "pentium4" + CPUARG = /arch:SSE2 + !endif +--- 379,385 ---- + CPUARG = + !endif + !else +! # VC8/9 only allows specifying SSE architecture + !if "$(CPUNR)" == "pentium4" + CPUARG = /arch:SSE2 + !endif +*************** +*** 391,397 **** + !else # MAXSPEED + OPTFLAG = /Ox + !endif +! !if "$(MSVCVER)" == "8.0" + # Use link time code generation if not worried about size + !if "$(OPTIMIZE)" != "SPACE" + OPTFLAG = $(OPTFLAG) /GL +--- 397,403 ---- + !else # MAXSPEED + OPTFLAG = /Ox + !endif +! !if ("$(MSVCVER)" == "8.0") || ("$(MSVCVER)" == "9.0") + # Use link time code generation if not worried about size + !if "$(OPTIMIZE)" != "SPACE" + OPTFLAG = $(OPTFLAG) /GL +*************** +*** 404,414 **** + LIBC = msvcrt.lib + ! else + LIBC = libcmt.lib +! CFLAGS = $(CFLAGS) /MT + ! endif + !else # DEBUG + VIM = vimd +! ! if "$(CPU)" == "i386" + DEBUGINFO = /ZI + ! endif + CFLAGS = $(CFLAGS) -D_DEBUG -DDEBUG /Od +--- 410,420 ---- + LIBC = msvcrt.lib + ! else + LIBC = libcmt.lib +! CFLAGS = $(CFLAGS) /Zl /MT + ! endif + !else # DEBUG + VIM = vimd +! ! if ("$(CPU)" == "i386") || ("$(CPU)" == "ix86") + DEBUGINFO = /ZI + ! endif + CFLAGS = $(CFLAGS) -D_DEBUG -DDEBUG /Od +*************** +*** 424,430 **** + LIBC = $(LIBC) msvcrtd.lib + ! else + LIBC = $(LIBC) libcmtd.lib +! CFLAGS = $(CFLAGS) /MTd + ! endif + !endif # DEBUG + +--- 430,436 ---- + LIBC = $(LIBC) msvcrtd.lib + ! else + LIBC = $(LIBC) libcmtd.lib +! CFLAGS = $(CFLAGS) /Zl /MTd + ! endif + !endif # DEBUG + +*************** +*** 534,540 **** + $(OUTDIR)\gui_w32.obj \ + $(OUTDIR)\os_w32exe.obj + GUI_LIB = \ +! oldnames.lib kernel32.lib gdi32.lib version.lib $(IME_LIB) \ + winspool.lib comctl32.lib advapi32.lib shell32.lib \ + /machine:$(CPU) /nodefaultlib + !else +--- 540,546 ---- + $(OUTDIR)\gui_w32.obj \ + $(OUTDIR)\os_w32exe.obj + GUI_LIB = \ +! gdi32.lib version.lib $(IME_LIB) \ + winspool.lib comctl32.lib advapi32.lib shell32.lib \ + /machine:$(CPU) /nodefaultlib + !else +*************** +*** 757,763 **** + + # Report link time code generation progress if used. + !ifdef NODEBUG +! !if "$(MSVCVER)" == "8.0" + !if "$(OPTIMIZE)" != "SPACE" + LINKARGS1 = $(LINKARGS1) /LTCG:STATUS + !endif +--- 763,769 ---- + + # Report link time code generation progress if used. + !ifdef NODEBUG +! !if ("$(MSVCVER)" == "8.0") || ("$(MSVCVER)" == "9.0") + !if "$(OPTIMIZE)" != "SPACE" + LINKARGS1 = $(LINKARGS1) /LTCG:STATUS + !endif +*** ../vim-7.1.281/src/os_win32.c Tue Nov 20 17:21:28 2007 +--- src/os_win32.c Wed Mar 12 15:24:33 2008 +*************** +*** 2856,2862 **** + windgoto((int)Rows - 1, 0); + g_fForceExit = TRUE; + +! sprintf((char *)IObuff, _("Vim: Caught %s event\n"), + (dwCtrlType == CTRL_CLOSE_EVENT + ? _("close") + : dwCtrlType == CTRL_LOGOFF_EVENT +--- 2856,2862 ---- + windgoto((int)Rows - 1, 0); + g_fForceExit = TRUE; + +! vim_snprintf((char *)IObuff, IOSIZE, _("Vim: Caught %s event\n"), + (dwCtrlType == CTRL_CLOSE_EVENT + ? _("close") + : dwCtrlType == CTRL_LOGOFF_EVENT +*************** +*** 3282,3293 **** + { + /* we use "command" or "cmd" to start the shell; slow but easy */ + char_u *newcmd; +! +! newcmd = lalloc((long_u) ( + #ifdef FEAT_GUI_W32 + STRLEN(vimrun_path) + + #endif +! STRLEN(p_sh) + STRLEN(p_shcf) + STRLEN(cmd) + 10), TRUE); + if (newcmd != NULL) + { + char_u *cmdbase = (*cmd == '"' ? cmd + 1 : cmd); +--- 3282,3294 ---- + { + /* we use "command" or "cmd" to start the shell; slow but easy */ + char_u *newcmd; +! long_u cmdlen = ( + #ifdef FEAT_GUI_W32 + STRLEN(vimrun_path) + + #endif +! STRLEN(p_sh) + STRLEN(p_shcf) + STRLEN(cmd) + 10); +! +! newcmd = lalloc(cmdlen, TRUE); + if (newcmd != NULL) + { + char_u *cmdbase = (*cmd == '"' ? cmd + 1 : cmd); +*************** +*** 3373,3386 **** + if (!s_dont_use_vimrun) + /* Use vimrun to execute the command. It opens a console + * window, which can be closed without killing Vim. */ +! sprintf((char *)newcmd, "%s%s%s %s %s", + vimrun_path, + (msg_silent != 0 || (options & SHELL_DOOUT)) + ? "-s " : "", + p_sh, p_shcf, cmd); + else + #endif +! sprintf((char *)newcmd, "%s %s %s", p_sh, p_shcf, cmd); + x = mch_system((char *)newcmd, options); + } + vim_free(newcmd); +--- 3374,3388 ---- + if (!s_dont_use_vimrun) + /* Use vimrun to execute the command. It opens a console + * window, which can be closed without killing Vim. */ +! vim_snprintf((char *)newcmd, cmdlen, "%s%s%s %s %s", + vimrun_path, + (msg_silent != 0 || (options & SHELL_DOOUT)) + ? "-s " : "", + p_sh, p_shcf, cmd); + else + #endif +! vim_snprintf((char *)newcmd, cmdlen, "%s %s %s", +! p_sh, p_shcf, cmd); + x = mch_system((char *)newcmd, options); + } + vim_free(newcmd); +*************** +*** 4664,4675 **** +--- 4666,4694 ---- + # endif + ) + { ++ # if defined(DEBUG) && _MSC_VER > 1200 ++ /* Work around an annoying assertion in the Microsoft debug CRT ++ * when mode's text/binary setting doesn't match _get_fmode(). */ ++ char newMode = mode[strlen(mode) - 1]; ++ int oldMode = 0; ++ ++ _get_fmode(&oldMode); ++ if (newMode == 't') ++ _set_fmode(_O_TEXT); ++ else if (newMode == 'b') ++ _set_fmode(_O_BINARY); ++ # endif + wn = enc_to_ucs2(name, NULL); + wm = enc_to_ucs2(mode, NULL); + if (wn != NULL && wm != NULL) + f = _wfopen(wn, wm); + vim_free(wn); + vim_free(wm); ++ ++ # if defined(DEBUG) && _MSC_VER > 1200 ++ _set_fmode(oldMode); ++ # endif ++ + if (f != NULL) + return f; + /* Retry with non-wide function (for Windows 98). Can't use +*** ../vim-7.1.281/src/version.c Sun Mar 16 13:09:14 2008 +--- src/version.c Sun Mar 16 14:49:21 2008 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 282, + /**/ + +-- +Amazing but true: If all the salmon caught in Canada in one year were laid +end to end across the Sahara Desert, the smell would be absolutely awful. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org ///