changeset 7475:6b5ce5161d6d v7.4.1040

commit https://github.com/vim/vim/commit/24db72958fc91bd067c7d60a4990d09a6f295b48 Author: Bram Moolenaar <Bram@vim.org> Date: Sun Jan 3 16:56:10 2016 +0100 patch 7.4.1040 Problem: The tee command is not available on MS-Windows. Solution: Adjust tee.c for MSVC and add a makefile. (Yasuhiro Matsumoto)
author Christian Brabandt <cb@256bit.org>
date Sun, 03 Jan 2016 17:00:04 +0100
parents 1d46d5ccb5be
children 023506554cad
files src/Make_mvc.mak src/tee/Make_mvc.mak src/tee/tee.c src/version.c
diffstat 4 files changed, 48 insertions(+), 14 deletions(-) [+]
line wrap: on
line diff
--- a/src/Make_mvc.mak
+++ b/src/Make_mvc.mak
@@ -946,8 +946,13 @@ LINKARGS1 = $(LINKARGS1) /LTCG:STATUS
 !endif
 !endif
 
-all:	$(VIM).exe vimrun.exe install.exe uninstal.exe xxd/xxd.exe \
-		GvimExt/gvimext.dll
+all:	$(VIM).exe \
+	vimrun.exe \
+	install.exe \
+	uninstal.exe \
+	xxd/xxd.exe \
+	tee/tee.exe \
+	GvimExt/gvimext.dll
 
 $(VIM).exe: $(OUTDIR) $(OBJ) $(GUI_OBJ) $(OLE_OBJ) $(OLE_IDL) $(MZSCHEME_OBJ) \
 		$(LUA_OBJ) $(PERL_OBJ) $(PYTHON_OBJ) $(PYTHON3_OBJ) $(RUBY_OBJ) $(TCL_OBJ) \
@@ -982,6 +987,11 @@ xxd/xxd.exe: xxd/xxd.c
 	$(MAKE) /NOLOGO -f Make_mvc.mak
 	cd ..
 
+tee/tee.exe: tee/tee.c
+	cd tee
+	$(MAKE) /NOLOGO -f Make_mvc.mak
+	cd ..
+
 GvimExt/gvimext.dll: GvimExt/gvimext.cpp GvimExt/gvimext.rc GvimExt/gvimext.h
 	cd GvimExt
 	$(MAKE) /NOLOGO -f Makefile $(MAKEFLAGS_GVIMEXT)
new file mode 100644
--- /dev/null
+++ b/src/tee/Make_mvc.mak
@@ -0,0 +1,14 @@
+# A very (if not the most) simplistic Makefile for MSVC
+
+CC=cl
+CFLAGS=/O2
+
+tee.exe: tee.obj
+	$(CC) $(CFLAGS) /Fo$@ $**
+
+tee.obj: tee.c
+	$(CC) $(CFLAGS) /c $**
+
+clean:
+	- del tee.obj
+	- del tee.exe
--- a/src/tee/tee.c
+++ b/src/tee/tee.c
@@ -4,6 +4,7 @@
  *
  *	Author: Paul Slootman
  *			(paul@wurtel.hobby.nl, paul@murphy.nl, paulS@toecompst.nl)
+ *	Modifications for MSVC: Yasuhiro Matsumoto
  *
  *	This source code is released into the public domain. It is provided on an
  *	as-is basis and no responsibility is accepted for its failure to perform
@@ -26,9 +27,16 @@
  * precompiled for OS/2. That one probably works better.
  */
 
-#include <unistd.h>
+#ifndef _MSC_VER
+# include <unistd.h>
+#endif
 #include <malloc.h>
 #include <stdio.h>
+#include <fcntl.h>
+
+#ifdef _WIN32
+# define sysconf(x) -1
+#endif
 
 void usage(void)
 {
@@ -79,17 +87,17 @@ main(int argc, char *argv[])
 	int	i;
 	char	buf[BUFSIZ];
 	int	n;
-	extern int	optind;
+	int	optind = 1;
 
-	while ((opt = getopt(argc, argv, "a")) != EOF)
+	for (i = 1; i < argc; i++)
 	{
-		switch (opt)
-		{
-			case 'a':	append++;
-					break;
-			default:	usage();
-					exit(2);
-		}
+		if (argv[i][0] != '-')
+			break;
+		if (!strcmp(argv[i], "-a"))
+			append++;
+		else
+			usage();
+		optind++;
 	}
 
 	numfiles = argc - optind;
@@ -124,9 +132,9 @@ main(int argc, char *argv[])
 			exit(1);
 		}
 	}
-	_fsetmode(stdin,  "b");
+	setmode(fileno(stdin),  O_BINARY);
 	fflush(stdout);	/* needed for _fsetmode(stdout) */
-	_fsetmode(stdout, "b");
+	setmode(fileno(stdout),  O_BINARY);
 
 	while ((n = myfread(buf, sizeof(char), sizeof(buf), stdin)) > 0)
 	{
--- a/src/version.c
+++ b/src/version.c
@@ -742,6 +742,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1040,
+/**/
     1039,
 /**/
     1038,