Em Tue, Nov 08, 2016 at 10:08:32PM +0900, Namhyung Kim escreveu:
> When horizontall scrolling is used in hierarchy mode, the the right most
> column has unnecessary indentation.  Actually it's needed only if some
> of left (overhead) columns were shown.

I see, here is the fix, thanks, testing it now...

- Arnaldo
 
> Signed-off-by: Namhyung Kim <namhy...@kernel.org>
> ---
>  tools/perf/ui/browsers/hists.c | 19 +++++++++++++------
>  1 file changed, 13 insertions(+), 6 deletions(-)
> 
> diff --git a/tools/perf/ui/browsers/hists.c b/tools/perf/ui/browsers/hists.c
> index 7722ad311318..15b29a79a69b 100644
> --- a/tools/perf/ui/browsers/hists.c
> +++ b/tools/perf/ui/browsers/hists.c
> @@ -1361,8 +1361,10 @@ static int hist_browser__show_hierarchy_entry(struct 
> hist_browser *browser,
>               width -= hpp.buf - s;
>       }
>  
> -     ui_browser__write_nstring(&browser->b, "", hierarchy_indent);
> -     width -= hierarchy_indent;
> +     if (!first) {
> +             ui_browser__write_nstring(&browser->b, "", hierarchy_indent);
> +             width -= hierarchy_indent;
> +     }
>  
>       if (column >= browser->b.horiz_scroll) {
>               char s[2048];
> @@ -1565,6 +1567,7 @@ static int 
> hists_browser__scnprintf_hierarchy_headers(struct hist_browser *brows
>       if (advance_hpp_check(&dummy_hpp, ret))
>               return ret;
>  
> +     first_node = true;
>       /* the first hpp_list_node is for overhead columns */
>       fmt_node = list_first_entry(&hists->hpp_formats,
>                                   struct perf_hpp_list_node, list);
> @@ -1579,12 +1582,16 @@ static int 
> hists_browser__scnprintf_hierarchy_headers(struct hist_browser *brows
>               ret = scnprintf(dummy_hpp.buf, dummy_hpp.size, "  ");
>               if (advance_hpp_check(&dummy_hpp, ret))
>                       break;
> +
> +             first_node = false;
>       }
>  
> -     ret = scnprintf(dummy_hpp.buf, dummy_hpp.size, "%*s",
> -                     indent * HIERARCHY_INDENT, "");
> -     if (advance_hpp_check(&dummy_hpp, ret))
> -             return ret;
> +     if (!first_node) {
> +             ret = scnprintf(dummy_hpp.buf, dummy_hpp.size, "%*s",
> +                             indent * HIERARCHY_INDENT, "");
> +             if (advance_hpp_check(&dummy_hpp, ret))
> +                     return ret;
> +     }
>  
>       first_node = true;
>       list_for_each_entry_continue(fmt_node, &hists->hpp_formats, list) {
> -- 
> 2.10.1

Reply via email to