summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/tangara/lua/file_iterator.cpp9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/tangara/lua/file_iterator.cpp b/src/tangara/lua/file_iterator.cpp
index d2df8082..d318e255 100644
--- a/src/tangara/lua/file_iterator.cpp
+++ b/src/tangara/lua/file_iterator.cpp
@@ -46,15 +46,18 @@ auto FileIterator::next() -> void {
}
auto FileIterator::prev() -> void {
- if (offset_ == 0) {
+ f_rewinddir(&dir_);
+ if (offset_ <= 0) {
+ offset_ = -1;
current_.reset();
return;
}
- f_rewinddir(&dir_);
auto new_offset = offset_ - 1;
offset_ = -1;
while (offset_ < new_offset) {
- iterate(show_hidden_);
+ if (!iterate(show_hidden_)) {
+ break;
+ }
}
}