Compare commits

...

3 Commits

Author SHA1 Message Date
rsync-bugs
6e47bda08e preparing for release of 2.0.10 1998-05-18 14:30:22 +00:00
Andrew Tridgell
130b4ae447 strip any leading / off absolute paths when using relative path names 1998-05-18 14:11:43 +00:00
Andrew Tridgell
ba5e128d23 fixed a bug in the glob expansion code (pointed out by
hazard.bsn@blkseanet.net.eu.org)
1998-05-18 14:00:24 +00:00
5 changed files with 24 additions and 15 deletions

View File

@@ -262,6 +262,12 @@ static void receive_file_entry(struct file_struct **fptr,
clean_fname(thisname);
if (relative_paths && thisname[0] == '/') {
/* strip / off absolute paths in destination */
memmove(thisname, thisname+1, strlen(thisname));
if (!thisname[0]) strcpy(thisname,".");
}
if ((p = strrchr(thisname,'/'))) {
static char *lastdir;
*p = 0;

6
main.c
View File

@@ -43,6 +43,8 @@ static void report(int f)
if (!verbose) return;
if (am_server && !am_sender) return;
if (am_server && am_sender) {
write_longint(f,read_total());
write_longint(f,write_total());
@@ -235,7 +237,6 @@ static int do_recv(int f_in,int f_out,struct file_list *flist,char *local_name)
int status=0;
int recv_pipe[2];
extern int preserve_hard_links;
extern int am_server;
if (preserve_hard_links)
init_hard_links(flist);
@@ -252,8 +253,7 @@ static int do_recv(int f_in,int f_out,struct file_list *flist,char *local_name)
if (f_in != f_out) close(f_out);
recv_files(f_in,flist,local_name,recv_pipe[1]);
if (!am_server)
report(f_in);
report(f_in);
if (verbose > 3)
rprintf(FINFO,"do_recv waiting on %d\n",pid);

View File

@@ -1,10 +1,10 @@
Summary: Program for efficient remote updates of files.
Name: rsync
Version: 2.0.9
Version: 2.0.10
Release: 1
Copyright: GPL
Group: Applications/Networking
Source: ftp://samba.anu.edu.au/pub/rsync/rsync-2.0.9.tar.gz
Source: ftp://samba.anu.edu.au/pub/rsync/rsync-2.0.10.tar.gz
URL: http://samba.anu.edu.au/rsync/
Packager: Andrew Tridgell <tridge@samba.anu.edu.au>
BuildRoot: /tmp/rsync

21
util.c
View File

@@ -558,10 +558,11 @@ static void glob_expand_one(char *s, char **argv, int *argc, int maxargs)
#endif
}
void glob_expand(char *base, char **argv, int *argc, int maxargs)
void glob_expand(char *base1, char **argv, int *argc, int maxargs)
{
char *s = argv[*argc];
char *p, *q;
char *base = base1;
if (!s || !*s) return;
@@ -572,21 +573,23 @@ void glob_expand(char *base, char **argv, int *argc, int maxargs)
s = strdup(s);
if (!s) out_of_memory("glob_expand");
base = (char *)malloc(strlen(base1)+3);
if (!base) out_of_memory("glob_expand");
sprintf(base," %s/", base1);
q = s;
while ((p = strstr(q,base)) && ((*argc) < maxargs)) {
if (p != q && *(p-1) == ' ' && p[strlen(base)] == '/') {
/* split it at this point */
*(p-1) = 0;
glob_expand_one(q, argv, argc, maxargs);
q = p+strlen(base)+1;
} else {
q++;
}
/* split it at this point */
*p = 0;
glob_expand_one(q, argv, argc, maxargs);
q = p+strlen(base);
}
if (*q && (*argc < maxargs)) glob_expand_one(q, argv, argc, maxargs);
free(s);
free(base);
}
/*******************************************************************

View File

@@ -1 +1 @@
#define VERSION "2.0.9"
#define VERSION "2.0.10"