To: vim_dev@googlegroups.com
Subject: Patch 7.3.523
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------

Patch 7.3.523
Problem:    ":diffupdate" doesn't check for files changed elsewhere.
Solution:   Add the ! flag. (Christian Brabandt)
Files:	    runtime/doc/diff.txt, src/diff.c, src/ex_cmds.h


*** ../vim-7.3.522/runtime/doc/diff.txt	2010-08-15 21:57:16.000000000 +0200
--- runtime/doc/diff.txt	2012-05-18 18:41:49.000000000 +0200
***************
*** 178,184 ****
  nodiff" before hiding it.
  
  							*:diffu* *:diffupdate*
! :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
--- 178,184 ----
  nodiff" before hiding it.
  
  							*:diffu* *:diffupdate*
! :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,192 ****
--- 187,195 ----
  
  	: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
*** ../vim-7.3.522/src/diff.c	2010-09-21 16:56:29.000000000 +0200
--- src/diff.c	2012-05-18 18:45:09.000000000 +0200
***************
*** 783,788 ****
--- 783,797 ----
  	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)
*** ../vim-7.3.522/src/ex_cmds.h	2012-02-13 00:01:38.000000000 +0100
--- src/ex_cmds.h	2012-05-18 18:37:56.000000000 +0200
***************
*** 304,310 ****
  EX(CMD_display,		"display",	ex_display,
  			EXTRA|NOTRLCOM|TRLBAR|SBOXOK|CMDWIN),
  EX(CMD_diffupdate,	"diffupdate",	ex_diffupdate,
! 			TRLBAR),
  EX(CMD_diffget,		"diffget",	ex_diffgetput,
  			RANGE|EXTRA|TRLBAR|MODIFY),
  EX(CMD_diffoff,		"diffoff",	ex_diffoff,
--- 304,310 ----
  EX(CMD_display,		"display",	ex_display,
  			EXTRA|NOTRLCOM|TRLBAR|SBOXOK|CMDWIN),
  EX(CMD_diffupdate,	"diffupdate",	ex_diffupdate,
! 			BANG|TRLBAR),
  EX(CMD_diffget,		"diffget",	ex_diffgetput,
  			RANGE|EXTRA|TRLBAR|MODIFY),
  EX(CMD_diffoff,		"diffoff",	ex_diffoff,
*** ../vim-7.3.522/src/version.c	2012-05-18 18:34:15.000000000 +0200
--- src/version.c	2012-05-18 18:39:13.000000000 +0200
***************
*** 716,717 ****
--- 716,719 ----
  {   /* Add new patch number below this line */
+ /**/
+     523
  /**/

-- 
"The future's already arrived - it's just not evenly distributed yet."
		-- William Gibson

 /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\  an exciting new programming language -- http://www.Zimbu.org        ///
 \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
