diff options
| author | Paul Oliver <contact@pauloliver.dev> | 2026-04-24 05:19:57 +0200 |
|---|---|---|
| committer | Paul Oliver <contact@pauloliver.dev> | 2026-05-04 02:23:18 +0200 |
| commit | 8401fde7b1d10dc4c1ce9117c1eda7a21067778b (patch) | |
| tree | efde273443fd4591df3b4e1a270f61185f9f09e0 /ui/curses | |
| parent | 397286c87dc9aa3cba458973bdc65b3f3be14657 (diff) | |
Removes old data server and cleans up python code
Diffstat (limited to 'ui/curses')
| -rw-r--r-- | ui/curses/ui.c | 30 | ||||
| -rw-r--r-- | ui/curses/ui_vars.py | 7 | ||||
| -rw-r--r-- | ui/curses/vars.py | 3 |
3 files changed, 26 insertions, 14 deletions
diff --git a/ui/curses/ui.c b/ui/curses/ui.c index 3564ef3..dda6c5e 100644 --- a/ui/curses/ui.c +++ b/ui/curses/ui.c @@ -1,3 +1,6 @@ +#include <curses.h> +#include <locale.h> + #include "logger.c" #define LOG_LINE_COUNT 1024 @@ -28,7 +31,6 @@ enum { PAIR_NOUSE, PAIR_NORMAL, PAIR_HEADER, - PAIR_WARN, PAIR_LIVE_PROC, PAIR_SELECTED_PROC, PAIR_FREE_CELL, @@ -38,6 +40,8 @@ enum { PAIR_SELECTED_MB2, PAIR_SELECTED_IP, PAIR_SELECTED_SP, + PAIR_INFO, + PAIR_WARN, }; // GFX globals @@ -69,6 +73,7 @@ uint64_t g_wcursor_pointed; uint64_t g_log_cnt; unsigned g_log_ptr; unsigned g_log_scroll; +enum LogLevel g_log_levels[LOG_LINE_COUNT]; char g_logs[LOG_LINE_COUNT][LOG_LINE_SIZE]; uint64_t g_vlin; uint64_t g_vsiz; @@ -658,7 +663,7 @@ void ui_print_wcursor_bar(void) { uint64_t caddr = cpos * g_wrld_zoom + g_wrld_pos; uint8_t cbyte = mvec_get_byte(core, caddr); - if (mvec_is_alloc(core, caddr)) { + if (caddr < MVEC_SIZE && mvec_is_alloc(core, caddr)) { g_wcursor_pointed = mvec_get_owner(core, caddr); snprintf(cownr, PROC_FIELD_WIDTH, "%#lx", g_wcursor_pointed); } else { @@ -796,13 +801,13 @@ void ui_print_ipc(int l) { // ---------------------------------------------------------------------------- void ui_info_impl(const char *format, ...) { assert(format); - assert(false); va_list args; va_start(args, format); - log_msg_to_buff(g_logs[g_log_ptr], LOG_LINE_SIZE, LOG_INFO, format, args); + log_msg_to_buff(g_logs[g_log_ptr], LOG_LINE_SIZE, LOG_INFO, false, format, args); va_end(args); + g_log_levels[g_log_ptr] = LOG_INFO; g_log_cnt++; g_log_ptr = (g_log_ptr + 1) % LOG_LINE_COUNT; } @@ -812,9 +817,10 @@ void ui_warn_impl(const char *format, ...) { va_list args; va_start(args, format); - log_msg_to_buff(g_logs[g_log_ptr], LOG_LINE_SIZE, LOG_WARN, format, args); + log_msg_to_buff(g_logs[g_log_ptr], LOG_LINE_SIZE, LOG_WARN, false, format, args); va_end(args); + g_log_levels[g_log_ptr] = LOG_WARN; g_log_cnt++; g_log_ptr = (g_log_ptr + 1) % LOG_LINE_COUNT; } @@ -831,7 +837,8 @@ void ui_print_log_line(unsigned lptr, int line) { ui_clear_log_line(line); if (strlen(g_logs[lptr])) { - ui_field(line, PANE_WIDTH + 2, PAIR_NORMAL, A_NORMAL, g_logs[lptr]); + ui_field(line, PANE_WIDTH + 2, g_log_levels[lptr] == LOG_INFO ? PAIR_INFO : PAIR_WARN, A_NORMAL, "%.38s", g_logs[lptr]); + ui_field(line, PANE_WIDTH + 40, PAIR_NORMAL, A_NORMAL, g_logs[lptr] + 38); } } @@ -942,7 +949,15 @@ void ev_vscroll(int ev) { g_wrld_pos += g_vsiz_rng; break; case 'S': +#if defined(MVEC_LOOP) g_wrld_pos -= g_vsiz_rng; +#else + if (g_wrld_pos < g_vsiz_rng) { + g_wrld_pos = 0; + } else { + g_wrld_pos -= g_vsiz_rng; + } +#endif break; case 'w': g_wrld_pos += g_vlin_rng; @@ -1282,7 +1297,6 @@ void init(void) { init_pair(PAIR_NORMAL, COLOR_WHITE, COLOR_BLACK); init_pair(PAIR_HEADER, COLOR_BLUE, COLOR_BLACK); - init_pair(PAIR_WARN, COLOR_RED, COLOR_BLACK); init_pair(PAIR_LIVE_PROC, COLOR_BLUE, COLOR_BLACK); init_pair(PAIR_SELECTED_PROC, COLOR_YELLOW, COLOR_BLACK); init_pair(PAIR_FREE_CELL, COLOR_BLACK, COLOR_BLUE); @@ -1292,6 +1306,8 @@ void init(void) { init_pair(PAIR_SELECTED_MB2, COLOR_BLACK, COLOR_GREEN); init_pair(PAIR_SELECTED_IP, COLOR_BLACK, COLOR_RED); init_pair(PAIR_SELECTED_SP, COLOR_BLACK, COLOR_MAGENTA); + init_pair(PAIR_INFO, COLOR_GREEN, COLOR_BLACK); + init_pair(PAIR_WARN, COLOR_RED, COLOR_BLACK); g_info = ui_info_impl; g_warn = ui_warn_impl; diff --git a/ui/curses/ui_vars.py b/ui/curses/ui_vars.py deleted file mode 100644 index b2462fb..0000000 --- a/ui/curses/ui_vars.py +++ /dev/null @@ -1,7 +0,0 @@ -class UIVars: - def __init__(self, _): - self.flags = set() - self.includes = {"curses.h", "locale.h", "time.h"} - self.defines = {"-DNCURSES_WIDECHAR=1"} - self.links = {"-lncurses"} - self.pager = True diff --git a/ui/curses/vars.py b/ui/curses/vars.py new file mode 100644 index 0000000..d83befa --- /dev/null +++ b/ui/curses/vars.py @@ -0,0 +1,3 @@ +flags = set() +defines = {"-DNCURSES_WIDECHAR=1"} +links = {"-lncurses"} |
