From 21914d8135f94b1a1bc1bda085ab8ba0249f8bc9 Mon Sep 17 00:00:00 2001 From: Wayne Davison Date: Sun, 23 Sep 2007 19:45:00 +0000 Subject: [PATCH] Made clean_flist() only duplicate *_DIR_* flags on a dropped dir when the kept entry is also a dir. --- flist.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/flist.c b/flist.c index 7f2778a1..57d1596f 100644 --- a/flist.c +++ b/flist.c @@ -2392,6 +2392,8 @@ static void clean_flist(struct file_list *flist, int strip_root) else { if (am_sender) file->flags |= FLAG_DUPLICATE; + else /* Make sure we don't lose vital flags. */ + fp->flags |= file->flags & (FLAG_TOP_DIR|FLAG_XFER_DIR); keep = j, drop = i; } } else @@ -2403,11 +2405,6 @@ static void clean_flist(struct file_list *flist, int strip_root) "removing duplicate name %s from file list (%d)\n", f_name(file, fbuf), drop + flist->ndx_start); } - /* Make sure we don't lose track of a user-specified - * top directory. */ - flist->sorted[keep]->flags |= flist->sorted[drop]->flags - & (FLAG_TOP_DIR|FLAG_XFER_DIR); - clear_file(flist->sorted[drop]); } -- 2.34.1