Re: [PATCH] perf script python: fix unintended underline

From: Paul A. Clarke
Date: Fri Aug 06 2021 - 18:28:34 EST


On Fri, Aug 06, 2021 at 02:28:13PM -0700, Stephen Brennan wrote:
> "Paul A. Clarke" <pc@xxxxxxxxxx> writes:
> > On Fri, Aug 06, 2021 at 01:45:01PM -0700, Stephen Brennan wrote:
> >> The text ranging from "subsystem__event_name" to
> >> "raw_syscalls__sys_enter()" is interpreted by asciidoc as a pair of
> >> unconstrained text formatting markers. The result is that the manual
> >> page displayed this text as underlined, and the HTML pages displayed
> >> this text as italicized. Escape the first double-underscore to prevent
> >> this.
> >
> > I think it would be better to escape the second double-underscore as well,
> > to prevent the same problem recurring with future changes.
> >
> >> diff --git a/tools/perf/Documentation/perf-script-python.txt b/tools/perf/Documentation/perf-script-python.txt
> >> index 5e43cfa5ea1e..0250dc61cf98 100644
> >> --- a/tools/perf/Documentation/perf-script-python.txt
> >> +++ b/tools/perf/Documentation/perf-script-python.txt
> >> @@ -167,7 +167,7 @@ below).
> >>
> >> Following those are the 'event handler' functions generated one for
> >> every event in the 'perf record' output. The handler functions take
> >> -the form subsystem__event_name, and contain named parameters, one for
> >> +the form subsystem\__event_name, and contain named parameters, one for
> >> each field in the event; in this case, there's only one event,
> >> raw_syscalls__sys_enter(). (see the EVENT HANDLERS section below for
> >
> > escape this ^ , too.
>
> I've tried escaping a few combinations of these four underscores.
>
> \__ __ - escaping the first but not the second (as this patch)
> produces correct output
> \_\_ \_\_ - escaping all underscores results in no underlines, but the
> manual page shows "raw_syscalls\_\_sys_enter()" in its
> output.
> \_\_ __ - escaping the first two results in no underlines, but the
> manual page shows "subsystem\_\_event_name"
> \__ \__ - escaping the first of each double-underscore results in no
> underlines, but the manual page shows
> "raw_syscalls\__sys_enter()"
>
> It seems that asciidoc only allows the first in a potential pair to be
> escaped? I'll be the first to admit, I know nothing about asciidoc, so I
> may have missed something here.

Ugh. Thanks for trying. I thought it would be easy, but that probably shows
I know even less about asciidoc. :-/

PC