X-Git-Url: https://mattmccutchen.net/rsync/rsync.git/blobdiff_plain/49d11b78c14e6d039f49ea5615bb33148f898bd0..4c36ddbeecdde407c870109d70527640ca127ace:/flist.c diff --git a/flist.c b/flist.c index a185082b..5b6dc602 100644 --- a/flist.c +++ b/flist.c @@ -46,7 +46,7 @@ extern int copy_links; extern int remote_version; extern int io_error; -static char **local_exclude_list; +static struct exclude_struct **local_exclude_list; int link_stat(const char *Path, STRUCT_STAT *Buffer) { @@ -67,7 +67,7 @@ int link_stat(const char *Path, STRUCT_STAT *Buffer) */ static int match_file_name(char *fname,STRUCT_STAT *st) { - if (check_exclude(fname,local_exclude_list)) { + if (check_exclude(fname,local_exclude_list,st)) { if (verbose > 2) rprintf(FINFO,"excluding file %s\n",fname); return 0; @@ -493,10 +493,10 @@ static void send_file_name(int f,struct file_list *flist,char *fname, } if (S_ISDIR(file->mode) && recursive) { - char **last_exclude_list = local_exclude_list; - send_directory(f,flist,f_name(file)); - local_exclude_list = last_exclude_list; - return; + struct exclude_struct **last_exclude_list = local_exclude_list; + send_directory(f,flist,f_name(file)); + local_exclude_list = last_exclude_list; + return; } } @@ -535,7 +535,7 @@ static void send_directory(int f,struct file_list *flist,char *dir) if (cvs_exclude) { if (strlen(fname) + strlen(".cvsignore") <= MAXPATHLEN-1) { strcpy(p,".cvsignore"); - local_exclude_list = make_exclude_list(fname,NULL,0); + local_exclude_list = make_exclude_list(fname,NULL,0,0); } else { io_error = 1; rprintf(FINFO,"cannot cvs-exclude in long-named directory %s\n",fname); @@ -548,7 +548,7 @@ static void send_directory(int f,struct file_list *flist,char *dir) strcmp(dname,"..")==0) continue; strlcpy(p,dname,MAXPATHLEN-(l+1)); - send_file_name(f,flist,fname,recurse,FLAG_DELETE); + send_file_name(f,flist,fname,recurse,0); } closedir(d); @@ -691,7 +691,6 @@ struct file_list *send_file_list(int f,int argc,char *argv[]) if (f != -1) { io_end_buffering(f); - write_flush(f); } if (verbose > 2)