ncurses fixes

This commit is contained in:
folkert van heusden 2024-04-24 23:51:05 +02:00
parent 31da4d3105
commit fe124c5589
Signed by untrusted user who does not match committer: folkert
GPG key ID: 6B6455EDFEED3BD1

View file

@ -72,7 +72,7 @@ int console_ncurses::wait_for_char_ll(const short timeout)
void console_ncurses::put_char_ll(const char c) void console_ncurses::put_char_ll(const char c)
{ {
if (c >= 32 || (c != 12 && c != 27 && c != 13)) { if ((c >= 32 && c < 127) || c == 10) {
std::unique_lock<std::mutex> lck(ncurses_mutex); std::unique_lock<std::mutex> lck(ncurses_mutex);
wprintw(w_main->win, "%c", c); wprintw(w_main->win, "%c", c);
@ -213,22 +213,28 @@ void console_ncurses::panel_update_thread()
werase(w_panel->win); werase(w_panel->win);
} }
// speed {
uint64_t cur_instr_cnt = c->get_instructions_executed_count(); std::unique_lock<std::mutex> lck(ncurses_mutex);
mvwprintw(w_panel->win, 1, 1 + 39, "%8ld", (cur_instr_cnt - prev_instr_cnt) * refresh_rate); // speed
uint64_t cur_instr_cnt = c->get_instructions_executed_count();
prev_instr_cnt = cur_instr_cnt; mvwprintw(w_panel->win, 1, 1 + 39, "%8ld", (cur_instr_cnt - prev_instr_cnt) * refresh_rate);
// ncurses prev_instr_cnt = cur_instr_cnt;
wmove(w_main->win, ty, tx);
mydoupdate(); // ncurses
wmove(w_main->win, ty, tx);
mydoupdate();
}
} }
} }
void console_ncurses::refresh_virtual_terminal() void console_ncurses::refresh_virtual_terminal()
{ {
std::unique_lock<std::mutex> lck(ncurses_mutex);
wclear(w_main->win); wclear(w_main->win);
for(int row=0; row<t_height; row++) for(int row=0; row<t_height; row++)