- for i in _recursive_dirlist(prepend=prepend+name, xdev=xdev,
- bup_dir=bup_dir,
- excluded_paths=excluded_paths):
- yield i
- os.chdir('..')
- yield (prepend + name, pst)
-
-
-def recursive_dirlist(paths, xdev, bup_dir=None, excluded_paths=None):
+ try:
+ OsFile(name).fchdir()
+ except OSError as e:
+ add_error('%s: %s' % (prepend, e))
+ else:
+ for i in _recursive_dirlist(prepend=prepend+name, xdev=xdev,
+ bup_dir=bup_dir,
+ excluded_paths=excluded_paths,
+ exclude_rxs=exclude_rxs,
+ xdev_exceptions=xdev_exceptions):
+ yield i
+ os.chdir('..')
+ yield (path, pst)
+
+
+def recursive_dirlist(paths, xdev, bup_dir=None,
+ excluded_paths=None,
+ exclude_rxs=None,
+ xdev_exceptions=frozenset()):