handle relative symlinks properly, and that has not yet been fixed
in this modified version.
---- orig/flist.c 2005-02-03 02:04:20
+--- orig/flist.c 2005-02-14 02:45:10
+++ flist.c 2004-07-16 16:58:04
-@@ -52,6 +52,7 @@ extern int filesfrom_fd;
+@@ -51,6 +51,7 @@ extern int filesfrom_fd;
extern int one_file_system;
extern int keep_dirlinks;
extern int preserve_links;
extern int preserve_hard_links;
extern int preserve_perms;
extern int preserve_devices;
-@@ -738,6 +739,30 @@ static void receive_file_entry(struct fi
+@@ -737,6 +738,30 @@ static struct file_struct *receive_file_
}
@@ -862,7 +887,13 @@ skip_filters:
basename_len = strlen(basename) + 1; /* count the '\0' */
- #if SUPPORT_LINKS
+ #ifdef SUPPORT_LINKS
- linkname_len = S_ISLNK(st.st_mode) ? strlen(linkname) + 1 : 0;
+ if (S_ISLNK(st.st_mode)) {
+ if (follow_links_depth && links_depth(linkname, &st))
#else
linkname_len = 0;
#endif
---- orig/options.c 2005-02-01 10:39:22
+--- orig/options.c 2005-02-14 02:45:10
+++ options.c 2005-01-28 19:33:24
@@ -43,6 +43,7 @@ int archive_mode = 0;
int keep_dirlinks = 0;
int preserve_hard_links = 0;
int preserve_perms = 0;
int preserve_devices = 0;
-@@ -260,6 +261,7 @@ void usage(enum logcode F)
+@@ -263,6 +264,7 @@ void usage(enum logcode F)
rprintf(F," --inplace update destination files in-place (SEE MAN PAGE)\n");
rprintf(F," -d, --dirs transfer directories without recursing\n");
rprintf(F," -l, --links copy symlinks as symlinks\n");
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");
-@@ -378,6 +380,7 @@ static struct poptOption long_options[]
+@@ -383,6 +385,7 @@ static struct poptOption long_options[]
{"inplace", 0, POPT_ARG_NONE, &inplace, 0, 0, 0 },
{"dirs", 'd', POPT_ARG_VAL, &xfer_dirs, 2, 0, 0 },
{"links", 'l', POPT_ARG_NONE, &preserve_links, 0, 0, 0 },
{"copy-links", 'L', POPT_ARG_NONE, ©_links, 0, 0, 0 },
{"keep-dirlinks", 'K', POPT_ARG_NONE, &keep_dirlinks, 0, 0, 0 },
{"whole-file", 'W', POPT_ARG_VAL, &whole_file, 1, 0, 0 },
---- orig/rsync.yo 2005-02-01 10:39:23
+--- orig/rsync.yo 2005-02-14 02:45:11
+++ rsync.yo 2005-01-28 19:33:40
@@ -311,6 +311,7 @@ to the detailed description below for a
--inplace update destination files in-place