From 1dd27ba3fc2ddaaa3ee3bf41c7c26c38a155ad9d Mon Sep 17 00:00:00 2001 From: Jim Warner Date: Wed, 18 May 2022 00:00:00 -0500 Subject: [PATCH] top: apply a special emphasis with some focus elements Since top now uses string vectors for two items in the new focus window (cmdline & environ), there is no real use for that 'separator' specified at toggle time. So, this commit will find a new use for what is the space. Henceforth, when a user is navigating using the tab or backtab keys, should a strv element with focus contain embedded space(s), it will be emphasized & highlighted using the current window's message color (capclr_msg). Signed-off-by: Jim Warner --- top/top.c | 15 +++++++++++---- top/top.h | 1 + 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/top/top.c b/top/top.c index a9d4eb22..748db6f7 100644 --- a/top/top.c +++ b/top/top.c @@ -4922,11 +4922,16 @@ static inline const char *forest_display (const WIN_t *q, int idx) { * This guy actually draws the parsed strings | * including adding a highlight if necessary. | */ static void bot_do (const char *str, int focus) { + char *cap = Cap_norm; + while (*str == ' ') putchar(*(str++)); - putp(fmtmk("%s%s%s" - , focus ? Cap_reverse : Cap_norm - , str - , Cap_norm)); + if (focus) +#ifdef BOT_STRV_OFF + cap = Cap_reverse; +#else + cap = strchr(str, Bot_sep) ? Curwin->capclr_msg : Cap_reverse; +#endif + putp(fmtmk("%s%s%s", cap, str, Cap_norm)); } // end: bot_do @@ -5592,9 +5597,11 @@ static void keys_global (int ch) { } break; case kbd_CtrlK: + // with string vectors, the 'separator' may serve a different purpose bot_item_toggle(eu_CMDLINE_V, "command line", BOT_SEP_SPC); break; case kbd_CtrlN: + // with string vectors, the 'separator' may serve a different purpose bot_item_toggle(eu_ENVIRON_V, "environment", BOT_SEP_SPC); break; case kbd_CtrlP: diff --git a/top/top.h b/top/top.h index bcca7e35..f9313899 100644 --- a/top/top.h +++ b/top/top.h @@ -28,6 +28,7 @@ //#define ATEOJ_RPTSTD /* report on some miscellany at end-of-job */ //#define BOT_DEAD_ZAP /* zap Ctrl bottom window when target dies */ //#define BOT_MENU_YES /* enable bottom window for menu prototype */ +//#define BOT_STRV_OFF /* don't emphasize strv w/ focus if spaces */ //#define CASEUP_HEXES /* show all those hex values in upper case */ //#define CASEUP_SUFIX /* show time/mem/cnts suffix in upper case */ //#define EQUCOLHDRYES /* yes, equalize the column header lengths */