Split code out into separate files and remove some global variables to
[rsync/rsync.git] / flist.c
diff --git a/flist.c b/flist.c
index 151ae87..3d0ff53 100644 (file)
--- a/flist.c
+++ b/flist.c
@@ -101,12 +101,13 @@ static void finish_filelist_progress(const struct file_list *flist)
 {
        if (do_progress) {
                /* This overwrites the progress line */
-               rprintf(FINFO, "%d files to consider\n", flist->count);
-       } else
+               rprintf(FINFO, "%d file%sto consider\n",
+                       flist->count, flist->count == 1 ? " " : "s ");
+       } else {
                rprintf(FINFO, "done\n");
+       }
 }
 
-
 void show_flist_stats(void)
 {
        /* Nothing yet */
@@ -191,6 +192,13 @@ static void list_file_entry(struct file_struct *f)
 }
 
 
+/**
+ * Stat either a symlink or its referent, depending on the settings of
+ * copy_links, copy_unsafe_links, etc.
+ *
+ * @return -1 on error; or 0.  If a symlink, then @p Linkbuf (of size
+ * MAXPATHLEN) contains the symlink target.
+ **/
 int readlink_stat(const char *Path, STRUCT_STAT * Buffer, char *Linkbuf)
 {
 #if SUPPORT_LINKS
@@ -987,8 +995,9 @@ struct file_list *send_file_list(int f, int argc, char *argv[])
                send_file_entry(NULL, f, 0);
        }
 
-       if (show_filelist_p())
+       if (show_filelist_p() && f != -1) {
                finish_filelist_progress(flist);
+       }
 
        clean_flist(flist, 0);