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