Hello Branden,
G. Branden Robinson wrote on Sun, Aug 09, 2026 at 03:35:57AM -0500:
> msoquiet
> soquiet
>
> hydefault
>
> pstream
> pline
> phw
> pcomposite
> pchar
> pcolor
> pwh (renamed from `ptr`)
Thanks for this list. To make mandoc scream less at the poor user
when encountering any of these requests (which is hopefully unlikely
in manual pages, but better safe than sorry). i just committed the
patch appended below.
For now, i didn't change how mandoc(1) treats .ptr. Even though i
do not recall ever seeing it in a manual page, manual pages can
have very long lives, and some are entirely private inside companies
or private projects, so we never know for sure what people may be
doing. Should ignoring .ptr ever entail any downside, it can always
be revisited. In general, when stuff that mandoc(1) ignores can
reasonably be handled better, that can always be considered, although
there is no guarantee that features will be added on user request,
as usual in the free software world.
I believe i now answered all points raised in your cited message.
Yours,
Ingo
Log Message:
-----------
Ignore various roff(7) requests that are new in groff-1.23 and groff-1.24.
Most of these only serve debugging purposes, and some are related to
features that are not relevant in manual pages and that we do not support
in the first place.
Two special cases are notable: .msoquiet is ignored because insecure
(just like .mso already was), and .soquiet is treated as an exact
alias for .so, without suppressing any diagnostics, because in manual
pages, missing include files are never harmless.
List of requests that needed checking provided by G. Branden Robinson.
Modified Files:
--------------
mandoc:
roff.7
roff.c
roff.h
Revision Data
-------------
Index: roff.c
===================================================================
RCS file: /home/cvs/mandoc/mandoc/roff.c,v
diff -Lroff.c -Lroff.c -u -p -r1.406 -r1.407
--- roff.c
+++ roff.c
@@ -287,6 +287,7 @@ const char *__roff_name[MAN_MAX + 1] = {
"fzoom", "gcolor", "hc", "hcode",
"hidechar", "hla", "hlm", "hpf",
"hpfa", "hpfcode", "hw", "hy",
+ "hydefault",
"hylang", "hylen", "hym", "hypp",
"hys", "ie", "if", "ig",
"index", "it", "itc", "IX",
@@ -294,23 +295,25 @@ const char *__roff_name[MAN_MAX + 1] = {
"lc", "lc_ctype", "lds", "length",
"letadj", "lf", "lg", "lhang",
"linetabs", "lnr", "lnrf", "lpfx",
- "ls", "lsm", "lt",
- "mediasize", "minss", "mk", "mso",
+ "ls", "lsm", "lt", "mediasize",
+ "minss", "mk", "mso", "msoquiet",
"na", "ne", "nh", "nhychar",
"nm", "nn", "nop", "nr",
"nrf", "nroff", "ns", "nx",
"open", "opena", "os", "output",
- "padj", "papersize", "pc", "pev",
- "pi", "PI", "pl", "pm",
- "pn", "pnr", "ps",
- "psbb", "pshape", "pso", "ptr",
- "pvs", "rchar", "rd", "recursionlimit",
+ "padj", "papersize", "pc", "pchar",
+ "pcolor", "pcomposite", "pev", "phw",
+ "pi", "PI", "pl", "pline",
+ "pm", "pn", "pnr", "ps",
+ "psbb", "pshape", "pso", "pstream",
+ "ptr", "pvs", "pwh",
+ "rchar", "rd", "recursionlimit",
"return", "rfschar", "rhang",
"rm", "rn", "rnn", "rr",
"rs", "rt", "schar", "sentchar",
"shc", "shift", "sizes", "so",
- "spacewidth", "special", "spreadwarn", "ss",
- "stringdown", "stringup",
+ "soquiet", "spacewidth", "special", "spreadwarn",
+ "ss", "stringdown", "stringup",
"sty", "substring", "sv", "sy",
"T&", "tc", "TE",
"TH", "tkf", "tl",
@@ -482,6 +485,7 @@ static struct roffmac roffs[TOKEN_NONE]
{ roff_line_ignore, NULL, NULL, 0 }, /* hpfcode */
{ roff_line_ignore, NULL, NULL, 0 }, /* hw */
{ roff_line_ignore, NULL, NULL, 0 }, /* hy */
+ { roff_line_ignore, NULL, NULL, 0 }, /* hydefault */
{ roff_line_ignore, NULL, NULL, 0 }, /* hylang */
{ roff_line_ignore, NULL, NULL, 0 }, /* hylen */
{ roff_line_ignore, NULL, NULL, 0 }, /* hym */
@@ -517,6 +521,7 @@ static struct roffmac roffs[TOKEN_NONE]
{ roff_line_ignore, NULL, NULL, 0 }, /* minss */
{ roff_line_ignore, NULL, NULL, 0 }, /* mk */
{ roff_insec, NULL, NULL, 0 }, /* mso */
+ { roff_insec, NULL, NULL, 0 }, /* msoquiet */
{ roff_line_ignore, NULL, NULL, 0 }, /* na */
{ roff_line_ignore, NULL, NULL, 0 }, /* ne */
{ roff_line_ignore, NULL, NULL, 0 }, /* nh */
@@ -536,10 +541,15 @@ static struct roffmac roffs[TOKEN_NONE]
{ roff_line_ignore, NULL, NULL, 0 }, /* padj */
{ roff_line_ignore, NULL, NULL, 0 }, /* papersize */
{ roff_line_ignore, NULL, NULL, 0 }, /* pc */
+ { roff_line_ignore, NULL, NULL, 0 }, /* pchar */
+ { roff_line_ignore, NULL, NULL, 0 }, /* pcolor */
+ { roff_line_ignore, NULL, NULL, 0 }, /* pcomposite */
{ roff_line_ignore, NULL, NULL, 0 }, /* pev */
+ { roff_line_ignore, NULL, NULL, 0 }, /* phw */
{ roff_insec, NULL, NULL, 0 }, /* pi */
{ roff_unsupp, NULL, NULL, 0 }, /* PI */
{ roff_line_ignore, NULL, NULL, 0 }, /* pl */
+ { roff_line_ignore, NULL, NULL, 0 }, /* pline */
{ roff_line_ignore, NULL, NULL, 0 }, /* pm */
{ roff_line_ignore, NULL, NULL, 0 }, /* pn */
{ roff_line_ignore, NULL, NULL, 0 }, /* pnr */
@@ -547,8 +557,10 @@ static struct roffmac roffs[TOKEN_NONE]
{ roff_unsupp, NULL, NULL, 0 }, /* psbb */
{ roff_unsupp, NULL, NULL, 0 }, /* pshape */
{ roff_insec, NULL, NULL, 0 }, /* pso */
+ { roff_line_ignore, NULL, NULL, 0 }, /* pstream */
{ roff_line_ignore, NULL, NULL, 0 }, /* ptr */
{ roff_line_ignore, NULL, NULL, 0 }, /* pvs */
+ { roff_line_ignore, NULL, NULL, 0 }, /* pwh */
{ roff_unsupp, NULL, NULL, 0 }, /* rchar */
{ roff_line_ignore, NULL, NULL, 0 }, /* rd */
{ roff_line_ignore, NULL, NULL, 0 }, /* recursionlimit */
@@ -567,6 +579,7 @@ static struct roffmac roffs[TOKEN_NONE]
{ roff_shift, NULL, NULL, 0 }, /* shift */
{ roff_line_ignore, NULL, NULL, 0 }, /* sizes */
{ roff_so, NULL, NULL, 0 }, /* so */
+ { roff_so, NULL, NULL, 0 }, /* soquiet */
{ roff_line_ignore, NULL, NULL, 0 }, /* spacewidth */
{ roff_line_ignore, NULL, NULL, 0 }, /* special */
{ roff_line_ignore, NULL, NULL, 0 }, /* spreadwarn */
Index: roff.h
===================================================================
RCS file: /home/cvs/mandoc/mandoc/roff.h,v
diff -Lroff.h -Lroff.h -u -p -r1.77 -r1.78
--- roff.h
+++ roff.h
@@ -1,6 +1,7 @@
/* $Id$ */
/*
- * Copyright (c) 2013-2015,2017-2020,2022 Ingo Schwarze <[email protected]>
+ * Copyright (c) 2013-2015, 2017-2020, 2022, 2026
+ * Ingo Schwarze <[email protected]>
* Copyright (c) 2008, 2009, 2010, 2011 Kristaps Dzonsons <[email protected]>
*
* Permission to use, copy, modify, and distribute this software for any
@@ -183,6 +184,7 @@ enum roff_tok {
ROFF_hpfcode,
ROFF_hw,
ROFF_hy,
+ ROFF_hydefault,
ROFF_hylang,
ROFF_hylen,
ROFF_hym,
@@ -219,6 +221,7 @@ enum roff_tok {
ROFF_minss,
ROFF_mk,
ROFF_mso,
+ ROFF_msoquiet,
ROFF_na,
ROFF_ne,
ROFF_nh,
@@ -238,10 +241,15 @@ enum roff_tok {
ROFF_padj,
ROFF_papersize,
ROFF_pc,
+ ROFF_pchar,
+ ROFF_pcolor,
+ ROFF_pcomposite,
ROFF_pev,
+ ROFF_phw,
ROFF_pi,
ROFF_PI,
ROFF_pl,
+ ROFF_pline,
ROFF_pm,
ROFF_pn,
ROFF_pnr,
@@ -249,8 +257,10 @@ enum roff_tok {
ROFF_psbb,
ROFF_pshape,
ROFF_pso,
+ ROFF_pstream,
ROFF_ptr,
ROFF_pvs,
+ ROFF_pwh,
ROFF_rchar,
ROFF_rd,
ROFF_recursionlimit,
@@ -269,6 +279,7 @@ enum roff_tok {
ROFF_shift,
ROFF_sizes,
ROFF_so,
+ ROFF_soquiet,
ROFF_spacewidth,
ROFF_special,
ROFF_spreadwarn,
Index: roff.7
===================================================================
RCS file: /home/cvs/mandoc/mandoc/roff.7,v
diff -Lroff.7 -Lroff.7 -u -p -r1.124 -r1.125
--- roff.7
+++ roff.7
@@ -1003,6 +1003,9 @@ Currently ignored.
.It Ic \&hy Op Ar mode
Set automatic hyphenation mode.
Currently ignored.
+.It Ic \&hydefault Op Ar mode
+Set default hyphenation mode.
+This is a groff-1.24 extension and currently ignored.
.It Ic \&hylang Ar language
Set hyphenation language.
This is a Heirloom extension and currently ignored.
@@ -1365,6 +1368,12 @@ Currently ignored.
.It Ic \&mso Ar filename
Load a macro file using the search path.
Ignored because insecure.
+.It Ic \&msoquiet Ar filename
+A groff-1.23 extension that
+.Xr mandoc 1
+treats as an alias for
+.Ic \&mso ,
+without suppressing any diagnostic messages.
.It Ic \&na
Disable adjusting without changing the adjustment mode.
Currently ignored.
@@ -1474,9 +1483,23 @@ This is a Heirloom extension and current
.It Ic \&pc Op Ar char
Change the page number character.
Currently ignored.
+.It Ic \&pchar Ar char ...
+Print information about each of the listed characters
+to standard error ourput.
+This is a groff-1.24 extension and currently ignored.
+.It Ic \&pcolor Op Ar colorname ...
+Print information about the named colors to standard error output.
+This is a groff-1.24 extension and currently ignored.
+.It Ic \&pcomposite
+Print the list of configured composite character mappings
+to standard error output.
+This is a groff-1.24 extension and currently ignored.
.It Ic \&pev
Print environments.
This is a groff extension and currently ignored.
+.It Ic \&phw
+Print a list of hyphenation exception words to standard error output.
+This is a groff-1.24 extension and currently ignored.
.It Ic \&pi Ar command
Pipe output to a shell command.
Ignored because insecure.
@@ -1487,6 +1510,10 @@ This is a Heirloom extension and current
.It Ic \&pl Op Oo Cm + Ns | Ns Cm - Oc Ns Ar height
Change page length.
Currently ignored.
+.It Ic \&pline
+Print the list of output nodes corresponding to the pending output line
+to standard error output.
+This is a groff-1.24 extension and currently ignored.
.It Ic \&pm
Print names and sizes of macros, strings, and diversions
to standard error output.
@@ -1519,12 +1546,21 @@ This is a Heirloom extension and current
.It Ic \&pso Ar command
Include output of a shell command.
Ignored because insecure.
+.It Ic \&pstream
+Print the list of open streams to standard error output.
+This is a groff-1.24 extension and currently ignored.
.It Ic \&ptr
-Print the names and positions of all traps on standard error output.
-This is a groff extension and currently ignored.
+Print the names and positions of all page location traps
+to standard error output.
+This was a groff extension, it was deleted from groff-1.24,
+and it is currently ignored.
.It Ic \&pvs Op Oo Cm + Ns | Ns Cm - Oc Ns Ar height
Change post-vertical spacing.
This is a groff extension and currently ignored.
+.It Ic \&pwh
+Print the names and positions of all page location traps
+to standard error output.
+This is a groff-1.24 extension and currently ignored.
.It Ic \&rchar Ar glyph ...
Remove glyph definitions.
Currently unsupported.
@@ -1620,6 +1656,12 @@ is discouraged.
Use
.Xr ln 1
instead.
+.It Ic \&soquiet Ar filename
+A groff-1.23 extension that
+.Xr mandoc 1
+treats as an alias for
+.Ic \&so ,
+without suppressing any diagnostic messages.
.It Ic \&sp Op Ar height
Break the output line and emit vertical space.
The argument follows the syntax of