X-Git-Url: https://mattmccutchen.net/rsync/rsync.git/blobdiff_plain/d867229ba0fcc7f829047b7caaa2166685cadf6e..a16bbc3990cc3c9ef1228508246f9f6840d9ffa2:/rsync.c diff --git a/rsync.c b/rsync.c index e359adc7..c1ce0b5c 100644 --- a/rsync.c +++ b/rsync.c @@ -649,6 +649,8 @@ static int delete_already_done(struct file_list *flist,int j) exit_cleanup(1); } + name[strlen(name)-2] = 0; + p = strrchr(name,'/'); if (!p) { free(name); @@ -656,6 +658,8 @@ static int delete_already_done(struct file_list *flist,int j) } *p = 0; + strcat(name,"/."); + while (low != high) { int mid = (low+high)/2; int ret = strcmp(f_name(flist->files[flist_up(flist, mid)]),name); @@ -703,6 +707,8 @@ static void delete_files(struct file_list *flist) if (!S_ISDIR(flist->files[j]->mode)) continue; + if (strlen(name)<2 || strcmp(name+strlen(name)-2,"/.")!=0) continue; + if (delete_already_done(flist, j)) continue; if (!(local_file_list = send_file_list(-1,1,&name)))