Sending --no-whole-file is no good because it will not work with old
[rsync/rsync.git] / generator.c
index 9617c92..bdd27bc 100644 (file)
@@ -31,6 +31,7 @@ extern int am_root;
 extern int preserve_devices;
 extern int preserve_hard_links;
 extern int update_only;
+extern int opt_ignore_existing;
 extern int whole_file;
 extern int block_size;
 extern int csum_length;
@@ -218,8 +219,7 @@ void recv_generator(char *fname,struct file_list *flist,int i,int f_out)
 
        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;
        }
 
@@ -272,7 +272,7 @@ void recv_generator(char *fname,struct file_list *flist,int i,int f_out)
 
                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;
@@ -300,8 +300,7 @@ void recv_generator(char *fname,struct file_list *flist,int i,int f_out)
                } 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
@@ -333,14 +332,12 @@ void recv_generator(char *fname,struct file_list *flist,int i,int f_out)
 
        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;
        }
 
@@ -383,6 +380,12 @@ void recv_generator(char *fname,struct file_list *flist,int i,int f_out)
                return;
        }
 
+       if (opt_ignore_existing && fnamecmp == fname) { 
+               if (verbose > 1)
+                       rprintf(FINFO,"%s exists\n",fname);
+               return;
+       } 
+
        if (update_only && cmp_modtime(st.st_mtime,file->modtime)>0 && fnamecmp == fname) {
                if (verbose > 1)
                        rprintf(FINFO,"%s is newer\n",fname);
@@ -400,6 +403,8 @@ void recv_generator(char *fname,struct file_list *flist,int i,int f_out)
                return;
        }
 
+       assert(whole_file == 0 || whole_file == 1);
+       /* We should have decided by now. */
        if (whole_file) {
                write_int(f_out,i);
                send_sums(NULL,f_out);