commit 7953dd72f2ae7656bba16f20d0a2b71aa5a58e0a from: Omar Polo date: Sun Mar 07 21:50:09 2021 UTC add `message' function, like in elisp, to print to the echo area commit - bd9637e938b96d3a106d7485e06b9038f3d4ff6d commit + 7953dd72f2ae7656bba16f20d0a2b71aa5a58e0a blob - a2844d444617fab46217144ffe13239aca67907e blob + 2ae33590a90818482501da4e403fc41e1ea8b163 --- ui.c +++ ui.c @@ -62,6 +62,7 @@ #include #include #include +#include #include #include @@ -96,6 +97,7 @@ static int hardwrap_text(struct tab*, struct line*); static int wrap_page(struct tab*); static void print_line(struct line*); static void redraw_tab(struct tab*); +static void message(const char*, ...) __attribute__((format(printf, 1, 2))); typedef void (*interactivefn)(int); @@ -288,15 +290,7 @@ cmd_kill_telescope(int k) static void cmd_unbound(int k) { - if (clminibufev_set) - evtimer_del(&clminibufev); - evtimer_set(&clminibufev, handle_clear_minibuf, NULL); - evtimer_add(&clminibufev, &clminibufev_timer); - clminibufev_set = 1; - - werase(minibuf); - wprintw(minibuf, "%c is undefined", k); - restore_cursor(current_tab()); + message("%c is undefined", k); } static struct line * @@ -664,8 +658,30 @@ redraw_tab(struct tab *tab) wrefresh(tabline); wrefresh(modeline); wrefresh(minibuf); + + wrefresh(body); +} + +static void +message(const char *fmt, ...) +{ + va_list ap; + va_start(ap, fmt); + + if (clminibufev_set) + evtimer_del(&clminibufev); + evtimer_set(&clminibufev, handle_clear_minibuf, NULL); + evtimer_add(&clminibufev, &clminibufev_timer); + clminibufev_set = 1; + + werase(minibuf); + vw_printw(minibuf, fmt, ap); + + wrefresh(minibuf); wrefresh(body); + + va_end(ap); } int