[PATCH v3 4/7] perf config: Initialize ui_browser__colorsets with default config items

From: Taeung Song
Date: Tue May 24 2016 - 02:51:39 EST


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 <namhyung@xxxxxxxxxx>
Cc: Jiri Olsa <jolsa@xxxxxxxxxx>
Cc: Masami Hiramatsu <mhiramat@xxxxxxxxxx>
Cc: Alexander Shishkin <alexander.shishkin@xxxxxxxxxxxxxxx>
Signed-off-by: Taeung Song <treeze.taeung@xxxxxxxxx>
---
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