summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorG. Branden Robinson <g.branden.robinson@gmail.com>2023-02-21 14:42:06 -0600
committerG. Branden Robinson <g.branden.robinson@gmail.com>2023-02-22 03:26:37 -0600
commita9767ace3dd6a4a500c02ff3658e6832fabc78ab (patch)
tree8d0863891ee8c99cd46e0e02f1c2b3a6f2d1e892 /src
parent2cf398e7f52eee9ecf5b8978f22bf252a7652e3d (diff)
downloadgroff-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')
-rw-r--r--src/devices/grodvi/grodvi.1.man15
-rw-r--r--src/devices/grohtml/grohtml.1.man15
-rw-r--r--src/devices/grolbp/grolbp.1.man15
-rw-r--r--src/devices/grolj4/grolj4.1.man15
-rw-r--r--src/devices/gropdf/gropdf.1.man15
-rw-r--r--src/devices/gropdf/pdfmom.1.man15
-rw-r--r--src/devices/grops/grops.1.man15
-rw-r--r--src/devices/grotty/grotty.1.man15
-rw-r--r--src/devices/xditview/gxditview.1.man15
-rw-r--r--src/preproc/eqn/eqn.1.man15
-rw-r--r--src/preproc/eqn/neqn.1.man15
-rw-r--r--src/preproc/grn/grn.1.man15
-rw-r--r--src/preproc/pic/pic.1.man15
-rw-r--r--src/preproc/preconv/preconv.1.man15
-rw-r--r--src/preproc/refer/refer.1.man15
-rw-r--r--src/preproc/soelim/soelim.1.man15
-rw-r--r--src/preproc/tbl/tbl.1.man15
-rw-r--r--src/roff/groff/groff.1.man15
-rw-r--r--src/roff/nroff/nroff.1.man15
-rw-r--r--src/roff/troff/troff.1.man15
-rw-r--r--src/utils/addftinfo/addftinfo.1.man15
-rw-r--r--src/utils/afmtodit/afmtodit.1.man15
-rw-r--r--src/utils/grog/grog.1.man15
-rw-r--r--src/utils/hpftodit/hpftodit.1.man15
-rw-r--r--src/utils/indxbib/indxbib.1.man15
-rw-r--r--src/utils/lkbib/lkbib.1.man15
-rw-r--r--src/utils/lookbib/lookbib.1.man15
-rw-r--r--src/utils/pfbtops/pfbtops.1.man15
-rw-r--r--src/utils/tfmtodit/tfmtodit.1.man15
-rw-r--r--src/utils/xtotroff/xtotroff.1.man15
30 files changed, 450 insertions, 0 deletions
diff --git a/src/devices/grodvi/grodvi.1.man b/src/devices/grodvi/grodvi.1.man
index 8d7be9e5e..05cbe0d40 100644
--- a/src/devices/grodvi/grodvi.1.man
+++ b/src/devices/grodvi/grodvi.1.man
@@ -31,6 +31,21 @@ output driver for TeX DVI format
.do nr *groff_grodvi_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 t .ds tx T\h'-.1667m'\v'.224m'E\v'-.224m'\h'-.125m'X
.el .ds tx TeX
diff --git a/src/devices/grohtml/grohtml.1.man b/src/devices/grohtml/grohtml.1.man
index 4b8828124..2243b474c 100644
--- a/src/devices/grohtml/grohtml.1.man
+++ b/src/devices/grohtml/grohtml.1.man
@@ -31,6 +31,21 @@ output driver for HTML
.do nr *groff_grohtml_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/devices/grolbp/grolbp.1.man b/src/devices/grolbp/grolbp.1.man
index f6ff7a3a0..c8cda762b 100644
--- a/src/devices/grolbp/grolbp.1.man
+++ b/src/devices/grolbp/grolbp.1.man
@@ -36,6 +36,21 @@ output driver for Canon CaPSL printers
.do nr *groff_grolbp_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/devices/grolj4/grolj4.1.man b/src/devices/grolj4/grolj4.1.man
index 847d64451..622777985 100644
--- a/src/devices/grolj4/grolj4.1.man
+++ b/src/devices/grolj4/grolj4.1.man
@@ -31,6 +31,21 @@ output driver for HP LaserJet 4 and compatible printers
.do nr *groff_grolj4_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
+.
.\" This macro definition is poor style from a portability standpoint,
.\" but it's a good test and demonstration of the standard font
.\" repertoire for the devices where it has any effect at all, and so
diff --git a/src/devices/gropdf/gropdf.1.man b/src/devices/gropdf/gropdf.1.man
index db2b4b1f6..39eec969a 100644
--- a/src/devices/gropdf/gropdf.1.man
+++ b/src/devices/gropdf/gropdf.1.man
@@ -31,6 +31,21 @@ output driver for Portable Document Format
.do nr *groff_gropdf_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
+.
.
.\" This macro definition is poor style from a portability standpoint,
.\" but it's a good test and demonstration of the standard font
diff --git a/src/devices/gropdf/pdfmom.1.man b/src/devices/gropdf/pdfmom.1.man
index e77aff439..1b3dc014a 100644
--- a/src/devices/gropdf/pdfmom.1.man
+++ b/src/devices/gropdf/pdfmom.1.man
@@ -32,6 +32,21 @@ macro package for
.do nr *groff_pdfmom_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/devices/grops/grops.1.man b/src/devices/grops/grops.1.man
index 0280507af..6789fb244 100644
--- a/src/devices/grops/grops.1.man
+++ b/src/devices/grops/grops.1.man
@@ -31,6 +31,21 @@ output driver for PostScript
.do nr *groff_grops_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
+.
.
.\" This macro definition is poor style from a portability standpoint,
.\" but it's a good test and demonstration of the standard font
diff --git a/src/devices/grotty/grotty.1.man b/src/devices/grotty/grotty.1.man
index b7c429a88..3dcafaee7 100644
--- a/src/devices/grotty/grotty.1.man
+++ b/src/devices/grotty/grotty.1.man
@@ -31,6 +31,21 @@ output driver for typewriter-like (terminal) devices
.do nr *groff_grotty_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/devices/xditview/gxditview.1.man b/src/devices/xditview/gxditview.1.man
index 5e4646d66..920ccfdc4 100644
--- a/src/devices/xditview/gxditview.1.man
+++ b/src/devices/xditview/gxditview.1.man
@@ -35,6 +35,21 @@ intermediate output files in X11
.do nr *groff_gxditview_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/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
diff --git a/src/roff/groff/groff.1.man b/src/roff/groff/groff.1.man
index 1759a6835..0873e175a 100644
--- a/src/roff/groff/groff.1.man
+++ b/src/roff/groff/groff.1.man
@@ -27,6 +27,21 @@ document formatting system
.do nr *groff_groff_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
+.
.\" Define a string for the TeX logo.
.ie t .ds TeX T\h'-.1667m'\v'.224m'E\v'-.224m'\h'-.125m'X
.el .ds TeX TeX
diff --git a/src/roff/nroff/nroff.1.man b/src/roff/nroff/nroff.1.man
index 97c6aace7..6ccc9d49f 100644
--- a/src/roff/nroff/nroff.1.man
+++ b/src/roff/nroff/nroff.1.man
@@ -31,6 +31,21 @@ for TTY (terminal) devices
.do nr *groff_nroff_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/roff/troff/troff.1.man b/src/roff/troff/troff.1.man
index 0bbbb0770..2ab12b969 100644
--- a/src/roff/troff/troff.1.man
+++ b/src/roff/troff/troff.1.man
@@ -28,6 +28,21 @@ typesetter and document formatter
.do nr *groff_troff_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/utils/addftinfo/addftinfo.1.man b/src/utils/addftinfo/addftinfo.1.man
index 3cad99a3c..a60e8dff7 100644
--- a/src/utils/addftinfo/addftinfo.1.man
+++ b/src/utils/addftinfo/addftinfo.1.man
@@ -32,6 +32,21 @@ fonts for use with
.do nr *groff_addftinfo_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/utils/afmtodit/afmtodit.1.man b/src/utils/afmtodit/afmtodit.1.man
index 79b18feab..e1e69b261 100644
--- a/src/utils/afmtodit/afmtodit.1.man
+++ b/src/utils/afmtodit/afmtodit.1.man
@@ -31,6 +31,21 @@ PostScript and PDF output
.do nr *groff_afmtodit_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/utils/grog/grog.1.man b/src/utils/grog/grog.1.man
index abd020604..b705866f4 100644
--- a/src/utils/grog/grog.1.man
+++ b/src/utils/grog/grog.1.man
@@ -28,6 +28,21 @@ command a document requires
.do nr *groff_grog_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/utils/hpftodit/hpftodit.1.man b/src/utils/hpftodit/hpftodit.1.man
index e645beb7b..12e3af794 100644
--- a/src/utils/hpftodit/hpftodit.1.man
+++ b/src/utils/hpftodit/hpftodit.1.man
@@ -32,6 +32,21 @@ and
.do nr *groff_hpftodit_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/utils/indxbib/indxbib.1.man b/src/utils/indxbib/indxbib.1.man
index dd14ac164..df02fccda 100644
--- a/src/utils/indxbib/indxbib.1.man
+++ b/src/utils/indxbib/indxbib.1.man
@@ -29,6 +29,21 @@
.do nr *groff_indxbib_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/utils/lkbib/lkbib.1.man b/src/utils/lkbib/lkbib.1.man
index 6d485729d..6295e5bc1 100644
--- a/src/utils/lkbib/lkbib.1.man
+++ b/src/utils/lkbib/lkbib.1.man
@@ -29,6 +29,21 @@ lkbib \- search bibliographic databases
.do nr *groff_lkbib_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/utils/lookbib/lookbib.1.man b/src/utils/lookbib/lookbib.1.man
index fcbb739d2..aab5a048b 100644
--- a/src/utils/lookbib/lookbib.1.man
+++ b/src/utils/lookbib/lookbib.1.man
@@ -29,6 +29,21 @@
.do nr *groff_lookbib_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/utils/pfbtops/pfbtops.1.man b/src/utils/pfbtops/pfbtops.1.man
index 61314a8b9..3d1bed5d4 100644
--- a/src/utils/pfbtops/pfbtops.1.man
+++ b/src/utils/pfbtops/pfbtops.1.man
@@ -30,6 +30,21 @@ Font ASCII
.do nr *groff_pfbtops_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/utils/tfmtodit/tfmtodit.1.man b/src/utils/tfmtodit/tfmtodit.1.man
index b8590d16e..0f2175374 100644
--- a/src/utils/tfmtodit/tfmtodit.1.man
+++ b/src/utils/tfmtodit/tfmtodit.1.man
@@ -32,6 +32,21 @@ and
.do nr *groff_tfmtodit_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/utils/xtotroff/xtotroff.1.man b/src/utils/xtotroff/xtotroff.1.man
index f598f4896..17fb0db44 100644
--- a/src/utils/xtotroff/xtotroff.1.man
+++ b/src/utils/xtotroff/xtotroff.1.man
@@ -31,6 +31,21 @@ font metrics
.do nr *groff_xtotroff_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