From 7a710966380350d6daa61e5a01f8b58e70bec0dc Mon Sep 17 00:00:00 2001 From: ailurux Date: Tue, 25 Feb 2025 13:03:00 +1100 Subject: [PATCH] Fix bug with filesystem iterator prev off by one sometimes --- src/tangara/lua/file_iterator.cpp | 9 ++++++--- 1 file 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; + } } }