Matt McCutchen's Web Site
/
rsync
/
rsync.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
include sys/socket.h if possible (this should make rsync compile
[rsync/rsync.git]
/
flist.c
diff --git
a/flist.c
b/flist.c
index
80f18e4
..
2ec8318
100644
(file)
--- a/
flist.c
+++ b/
flist.c
@@
-41,6
+41,7
@@
extern int preserve_devices;
extern int preserve_uid;
extern int preserve_gid;
extern int preserve_times;
extern int preserve_uid;
extern int preserve_gid;
extern int preserve_times;
+extern int relative_paths;
static char **local_exclude_list = NULL;
static char **local_exclude_list = NULL;
@@
-323,7
+324,7
@@
static void send_file_name(int f,struct file_list *flist,char *fname)
out_of_memory("send_file_name");
}
out_of_memory("send_file_name");
}
- if (strcmp(file->name,"
.") && strcmp(file->name,"
/")) {
+ if (strcmp(file->name,"/")) {
flist->files[flist->count++] = *file;
send_file_entry(file,f);
}
flist->files[flist->count++] = *file;
send_file_entry(file,f);
}
@@
-421,12
+422,19
@@
struct file_list *send_file_list(int f,int argc,char *argv[])
}
dir = NULL;
}
dir = NULL;
- p = strrchr(fname,'/');
- if (p) {
- *p = 0;
- dir = fname;
- fname = p+1;
+
+ if (!relative_paths) {
+ p = strrchr(fname,'/');
+ if (p) {
+ *p = 0;
+ if (p == fname)
+ dir = "/";
+ else
+ dir = fname;
+ fname = p+1;
+ }
}
}
+
if (!*fname)
fname = ".";
if (!*fname)
fname = ".";