diff options
Diffstat (limited to 'rdiff-backup/src/selection.py')
-rw-r--r-- | rdiff-backup/src/selection.py | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/rdiff-backup/src/selection.py b/rdiff-backup/src/selection.py index 4c003c8..3d1f0e2 100644 --- a/rdiff-backup/src/selection.py +++ b/rdiff-backup/src/selection.py @@ -117,13 +117,15 @@ class Select: if dsrpath.isdir(): for dsrp in self.iterate_in_dir(dsrpath, rec_func, sel_func): yield dsrp - elif s == 2 and dsrpath.isdir(): # Directory is merely scanned - iid = self.iterate_in_dir(dsrpath, rec_func, sel_func) - try: first = iid.next() - except StopIteration: return # no files inside; skip dsrp - yield dsrpath - yield first - for dsrp in iid: yield dsrp + elif s == 2: + if dsrpath.isdir(): # Directory is merely scanned + iid = self.iterate_in_dir(dsrpath, rec_func, sel_func) + try: first = iid.next() + except StopIteration: return # no files inside; skip dsrp + yield dsrpath + yield first + for dsrp in iid: yield dsrp + else: assert 0, "Invalid selection result %s" % (str(s),) def iterate_in_dir(self, dsrpath, rec_func, sel_func): """Iterate the dsrps in directory dsrpath.""" @@ -137,7 +139,7 @@ class Select: else: for filename in Robust.listrp(dsrpath): new_dsrp = Robust.check_common_error( - error_handler, dsrpath.append, filename) + error_handler, dsrpath.append, [filename]) if new_dsrp: for dsrp in rec_func(new_dsrp, rec_func, sel_func): yield dsrp |