Mercurial > vim
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) {