diff options
author | G. Branden Robinson <g.branden.robinson@gmail.com> | 2023-02-21 14:42:06 -0600 |
---|---|---|
committer | G. Branden Robinson <g.branden.robinson@gmail.com> | 2023-02-22 03:26:37 -0600 |
commit | a9767ace3dd6a4a500c02ff3658e6832fabc78ab (patch) | |
tree | 8d0863891ee8c99cd46e0e02f1c2b3a6f2d1e892 /src/preproc | |
parent | 2cf398e7f52eee9ecf5b8978f22bf252a7652e3d (diff) | |
download | groff-git-a9767ace3dd6a4a500c02ff3658e6832fabc78ab.tar.gz |
[man pages]: Define page-local `MR` fallback.
[man pages]: Provide page-local fallback definition of new `MR` macro.
I didn't think I was going to have to do this, but the premier site on
the web for viewing Linux man pages, Michael Kerrisk's man7.org, has
been pulling snapshots of the pages themselves without upgrading the
underlying macros, and so man page cross references set with `MR` are
getting lost in its presentations. (I acknowledge: Ingo Schwarze warned
me something like this could happen.) This definition is intended as a
stopgap measure only. I want to revert this after groff 1.23 is
released and has spread to some reasonable degree.
* contrib/chem/chem.1.man:
* contrib/eqn2graph/eqn2graph.1.man:
* contrib/gdiffmk/gdiffmk.1.man:
* contrib/glilypond/glilypond.1.man:
* contrib/gperl/gperl.1.man:
* contrib/gpinyin/gpinyin.1.man:
* contrib/grap2graph/grap2graph.1.man:
* contrib/hdtbl/groff_hdtbl.7.man:
* contrib/mm/groff_mm.7.man:
* contrib/mm/groff_mmse.7.man:
* contrib/mm/mmroff.1.man:
* contrib/mom/groff_mom.7.man:
* contrib/pdfmark/pdfroff.1.man:
* contrib/pic2graph/pic2graph.1.man:
* contrib/rfc1345/groff_rfc1345.7.man:
* man/groff.7.man:
* man/groff_char.7.man:
* man/groff_diff.7.man:
* man/groff_font.5.man:
* man/groff_out.5.man:
* man/groff_tmac.5.man:
* man/roff.7.man:
* src/devices/grodvi/grodvi.1.man:
* src/devices/grohtml/grohtml.1.man:
* src/devices/grolbp/grolbp.1.man:
* src/devices/grolj4/grolj4.1.man:
* src/devices/gropdf/gropdf.1.man:
* src/devices/gropdf/pdfmom.1.man:
* src/devices/grops/grops.1.man:
* src/devices/grotty/grotty.1.man:
* src/devices/xditview/gxditview.1.man:
* src/preproc/eqn/eqn.1.man:
* src/preproc/eqn/neqn.1.man:
* src/preproc/grn/grn.1.man:
* src/preproc/pic/pic.1.man:
* src/preproc/preconv/preconv.1.man:
* src/preproc/refer/refer.1.man:
* src/preproc/soelim/soelim.1.man:
* src/preproc/tbl/tbl.1.man:
* src/roff/groff/groff.1.man:
* src/roff/nroff/nroff.1.man:
* src/roff/troff/troff.1.man:
* src/utils/addftinfo/addftinfo.1.man:
* src/utils/afmtodit/afmtodit.1.man:
* src/utils/grog/grog.1.man:
* src/utils/hpftodit/hpftodit.1.man:
* src/utils/indxbib/indxbib.1.man:
* src/utils/lkbib/lkbib.1.man:
* src/utils/lookbib/lookbib.1.man:
* src/utils/pfbtops/pfbtops.1.man:
* src/utils/tfmtodit/tfmtodit.1.man:
* src/utils/xtotroff/xtotroff.1.man:
* tmac/groff_man.7.man.in:
* tmac/groff_me.7.man:
* tmac/groff_ms.7.man:
* tmac/groff_trace.7.man:
* tmac/groff_www.7.man: Do it.
Fixes <https://savannah.gnu.org/bugs/?63825>. Thanks greatly to Alexis
for identifying an issue with mandoc(1)'s handling of an earlier
iteration of this fallback, and to John Gardner for identifying a method
of detecting mandoc as the renderer at formatting time.
Tested with groff 1.22.4, mandoc 1.14.5, and groff Git HEAD (of course).
The sed script I used follows.
/^\.cp 0/a\
.\
.\\" Define fallback for groff 1.23's MR macro if the system lacks it.\
.nr do-fallback 0\
.if !\\n(.f .nr do-fallback 1 \\" mandoc\
.if \\n(.g .if !d MR .nr do-fallback 1 \\" older groff\
.if !\\n(.g .nr do-fallback 1 \\" non-groff *roff\
.if \\n[do-fallback] \\{\\\
. de MR\
. ie \\\\n(.$=1 \\\
. I \\%\\\\$1\
. el \\\
. IR \\%\\\\$1 (\\\\$2)\\\\$3\
. .\
.\\}\
.rr do-fallback
ANNOUNCE: Update bug counts. Credit Alexis with assistance.
Diffstat (limited to 'src/preproc')
-rw-r--r-- | src/preproc/eqn/eqn.1.man | 15 | ||||
-rw-r--r-- | src/preproc/eqn/neqn.1.man | 15 | ||||
-rw-r--r-- | src/preproc/grn/grn.1.man | 15 | ||||
-rw-r--r-- | src/preproc/pic/pic.1.man | 15 | ||||
-rw-r--r-- | src/preproc/preconv/preconv.1.man | 15 | ||||
-rw-r--r-- | src/preproc/refer/refer.1.man | 15 | ||||
-rw-r--r-- | src/preproc/soelim/soelim.1.man | 15 | ||||
-rw-r--r-- | src/preproc/tbl/tbl.1.man | 15 |
8 files changed, 120 insertions, 0 deletions
diff --git a/src/preproc/eqn/eqn.1.man b/src/preproc/eqn/eqn.1.man index 75e4ced83..c6b5d3c78 100644 --- a/src/preproc/eqn/eqn.1.man +++ b/src/preproc/eqn/eqn.1.man @@ -32,6 +32,21 @@ or MathML .do nr *groff_eqn_1_man_C \n[.cp] .cp 0 . +.\" Define fallback for groff 1.23's MR macro if the system lacks it. +.nr do-fallback 0 +.if !\n(.f .nr do-fallback 1 \" mandoc +.if \n(.g .if !d MR .nr do-fallback 1 \" older groff +.if !\n(.g .nr do-fallback 1 \" non-groff *roff +.if \n[do-fallback] \{\ +. de MR +. ie \\n(.$=1 \ +. I \%\\$1 +. el \ +. IR \%\\$1 (\\$2)\\$3 +. . +.\} +.rr do-fallback +. . .ie \n(.V<\n(.v \ . ds tx T\h'-.1667m'\v'.224m'E\v'-.224m'\h'-.125m'X diff --git a/src/preproc/eqn/neqn.1.man b/src/preproc/eqn/neqn.1.man index 24f8942dd..539afd018 100644 --- a/src/preproc/eqn/neqn.1.man +++ b/src/preproc/eqn/neqn.1.man @@ -29,6 +29,21 @@ .do nr *groff_neqn_1_man_C \n[.cp] .cp 0 . +.\" Define fallback for groff 1.23's MR macro if the system lacks it. +.nr do-fallback 0 +.if !\n(.f .nr do-fallback 1 \" mandoc +.if \n(.g .if !d MR .nr do-fallback 1 \" older groff +.if !\n(.g .nr do-fallback 1 \" non-groff *roff +.if \n[do-fallback] \{\ +. de MR +. ie \\n(.$=1 \ +. I \%\\$1 +. el \ +. IR \%\\$1 (\\$2)\\$3 +. . +.\} +.rr do-fallback +. . .\" ==================================================================== .SH Synopsis diff --git a/src/preproc/grn/grn.1.man b/src/preproc/grn/grn.1.man index c8d3f9442..cbc15ae86 100644 --- a/src/preproc/grn/grn.1.man +++ b/src/preproc/grn/grn.1.man @@ -32,6 +32,21 @@ documents .do nr *groff_grn_1_man_C \n[.cp] .cp 0 . +.\" Define fallback for groff 1.23's MR macro if the system lacks it. +.nr do-fallback 0 +.if !\n(.f .nr do-fallback 1 \" mandoc +.if \n(.g .if !d MR .nr do-fallback 1 \" older groff +.if !\n(.g .nr do-fallback 1 \" non-groff *roff +.if \n[do-fallback] \{\ +. de MR +. ie \\n(.$=1 \ +. I \%\\$1 +. el \ +. IR \%\\$1 (\\$2)\\$3 +. . +.\} +.rr do-fallback +. . .\" ==================================================================== .SH Synopsis diff --git a/src/preproc/pic/pic.1.man b/src/preproc/pic/pic.1.man index 838f98d70..ac2864189 100644 --- a/src/preproc/pic/pic.1.man +++ b/src/preproc/pic/pic.1.man @@ -31,6 +31,21 @@ or TeX .do nr *groff_pic_1_man_C \n[.cp] .cp 0 . +.\" Define fallback for groff 1.23's MR macro if the system lacks it. +.nr do-fallback 0 +.if !\n(.f .nr do-fallback 1 \" mandoc +.if \n(.g .if !d MR .nr do-fallback 1 \" older groff +.if !\n(.g .nr do-fallback 1 \" non-groff *roff +.if \n[do-fallback] \{\ +. de MR +. ie \\n(.$=1 \ +. I \%\\$1 +. el \ +. IR \%\\$1 (\\$2)\\$3 +. . +.\} +.rr do-fallback +. . .\" ==================================================================== .\" Definitions diff --git a/src/preproc/preconv/preconv.1.man b/src/preproc/preconv/preconv.1.man index 0e888c567..1535bae88 100644 --- a/src/preproc/preconv/preconv.1.man +++ b/src/preproc/preconv/preconv.1.man @@ -30,6 +30,21 @@ preconv \- prepare files for typesetting with .do nr *groff_preconv_1_man_C \n[.cp] .cp 0 . +.\" Define fallback for groff 1.23's MR macro if the system lacks it. +.nr do-fallback 0 +.if !\n(.f .nr do-fallback 1 \" mandoc +.if \n(.g .if !d MR .nr do-fallback 1 \" older groff +.if !\n(.g .nr do-fallback 1 \" non-groff *roff +.if \n[do-fallback] \{\ +. de MR +. ie \\n(.$=1 \ +. I \%\\$1 +. el \ +. IR \%\\$1 (\\$2)\\$3 +. . +.\} +.rr do-fallback +. . .\" ==================================================================== .SH Synopsis diff --git a/src/preproc/refer/refer.1.man b/src/preproc/refer/refer.1.man index dfae995ed..ad54ef317 100644 --- a/src/preproc/refer/refer.1.man +++ b/src/preproc/refer/refer.1.man @@ -30,6 +30,21 @@ .do nr *groff_refer_1_man_C \n[.cp] .cp 0 . +.\" Define fallback for groff 1.23's MR macro if the system lacks it. +.nr do-fallback 0 +.if !\n(.f .nr do-fallback 1 \" mandoc +.if \n(.g .if !d MR .nr do-fallback 1 \" older groff +.if !\n(.g .nr do-fallback 1 \" non-groff *roff +.if \n[do-fallback] \{\ +. de MR +. ie \\n(.$=1 \ +. I \%\\$1 +. el \ +. IR \%\\$1 (\\$2)\\$3 +. . +.\} +.rr do-fallback +. . .\" ==================================================================== .SH Synopsis diff --git a/src/preproc/soelim/soelim.1.man b/src/preproc/soelim/soelim.1.man index 484ce1f60..4a1c04296 100644 --- a/src/preproc/soelim/soelim.1.man +++ b/src/preproc/soelim/soelim.1.man @@ -31,6 +31,21 @@ or other text files .\" Save and disable compatibility mode (for, e.g., Solaris 10/11). .do nr *groff_soelim_1_man_C \n[.cp] .cp 0 +. +.\" Define fallback for groff 1.23's MR macro if the system lacks it. +.nr do-fallback 0 +.if !\n(.f .nr do-fallback 1 \" mandoc +.if \n(.g .if !d MR .nr do-fallback 1 \" older groff +.if !\n(.g .nr do-fallback 1 \" non-groff *roff +.if \n[do-fallback] \{\ +. de MR +. ie \\n(.$=1 \ +. I \%\\$1 +. el \ +. IR \%\\$1 (\\$2)\\$3 +. . +.\} +.rr do-fallback .\" Man pages are seldom preprocessed with pic(1). .mso pic.tmac . diff --git a/src/preproc/tbl/tbl.1.man b/src/preproc/tbl/tbl.1.man index 5466bbcda..6fd06d634 100644 --- a/src/preproc/tbl/tbl.1.man +++ b/src/preproc/tbl/tbl.1.man @@ -32,6 +32,21 @@ documents .do nr *groff_tbl_1_man_C \n[.cp] .cp 0 . +.\" Define fallback for groff 1.23's MR macro if the system lacks it. +.nr do-fallback 0 +.if !\n(.f .nr do-fallback 1 \" mandoc +.if \n(.g .if !d MR .nr do-fallback 1 \" older groff +.if !\n(.g .nr do-fallback 1 \" non-groff *roff +.if \n[do-fallback] \{\ +. de MR +. ie \\n(.$=1 \ +. I \%\\$1 +. el \ +. IR \%\\$1 (\\$2)\\$3 +. . +.\} +.rr do-fallback +. . .\" ==================================================================== .SH Synopsis |