0
0
mirror of https://github.com/vim/vim.git synced 2025-07-26 11:04:33 -04:00

patch 8.2.2880: unified diff fails if actually used

Problem:    Unified diff fails if actually used.
Solution:   Invoke :diffupdate in the test.  Fix the check for working external
            diff. (Ghjuvan Lacambre, Christian Brabandt, closes #8197)
This commit is contained in:
glacambre 2021-05-24 14:20:53 +02:00 committed by Bram Moolenaar
parent f5409dbf66
commit ad5c178a19
3 changed files with 10 additions and 3 deletions

View File

@ -1007,10 +1007,12 @@ check_external_diff(diffio_T *diffio)
for (;;)
{
// There must be a line that contains "1c1".
// For normal diff there must be a line that contains
// "1c1". For unified diff "@@ -1 +1 @@".
if (vim_fgets(linebuf, LBUFLEN, fd))
break;
if (STRNCMP(linebuf, "1c1", 3) == 0)
if (STRNCMP(linebuf, "1c1", 3) == 0
|| STRNCMP(linebuf, "@@ -1 +1 @@", 11) == 0)
ok = TRUE;
}
fclose(fd);

View File

@ -796,6 +796,7 @@ func VerifyBoth(buf, dumpfile, extra)
" also test unified diff
call term_sendkeys(a:buf, ":call SetupUnified()\<CR>:")
call term_sendkeys(a:buf, ":redraw!\<CR>:")
call VerifyScreenDump(a:buf, a:dumpfile, {}, 'unified')
call term_sendkeys(a:buf, ":call StopUnified()\<CR>:")
endfunc
@ -817,10 +818,11 @@ func Test_diff_screen()
func UnifiedDiffExpr()
" Prepend some text to check diff type detection
call writefile(['warning', ' message'], v:fname_out)
silent exe '!diff -u ' .. v:fname_in .. ' ' .. v:fname_new .. '>>' .. v:fname_out
silent exe '!diff -U0 ' .. v:fname_in .. ' ' .. v:fname_new .. '>>' .. v:fname_out
endfunc
func SetupUnified()
set diffexpr=UnifiedDiffExpr()
diffupdate
endfunc
func StopUnified()
set diffexpr=
@ -1218,4 +1220,5 @@ func Test_diff_filler_cursorcolumn()
call delete('Xtest_diff_cuc')
endfunc
" vim: shiftwidth=2 sts=2 expandtab

View File

@ -750,6 +750,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
2880,
/**/
2879,
/**/