[SCM] The rsync repository. - branch master updated

Rsync CVS commit messages rsync-cvs at lists.samba.org
Sat Oct 22 11:30:07 MDT 2011


The branch, master has been updated
       via  8dd6ea1 Fix --delete-missing-args when --relative is active.
      from  7c8f180 Test asprintf() failure with < 0, not <= 0.

;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit 8dd6ea1f1ef743fdc28d00137d7bcb746642ebb6
Author: Wayne Davison <wayned at samba.org>
Date:   Sat Oct 22 10:20:08 2011 -0700

    Fix --delete-missing-args when --relative is active.

-----------------------------------------------------------------------

Summary of changes:
 flist.c |    8 ++++++--
 1 files changed, 6 insertions(+), 2 deletions(-)


Changeset truncated at 500 lines:

diff --git a/flist.c b/flist.c
index d3f4f64..6ec3c39 100644
--- a/flist.c
+++ b/flist.c
@@ -102,6 +102,7 @@ int flist_eof = 0; /* all the file-lists are now known */
 #define NORMAL_NAME 0
 #define SLASH_ENDING_NAME 1
 #define DOTDIR_NAME 2
+#define MISSING_NAME 3
 
 /* Starting from protocol version 26, we always use 64-bit ino_t and dev_t
  * internally, even if this platform does not allow files to have 64-bit inums.
@@ -1933,7 +1934,9 @@ static void send1extra(int f, struct file_struct *file, struct file_list *flist)
 
 		if (name_type != NORMAL_NAME) {
 			STRUCT_STAT st;
-			if (link_stat(fbuf, &st, 1) != 0) {
+			if (name_type == MISSING_NAME)
+				memset(&st, 0, sizeof st);
+			else if (link_stat(fbuf, &st, 1) != 0) {
 				interpret_stat_error(fbuf, True);
 				continue;
 			}
@@ -2285,7 +2288,8 @@ struct file_list *send_file_list(int f, int argc, char *argv[])
 						p = fn;
 				} else
 					fn = p;
-				send_implied_dirs(f, flist, fbuf, fbuf, p, flags, name_type);
+				send_implied_dirs(f, flist, fbuf, fbuf, p, flags,
+						  st.st_mode == 0 ? MISSING_NAME : name_type);
 				if (fn == p)
 					continue;
 			}


-- 
The rsync repository.


More information about the rsync-cvs mailing list