extern pid_t cleanup_child_pid;
extern char *files_from;
extern char *remote_filesfrom_file;
+extern char *partial_dir;
extern char *basis_dir[];
extern char *rsync_path;
extern char *shell_cmd;
int pid;
int status = 0;
int error_pipe[2], name_pipe[2];
- BOOL need_name_pipe = basis_dir[0] && !dry_run;
+ BOOL need_name_pipe = (basis_dir[0] || partial_dir) && !dry_run;
/* The receiving side mustn't obey this, or an existing symlink that
* points to an identical file won't be replaced by the referent. */
char *local_name = NULL;
cleanup_child_pid = pid;
- if (read_batch) {
- assert(am_sender == 0);
- } else {
+ if (!read_batch) {
set_nonblocking(f_in);
set_nonblocking(f_out);
}