extern struct stats stats;
extern int verbose;
+extern int do_progress;
extern int am_server;
extern int always_checksum;
static void clean_flist(struct file_list *flist, int strip_root);
-static int show_build_progress_p(void)
+static int show_filelist_p(void)
{
- extern int do_progress;
+ return verbose && recurse && !am_server;
+}
- return do_progress && verbose && recurse && !am_server;
+static void start_filelist_progress(char *kind)
+{
+ rprintf(FINFO, "%s ... ", kind);
+ if ((verbose > 1) || do_progress)
+ rprintf(FINFO, "\n");
+ rflush(FINFO);
}
-/**
- * True if we're local, etc, and should emit progress emssages.
- **/
-static void emit_build_progress(const struct file_list *flist)
+static void emit_filelist_progress(const struct file_list *flist)
{
rprintf(FINFO, " %d files...\r", flist->count);
}
-static void finish_build_progress(const struct file_list *flist)
+static void finish_filelist_progress(const struct file_list *flist)
{
- if (verbose && recurse && !am_server) {
- /* This overwrites the progress line, if any. */
- rprintf(FINFO, RSYNC_NAME ": %d files to consider.\n",
- flist->count);
- }
+ if (do_progress) {
+ /* This overwrites the progress line */
+ rprintf(FINFO, "%d files to consider\n", flist->count);
+ } else
+ rprintf(FINFO, "done\n");
}
new_ptr = realloc(flist->files, new_bytes);
if (verbose >= 2) {
- rprintf(FINFO, RSYNC_NAME ": expand file_list to %.0f bytes, did%s move\n",
+ rprintf(FINFO, "expand file_list to %.0f bytes, did%s move\n",
(double) new_bytes,
(new_ptr == flist->files) ? " not" : "");
}
if (!file)
return;
- if (show_build_progress_p() & !(flist->count % 100))
- emit_build_progress(flist);
+ if (do_progress && show_filelist_p() && ((flist->count % 100) == 0))
+ emit_filelist_progress(flist);
flist_expand(flist);
struct file_list *flist;
int64 start_write;
- if (verbose && recurse && !am_server && f != -1) {
- rprintf(FINFO, RSYNC_NAME ": building file list...\n");
- if (verbose > 1)
- rprintf(FINFO, "\n");
- rflush(FINFO);
- }
+ if (show_filelist_p() && f != -1)
+ start_filelist_progress("building file list");
start_write = stats.total_written;
send_file_entry(NULL, f, 0);
}
- finish_build_progress(flist);
+ if (show_filelist_p())
+ finish_filelist_progress(flist);
clean_flist(flist, 0);
int64 start_read;
extern int list_only;
- if (verbose && recurse && !am_server) {
- rprintf(FINFO, "receiving file list ... ");
- rflush(FINFO);
- }
+ if (show_filelist_p())
+ start_filelist_progress("receiving file list");
start_read = stats.total_read;
flist->count++;
+ if (do_progress && show_filelist_p() && ((flist->count % 100) == 0))
+ emit_filelist_progress(flist);
+
if (verbose > 2)
rprintf(FINFO, "recv_file_name(%s)\n",
f_name(flist->files[i]));
clean_flist(flist, relative_paths);
- if (verbose && recurse && !am_server) {
- rprintf(FINFO, "done\n");
+ if (show_filelist_p()) {
+ finish_filelist_progress(flist);
}
/* now recv the uid/gid list. This was introduced in protocol version 15 */
if (only_existing && statret == -1 && errno == ENOENT) {
/* we only want to update existing files */
- if (verbose > 1) rprintf(FINFO, RSYNC_NAME
- ": not creating new file \"%s\"\n",fname);
+ if (verbose > 1) rprintf(FINFO, "not creating new file \"%s\"\n",fname);
return;
}
if (safe_symlinks && unsafe_symlink(file->link, fname)) {
if (verbose) {
- rprintf(FINFO,RSYNC_NAME ": ignoring unsafe symlink \"%s\" -> \"%s\"\n",
+ rprintf(FINFO,"ignoring unsafe symlink \"%s\" -> \"%s\"\n",
fname,file->link);
}
return;
} else {
set_perms(fname,file,NULL,0);
if (verbose) {
- rprintf(FINFO,RSYNC_NAME": %s -> %s\n",
- fname,file->link);
+ rprintf(FINFO,"%s -> %s\n", fname,file->link);
}
}
#endif
if (preserve_hard_links && check_hard_link(file)) {
if (verbose > 1)
- rprintf(FINFO, RSYNC_NAME
- ": \"%s\" is a hard link\n",f_name(file));
+ rprintf(FINFO, "\"%s\" is a hard link\n",f_name(file));
return;
}
if (!S_ISREG(file->mode)) {
- rprintf(FINFO, RSYNC_NAME
- ": skipping non-regular file \"%s\"\n",fname);
+ rprintf(FINFO, "skipping non-regular file \"%s\"\n",fname);
return;
}