groff
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [groff] [PATCH] man page patches for 1.22.4.rc5/final


From: G. Branden Robinson
Subject: Re: [groff] [PATCH] man page patches for 1.22.4.rc5/final
Date: Thu, 13 Dec 2018 12:37:25 -0500
User-agent: NeoMutt/20180716

At 2018-12-13T16:53:23+0000, Bjarni Ingi Gislason wrote:
>   In patch 3.diff, file grotty.1.man:
> 
>   Use single capital for one argument, two for two or more
> 
> 
> -.B @MACRODIR@/tty.tmac
> +.IR @MACRODIR@/tty.tmac
> 
> and
> 
> -.B @MACRODIR@/tty\-char.tmac
> -Additional kludgy character definitions for use with
> +.IR @MACRODIR@/tty\-char.tmac

Thanks for the review, but there is only one argument to each of these
requests.

Macro arguments are whitespace-delimited, and there is no whitespace in
these arguments.  Even if there is whitespace in the expansion of
@MACRODIR@, my recent changes will ensure that they do not get
misinterpreted as argument boundaries.

commit f61089db04816e30cc9045988a4c80f84d0350d7
Author: G. Branden Robinson <address@hidden>
Date:   Sat Nov 10 10:00:01 2018 -0500

    man pages: Escape interpolated Make variables.

            * makevarescape.sed: Transform - to \-, ~ to \(ti, and so forth,
            (with an extra layer of backslashes--see below) so that Makefile
            variables containing ASCII characters that do not represent
            themselves literally in *roff (see groff_char(7)) are correctly
            interpolated into man page text.

            * Makefile.am (.man): Transform Makefile variables with the
            above script when interpolating them into man page text.

            Note that while the script, combined with this target, will
            transform ` to \(ga, including grave accents in Makefile
            variables is likely to fail when the shell lexes the argument to
            echo within the old-style command substitution ``.  Testing
            shows that grave accents should work[1] if POSIX-style command
            substitution $() is done instead.  However, $() is less
            portable.  (Triple-escaping grave accents \\\` inside the
            interpolated Makefile variable will work, but is not attempted
            at present.)

            Note also that the amount of backslash-escaping in the sed
            script is excessive (and incorrect) for normal purposes, but
            required here because a command substitution is being nested
            inside yet another invocation of sed.

            [1] For this target; no assurances about the good behavior of
            unusual characters in Makefile variables in other aspects of the
            groff build are offered.

            Fixes <https://savannah.gnu.org/bugs/index.php?55004>.

commit ea32b7d0462813fc3e7c423efb6d805273df9edd
Author: G. Branden Robinson <address@hidden>
Date:   Mon Nov 12 12:02:31 2018 -0500

    makevarescape.sed: Add breakpoints, spaces, and ".

            * makevarescape.sed:
              + Escape plain spaces and double-quotes (ASCII 32 and 34) so
                that bad things don't happen if they are embedded in a Make
                variable expanded in a man page @THUS@ _and_ given as an
                argument to a macro that distinguishes its parameters, such
                as .IR.
              + Add discretionary breaks after groups of slashes not
                preceded by a space; e.g., transform "/usr/bin/groff" into
                "/usr/\:bin/\:groff".  Will also work on URLs
                ("https://\:example.com/\:page.html";) in case we need that.

Regards,
Branden

Attachment: signature.asc
Description: PGP signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]