From b719eb8328bdb96f0b5bfa34959ae84ef46da79e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vin=C3=ADcius=20Ferr=C3=A3o?= <2031761+viniciusferrao@users.noreply.github.com> Date: Thu, 20 Aug 2026 22:41:25 -0300 Subject: [PATCH] fix(genesis): clamp narrow console headers --- .../files/xcat-genesis-console/src/console.h | 2 ++ .../files/xcat-genesis-console/src/newt_ui.c | 7 +++---- .../files/xcat-genesis-console/src/support.c | 6 ++++++ 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/xCAT-genesis-builder/oe/meta-xcat-genesis/recipes-core/xcat-genesis-console/files/xcat-genesis-console/src/console.h b/xCAT-genesis-builder/oe/meta-xcat-genesis/recipes-core/xcat-genesis-console/files/xcat-genesis-console/src/console.h index cae03572c..0583fce5e 100644 --- a/xCAT-genesis-builder/oe/meta-xcat-genesis/recipes-core/xcat-genesis-console/files/xcat-genesis-console/src/console.h +++ b/xCAT-genesis-builder/oe/meta-xcat-genesis/recipes-core/xcat-genesis-console/files/xcat-genesis-console/src/console.h @@ -17,6 +17,7 @@ enum xcat_console_limit { LOG_LINE_SIZE = 384, LOG_VIEW_HEIGHT = 17, LOG_VIEW_WIDTH = 68, + HEADER_RESERVED_COLUMNS = 20, }; struct console_state { @@ -112,6 +113,7 @@ void xcat_format_duration(unsigned long long seconds, char *value, size_t size); bool xcat_read_unsigned_key(const char *path, const char *key, unsigned long long *number); unsigned int xcat_list_files(const char *directory, const char *suffix, char *names, size_t names_size); +int xcat_header_context_columns(int screen_columns); void xcat_load_console_state(struct console_state *state); void xcat_build_status_view(const struct console_state *state, struct status_view *view); diff --git a/xCAT-genesis-builder/oe/meta-xcat-genesis/recipes-core/xcat-genesis-console/files/xcat-genesis-console/src/newt_ui.c b/xCAT-genesis-builder/oe/meta-xcat-genesis/recipes-core/xcat-genesis-console/files/xcat-genesis-console/src/newt_ui.c index 969eaa5c0..4efd0840a 100644 --- a/xCAT-genesis-builder/oe/meta-xcat-genesis/recipes-core/xcat-genesis-console/files/xcat-genesis-console/src/newt_ui.c +++ b/xCAT-genesis-builder/oe/meta-xcat-genesis/recipes-core/xcat-genesis-console/files/xcat-genesis-console/src/newt_ui.c @@ -112,12 +112,11 @@ static void draw_header(const struct status_view *view) { int columns; newtGetScreenSize(&columns, NULL); - available = columns - 20; + available = xcat_header_context_columns(columns); xcat_set_text(context, sizeof(context), "%.*s", available, view->identity); - if ((int)strlen(context) > available) - context[available] = '\0'; newtDrawRootText(1, 0, "xCAT Genesis"); - newtDrawRootText(-((int)strlen(context) + 1), 0, context); + if (context[0] != '\0') + newtDrawRootText(-((int)strlen(context) + 1), 0, context); } static void update_form(struct console_form *screen, const struct status_view *view, diff --git a/xCAT-genesis-builder/oe/meta-xcat-genesis/recipes-core/xcat-genesis-console/files/xcat-genesis-console/src/support.c b/xCAT-genesis-builder/oe/meta-xcat-genesis/recipes-core/xcat-genesis-console/files/xcat-genesis-console/src/support.c index 4ca3b9632..f72b7ca9d 100644 --- a/xCAT-genesis-builder/oe/meta-xcat-genesis/recipes-core/xcat-genesis-console/files/xcat-genesis-console/src/support.c +++ b/xCAT-genesis-builder/oe/meta-xcat-genesis/recipes-core/xcat-genesis-console/files/xcat-genesis-console/src/support.c @@ -215,3 +215,9 @@ unsigned int xcat_list_files(const char *directory, const char *suffix, char *na closedir(stream); return count; } + +int xcat_header_context_columns(int screen_columns) { + if (screen_columns <= HEADER_RESERVED_COLUMNS) + return 0; + return screen_columns - HEADER_RESERVED_COLUMNS; +}