{
char* dest = string_area_malloc(ap, strlen(src) + 1);
return strcpy(dest, src);
{
char* dest = string_area_malloc(ap, strlen(src) + 1);
return strcpy(dest, src);
static int match_file_name(char *fname,STRUCT_STAT *st)
{
if (check_exclude(fname,local_exclude_list,st)) {
static int match_file_name(char *fname,STRUCT_STAT *st)
{
if (check_exclude(fname,local_exclude_list,st)) {
- if ((mode & (_S_IFMT)) == 0120000 && (S_IFLNK != 0120000)) {
- return (mode & ~(_S_IFMT)) | S_IFLNK;
+ if ((mode & (_S_IFMT)) == 0120000 && (_S_IFLNK != 0120000)) {
+ return (mode & ~(_S_IFMT)) | _S_IFLNK;
#define MALLOC(ap, i) (ap ? string_area_malloc(ap, i) : malloc(i))
/* create a file_struct for a named file */
#define MALLOC(ap, i) (ap ? string_area_malloc(ap, i) : malloc(i))
/* create a file_struct for a named file */
-struct file_struct *make_file(int f, char *fname, struct string_area **ap)
+struct file_struct *make_file(int f, char *fname, struct string_area **ap,
+ int noexcludes)
char cleaned_name[MAXPATHLEN];
char linkbuf[MAXPATHLEN];
extern int delete_excluded;
char cleaned_name[MAXPATHLEN];
char linkbuf[MAXPATHLEN];
extern int delete_excluded;
strlcpy(cleaned_name, fname, MAXPATHLEN);
cleaned_name[MAXPATHLEN-1] = 0;
strlcpy(cleaned_name, fname, MAXPATHLEN);
cleaned_name[MAXPATHLEN-1] = 0;
if (S_ISDIR(st.st_mode) && !recurse) {
rprintf(FINFO,"skipping directory %s\n",fname);
return NULL;
if (S_ISDIR(st.st_mode) && !recurse) {
rprintf(FINFO,"skipping directory %s\n",fname);
return NULL;
/* f is set to -1 when calculating deletion file list */
if (((f != -1) || !delete_excluded) && !match_file_name(fname,&st))
return NULL;
/* f is set to -1 when calculating deletion file list */
if (((f != -1) || !delete_excluded) && !match_file_name(fname,&st))
return NULL;
if (verbose > 2)
rprintf(FINFO,"make_file(%d,%s)\n",f,fname);
if (verbose > 2)
rprintf(FINFO,"make_file(%d,%s)\n",f,fname);
- file = make_file(f,fname, &flist->string_area);
+ file = make_file(f,fname, &flist->string_area, 0);
if (strcmp(file->basename,"")) {
flist->files[flist->count++] = file;
send_file_entry(file,f,base_flags);
if (strcmp(file->basename,"")) {
flist->files[flist->count++] = file;
send_file_entry(file,f,base_flags);
if (verbose && recurse && !am_server && f != -1) {
rprintf(FINFO,"building file list ... ");
if (verbose && recurse && !am_server && f != -1) {
rprintf(FINFO,"building file list ... ");
for (i=0;i<flist->count;i++) {
rprintf(FINFO,"[%d] i=%d %s %s mode=0%o len=%.0f\n",
for (i=0;i<flist->count;i++) {
rprintf(FINFO,"[%d] i=%d %s %s mode=0%o len=%.0f\n",
NS(flist->files[i]->dirname),
NS(flist->files[i]->basename),
NS(flist->files[i]->dirname),
NS(flist->files[i]->basename),