* Win64 changes to make code compile cleanly: eval.c, misc2.c, if_ole.*
* Fixed install.exe bug
* Fixed annoying warning from Explorer about gvimext.dll
* Fixed gvim.exe.mnf to be cross-platform. No longer needs to be generated
 from Make_mvc.mak
* Re-fixed spell.c so that it works with VC6. Unit tests go into an infinite
 loop otherwise.
* Updated INSTALLpc.txt to reflect that Visual C++ 2005 Express Edition is
 now free forever, recommending it over the VC 2003 Toolkit.
* Cleaned up Make_mvc.mak, incorporating (and fixing) recent patches from
 Alexei Alexandrov and Mike Williams
* Added mkdist.bat to copy all of the installable files to vim70 directory,
 where they are zipped up, for later installation on Win64 or Win32.
* Made a futile attempt to get gvim.nsi building. Just building.
 Never mind running on Win64.
* Fixed a bug in test60: test60.ok must have Unix line endings


I have tested this code with the VS 98 (VC6), VS .NET 2003 (VC 7.1),
VS 2003 Toolkit (VC 7.1), Visual Studio 2005 (VC8), Visual Studio 2005
Express Edition (VC 8), and the VS 2005 x64 cross-compiler.

I'll re-test the Win64 binaries on a borrowed AMD64 machine at work tomorrow.
As of yesterday, I was able to use install.exe to successfully install
gvim and register gvimext.dll, giving the Edit with Vim entry in
the Explorer context menu. Once everything is retested, I'll make fresh
Win64 binaries available.

One bug that I didn't fix. Build gvim.exe with OLE=no, run 'gvim -register',
and watch it crash while trying to display an error message.

--
/George V. Reilly  [EMAIL PROTECTED]
http://www.georgevreilly.com/blog
The biggest mistake is not learning from all your other mistakes.

Index: src/dosinst.c
===================================================================
--- src/dosinst.c	(revision 209)
+++ src/dosinst.c	(working copy)
@@ -1365,7 +1365,7 @@
 
 	    printf("Creating \"Edit with Vim\" popup menu entry\n");
 
-	    fprintf(fd, "HKEY_CLASSES_ROOT\\CLSID\\%s\n", vim_ext_clsid);
+	    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);
Index: src/eval.c
===================================================================
--- src/eval.c	(revision 209)
+++ src/eval.c	(working copy)
@@ -991,13 +991,13 @@
     char_u	*value;
     int		value_len;
 {
-    size_t	len;
+    int	len;
 
     if (redir_lval == NULL)
 	return;
 
     if (value_len == -1)
-	len = STRLEN(value);	/* Append the entire string */
+	len = (int)STRLEN(value);	/* Append the entire string */
     else
 	len = value_len;	/* Append only "value_len" characters */
 
Index: src/gvim.exe.mnf
===================================================================
--- src/gvim.exe.mnf	(revision 209)
+++ src/gvim.exe.mnf	(working copy)
@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
 <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
   <assemblyIdentity
-    processorArchitecture="X86"
-    version="6.2.0.0"
+    processorArchitecture="*"
+    version="7.0.0.0"
     type="win32"
     name="Vim"
   />
@@ -15,7 +15,7 @@
         version="6.0.0.0"
         publicKeyToken="6595b64144ccf1df"
         language="*"
-        processorArchitecture="X86"
+        processorArchitecture="*"
       />
     </dependentAssembly>
   </dependency>
Index: src/GvimExt/Makefile
===================================================================
--- src/GvimExt/Makefile	(revision 209)
+++ src/GvimExt/Makefile	(working copy)
@@ -23,7 +23,7 @@
 gvimext.obj: gvimext.h
 
 .cpp.obj:
-    $(cc) $(cflags) -DFEAT_GETTEXT $(cvarsdll) $*.cpp
+    $(cc) $(cflags) -DFEAT_GETTEXT $(cvarsmt) $*.cpp
 
 gvimext.res: gvimext.rc
     $(rc) $(rcflags) $(rcvars)  gvimext.rc
Index: src/if_ole.cpp
===================================================================
--- src/if_ole.cpp	(revision 209)
+++ src/if_ole.cpp	(working copy)
@@ -107,7 +107,7 @@
     STDMETHOD(SendKeys)(BSTR keys);
     STDMETHOD(Eval)(BSTR expr, BSTR *result);
     STDMETHOD(SetForeground)(void);
-    STDMETHOD(GetHwnd)(UINT *result);
+    STDMETHOD(GetHwnd)(UINT_PTR *result);
 
 private:
     // Constructor is private - create using CVim::Create()
@@ -288,9 +288,9 @@
 }
 
 STDMETHODIMP
-CVim::GetHwnd(UINT *result)
+CVim::GetHwnd(UINT_PTR *result)
 {
-    *result = (UINT) s_hwnd;
+    *result = (UINT_PTR) s_hwnd;
     return S_OK;
 }
 
Index: src/if_ole.h
===================================================================
--- src/if_ole.h	(revision 209)
+++ src/if_ole.h	(working copy)
@@ -79,7 +79,7 @@
 	virtual HRESULT STDMETHODCALLTYPE SetForeground( void) = 0;
 
 	virtual HRESULT STDMETHODCALLTYPE GetHwnd(
-	    /* [retval][out] */ UINT __RPC_FAR *result) = 0;
+	    /* [retval][out] */ UINT_PTR __RPC_FAR *result) = 0;
 
     };
 
@@ -143,7 +143,7 @@
 
 	HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetHwnd )(
 	    IVim __RPC_FAR * This,
-	    /* [retval][out] */ UINT __RPC_FAR *result);
+	    /* [retval][out] */ UINT_PTR __RPC_FAR *result);
 
 	END_INTERFACE
     } IVimVtbl;
@@ -236,7 +236,7 @@
 
 HRESULT STDMETHODCALLTYPE IVim_GetHwnd_Proxy(
     IVim __RPC_FAR * This,
-    /* [retval][out] */ UINT __RPC_FAR *result);
+    /* [retval][out] */ UINT_PTR __RPC_FAR *result);
 
 
 void __RPC_STUB IVim_GetHwnd_Stub(
Index: src/if_ole.idl
===================================================================
--- src/if_ole.idl	(revision 209)
+++ src/if_ole.idl	(working copy)
@@ -20,7 +20,7 @@
 	HRESULT SendKeys([in]BSTR keys);
 	HRESULT Eval([in]BSTR expr, [out, retval]BSTR* result);
 	HRESULT SetForeground(void);
-	HRESULT GetHwnd([out, retval]UINT* result);
+	HRESULT GetHwnd([out, retval]UINT_PTR* result);
 };
 
 // Component and type library definitions
Index: src/INSTALLpc.txt
===================================================================
--- src/INSTALLpc.txt	(revision 209)
+++ src/INSTALLpc.txt	(working copy)
@@ -82,9 +82,8 @@
 |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.
+It's easier to download Visual C++ 2005 Express Edition, |msvc-2005-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
Index: src/Make_mvc.mak
===================================================================
--- src/Make_mvc.mak	(revision 209)
+++ src/Make_mvc.mak	(working copy)
@@ -92,6 +92,8 @@
 #       Netbeans Debugging Support: NBDEBUG=[yes or no] (should be no, yes
 #       doesn't work)
 #
+#       Visual C Version: MSVCVER=m.n (default derived from nmake if undefined)
+#
 # You can combine any of these interfaces
 #
 # Example: To build the non-debug, GUI version with Perl interface:
@@ -101,7 +103,7 @@
 #	This makefile gives a fineness of control which is not supported in
 #	Visual C++ configuration files.  Therefore, debugging requires a bit of
 #	extra work.
-#	Make_dvc.mak is a Visual C++ project to access that support.
+#	Make_dvc.mak is a (probably badly out of date) Visual C++ project to access that support.
 #	To use Make_dvc.mak:
 #	1) Build Vim with Make_mvc.mak.
 #	     Use a "DEBUG=yes" argument to build Vim with debug support.
@@ -198,14 +200,12 @@
 !if "$(DEBUG)" != "yes"
 NODEBUG = 1
 !else
+!undef NODEBUG
 MAKEFLAGS_GVIMEXT = DEBUG=yes
 !endif
 
 
-# Get all sorts of useful, standard macros from the SDK.  (Note that
-# MSVC 2.2 does not install <ntwin32.mak> in the \msvc20\include
-# directory, but you can find it in \msvc20\include on the CD-ROM.
-# You may also need <win32.mak> from the same place.)
+# Get all sorts of useful, standard macros from the Platform SDK.
 
 !include <Win32.mak>
 
@@ -272,12 +272,12 @@
 
 # Set which version of the CRT to use
 !if defined(USE_MSVCRT)
-CVARS = $(cvarsdll)
+# CVARS = $(cvarsdll)
 # !elseif defined(MULTITHREADED)
 # CVARS = $(cvarsmt)
 !else
 # CVARS = $(cvars)
-CVARS = $(cvarsmt)
+# CVARS = $(cvarsmt)
 !endif
 
 # need advapi32.lib for GetUserName()
@@ -320,7 +320,41 @@
 INTDIR=$(OBJDIR)
 OUTDIR=$(OBJDIR)
 
+# Derive version of VC being used from nmake if not specified
+!if "$(MSVCVER)" == ""
+!if "$(_NMAKE_VER)" == ""
+MSVCVER = "4.0"
+!endif
+!if "$(_NMAKE_VER)" == "162"
+MSVCVER = "5.0"
+!endif
+!if "$(_NMAKE_VER)" == "6.00.8168.0"
+MSVCVER = "6.0"
+!endif
+!if "$(_NMAKE_VER)" == "7.00.9466"
+MSVCVER = "7.0"
+!endif
+!if "$(_NMAKE_VER)" == "7.10.3077"
+MSVCVER = "7.1"
+!endif
+!if "$(_NMAKE_VER)" == "8.00.50727.42"
+MSVCVER = "8.0"
+!endif
+!endif
+
+# Abort bulding VIM if version of VC is unrecognised.
+!ifndef MSVCVER
+!message *** ERROR
+!message Cannot determine Visual C version being used.  If you are using the
+!message Platform 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.
+!error Make aborted.
+!endif
+
 # Convert processor ID to MVC-compatible number
+!if "$(MSVCVER)" != "8.0"
 !if "$(CPUNR)" == "i386"
 CPUARG = /G3
 !elseif "$(CPUNR)" == "i486"
@@ -334,7 +368,16 @@
 !else
 CPUARG =
 !endif
+!else
+# VC8 only allows specifying SSE architecture
+!if "$(CPUNR)" == "pentium4"
+CPUARG = /arch:SSE2
+!endif
+!endif
 
+LIBC =
+DEBUGINFO = /Zi
+
 !ifdef NODEBUG
 VIM = vim
 !if "$(OPTIMIZE)" == "SPACE"
@@ -344,41 +387,40 @@
 !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
+!endif
+!endif
 CFLAGS = $(CFLAGS) $(OPTFLAG) -DNDEBUG $(CPUARG)
 RCFLAGS = $(rcflags) $(rcvars) -DNDEBUG
 ! ifdef USE_MSVCRT
-CFLAGS = $(CFLAGS) -MD
+CFLAGS = $(CFLAGS) /MD
 LIBC = msvcrt.lib
-# CFLAGS = $(CFLAGS) $(cvarsdll)
-# ! elseif defined(MULTITHREADED)
-# LIBC = libcmt.lib
-# CFLAGS = $(CFLAGS) $(cvarsmt)
 ! else
-# LIBC = libc.lib
 LIBC = libcmt.lib
-# CFLAGS = $(CFLAGS) $(cvars)
+CFLAGS = $(CFLAGS) /MT
 ! endif
 !else  # DEBUG
 VIM = vimd
+! if "$(CPU)" == "i386"
+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 "$(_NMAKE_VER)" == ""
+! if "$(MSVCVER)" == "4.0"
 LIBC =
 ! else
 LIBC = /fixed:no
 ! endif
 ! ifdef USE_MSVCRT
-CFLAGS = $(CFLAGS) -MDd
+CFLAGS = $(CFLAGS) /MDd
 LIBC = $(LIBC) msvcrtd.lib
-# CFLAGS = $(CFLAGS) $(cvarsdll)
-# ! elseif defined(MULTITHREADED)
-# LIBC = $(LIBC) libcmtd.lib
-# CFLAGS = $(CFLAGS) $(cvarsmt)
 ! else
-# LIBC = $(LIBC) libcd.lib
 LIBC = $(LIBC) libcmtd.lib
-# CFLAGS = $(CFLAGS) $(cvars)
+CFLAGS = $(CFLAGS) /MTd
 ! endif
 !endif # DEBUG
 
@@ -681,16 +723,18 @@
 #
 # Always generate the .pdb file, so that we get debug symbols that can be used
 # on a crash (doesn't add overhead to the executable).
+# Generate edit-and-continue debug info when no optimization - allows to
+# debug more conveniently (able to look at variables which are in registers)
 #
-CFLAGS = $(CFLAGS) /Zi /Fd$(OUTDIR)/
-LINK_PDB = /PDB:$(OUTDIR)/$(VIM).pdb -debug # -debug:full -debugtype:cv,fixup
+CFLAGS = $(CFLAGS) /Fd$(OUTDIR)/ $(DEBUGINFO)
+LINK_PDB = /PDB:$(VIM).pdb -debug
 
 #
 # End extra feature include
 #
 !message
 
-conflags = /nologo /subsystem:$(SUBSYSTEM) /incremental:no
+conflags = /nologo /subsystem:$(SUBSYSTEM)
 
 PATHDEF_SRC = $(OUTDIR)\pathdef.c
 
@@ -702,11 +746,20 @@
 conflags = $(conflags) /map /mapinfo:lines
 !ENDIF
 
-LINKARGS1 = $(linkdebug) $(conflags) /nodefaultlib:libc
+LINKARGS1 = $(linkdebug) $(conflags)
 LINKARGS2 = $(CON_LIB) $(GUI_LIB) $(LIBC) $(OLE_LIB)  user32.lib $(SNIFF_LIB) \
 		$(MZSCHEME_LIB) $(PERL_LIB) $(PYTHON_LIB) $(RUBY_LIB) \
 		$(TCL_LIB) $(NETBEANS_LIB) $(XPM_LIB) $(LINK_PDB)
 
+# Report link time code generation progress if used. 
+!ifdef NODEBUG
+!if "$(MSVCVER)" == "8.0"
+!if "$(OPTIMIZE)" != "SPACE"
+LINKARGS1 = $(LINKARGS1) /LTCG:STATUS
+!endif
+!endif
+!endif
+
 all:	$(VIM).exe vimrun.exe install.exe uninstal.exe xxd/xxd.exe \
 		GvimExt/gvimext.dll
 
@@ -761,7 +814,6 @@
 	- if exist $(VIM).pdb del $(VIM).pdb
 	- if exist $(VIM).map del $(VIM).map
 	- if exist $(VIM).ncb del $(VIM).ncb
-	- if exist gvim.exe.mnf del gvim.exe.mnf
 	- if exist vimrun.exe del vimrun.exe
 	- if exist install.exe del install.exe
 	- if exist uninstal.exe del uninstal.exe
@@ -795,7 +847,7 @@
 
 # Create a default rule for transforming .c files to .obj files in $(OUTDIR)
 # Batch compilation is supported by nmake 1.62 (part of VS 5.0) and later)
-!IF "$(_NMAKE_VER)" == ""
+!IF "$(MSVCVER)" == "4.0"
 .c{$(OUTDIR)/}.obj:
 !ELSE
 .c{$(OUTDIR)/}.obj::
@@ -804,7 +856,7 @@
 
 # Create a default rule for transforming .cpp files to .obj files in $(OUTDIR)
 # Batch compilation is supported by nmake 1.62 (part of VS 5.0) and later)
-!IF "$(_NMAKE_VER)" == ""
+!IF "$(MSVCVER)" == "4.0"
 .cpp{$(OUTDIR)/}.obj:
 !ELSE
 .cpp{$(OUTDIR)/}.obj::
@@ -943,7 +995,7 @@
 $(OUTDIR)/xpm_w32.obj: $(OUTDIR) xpm_w32.c
 	$(CC) $(CFLAGS) $(XPM_INC) xpm_w32.c
 
-$(OUTDIR)/vim.res:	$(OUTDIR) gvim.exe.mnf vim.rc version.h tools.bmp tearoff.bmp \
+$(OUTDIR)/vim.res:	$(OUTDIR) vim.rc version.h tools.bmp tearoff.bmp \
 		vim.ico vim_error.ico vim_alert.ico vim_info.ico vim_quest.ico
 	$(RC) /l 0x409 /Fo$(OUTDIR)/vim.res $(RCFLAGS) vim.rc
 
@@ -973,30 +1025,6 @@
 	@echo char_u *compiled_user = (char_u *)"$(USERNAME)"; >> $(PATHDEF_SRC)
 	@echo char_u *compiled_sys = (char_u *)"$(USERDOMAIN)"; >> $(PATHDEF_SRC)
 
-gvim.exe.mnf: auto
-	@echo ^<?xml version="1.0" encoding="UTF-8" standalone="yes"?^> >$@
-	@echo ^<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"^> >>$@
-	@echo   ^<assemblyIdentity >>$@
-	@echo     processorArchitecture="$(ASSEMBLY_ARCHITECTURE)" >>$@
-	@echo     version="7.0.0.0" >>$@
-	@echo     type="win32" >>$@
-	@echo     name="Vim" >>$@
-	@echo   /^> >>$@
-	@echo   ^<description^>Vi Improved - A Text Editor^</description^> >>$@
-	@echo   ^<dependency^> >>$@
-	@echo     ^<dependentAssembly^> >>$@
-	@echo       ^<assemblyIdentity >>$@
-	@echo         type="win32" >>$@
-	@echo         name="Microsoft.Windows.Common-Controls" >>$@
-	@echo         version="6.0.0.0" >>$@
-	@echo         publicKeyToken="6595b64144ccf1df" >>$@
-	@echo         language="*" >>$@
-	@echo         processorArchitecture="$(ASSEMBLY_ARCHITECTURE)" >>$@
-	@echo       /^> >>$@
-	@echo     ^</dependentAssembly^> >>$@
-	@echo   ^</dependency^> >>$@
-	@echo ^</assembly^> >>$@
-
 auto:
 	if not exist auto/nul mkdir auto
 
Index: src/misc2.c
===================================================================
--- src/misc2.c	(revision 209)
+++ src/misc2.c	(working copy)
@@ -1246,7 +1246,7 @@
     char_u	*escaped_string;
 
     /* First count the number of extra bytes required. */
-    length = STRLEN(string) + 3;	/* two quotes and the trailing NUL */
+    length = (unsigned)STRLEN(string) + 3;	/* two quotes and the trailing NUL */
     for (p = string; *p != NUL; mb_ptr_adv(p))
     {
 # if defined(WIN32) || defined(WIN16) || defined(DOS)
Index: src/spell.c
===================================================================
--- src/spell.c	(revision 209)
+++ src/spell.c	(working copy)
@@ -7798,7 +7798,7 @@
 # if (_MSC_VER <= 1200)
 /* This line is required for VC6 without the service pack.  Also see the
  * matching #pragma below. */
-/* # pragma optimize("", off) */
+# pragma optimize("", off)
 # endif
 #endif
 
@@ -7828,7 +7828,7 @@
 
 #ifdef _MSC_VER
 # if (_MSC_VER <= 1200)
-/* # pragma optimize("", on) */
+# pragma optimize("", on)
 # endif
 #endif
 
Index: src/testdir/Make_dos.mak
===================================================================
--- src/testdir/Make_dos.mak	(revision 209)
+++ src/testdir/Make_dos.mak	(working copy)
@@ -48,22 +48,23 @@
 
 fixff:
 	-$(VIMPROG) -u dos.vim --noplugin "+argdo set ff=dos|upd" +q *.in *.ok
+	-$(VIMPROG) -u dos.vim --noplugin "+argdo set ff=unix|upd" +q test60.ok
 
 clean:
 	-del *.out
-	-del test.ok
+	-if exist test.ok del test.ok
 	-del small.vim
 	-del tiny.vim
 	-del mbyte.vim
 	-del X*
-	-del viminfo
+	-if exist viminfo del viminfo
 
 .in.out:
 	copy $*.ok test.ok
 	$(VIMPROG) -u dos.vim -U NONE --noplugin -s dotest.in $*.in
 	diff test.out $*.ok
-	-del $*.out
+	-if exist $*.out del $*.out
 	rename test.out $*.out
 	-del X*
 	-del test.ok
-	-del viminfo
+	-if exist viminfo del viminfo
Index: mkdist.bat
===================================================================
--- mkdist.bat	(revision 0)
+++ mkdist.bat	(revision 0)
@@ -0,0 +1,88 @@
[EMAIL PROTECTED] zip a complete distribution of Vim for Win32 or Win64
+
[EMAIL PROTECTED]
[EMAIL PROTECTED] (%_echo%)==()  set _echo=off
[EMAIL PROTECTED] %_echo%
+
[EMAIL PROTECTED] pass in the patchlevel and/or platform; e.g., -192-amd64
+set Patch=%1
+
+set VimVer=vim70
+set TargetDir=%~dp0%VimVer%
+set RelativeTargetDir=%VimVer%
+set ZipFile=%VimVer%%Patch%.zip
+
+REM set ObjSuffix if you've added some non-standard extras; e.g., Y for Python
+REM see Make_mvc.mak for details
+:: set ObjSuffix=Y
+
+if exist %TargetDir% (rmdir /s/q %TargetDir%)
+mkdir %TargetDir%
+
+pushd runtime
+
+for /d %%g in (autoload colors compiler ftplugin indent keymap lang macros plugin print syntax tools tutor) do (
+    echo %%g
+    xcopy /yqsi %%g %TargetDir%\%%g > nul
+)
+for %%g in (rgb.txt *.vim) do (
+    xcopy /yq %%g %TargetDir% > nul
+)
+
+mkdir %TargetDir%\doc
+cd doc
+echo doc
+for %%g in (tags *.txt) do (
+    xcopy /yq %%g %TargetDir%\doc > nul
+)
+
+mkdir %TargetDir%\spell
+cd ..\spell
+echo spell
+for %%g in (*.txt *.vim *.spl *.sug) do (
+    xcopy /yq %%g %TargetDir%\spell > nul
+)
+
+popd
+
+for %%g in (README.txt uninstal.txt vimtutor.bat) do (
+    xcopy /yq %%g %TargetDir% > nul
+)
+
+call :CopyExe    install
+call :CopyExe    uninstal
+call :CopyExe    vimrun
+call :CopyExe    xxd\xxd
+call :CopyExe    ..\tools\diff
+call :CopyDll    ..\tools\libintl
+call :CopyDll    GvimExt\gvimext
+call :CopyDll    VisVim\VisVim
+call :CopyFile   VisVim\README_VisVim.txt
+
+call :CopyExePdb vim   ObjC%ObjSuffix%
+call :CopyExePdb vimd  ObjC%ObjSuffix%d
+call :CopyExePdb gvim  ObjGO%ObjSuffix%
+call :CopyExePdb gvimd ObjGO%ObjSuffix%d
+
+if exist %ZipFile%  attrib -R %ZipFile% && del /q %ZipFile%
+echo Zipping to %ZipFile%
+zip -q -r %ZipFile% %RelativeTargetDir%
+dir %ZipFile%
+goto :EOF
+
+:CopyFile
+xcopy /yf src\%1 %TargetDir%
+goto :EOF
+
+:CopyDll
+call :CopyFile %1.dll
+goto :EOF
+
+:CopyExe
+call :CopyFile %1.exe
+goto :EOF
+
+:CopyExePdb
+call :CopyExe %1
+call :CopyFile %1.pdb
+goto :EOF

Reply via email to