- if (!*fname)
- fname = ".";
-
- if (dir && *dir) {
- static char *lastdir;
- static int lastdir_len;
-
- strcpy(olddir, curr_dir); /* can't overflow */
-
- if (!push_dir(dir)) {
- io_error |= IOERR_GENERAL;
- rsyserr(FERROR, errno, "push_dir %s failed",
- full_fname(dir));
- continue;
- }
-
- if (lastdir && strcmp(lastdir, dir) == 0) {
- flist_dir = lastdir;
- flist_dir_len = lastdir_len;
- } else {
- flist_dir = lastdir = strdup(dir);
- flist_dir_len = lastdir_len = strlen(dir);
- }
- }
-