diff --git a/scripts/sub-digest/subdigest.py b/scripts/sub-digest/subdigest.py index 3f94ef8..cfc7f8c 100644 --- a/scripts/sub-digest/subdigest.py +++ b/scripts/sub-digest/subdigest.py @@ -117,7 +117,8 @@ def _find_line_expr(self, expr): def _get_selection(self): if self.selection is None: - return self._get_section() + # return copy of section contents as list + return list(self._get_section()) return [line for i, line in enumerate(self._get_section()) if i in self.selection] @@ -130,15 +131,17 @@ def _get_nonselection(self): if i not in self.selection] def _process_selection(self, f): + lines = self._get_selection() + if self.selection is None: - f(self._get_section()) + indices = range(len(lines)) else: indices = sorted(self.selection) - lines = self._get_selection() - f(lines) - section = self._get_section() - for i, line in zip(indices, lines): - section[i] = line + + f(lines) + section = self._get_section() + for i, line in zip(indices, lines): + section[i] = line @filter def use_styles(self) -> Subtitles: