Updated to apply cleanly.
[rsync/rsync-patches.git] / source-cd.diff
index 336949a..dfbb187 100644 (file)
@@ -6,17 +6,17 @@ rsync -avR --source-cd=/usr local/bin host:/
 
 For two systems where one uses /usr/local/bin and the other /local/bin.
 
---- orig/flist.c       2005-02-26 19:27:54
-+++ flist.c    2005-02-26 19:34:30
-@@ -59,6 +59,7 @@ extern int copy_unsafe_links;
+--- orig/flist.c       2005-05-14 19:51:15
++++ flist.c    2005-03-05 00:31:42
+@@ -57,6 +57,7 @@ extern int copy_unsafe_links;
  extern int protocol_version;
  extern int sanitize_paths;
  extern int orig_umask;
 +extern char *source_cd;
+ extern struct stats stats;
+ extern struct file_list *the_file_list;
  
- extern char curr_dir[MAXPATHLEN];
-@@ -1075,13 +1076,14 @@ struct file_list *send_file_list(int f, 
+@@ -1089,13 +1090,14 @@ struct file_list *send_file_list(int f, 
  
        io_start_buffering_out();
        if (filesfrom_fd >= 0) {
@@ -35,10 +35,10 @@ For two systems where one uses /usr/local/bin and the other /local/bin.
 +      }
  
        while (1) {
-               char fname2[MAXPATHLEN];
---- orig/options.c     2005-02-25 18:44:31
-+++ options.c  2005-02-22 18:06:58
-@@ -81,6 +81,7 @@ char *remote_filesfrom_file = NULL;
+               struct file_struct *file;
+--- orig/options.c     2005-05-19 08:52:42
++++ options.c  2005-03-01 01:37:22
+@@ -82,6 +82,7 @@ char *filesfrom_host = NULL;
  int eol_nulls = 0;
  int recurse = 0;
  int xfer_dirs = 0;
@@ -46,7 +46,7 @@ For two systems where one uses /usr/local/bin and the other /local/bin.
  int am_daemon = 0;
  int daemon_over_rsh = 0;
  int do_stats = 0;
-@@ -267,6 +268,7 @@ void usage(enum logcode F)
+@@ -269,6 +270,7 @@ void usage(enum logcode F)
    rprintf(F," -R, --relative              use relative path names\n");
    rprintf(F,"     --no-relative           turn off --relative\n");
    rprintf(F,"     --no-implied-dirs       don't send implied dirs with -R\n");
@@ -54,7 +54,7 @@ For two systems where one uses /usr/local/bin and the other /local/bin.
    rprintf(F," -b, --backup                make backups (see --suffix & --backup-dir)\n");
    rprintf(F,"     --backup-dir=DIR        make backups into hierarchy based in DIR\n");
    rprintf(F,"     --suffix=SUFFIX         set backup suffix (default %s w/o --backup-dir)\n",BACKUP_SUFFIX);
-@@ -417,6 +419,7 @@ static struct poptOption long_options[] 
+@@ -423,6 +425,7 @@ static struct poptOption long_options[] 
    {"list-only",        0,  POPT_ARG_VAL,    &list_only, 2, 0, 0 },
    {"relative",        'R', POPT_ARG_VAL,    &relative_paths, 1, 0, 0 },
    {"no-relative",      0,  POPT_ARG_VAL,    &relative_paths, 0, 0, 0 },
@@ -62,9 +62,9 @@ For two systems where one uses /usr/local/bin and the other /local/bin.
    {"rsh",             'e', POPT_ARG_STRING, &shell_cmd, 0, 0, 0 },
    {"block-size",      'B', POPT_ARG_LONG,   &block_size, 0, 0, 0 },
    {"max-delete",       0,  POPT_ARG_INT,    &max_delete, 0, 0, 0 },
-@@ -910,6 +913,11 @@ int parse_arguments(int *argc, const cha
-                       batch_name = NULL;
-               }
+@@ -927,6 +930,11 @@ int parse_arguments(int *argc, const cha
+               } else if (dry_run)
+                       write_batch = 0;
        }
 +      if (source_cd && files_from) {
 +              snprintf(err_buf, sizeof err_buf,
@@ -74,10 +74,10 @@ For two systems where one uses /usr/local/bin and the other /local/bin.
        if (read_batch && files_from) {
                snprintf(err_buf, sizeof err_buf,
                        "--read-batch cannot be used with --files-from\n");
-@@ -1006,6 +1014,14 @@ int parse_arguments(int *argc, const cha
+@@ -1021,6 +1029,14 @@ int parse_arguments(int *argc, const cha
+                       partial_dir = sanitize_path(NULL, partial_dir, NULL, 0);
+               if (backup_dir)
                        backup_dir = sanitize_path(NULL, backup_dir, NULL, 0);
-               if (files_from)
-                       files_from = sanitize_path(NULL, files_from, NULL, 0);
 +              if (source_cd)
 +                      source_cd = sanitize_path(NULL, source_cd, NULL, 0);
 +      } else if (source_cd && am_daemon) {
@@ -89,7 +89,7 @@ For two systems where one uses /usr/local/bin and the other /local/bin.
        }
        if (server_filter_list.head && !am_sender) {
                struct filter_list_struct *elp = &server_filter_list;
-@@ -1395,6 +1411,11 @@ void server_options(char **args,int *arg
+@@ -1420,6 +1436,11 @@ void server_options(char **args,int *arg
        } else if (keep_partial)
                args[ac++] = "--partial";
  
@@ -101,7 +101,7 @@ For two systems where one uses /usr/local/bin and the other /local/bin.
        if (ignore_errors)
                args[ac++] = "--ignore-errors";
  
---- orig/rsync.yo      2005-02-28 02:16:55
+--- orig/rsync.yo      2005-05-10 23:47:12
 +++ rsync.yo   2005-02-22 18:20:24
 @@ -304,6 +304,7 @@ to the detailed description below for a 
   -R, --relative              use relative path names
@@ -111,7 +111,7 @@ For two systems where one uses /usr/local/bin and the other /local/bin.
   -b, --backup                make backups (see --suffix & --backup-dir)
       --backup-dir=DIR        make backups into hierarchy based in DIR
       --suffix=SUFFIX         backup suffix (default ~ w/o --backup-dir)
-@@ -510,6 +511,11 @@ the bf(--no-implied-dirs) option would o
+@@ -514,6 +515,11 @@ the bf(--no-implied-dirs) option would o
  which means that if "/path" was a real directory on one machine and a
  symlink of the other machine, rsync would not try to change this.