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)
{
*/
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;
}
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;
}
}
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);
if (f != -1) {
io_end_buffering(f);
- write_flush(f);
}
if (verbose > 2)