perf ui stdio: Add way to setup the color output mode selection
authorArnaldo Carvalho de Melo <acme@redhat.com>
Tue, 5 Jul 2016 14:05:24 +0000 (11:05 -0300)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Tue, 12 Jul 2016 03:00:39 +0000 (00:00 -0300)
In --stdio we turn off color output when the output is not a tty,
which is not always desirable, for instance, in:

  perf annotate | more

the 'more' tool is perfectly capable of processing the escape sequences
for colored output.

Allow using the existing logic for .perfconfig's "color.ui" to be used
from the command line by providing a stdio__config_color() helper, that
will be used by annotate and report in follow up patches.

Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: David Ahern <dsahern@gmail.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Wang Nan <wangnan0@huawei.com>
Link: http://lkml.kernel.org/n/tip-1u4wjdbcc41dxndsb4klpa9y@git.kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
tools/perf/ui/setup.c
tools/perf/ui/ui.h

index ba51fa8a1176d739593a7472ad2e028cd2f6eb91..1f6b0994f4f4190c8498292771f4ecc3bb09c277 100644 (file)
@@ -60,6 +60,13 @@ static inline int setup_gtk_browser(void) { return -1; }
 static inline void exit_gtk_browser(bool wait_for_ok __maybe_unused) {}
 #endif
 
+int stdio__config_color(const struct option *opt __maybe_unused,
+                       const char *mode, int unset __maybe_unused)
+{
+       perf_use_color_default = perf_config_colorbool("color.ui", mode, -1);
+       return 0;
+}
+
 void setup_browser(bool fallback_to_pager)
 {
        if (use_browser < 2 && (!isatty(1) || dump_trace))
index ab88383f8be85d5278dfaba5b6b6b07b11a6b2d2..4b6fb6c7a542c5c5afadd48c0ebb571c0ad420e0 100644 (file)
@@ -26,4 +26,8 @@ static inline void ui__exit(bool wait_for_ok __maybe_unused) {}
 
 void ui__refresh_dimensions(bool force);
 
+struct option;
+
+int stdio__config_color(const struct option *opt, const char *mode, int unset);
+
 #endif /* _PERF_UI_H_ */