changeset 14726:655f00c29c58 v8.1.0375

patch 8.1.0375: cannot use diff mode with Cygwin diff.exe commit https://github.com/vim/vim/commit/3b8defd0a52fc1276816608e7bb24b628ab14c2e Author: Bram Moolenaar <Bram@vim.org> Date: Thu Sep 13 13:03:11 2018 +0200 patch 8.1.0375: cannot use diff mode with Cygwin diff.exe Problem: Cannot use diff mode with Cygwin diff.exe. (Igor Forca) Solution: Skip over unrecognized lines in the diff output.
author Christian Brabandt <cb@256bit.org>
date Thu, 13 Sep 2018 13:15:06 +0200
parents 211895f44016
children de529ea620e7
files src/diff.c src/testdir/test_diffmode.vim src/version.c
diffstat 3 files changed, 9 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/src/diff.c
+++ b/src/diff.c
@@ -1600,6 +1600,10 @@ diff_read(
 		    && (tag_fgets(linebuf, LBUFLEN, fd) == 0)
 		    && (STRNCMP(line, "@@ ", 3) == 0))
 		diffstyle = DIFF_UNIFIED;
+	    else
+		// Format not recognized yet, skip over this line.  Cygwin diff
+		// may put a warning at the start of the file.
+		continue;
 	}
 
 	if (diffstyle == DIFF_ED)
--- a/src/testdir/test_diffmode.vim
+++ b/src/testdir/test_diffmode.vim
@@ -519,7 +519,9 @@ func Test_diffexpr()
   endif
 
   func DiffExpr()
-    silent exe '!diff ' . v:fname_in . ' ' . v:fname_new . '>' . v:fname_out
+    " Prepent some text to check diff type detection
+    call writefile(['warning', '  message'], v:fname_out)
+    silent exe '!diff ' . v:fname_in . ' ' . v:fname_new . '>>' . v:fname_out
   endfunc
   set diffexpr=DiffExpr()
   set diffopt=foldcolumn:0
--- a/src/version.c
+++ b/src/version.c
@@ -795,6 +795,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    375,
+/**/
     374,
 /**/
     373,