From 4fa5bdff20cfd1dcceae402377b0c38e058ff512 Mon Sep 17 00:00:00 2001 From: Julian Hurst Date: Mon, 12 Sep 2022 11:51:04 +0200 Subject: Print selected and quit on newline --- handlers.ha | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/handlers.ha b/handlers.ha index 854aee7..2cf34e7 100644 --- a/handlers.ha +++ b/handlers.ha @@ -217,8 +217,22 @@ fn runehandler(l: *widget::widget, r: libtui::key) bool = { fmt::fprintln(os::stderr, "This is not detected")!; case => let us = utf8::encoderune(r); - if (len(us) > 0 && us[0] == 13u8) { - fmt::fprintln(os::stderr, "newline")!; + // 0x0d is carriage return in utf8 + if (len(us) > 0 && us[0] == 0x0du8) { + // to print properly suspend the ui, print, then resume + libtui::suspend(&l.widget.ui); + //fmt::println(l.items[l.cursor])!; + match (list::selected(*l)) { + case let s: str => + fmt::println(s)!; + case let s: []str => + defer free(s); + const out = strings::join("\n", s...); + defer free(out); + fmt::println(out)!; + }; + libtui::resume(&l.widget.ui); + return true; }; }; return false; -- cgit v1.2.3