diff options
author | Bram Moolenaar <Bram@vim.org> | 2016-01-03 16:56:10 +0100 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2016-01-03 16:56:10 +0100 |
commit | 24db72958fc91bd067c7d60a4990d09a6f295b48 (patch) | |
tree | 161dfae4fd7303c807d3fd67e48bee62e255c949 | |
parent | d798af8c77cf47dba74b6b69ae4eba904023981c (diff) | |
download | vim-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.mak | 14 | ||||
-rw-r--r-- | src/tee/Make_mvc.mak | 14 | ||||
-rw-r--r-- | src/tee/tee.c | 32 | ||||
-rw-r--r-- | src/version.c | 2 |
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, |