summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2016-01-03 16:56:10 +0100
committerBram Moolenaar <Bram@vim.org>2016-01-03 16:56:10 +0100
commit24db72958fc91bd067c7d60a4990d09a6f295b48 (patch)
tree161dfae4fd7303c807d3fd67e48bee62e255c949
parentd798af8c77cf47dba74b6b69ae4eba904023981c (diff)
downloadvim-git-24db72958fc91bd067c7d60a4990d09a6f295b48.tar.gz
patch 7.4.1040v7.4.1040
Problem: The tee command is not available on MS-Windows. Solution: Adjust tee.c for MSVC and add a makefile. (Yasuhiro Matsumoto)
-rw-r--r--src/Make_mvc.mak14
-rw-r--r--src/tee/Make_mvc.mak14
-rw-r--r--src/tee/tee.c32
-rw-r--r--src/version.c2
4 files changed, 48 insertions, 14 deletions
diff --git a/src/Make_mvc.mak b/src/Make_mvc.mak
index ebbe2797c..f3c19b542 100644
--- 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)
diff --git a/src/tee/Make_mvc.mak b/src/tee/Make_mvc.mak
new file mode 100644
index 000000000..a957f944a
--- /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
diff --git a/src/tee/tee.c b/src/tee/tee.c
index 6c85766bb..c668d2d1e 100644
--- 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)
{
diff --git a/src/version.c b/src/version.c
index 4e56f30c4..332bb91c1 100644
--- 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,