Skip to contentSkip to conversation

perf ui stdio: Add way to setup the color output mode selection

tip:perf/core tip-bot for Arnaldo Carvalho de Melo 1 participant 1 message Jul 13, 2016 perf events

lore
Share & tools
lore
#0 lore raw
Commit-ID:  c09615f29c70d4155986f55097a99ad8f2036ca1
Gitweb:     http://git.kernel.org/tip/c09615f29c70d4155986f55097a99ad8f2036ca1
Author:     Arnaldo Carvalho de Melo <[email protected]>
AuthorDate: Tue, 5 Jul 2016 11:05:24 -0300
Committer:  Arnaldo Carvalho de Melo <[email protected]>
CommitDate: Tue, 12 Jul 2016 00:00:39 -0300

perf ui stdio: Add way to setup the color output mode selection

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.

---
 tools/perf/ui/setup.c | 7 +++++++
 tools/perf/ui/ui.h    | 4 ++++
 2 files changed, 11 insertions(+)
tools/perf/ui/setup.c +7 -0
index ba51fa8..1f6b099 100644
@@ -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))
tools/perf/ui/ui.h +4 -0
index ab88383..4b6fb6c 100644
@@ -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_ */