From: Jean-Noël Avila Date: Sat, 12 Apr 2025 08:58:37 GMT Subject: Re: [PATCH 2/5] doc: fix synopsis analysis logic Message-ID: <0846bdd8-f2a6-43d9-83d1-73d9a5b04005@free.fr> In-Reply-To: Le 05/04/2025 à 00:39, Martin Ågren a écrit : > On Sun, 30 Mar 2025 at 19:16, Jean-Noël Avila via GitGitGadget > wrote: >> >> The synopsis analysis logic was not able to handle backslashes and stars >> which are used in the synopsis of the git-rm command. This patch fixes the >> issue by updating the regular expression used to match the keywords. > >> --- a/Documentation/asciidoctor-extensions.rb.in >> +++ b/Documentation/asciidoctor-extensions.rb.in >> @@ -50,7 +50,7 @@ module Git >> def process parent, reader, attrs >> outlines = reader.lines.map do |l| >> l.gsub(/(\.\.\.?)([^\]$.])/, '`\1`\2') >> - .gsub(%r{([\[\] |()>]|^)([-a-zA-Z0-9:+=~@,/_^\$]+)}, '\1{empty}`\2`{empty}') >> + .gsub(%r{([\[\] |()>]|^)([-a-zA-Z0-9:+=~@,/_^\$\\\*]+)}, '\1{empty}`\2`{empty}') >> .gsub(/(<[-a-zA-Z0-9.]+>)/, '__\\1__') >> .gsub(']', ']{empty}') >> end >> @@ -72,7 +72,7 @@ module Git >> %() >> elsif type == :monospaced >> node.text.gsub(/(\.\.\.?)([^\]$.])/, '\1\2') >> - .gsub(%r{([\[\s|()>.]|^|\]|>)(\.?([-a-zA-Z0-9:+=~@,/_^\$]+\.{0,2})+)}, '\1\2') >> + .gsub(%r{([\[\s|()>.]|^|\]|>)(\.?([-a-zA-Z0-9:+=~@,/_^\$\\\*]+\.{0,2})+)}, '\1\2') >> .gsub(/(<[-a-zA-Z0-9.]+>)/, '\1') >> else >> open, close, supports_phrase = QUOTE_TAGS[type] >> @@ -100,7 +100,7 @@ module Git >> def convert_inline_quoted node >> if node.type == :monospaced >> node.text.gsub(/(\.\.\.?)([^\]$.])/, '\1\2') >> - .gsub(%r{([\[\s|()>.]|^|\]|>)(\.?([-a-zA-Z0-9:+=~@,/_^\$]+\.{0,2})+)}, '\1\2') >> + .gsub(%r{([\[\s|()>.]|^|\]|>)(\.?([-a-zA-Z0-9:+=~@,/_^\$\\\*]+\.{0,2})+)}, '\1\2') >> .gsub(/(<[-a-zA-Z0-9.]+>)/, '\1') > > This seems to introduce some extra spacing in the rendered man pages, e.g., > "The bundle.* keys" or "Fileglobs (e.g. *.c)". (Asciidoctor 2.0.18.) I > haven't dug into the regexes so see what might be the cause. > The xml regex seems ok for this. The docbook output is as follows: (...) pairs in this list are in the bundle.* namespace (see (...) The manpage output seems also correct: (...) would accept (with the \fB\-\-file\fR option)\&. The key\-value pairs in this list are in the \fBbundle\&.*\fR namespace (see (...) Strangely, the --file above is rendered correctly, but the bundle.* below not. I do not know TROFF to assess what is going on. Has '*' a special behavior in a bold span? JN