Mercurial > vim
changeset 3524:d8ce4a2eb44e v7.3.523
updated for version 7.3.523
Problem: ":diffupdate" doesn't check for files changed elsewhere.
Solution: Add the ! flag. (Christian Brabandt)
author | Bram Moolenaar <bram@vim.org> |
---|---|
date | Fri, 18 May 2012 18:47:17 +0200 |
parents | e4d7858de642 |
children | b1f40dd6f844 |
files | runtime/doc/diff.txt src/diff.c src/ex_cmds.h src/version.c |
diffstat | 4 files changed, 16 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/runtime/doc/diff.txt +++ b/runtime/doc/diff.txt @@ -178,7 +178,7 @@ buffer. If you don't want a buffer to r nodiff" before hiding it. *:diffu* *:diffupdate* -:diffu[pdate] Update the diff highlighting and folds. +:diffu[pdate][!] Update the diff highlighting and folds. Vim attempts to keep the differences updated when you make changes to the text. This mostly takes care of inserted and deleted lines. Changes within a @@ -187,6 +187,9 @@ To force the differences to be updated u :diffupdate +If the ! is included Vim will check if the file was changed externally and +needs to be reloaded. It will prompt for each changed file, like `:checktime` +was used. Vim will show filler lines for lines that are missing in one window but are present in another. These lines were inserted in another file or deleted in
--- a/src/diff.c +++ b/src/diff.c @@ -783,6 +783,15 @@ ex_diffupdate(eap) goto theend; } + /* :diffupdate! */ + if (eap != NULL && eap->forceit) + for (idx_new = idx_orig; idx_new < DB_COUNT; ++idx_new) + { + buf = curtab->tp_diffbuf[idx_new]; + if (buf_valid(buf)) + buf_check_timestamp(buf, FALSE); + } + /* Write the first buffer to a tempfile. */ buf = curtab->tp_diffbuf[idx_orig]; if (diff_write(buf, tmp_orig) == FAIL)
--- a/src/ex_cmds.h +++ b/src/ex_cmds.h @@ -304,7 +304,7 @@ EX(CMD_delfunction, "delfunction", ex_de EX(CMD_display, "display", ex_display, EXTRA|NOTRLCOM|TRLBAR|SBOXOK|CMDWIN), EX(CMD_diffupdate, "diffupdate", ex_diffupdate, - TRLBAR), + BANG|TRLBAR), EX(CMD_diffget, "diffget", ex_diffgetput, RANGE|EXTRA|TRLBAR|MODIFY), EX(CMD_diffoff, "diffoff", ex_diffoff,