dlen = strlen(fbuf);
filt_array[cur_depth] = push_local_filters(fbuf, dlen);
- if (link_stat(fbuf, &st, keep_dirlinks) < 0)
+ if (link_stat(fbuf, &st, keep_dirlinks) < 0 || !S_ISDIR(st.st_mode))
return;
if (one_file_system) {
close(fd);
return;
}
- if (!(back_file = make_file(fname, NULL, NO_FILTERS))) {
+ if (!(back_file = make_file(fname, NULL, NULL, NO_FILTERS))) {
close(fd);
goto pretend_missing;
}
close(fd);
}
-
void generate_files(int f_out, struct file_list *flist, char *local_name)
{
int i;
* modified-time values. */
for (i = 0; i < flist->count; i++) {
struct file_struct *file = flist->files[i];
+
if (!file->basename || !S_ISDIR(file->mode))
continue;
if (!need_retouch_dir_times && file->mode & S_IWUSR)