Set default config values for 'colors' section with 'colors_config_items[]' instead of actual const char * type values. (e.g. using colors_config_item[CONFIG_COLORS_TOP].value instead of "red, default" string value for 'colors.top')
Cc: Namhyung Kim <namhy...@kernel.org> Cc: Jiri Olsa <jo...@kernel.org> Cc: Masami Hiramatsu <mhira...@kernel.org> Cc: Alexander Shishkin <alexander.shish...@linux.intel.com> Signed-off-by: Taeung Song <treeze.tae...@gmail.com> --- tools/perf/ui/browser.c | 53 +++++++++++++++++++++++++++++-------------------- tools/perf/ui/browser.h | 2 ++ 2 files changed, 34 insertions(+), 21 deletions(-) diff --git a/tools/perf/ui/browser.c b/tools/perf/ui/browser.c index 8e06b2e..00a91e0 100644 --- a/tools/perf/ui/browser.c +++ b/tools/perf/ui/browser.c @@ -507,39 +507,32 @@ static struct ui_browser_colorset { int colorset; } ui_browser__colorsets[] = { { - .colorset = HE_COLORSET_TOP, - .name = "top", - .fb_ground = "red, default", + .colorset = HE_COLORSET_TOP, + .name = "top", }, { - .colorset = HE_COLORSET_MEDIUM, - .name = "medium", - .fb_ground = "green, default", + .colorset = HE_COLORSET_MEDIUM, + .name = "medium", }, { - .colorset = HE_COLORSET_NORMAL, - .name = "normal", - .fb_ground = "default, default", + .colorset = HE_COLORSET_NORMAL, + .name = "normal", }, { - .colorset = HE_COLORSET_SELECTED, - .name = "selected", - .fb_ground = "black, yellow", + .colorset = HE_COLORSET_SELECTED, + .name = "selected", }, { - .colorset = HE_COLORSET_JUMP_ARROWS, - .name = "jump_arrows", - .fb_ground = "blue, default", + .colorset = HE_COLORSET_JUMP_ARROWS, + .name = "jump_arrows", }, { - .colorset = HE_COLORSET_ADDR, - .name = "addr", - .fb_ground = "magenta, default", + .colorset = HE_COLORSET_ADDR, + .name = "addr", }, { - .colorset = HE_COLORSET_ROOT, - .name = "root", - .fb_ground = "white, blue", + .colorset = HE_COLORSET_ROOT, + .name = "root", }, { .name = NULL, @@ -724,10 +717,28 @@ void __ui_browser__line_arrow(struct ui_browser *browser, unsigned int column, __ui_browser__line_arrow_down(browser, column, start, end); } +void default_colors_config_init(void) +{ + int i, j; + + for (i = 0; ui_browser__colorsets[i].name != NULL; ++i) { + const char *name = ui_browser__colorsets[i].name; + + for (j = 0; colors_config_items[j].name != NULL; j++) { + if (!strcmp(name, colors_config_items[j].name)) { + ui_browser__colorsets[i].fb_ground = + colors_config_items[j].value.s; + break; + } + } + } +} + void ui_browser__init(void) { int i = 0; + default_colors_config_init(); perf_config(ui_browser__color_config, NULL); while (ui_browser__colorsets[i].name) { diff --git a/tools/perf/ui/browser.h b/tools/perf/ui/browser.h index be3b70e..46921e5 100644 --- a/tools/perf/ui/browser.h +++ b/tools/perf/ui/browser.h @@ -75,4 +75,6 @@ unsigned int ui_browser__list_head_refresh(struct ui_browser *browser); void ui_browser__init(void); void annotate_browser__init(void); + +void default_colors_config_init(void); #endif /* _PERF_UI_BROWSER_H_ */ -- 2.5.0