X-Git-Url: https://mattmccutchen.net/rsync/rsync.git/blobdiff_plain/e6ffb966ddafc5be6f840e1e09955e773d54b2bd..fa3e4a0548699ccaac41df2428fe1ad9d3659435:/flist.c diff --git a/flist.c b/flist.c index 6b1be786..4a2f81d4 100644 --- a/flist.c +++ b/flist.c @@ -59,6 +59,7 @@ extern int copy_unsafe_links; extern int protocol_version; extern int sanitize_paths; extern int orig_umask; +extern const char *io_write_phase; extern struct stats stats; extern struct file_list *the_file_list; @@ -130,26 +131,26 @@ void show_flist_stats(void) static void list_file_entry(struct file_struct *f) { - char perms[11]; + char permbuf[PERMSTRING_SIZE]; if (!f->basename) { /* this can happen if duplicate names were removed */ return; } - permstring(perms, f->mode); + permstring(permbuf, f->mode); #ifdef SUPPORT_LINKS if (preserve_links && S_ISLNK(f->mode)) { rprintf(FINFO, "%s %11.0f %s %s -> %s\n", - perms, + permbuf, (double)f->length, timestring(f->modtime), f_name(f, NULL), f->u.link); } else #endif { rprintf(FINFO, "%s %11.0f %s %s\n", - perms, + permbuf, (double)f->length, timestring(f->modtime), f_name(f, NULL)); } @@ -1916,6 +1917,7 @@ struct file_list *get_dirlist(char *dirname, int dlen, struct file_list *dirlist; char dirbuf[MAXPATHLEN]; int save_recurse = recurse; + int save_xfer_dirs = xfer_dirs; if (dlen < 0) { dlen = strlcpy(dirbuf, dirname, MAXPATHLEN); @@ -1927,7 +1929,9 @@ struct file_list *get_dirlist(char *dirname, int dlen, dirlist = flist_new(WITHOUT_HLINK, "get_dirlist"); recurse = 0; + xfer_dirs = 1; send_directory(ignore_filter_rules ? -2 : -1, dirlist, dirname, dlen); + xfer_dirs = save_xfer_dirs; recurse = save_recurse; if (do_progress) flist_count_offset += dirlist->count;