mirror of
https://github.com/adulau/aha.git
synced 2024-12-29 04:06:22 +00:00
perf_counter tools: Dont output in color on !tty
Dont emit ASCII color characters if the terminal is not a tty, such as when perf report gets redirected into a file. Cc: Peter Zijlstra <a.p.zijlstra@chello.nl> Cc: Mike Galbraith <efault@gmx.de> Cc: Paul Mackerras <paulus@samba.org> Cc: Arnaldo Carvalho de Melo <acme@redhat.com> LKML-Reference: <new-submission> Signed-off-by: Ingo Molnar <mingo@elte.hu>
This commit is contained in:
parent
8fc0321f1a
commit
13d0ab5ec2
1 changed files with 14 additions and 3 deletions
|
@ -1,7 +1,7 @@
|
||||||
#include "cache.h"
|
#include "cache.h"
|
||||||
#include "color.h"
|
#include "color.h"
|
||||||
|
|
||||||
int perf_use_color_default = 0;
|
int perf_use_color_default = -1;
|
||||||
|
|
||||||
static int parse_color(const char *name, int len)
|
static int parse_color(const char *name, int len)
|
||||||
{
|
{
|
||||||
|
@ -169,10 +169,20 @@ static int color_vfprintf(FILE *fp, const char *color, const char *fmt,
|
||||||
{
|
{
|
||||||
int r = 0;
|
int r = 0;
|
||||||
|
|
||||||
if (*color)
|
/*
|
||||||
|
* Auto-detect:
|
||||||
|
*/
|
||||||
|
if (perf_use_color_default < 0) {
|
||||||
|
if (isatty(1) || pager_in_use())
|
||||||
|
perf_use_color_default = 1;
|
||||||
|
else
|
||||||
|
perf_use_color_default = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (perf_use_color_default && *color)
|
||||||
r += fprintf(fp, "%s", color);
|
r += fprintf(fp, "%s", color);
|
||||||
r += vfprintf(fp, fmt, args);
|
r += vfprintf(fp, fmt, args);
|
||||||
if (*color)
|
if (perf_use_color_default && *color)
|
||||||
r += fprintf(fp, "%s", PERF_COLOR_RESET);
|
r += fprintf(fp, "%s", PERF_COLOR_RESET);
|
||||||
if (trail)
|
if (trail)
|
||||||
r += fprintf(fp, "%s", trail);
|
r += fprintf(fp, "%s", trail);
|
||||||
|
@ -185,6 +195,7 @@ int color_fprintf(FILE *fp, const char *color, const char *fmt, ...)
|
||||||
{
|
{
|
||||||
va_list args;
|
va_list args;
|
||||||
int r;
|
int r;
|
||||||
|
|
||||||
va_start(args, fmt);
|
va_start(args, fmt);
|
||||||
r = color_vfprintf(fp, color, fmt, args, NULL);
|
r = color_vfprintf(fp, color, fmt, args, NULL);
|
||||||
va_end(args);
|
va_end(args);
|
||||||
|
|
Loading…
Reference in a new issue