Re: [PATCH 03/14] perf tool: Fix period symbol_conf.field_sep display

Namhyung Kim
2012-11-29T07:56:08Z

On Wed, 28 Nov 2012 14:52:38 +0100, Jiri Olsa wrote:
> Currently we don't properly display hist data with
> symbol_conf.field_sep separator. We need to display
> either space or separator.
>
> Signed-off-by: Jiri Olsa <jolsa@redhat.com>
> Cc: Arnaldo Carvalho de Melo <acme@ghostprotocols.net>
> Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
> Cc: Ingo Molnar <mingo@elte.hu>
> Cc: Paul Mackerras <paulus@samba.org>
> Cc: Corey Ashford <cjashfor@linux.vnet.ibm.com>
> Cc: Frederic Weisbecker <fweisbec@gmail.com>
> Cc: Namhyung Kim <namhyung@kernel.org>
> ---
> tools/perf/ui/hist.c | 8 ++------
> 1 file changed, 2 insertions(+), 6 deletions(-)
>
> diff --git a/tools/perf/ui/hist.c b/tools/perf/ui/hist.c
> index 5452960..20a4392 100644
> --- a/tools/perf/ui/hist.c
> +++ b/tools/perf/ui/hist.c
> @@ -523,17 +523,13 @@ int hist_entry__period_snprintf(struct perf_hpp *hpp, struct hist_entry *he,
> struct perf_hpp_fmt *fmt;
> char *start = hpp->buf;
> int ret;
> - bool first = true;
>
> if (symbol_conf.exclude_other && !he->parent)
> return 0;
>
> perf_hpp__for_each_format(fmt) {
> - if (!sep || !first) {
> - ret = scnprintf(hpp->buf, hpp->size, "%s", sep ?: " ");
> - advance_hpp(hpp, ret);
> - first = false;
> - }
> + ret = scnprintf(hpp->buf, hpp->size, "%s", sep ?: " ");
> + advance_hpp(hpp, ret);

It will display the separator even before the first column so that the
output can be messed up with this. I can see that there's a bug setting
'first' to false - the line should be moved out of the block otherwise
it's pointless since we cannot enter the block.

Thanks,
Namhyung

>
> if (color && fmt->color)
> ret = fmt->color(fmt, hpp, he);