Fixed a problem with checking for the '.' dir in the first file
[rsync/rsync.git] / flist.c
diff --git a/flist.c b/flist.c
index 849851e..c189824 100644 (file)
--- a/flist.c
+++ b/flist.c
@@ -376,7 +376,7 @@ int change_pathname(struct file_struct *file, const char *dir, int dirlen)
        if (!change_dir(dir, CD_NORMAL)) {
          chdir_error:
                io_error |= IOERR_GENERAL;
-               rsyserr(FERROR, errno, "change_dir %s failed", full_fname(dir));
+               rsyserr(FERROR_XFER, errno, "change_dir %s failed", full_fname(dir));
                if (dir != orig_dir)
                        change_dir(orig_dir, CD_NORMAL);
                pathname = NULL;
@@ -693,7 +693,7 @@ static struct file_struct *recv_file_entry(struct file_list *flist,
 
                if (iconvbufs(ic_recv, &inbuf, &outbuf, 0) < 0) {
                        io_error |= IOERR_GENERAL;
-                       rprintf(FINFO,
+                       rprintf(FERROR_XFER,
                            "[%s] cannot convert filename: %s (%s)\n",
                            who_am_i(), lastname, strerror(errno));
                        outbuf.len = 0;
@@ -1068,7 +1068,7 @@ struct file_struct *make_file(const char *fname, struct file_list *flist,
 
        if (strlcpy(thisname, fname, sizeof thisname) >= sizeof thisname) {
                io_error |= IOERR_GENERAL;
-               rprintf(FINFO, "skipping overly long name: %s\n", fname);
+               rprintf(FERROR_XFER, "skipping overly long name: %s\n", fname);
                return NULL;
        }
        clean_fname(thisname, 0);
@@ -1362,7 +1362,7 @@ static struct file_struct *send_file_name(int f, struct file_list *flist,
                        if (iconvbufs(ic_send, &inbuf, &outbuf, 0) < 0) {
                          convert_error:
                                io_error |= IOERR_GENERAL;
-                               rprintf(FINFO,
+                               rprintf(FERROR_XFER,
                                    "[%s] cannot convert filename: %s (%s)\n",
                                    who_am_i(), f_name(file, fbuf), strerror(errno));
                                return NULL;
@@ -1587,14 +1587,14 @@ static void send_directory(int f, struct file_list *flist, char *fbuf, int len,
                        continue;
                if (strlcpy(p, dname, remainder) >= remainder) {
                        io_error |= IOERR_GENERAL;
-                       rprintf(FINFO,
+                       rprintf(FERROR_XFER,
                                "cannot send long-named file %s\n",
                                full_fname(fbuf));
                        continue;
                }
                if (dname[0] == '\0') {
                        io_error |= IOERR_GENERAL;
-                       rprintf(FINFO,
+                       rprintf(FERROR_XFER,
                                "cannot send file with empty name in %s\n",
                                full_fname(fbuf));
                        continue;
@@ -2193,7 +2193,7 @@ struct file_list *send_file_list(int f, int argc, char *argv[])
        if (inc_recurse) {
                send_dir_depth = 1;
                add_dirs_to_tree(-1, flist, dir_count);
-               if (!file_total || strcmp(flist->sorted[0]->basename, ".") != 0)
+               if (!file_total || strcmp(flist->sorted[flist->low]->basename, ".") != 0)
                        flist->parent_ndx = -1;
                flist_done_allocating(flist);
                if (send_dir_ndx < 0) {
@@ -2318,7 +2318,7 @@ struct file_list *recv_file_list(int f)
                else
                        io_error |= read_int(f);
        } else if (inc_recurse && flist->ndx_start == 1) {
-               if (!file_total || strcmp(flist->sorted[0]->basename, ".") != 0)
+               if (!file_total || strcmp(flist->sorted[flist->low]->basename, ".") != 0)
                        flist->parent_ndx = -1;
        }