mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-06 02:50:43 +00:00
perf utils: Move perf_config using routines from color.c to separate object
To untangle objects a bit more, avoiding rebuilding the color_fprintf routines when changes are made to the perf config headers. Cc: Adrian Hunter <adrian.hunter@intel.com> Cc: Hendrik Brueckner <brueckner@linux.ibm.com> Cc: Jiri Olsa <jolsa@kernel.org> Cc: Namhyung Kim <namhyung@kernel.org> Cc: Thomas Richter <tmricht@linux.ibm.com> Link: https://lkml.kernel.org/n/tip-8qvu2ek26antm3a8jyl4ocbq@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
parent
a5dcc4ca91
commit
32e9136e37
3 changed files with 48 additions and 39 deletions
|
@ -35,6 +35,7 @@ libperf-y += dso.o
|
|||
libperf-y += symbol.o
|
||||
libperf-y += symbol_fprintf.o
|
||||
libperf-y += color.o
|
||||
libperf-y += color_config.o
|
||||
libperf-y += metricgroup.o
|
||||
libperf-y += header.o
|
||||
libperf-y += callchain.o
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
// SPDX-License-Identifier: GPL-2.0
|
||||
#include <linux/kernel.h>
|
||||
#include "cache.h"
|
||||
#include "config.h"
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
#include "color.h"
|
||||
|
@ -10,44 +9,6 @@
|
|||
|
||||
int perf_use_color_default = -1;
|
||||
|
||||
int perf_config_colorbool(const char *var, const char *value, int stdout_is_tty)
|
||||
{
|
||||
if (value) {
|
||||
if (!strcasecmp(value, "never"))
|
||||
return 0;
|
||||
if (!strcasecmp(value, "always"))
|
||||
return 1;
|
||||
if (!strcasecmp(value, "auto"))
|
||||
goto auto_color;
|
||||
}
|
||||
|
||||
/* Missing or explicit false to turn off colorization */
|
||||
if (!perf_config_bool(var, value))
|
||||
return 0;
|
||||
|
||||
/* any normal truth value defaults to 'auto' */
|
||||
auto_color:
|
||||
if (stdout_is_tty < 0)
|
||||
stdout_is_tty = isatty(1);
|
||||
if (stdout_is_tty || pager_in_use()) {
|
||||
char *term = getenv("TERM");
|
||||
if (term && strcmp(term, "dumb"))
|
||||
return 1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
int perf_color_default_config(const char *var, const char *value,
|
||||
void *cb __maybe_unused)
|
||||
{
|
||||
if (!strcmp(var, "color.ui")) {
|
||||
perf_use_color_default = perf_config_colorbool(var, value, -1);
|
||||
return 0;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int __color_vsnprintf(char *bf, size_t size, const char *color,
|
||||
const char *fmt, va_list args, const char *trail)
|
||||
{
|
||||
|
|
47
tools/perf/util/color_config.c
Normal file
47
tools/perf/util/color_config.c
Normal file
|
@ -0,0 +1,47 @@
|
|||
// SPDX-License-Identifier: GPL-2.0
|
||||
#include <linux/kernel.h>
|
||||
#include "cache.h"
|
||||
#include "config.h"
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
#include "color.h"
|
||||
#include <math.h>
|
||||
#include <unistd.h>
|
||||
|
||||
int perf_config_colorbool(const char *var, const char *value, int stdout_is_tty)
|
||||
{
|
||||
if (value) {
|
||||
if (!strcasecmp(value, "never"))
|
||||
return 0;
|
||||
if (!strcasecmp(value, "always"))
|
||||
return 1;
|
||||
if (!strcasecmp(value, "auto"))
|
||||
goto auto_color;
|
||||
}
|
||||
|
||||
/* Missing or explicit false to turn off colorization */
|
||||
if (!perf_config_bool(var, value))
|
||||
return 0;
|
||||
|
||||
/* any normal truth value defaults to 'auto' */
|
||||
auto_color:
|
||||
if (stdout_is_tty < 0)
|
||||
stdout_is_tty = isatty(1);
|
||||
if (stdout_is_tty || pager_in_use()) {
|
||||
char *term = getenv("TERM");
|
||||
if (term && strcmp(term, "dumb"))
|
||||
return 1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
int perf_color_default_config(const char *var, const char *value,
|
||||
void *cb __maybe_unused)
|
||||
{
|
||||
if (!strcmp(var, "color.ui")) {
|
||||
perf_use_color_default = perf_config_colorbool(var, value, -1);
|
||||
return 0;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
Loading…
Reference in a new issue