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.
diff --git a/src/diff.c b/src/diff.c
index 0055cba..59daf1e 100644
--- a/src/diff.c
+++ b/src/diff.c
@@ -1600,6 +1600,10 @@
&& (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)
diff --git a/src/testdir/test_diffmode.vim b/src/testdir/test_diffmode.vim
index c3c1eaf..0022a73 100644
--- a/src/testdir/test_diffmode.vim
+++ b/src/testdir/test_diffmode.vim
@@ -519,7 +519,9 @@
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
diff --git a/src/version.c b/src/version.c
index ca6ac59..c103339 100644
--- a/src/version.c
+++ b/src/version.c
@@ -795,6 +795,8 @@
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 375,
+/**/
374,
/**/
373,