diff --git a/tui_main.c b/tui_main.c index 3640a6d..f192deb 100644 --- a/tui_main.c +++ b/tui_main.c @@ -124,6 +124,25 @@ static Glyph_class glyph_class_of(Glyph glyph) { return Glyph_class_unknown; } +static bool is_valid_glyph(Glyph c) { + if (c >= '0' && c <= '9') + return true; + if (c >= 'A' && c <= 'Z') + return true; + if (c >= 'a' && c <= 'z') + return true; + switch (c) { + case '!': + case '.': + case '*': + case ':': + case ';': + case '#': + return true; + } + return false; +} + static int term_attrs_of_cell(Glyph g, Mark m) { Glyph_class gclass = glyph_class_of(g); int attr = A_normal; @@ -1587,7 +1606,7 @@ int main(int argc, char** argv) { app_state.is_draw_dirty = true; break; default: - if (key >= '!' && key <= '~') { + if (key >= CHAR_MIN && key <= CHAR_MAX && is_valid_glyph((Glyph)key)) { app_input_character(&app_state, (char)key); } break;