X-Git-Url: https://mattmccutchen.net/rsync/rsync.git/blobdiff_plain/65b4e4b2a93de8e5bff93b5c7a2a529613cbc5e8..af5ed0f257e1d050b43f97ba86a1bad863196e25:/flist.c diff --git a/flist.c b/flist.c index 0893b4a0..732c2420 100644 --- a/flist.c +++ b/flist.c @@ -1111,7 +1111,6 @@ struct file_struct *make_file(const char *fname, struct file_list *flist, extra_len += DIRNODE_EXTRA_CNT * EXTRA_LEN; if (relative_paths) extra_len += PTR_EXTRA_CNT * EXTRA_LEN; - dir_count++; pool = dir_flist->file_pool; } else pool = flist->file_pool; @@ -1236,7 +1235,7 @@ struct file_struct *make_file(const char *fname, struct file_list *flist, return NULL; if (unsort_ndx) - F_NDX(file) = dir_count - 1; + F_NDX(file) = dir_count; return file; } @@ -1289,6 +1288,8 @@ static struct file_struct *send_file_name(int f, struct file_list *flist, flist_expand(flist, 1); flist->files[flist->used++] = file; if (f >= 0) { + if (S_ISDIR(file->mode)) + dir_count++; send_file_entry(f, file, flist->used - 1, flist->ndx_start); #ifdef SUPPORT_ACLS if (preserve_acls && !S_ISLNK(file->mode)) {