diff --git a/src/ui/inputwin.c b/src/ui/inputwin.c index 29a63130..4d25f832 100644 --- a/src/ui/inputwin.c +++ b/src/ui/inputwin.c @@ -148,7 +148,8 @@ create_input_window(void) * Fail gracefully instead of aborting in production. */ if (MB_CUR_MAX > PROF_MB_CUR_MAX) { - cons_show_error("Your locale's MB_CUR_MAX (%zu) exceeds PROF_MB_CUR_MAX (%d); input window disabled.", (size_t)MB_CUR_MAX, PROF_MB_CUR_MAX); + log_error("Locale MB_CUR_MAX (%zu) exceeds compiled limit (%d)", (size_t)MB_CUR_MAX, PROF_MB_CUR_MAX); + cons_show_error("Unsupported locale. Before running, execute in terminal: export LC_ALL=C.UTF-8"); return; } #ifdef NCURSES_REENTRANT @@ -167,7 +168,7 @@ create_input_window(void) inp_win = newpad(1, INP_WIN_MAX); if (!inp_win) { - // Failed to allocate input pad; leave inp_win NULL and avoid further use + log_error("Failed to allocate input window pad"); return; } wbkgd(inp_win, theme_attrs(THEME_INPUT_TEXT)); diff --git a/src/ui/statusbar.c b/src/ui/statusbar.c index ff74881a..49b37e8b 100644 --- a/src/ui/statusbar.c +++ b/src/ui/statusbar.c @@ -40,6 +40,8 @@ #include #include +#include "log.h" + #ifdef HAVE_NCURSESW_NCURSES_H #include #elif HAVE_NCURSES_H @@ -112,6 +114,7 @@ status_bar_init(void) int row = screen_statusbar_row(); int cols = getmaxx(stdscr); if (cols <= 0) { + log_warning("status_bar_init: invalid cols %d, defaulting to 1", cols); cols = 1; } statusbar_win = newwin(1, cols, row, 0); @@ -157,6 +160,7 @@ status_bar_resize(void) } int cols = getmaxx(stdscr); if (cols <= 0) { + log_warning("status_bar_resize: invalid cols %d, defaulting to 1", cols); cols = 1; } werase(statusbar_win); diff --git a/src/ui/window.c b/src/ui/window.c index a652426c..33fcac33 100644 --- a/src/ui/window.c +++ b/src/ui/window.c @@ -79,15 +79,7 @@ static void _win_print_wrapped(WINDOW* win, const char* const message, size_t in static int _check_subwin_width(int cols, int width) { - if (cols > 1) { - if (width < 1) - width = 1; - if (width >= cols) - width = cols - 1; - } else { - width = 1; - } - return width; + return cols <= 1 ? 1 : CLAMP(width, 1, cols - 1); } int