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: Wang Nan <wangn...@huawei.com>
Cc: Alexander Shishkin <alexander.shish...@linux.intel.com>
Signed-off-by: Taeung Song <treeze.tae...@gmail.com>
---
 tools/perf/ui/browser.c | 53 +++++++++++++++++++++++++++++--------------------
 1 file changed, 32 insertions(+), 21 deletions(-)

diff --git a/tools/perf/ui/browser.c b/tools/perf/ui/browser.c
index b4e21d1..380abab 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",
-               .fore_back_colors = "red, default",
+               .colorset = HE_COLORSET_TOP,
+               .name     = "top",
        },
        {
-               .colorset  = HE_COLORSET_MEDIUM,
-               .name      = "medium",
-               .fore_back_colors = "green, default",
+               .colorset = HE_COLORSET_MEDIUM,
+               .name     = "medium",
        },
        {
-               .colorset  = HE_COLORSET_NORMAL,
-               .name      = "normal",
-               .fore_back_colors = "default, default",
+               .colorset = HE_COLORSET_NORMAL,
+               .name     = "normal",
        },
        {
-               .colorset  = HE_COLORSET_SELECTED,
-               .name      = "selected",
-               .fore_back_colors = "black, yellow",
+               .colorset = HE_COLORSET_SELECTED,
+               .name     = "selected",
        },
        {
-               .colorset  = HE_COLORSET_JUMP_ARROWS,
-               .name      = "jump_arrows",
-               .fore_back_colors = "blue, default",
+               .colorset = HE_COLORSET_JUMP_ARROWS,
+               .name     = "jump_arrows",
        },
        {
-               .colorset  = HE_COLORSET_ADDR,
-               .name      = "addr",
-               .fore_back_colors = "magenta, default",
+               .colorset = HE_COLORSET_ADDR,
+               .name     = "addr",
        },
        {
-               .colorset  = HE_COLORSET_ROOT,
-               .name      = "root",
-               .fore_back_colors = "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);
 }
 
+static 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].fore_back_colors =
+                                       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) {
-- 
2.5.0

Reply via email to