On Tue, Dec 10, 2013 at 06:19:02PM +0530, Ramkumar Ramachandra wrote: > In > > $ perf diff -c wdiff:M,N > > color the numbers in the Weighted Diff column either green or red, > depending on whether the number is positive or negative. > > Cc: Jiri Olsa <jo...@redhat.com> > Cc: Namhyung Kim <namhy...@kernel.org> > Cc: Arnaldo Carvalho de Melo <a...@redhat.com> > Signed-off-by: Ramkumar Ramachandra <artag...@gmail.com> > --- > tools/perf/builtin-diff.c | 22 ++++++++++++++++++++++ > 1 file changed, 22 insertions(+) > > diff --git a/tools/perf/builtin-diff.c b/tools/perf/builtin-diff.c > index c07cd3c..8e6e541 100644 > --- a/tools/perf/builtin-diff.c > +++ b/tools/perf/builtin-diff.c > @@ -777,6 +777,7 @@ static int __hpp__color_compare(struct perf_hpp_fmt *fmt, > container_of(fmt, struct diff_hpp_fmt, fmt); > struct hist_entry *pair = get_pair_fmt(he, dfmt); > double diff; > + s64 wdiff; > char pfmt[20] = " "; > > if (!pair) > @@ -805,6 +806,18 @@ static int __hpp__color_compare(struct perf_hpp_fmt *fmt, > scnprintf(pfmt, 20, "%%%d.6f", dfmt->header_width); > return value_color_snprintf(hpp->buf, hpp->size, > pfmt, diff); > + case COMPUTE_WEIGHTED_DIFF: > + if (he->dummy) > + goto dummy_print; > + if (pair->diff.computed) > + wdiff = pair->diff.wdiff; > + else > + wdiff = compute_wdiff(he, pair); > + > + scnprintf(pfmt, 20, "%%14ld", dfmt->header_width); > + return color_snprintf(hpp->buf, hpp->size, > + wdiff > 0 ? PERF_COLOR_GREEN : PERF_COLOR_RED, > + pfmt, wdiff);
this one is still wrong, you either need to use 'abs(wdiff) > 0' or call value_color_snprintf (which is better) as in previous cases jirka -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/