aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJulian Hurst <ark@mansus.space>2022-09-11 01:02:05 +0200
committerJulian Hurst <ark@mansus.space>2022-09-11 01:08:28 +0200
commited93831ce990fe659e12b34b31fd49c289f7f17a (patch)
treecb5e11a86ac8b2a124b4a7f12279d75c0d7144e1
parent44081b5593f18bc5b29865e26f9b6fd89cb6c340 (diff)
downloadilhare-ed93831ce990fe659e12b34b31fd49c289f7f17a.tar.gz
Fix resetting the list items after sorting
-rw-r--r--handlers.ha4
-rw-r--r--main.ha5
2 files changed, 4 insertions, 5 deletions
diff --git a/handlers.ha b/handlers.ha
index e5140bb..4e99fbf 100644
--- a/handlers.ha
+++ b/handlers.ha
@@ -129,8 +129,6 @@ fn runehandler(l: *widget::widget, r: libtui::key) bool = {
return true;
};
defer free(line);
- strings::freeall(itemscopy);
- itemscopy = strings::dupall(l.items);
let newitems: []str = [];
defer strings::freeall(newitems);
for (let i = 0z; i < len(l.items); i += 1) {
@@ -142,9 +140,11 @@ fn runehandler(l: *widget::widget, r: libtui::key) bool = {
libtui::resume(&l.widget.ui);
case 'o' =>
// order
+ list::clearmarked(l);
sort::strings(l.items);
case 'O' =>
// reverse order
+ list::clearmarked(l);
sort::strings(l.items);
slices::reverse(l.items: []void, size(str));
case 'p' =>
diff --git a/main.ha b/main.ha
index c6403e2..512b78a 100644
--- a/main.ha
+++ b/main.ha
@@ -71,8 +71,8 @@ export fn main() void = {
let sin = strings::fromutf8(in);
sin = strings::trim(sin, '\n');
let items = strings::split(sin, "\n"); // freed by list::finish
- //itemscopy = strings::dupall(items);
- //defer strings::freeall(itemscopy);
+ itemscopy = strings::dupall(items);
+ defer strings::freeall(itemscopy);
let ui = libtui::init();
defer libtui::finish(&ui);
@@ -158,5 +158,4 @@ export fn main() void = {
@fini fn finish() void = {
free(searchterm);
- strings::freeall(itemscopy);
};