From: J.W. Schultz Date: Mon, 26 Jan 2004 20:54:02 +0000 (+0000) Subject: Back out bad refactor (thanks Wayne) X-Git-Url: https://mattmccutchen.net/rsync/rsync.git/commitdiff_plain/f673ea84b206809a33a8cc40c87df5ebf0a628ae Back out bad refactor (thanks Wayne) --- diff --git a/flist.c b/flist.c index 7ea494f8..6de758cc 100644 --- a/flist.c +++ b/flist.c @@ -293,7 +293,6 @@ static void set_filesystem(char *fname) STRUCT_STAT st; if (link_stat(fname, &st) != 0) return; - filesystem_dev = st.st_dev; } @@ -702,18 +701,22 @@ void receive_file_entry(struct file_struct **fptr, unsigned short flags, int f) static int skip_filesystem(char *fname, STRUCT_STAT * st) { STRUCT_STAT st2; + char *p = strrchr(fname, '/'); /* skip all but directories */ if (!S_ISDIR(st->st_mode)) return 1; /* if its not a subdirectory then allow */ - if (!strrchr(fname, '/')) + if (!p) return 0; - if (link_stat(fname, &st2) != 0) { + *p = 0; + if (link_stat(fname, &st2)) { + *p = '/'; return 0; } + *p = '/'; return (st2.st_dev != filesystem_dev); }