Matt's transliterate patch.
[rsync/rsync-patches.git] / links-depth.diff
index f9434d8..e908bb8 100644 (file)
@@ -6,17 +6,23 @@ with the latest codebase, but even in its original form it didn't
 handle relative symlinks properly, and that has not yet been fixed
 in this modified version.
 
+To use this patch, run these commands for a successful build:
+
+    patch -p1 <patches/links-depth.diff
+    ./configure                          (optional if already run)
+    make
+
 --- old/flist.c
 +++ new/flist.c
-@@ -45,6 +45,7 @@ extern int filesfrom_fd;
- extern int one_file_system;
- extern int keep_dirlinks;
+@@ -47,6 +47,7 @@ extern int keep_dirlinks;
+ extern int preserve_acls;
+ extern int preserve_xattrs;
  extern int preserve_links;
 +extern int follow_links_depth;
  extern int preserve_hard_links;
- extern int preserve_perms;
  extern int preserve_devices;
-@@ -716,6 +717,30 @@ static struct file_struct *receive_file_
+ extern int preserve_specials;
+@@ -980,6 +981,30 @@ static struct file_struct *recv_file_ent
        return file;
  }
  
@@ -44,10 +50,10 @@ in this modified version.
 +}
 +#endif
 +
- /**
-  * Create a file_struct for a named file by reading its stat()
-  * information and performing extensive checks against global
-@@ -850,7 +875,13 @@ struct file_struct *make_file(char *fnam
+ /* Create a file_struct for a named file by reading its stat() information
+  * and performing extensive checks against global options.
+  *
+@@ -1120,7 +1145,13 @@ struct file_struct *make_file(const char
        basename_len = strlen(basename) + 1; /* count the '\0' */
  
  #ifdef SUPPORT_LINKS
@@ -64,15 +70,15 @@ in this modified version.
  #endif
 --- old/options.c
 +++ new/options.c
-@@ -43,6 +43,7 @@ int append_mode = 0;
- int keep_dirlinks = 0;
+@@ -46,6 +46,7 @@ int keep_dirlinks = 0;
+ int copy_dirlinks = 0;
  int copy_links = 0;
  int preserve_links = 0;
 +int follow_links_depth = 0;
  int preserve_hard_links = 0;
- int preserve_perms = 0;
- int preserve_executability = 0;
-@@ -287,6 +288,7 @@ void usage(enum logcode F)
+ int preserve_acls = 0;
+ int preserve_xattrs = 0;
+@@ -321,6 +322,7 @@ void usage(enum logcode F)
    rprintf(F,"     --append                append data onto shorter files\n");
    rprintf(F," -d, --dirs                  transfer directories without recursing\n");
    rprintf(F," -l, --links                 copy symlinks as symlinks\n");
@@ -80,7 +86,7 @@ in this modified version.
    rprintf(F," -L, --copy-links            transform symlink into referent file/dir\n");
    rprintf(F,"     --copy-unsafe-links     only \"unsafe\" symlinks are transformed\n");
    rprintf(F,"     --safe-links            ignore symlinks that point outside the source tree\n");
-@@ -433,6 +435,7 @@ static struct poptOption long_options[] 
+@@ -496,6 +498,7 @@ static struct poptOption long_options[] 
    {"links",           'l', POPT_ARG_VAL,    &preserve_links, 1, 0, 0 },
    {"no-links",         0,  POPT_ARG_VAL,    &preserve_links, 0, 0, 0 },
    {"no-l",             0,  POPT_ARG_VAL,    &preserve_links, 0, 0, 0 },
@@ -90,7 +96,7 @@ in this modified version.
    {"safe-links",       0,  POPT_ARG_NONE,   &safe_symlinks, 0, 0, 0 },
 --- old/rsync.yo
 +++ new/rsync.yo
-@@ -310,6 +310,7 @@ to the detailed description below for a 
+@@ -335,6 +335,7 @@ to the detailed description below for a 
       --append                append data onto shorter files
   -d, --dirs                  transfer directories without recursing
   -l, --links                 copy symlinks as symlinks