Fix bug with filesystem iterator prev off by one sometimes

custom
ailurux 2 months ago
parent 8c262aee55
commit 7a71096638
  1. 9
      src/tangara/lua/file_iterator.cpp

@ -46,15 +46,18 @@ auto FileIterator::next() -> void {
} }
auto FileIterator::prev() -> void { auto FileIterator::prev() -> void {
if (offset_ == 0) { f_rewinddir(&dir_);
if (offset_ <= 0) {
offset_ = -1;
current_.reset(); current_.reset();
return; return;
} }
f_rewinddir(&dir_);
auto new_offset = offset_ - 1; auto new_offset = offset_ - 1;
offset_ = -1; offset_ = -1;
while (offset_ < new_offset) { while (offset_ < new_offset) {
iterate(show_hidden_); if (!iterate(show_hidden_)) {
break;
}
} }
} }

Loading…
Cancel
Save