# HG changeset patch # User Christian Brabandt # Date 1536837306 -7200 # Node ID 655f00c29c58a865a99dc46b49dffd81b9361674 # Parent 211895f4401622e550028d43684f5a8fb40525fb patch 8.1.0375: cannot use diff mode with Cygwin diff.exe commit https://github.com/vim/vim/commit/3b8defd0a52fc1276816608e7bb24b628ab14c2e Author: Bram Moolenaar 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. diff --git a/src/diff.c b/src/diff.c --- 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) diff --git a/src/testdir/test_diffmode.vim b/src/testdir/test_diffmode.vim --- 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 diff --git a/src/version.c b/src/version.c --- 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,