[PATCH v2 2/4] perf tools: Separate out code setting {back, fore}ground colors from ui_browser__color_config

From: Taeung Song
Date: Wed May 11 2016 - 06:32:12 EST


ui_browser__color_config() set foreground and background
colors values in ui_browser__colorsets.
But it can be reused by other functions so make ui_browser__config_colors()
bringing it from ui_browser__color_config().

Cc: Namhyung Kim <namhyung@xxxxxxxxxx>
Cc: Jiri Olsa <jolsa@xxxxxxxxxx>
Signed-off-by: Taeung Song <treeze.taeung@xxxxxxxxx>
---
tools/perf/ui/browser.c | 41 ++++++++++++++++++++++++-----------------
1 file changed, 24 insertions(+), 17 deletions(-)

diff --git a/tools/perf/ui/browser.c b/tools/perf/ui/browser.c
index af68a9d..c905445 100644
--- a/tools/perf/ui/browser.c
+++ b/tools/perf/ui/browser.c
@@ -553,12 +553,31 @@ static struct ui_browser_colorset {
}
};

+static int ui_browser__config_colors(struct ui_browser_colorset *ui_browser_color,
+ const char *value)
+{
+ char *fg = NULL, *bg;
+
+ fg = strdup(value);
+ if (fg == NULL)
+ return -1;
+
+ bg = strtok(fg, ",");
+ if (bg == NULL) {
+ free(fg);
+ return -1;
+ }
+ ltrim(bg);
+
+ ui_browser_color->fg = fg;
+ ui_browser_color->bg = bg;
+ return 0;
+}

static int ui_browser__color_config(const char *var, const char *value,
void *data __maybe_unused)
{
- char *fg = NULL, *bg;
- int i;
+ int i, ret;

/* same dir for all commands */
if (prefixcmp(var, "colors.") != 0)
@@ -570,23 +589,11 @@ static int ui_browser__color_config(const char *var, const char *value,
if (strcmp(ui_browser__colorsets[i].name, name) != 0)
continue;

- fg = strdup(value);
- if (fg == NULL)
- break;
-
- bg = strchr(fg, ',');
- if (bg == NULL)
- break;
-
- *bg = '\0';
- while (isspace(*++bg));
- ui_browser__colorsets[i].bg = bg;
- ui_browser__colorsets[i].fg = fg;
- return 0;
+ ret = ui_browser__config_colors(&ui_browser__colorsets[i], value);
+ break;
}

- free(fg);
- return -1;
+ return ret;
}

void ui_browser__argv_seek(struct ui_browser *browser, off_t offset, int whence)
--
2.5.0