]> granicus.if.org Git - vim/commitdiff
patch 7.4.1040 v7.4.1040
authorBram Moolenaar <Bram@vim.org>
Sun, 3 Jan 2016 15:56:10 +0000 (16:56 +0100)
committerBram Moolenaar <Bram@vim.org>
Sun, 3 Jan 2016 15:56:10 +0000 (16:56 +0100)
Problem:    The tee command is not available on MS-Windows.
Solution:   Adjust tee.c for MSVC and add a makefile. (Yasuhiro Matsumoto)

src/Make_mvc.mak
src/tee/Make_mvc.mak [new file with mode: 0644]
src/tee/tee.c
src/version.c

index ebbe2797c17f7e485d55360827d4c085bf3e28f2..f3c19b5428e2b969abb98d1f13646bf3f3c2d23f 100644 (file)
@@ -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 (file)
index 0000000..a957f94
--- /dev/null
@@ -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
index 6c85766bbc5ede834be64430f045e7c9e8407943..c668d2d1e3ac409bee6f2081d28654ea7b791353 100644 (file)
@@ -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
  * 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)
        {
index 4e56f30c47cfd71e4900198dc8f66b196572509d..332bb91c19ffff61dfdc90d9415740b8283fbc46 100644 (file)
@@ -741,6 +741,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    1040,
 /**/
     1039,
 /**/