From: Pádraig Brady
Date: Mon, 8 Dec 2025 14:15:00 +0000 (+0000)
Subject: doc: fix pdf generation
X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=0013f0e2adeec29574baa06e02c5d6b3d95a26d0;p=thirdparty%2Fcoreutils.git
doc: fix pdf generation
* doc/coreutils.texi: Explicitly supply empty arguments to macros,
as dvi (a required prerequisite to pdf) is more strict in its
handling of macro arguments.
* cfg.mk (sc_texi_ensure_empty_option_args): Add a syntax check,
since this is not verified in the default build.
Reported by Collin Funk.
---
diff --git a/cfg.mk b/cfg.mk
index f8d9a9b64d..df4926da59 100644
--- a/cfg.mk
+++ b/cfg.mk
@@ -372,6 +372,11 @@ sc_texi_long_option_escaped: doc/coreutils.info
@grep ' â[^ ]' '$<' \
&& { echo 1>&2 '$@: found unquoted --long-option'; exit 1; } || :
+# pdf (and dvi) generation requires explicit empty args (trailing comma)
+sc_texi_ensure_empty_option_args:
+ @grep '^@optItem[^,]*,[^,]*$$' doc/*.texi && { echo 1>&2 \
+ '$@: Use explicit empty argument to @optItem[x]'; exit 1; } || :
+
# Ensure all man/*.[1x] files are present.
sc_man_file_correlation: check-x-vs-1 check-programs-vs-x
diff --git a/doc/coreutils.texi b/doc/coreutils.texi
index 54acdaa642..ca01011d61 100644
--- a/doc/coreutils.texi
+++ b/doc/coreutils.texi
@@ -588,7 +588,7 @@ insights to the overall process.
@chapter Common options
@macro optBackup{cmd}
-@optItem{\cmd\,-b}
+@optItem{\cmd\,-b,}
@optItemx{\cmd\,--backup,[=@var{method}]}
@vindex VERSION_CONTROL
@cindex backups, making
@@ -613,8 +613,8 @@ Specify the destination @var{directory}.
@end macro
@macro optNoTargetDirectory{cmd}
-@optItem{\cmd\,-T}
-@optItemx{\cmd\,--no-target-directory}
+@optItem{\cmd\,-T,}
+@optItemx{\cmd\,--no-target-directory,}
@cindex target directory
@cindex destination directory
Do not treat the last operand specially when it is a directory or a
@@ -629,20 +629,20 @@ output even when that output would contain data with embedded newlines.
@end macro
@macro optNull{cmd}
-@optItem{\cmd\,-0}
-@optItemx{\cmd\,--null}
+@optItem{\cmd\,-0,}
+@optItemx{\cmd\,--null,}
@outputNUL
@end macro
@macro optZero{cmd}
-@optItem{\cmd\,-z}
-@optItemx{\cmd\,--zero}
+@optItem{\cmd\,-z,}
+@optItemx{\cmd\,--zero,}
@outputNUL
@end macro
@macro optZeroTerminated{cmd}
-@optItem{\cmd\,-z}
-@optItemx{\cmd\,--zero-terminated}
+@optItem{\cmd\,-z,}
+@optItemx{\cmd\,--zero-terminated,}
@cindex process zero-terminated items
Delimit items with a zero byte rather than a newline (ASCII LF).
I.e., treat input as items separated by ASCII NUL
@@ -654,7 +654,7 @@ or other special characters).
@end macro
@macro optSi{cmd}
-@optItem{\cmd\,--si}
+@optItem{\cmd\,--si,}
@cindex SI output
Append an SI-style abbreviation to each size, such as @samp{M} for
megabytes. Powers of 1000 are used, not 1024; @samp{M} stands for
@@ -665,8 +665,8 @@ you prefer powers of 1024.
@end macro
@macro optHumanReadable{cmd}
-@optItem{\cmd\,-h}
-@optItemx{\cmd\,--human-readable}
+@optItem{\cmd\,-h,}
+@optItemx{\cmd\,--human-readable,}
@cindex human-readable output
Append a size letter to each size, such as @samp{M} for mebibytes.
Powers of 1024 are used, not 1000; @samp{M} stands for 1,048,576 bytes.
@@ -675,7 +675,7 @@ Use the @option{--si} option if you prefer powers of 1000.
@end macro
@macro optStripTrailingSlashes{cmd}
-@optItem{\cmd\,--strip-trailing-slashes}
+@optItem{\cmd\,--strip-trailing-slashes,}
@cindex stripping trailing slashes
Remove any trailing slashes from each @var{source} argument.
@xref{Trailing slashes}.
@@ -1406,15 +1406,15 @@ a symlink or its referent.
@table @samp
@macro choptH{cmd}
-@optItem{\cmd\,-H}
+@optItem{\cmd\,-H,}
@cindex symbolic link to directory, traverse if on the command line
If @option{--recursive} (@option{-R}) is specified and
a command line argument is a symbolic link to a directory, traverse it.
@end macro
-@choptH
+@choptH{}
@macro choptL{cmd}
-@optItem{\cmd\,-L}
+@optItem{\cmd\,-L,}
@cindex symbolic link to directory, traverse each that is encountered
In a recursive traversal, traverse every symbolic link to a directory
that is encountered.
@@ -1431,14 +1431,14 @@ the operation will be performed on the target of that symlink,
possibly allowing the attacker to escalate privileges.
@end macro
-@choptL
+@choptL{}
@macro choptP{cmd}
-@optItem{\cmd\,-P}
+@optItem{\cmd\,-P,}
@cindex symbolic link to directory, never traverse
Do not traverse any symbolic links.
@end macro
-@choptP
+@choptP{}
@macro choptDefault
This is the default if none of @option{-H}, @option{-L},
@@ -1728,46 +1728,46 @@ The program accepts the following options. Also see @ref{Common options}.
@table @samp
-@optItem{cat,-A}
-@optItemx{cat,--show-all}
+@optItem{cat,-A,}
+@optItemx{cat,--show-all,}
Equivalent to @option{-vET}.
-@optItem{cat,-b}
-@optItemx{cat,--number-nonblank}
+@optItem{cat,-b,}
+@optItemx{cat,--number-nonblank,}
Number all nonempty output lines, starting with 1.
-@optItem{cat,-e}
+@optItem{cat,-e,}
Equivalent to @option{-vE}.
-@optItem{cat,-E}
-@optItemx{cat,--show-ends}
+@optItem{cat,-E,}
+@optItemx{cat,--show-ends,}
Display a @samp{$} after the end of each line.
The @code{\r\n} combination is shown as @samp{^M$}.
-@optItem{cat,-n}
-@optItemx{cat,--number}
+@optItem{cat,-n,}
+@optItemx{cat,--number,}
Number all output lines, starting with 1. This option is ignored
if @option{-b} is in effect.
-@optItem{cat,-s}
-@optItemx{cat,--squeeze-blank}
+@optItem{cat,-s,}
+@optItemx{cat,--squeeze-blank,}
@cindex squeezing empty lines
@cindex squeezing blank lines
Suppress repeated adjacent blank lines; output just one empty line
instead of several.
-@optItem{cat,-t}
+@optItem{cat,-t,}
Equivalent to @option{-vT}.
-@optItem{cat,-T}
-@optItemx{cat,--show-tabs}
+@optItem{cat,-T,}
+@optItemx{cat,--show-tabs,}
Display TAB characters as @samp{^I}.
-@optItem{cat,-u}
+@optItem{cat,-u,}
Ignored; for POSIX compatibility.
-@optItem{cat,-v}
-@optItemx{cat,--show-nonprinting}
+@optItem{cat,-v,}
+@optItemx{cat,--show-nonprinting,}
Display control characters except for LFD and TAB using
@samp{^} notation and precede characters that have the high bit set with
@samp{M-}.
@@ -1817,13 +1817,13 @@ The program accepts the following options. Also see @ref{Common options}.
@table @samp
-@optItem{tac,-b}
-@optItemx{tac,--before}
+@optItem{tac,-b,}
+@optItemx{tac,--before,}
The separator is attached to the beginning of the record that it
precedes in the file.
-@optItem{tac,-r}
-@optItemx{tac,--regex}
+@optItem{tac,-r,}
+@optItemx{tac,--regex,}
Treat the separator string as a regular expression.
@optItem{tac,-s,@w{ }@var{separator}}
@@ -1970,8 +1970,8 @@ right justified, no leading zeros;
right justified, leading zeros.
@end table
-@optItem{nl,-p}
-@optItemx{nl,--no-renumber}
+@optItem{nl,-p,}
+@optItemx{nl,--no-renumber,}
Do not reset the line number at the start of a logical page.
@optItem{nl,-s,@w{ }@var{string}}
@@ -2165,8 +2165,8 @@ double
long double
@end table
-@optItem{od,-v}
-@optItemx{od,--output-duplicates}
+@optItem{od,-v,}
+@optItemx{od,--output-duplicates,}
Output consecutive lines that are identical. By default, when two or
more consecutive output lines would be identical, @command{od} outputs only
the first line, and puts just an asterisk on the following line to
@@ -2189,38 +2189,38 @@ specification options. These options accumulate.
@table @samp
-@optItem{od,-a}
+@optItem{od,-a,}
Output as named characters. Equivalent to @samp{-t a}.
-@optItem{od,-b}
+@optItem{od,-b,}
Output as octal bytes. Equivalent to @samp{-t o1}.
-@optItem{od,-c}
+@optItem{od,-c,}
Output as printable single byte characters, C backslash escapes
or 3 digit octal sequences. Equivalent to @samp{-t c}.
-@optItem{od,-d}
+@optItem{od,-d,}
Output as unsigned decimal two-byte units. Equivalent to @samp{-t u2}.
-@optItem{od,-f}
+@optItem{od,-f,}
Output as floats. Equivalent to @samp{-t fF}.
-@optItem{od,-i}
+@optItem{od,-i,}
Output as decimal ints. Equivalent to @samp{-t dI}.
-@optItem{od,-l}
+@optItem{od,-l,}
Output as decimal long ints. Equivalent to @samp{-t dL}.
-@optItem{od,-o}
+@optItem{od,-o,}
Output as octal two-byte units. Equivalent to @option{-t o2}.
-@optItem{od,-s}
+@optItem{od,-s,}
Output as decimal two-byte units. Equivalent to @option{-t d2}.
-@optItem{od,-x}
+@optItem{od,-x,}
Output as hexadecimal two-byte units. Equivalent to @samp{-t x2}.
-@optItem{od,--traditional}
+@optItem{od,--traditional,}
Recognize the non-option label argument that traditional @command{od}
accepted. The following syntax:
@@ -2296,8 +2296,8 @@ disable line wrapping altogether.
@optAnchor{base32,-d}
@optAnchor{base32,--decode}
-@optItem{base64,-d}
-@optItemx{base64,--decode}
+@optItem{base64,-d,}
+@optItemx{base64,--decode,}
@cindex Decode base64 data
@cindex Base64 decoding
Change the mode of operation, from the default of encoding data, to
@@ -2306,8 +2306,8 @@ output will be the original data.
@optAnchor{base32,-i}
@optAnchor{base32,--ignore-garbage}
-@optItem{base64,-i}
-@optItemx{base64,--ignore-garbage}
+@optItem{base64,-i,}
+@optItemx{base64,--ignore-garbage,}
@cindex Ignore garbage in base64 stream
When decoding, newlines are always accepted.
During decoding, ignore unrecognized bytes,
@@ -2345,19 +2345,19 @@ Supported @var{encoding}s are:
@table @samp
-@optItem{basenc,--base64}
+@optItem{basenc,--base64,}
Encode into (or decode from with @option{-d/--decode}) base64 form.
The format conforms to
@uref{https://datatracker.ietf.org/doc/html/rfc4648#section-4, RFC 4648#4}.
Equivalent to the @command{base64} command.
-@optItem{basenc,--base64url}
+@optItem{basenc,--base64url,}
Encode into (or decode from with @option{-d/--decode}) file-and-url-safe
base64 form (using @samp{_} and @samp{-} instead of @samp{+} and @samp{/}).
The format conforms to
@uref{https://datatracker.ietf.org/doc/html/rfc4648#section-5, RFC 4648#5}.
-@optItem{basenc,--base58}
+@optItem{basenc,--base58,}
Encode into (or decode from with @option{-d/--decode}) base58 form.
The format conforms to
@uref{https://datatracker.ietf.org/doc/html/draft-msporny-base58-03,
@@ -2369,36 +2369,36 @@ For example this generates a unique 128 bit ID in 22 bytes:
uuidgen | basenc --base16 -di | basenc --base58
@end example
-@optItem{basenc,--base32}
+@optItem{basenc,--base32,}
Encode into (or decode from with @option{-d/--decode}) base32 form.
The encoded data uses the @samp{ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=} characters.
The format conforms to
@uref{https://datatracker.ietf.org/doc/html/rfc4648#section-6, RFC 4648#6}.
Equivalent to the @command{base32} command.
-@optItem{basenc,--base32hex}
+@optItem{basenc,--base32hex,}
Encode into (or decode from with @option{-d/--decode}) Extended Hex Alphabet
base32 form. The encoded data uses the
@samp{0123456789ABCDEFGHIJKLMNOPQRSTUV=} characters. The format conforms to
@uref{https://datatracker.ietf.org/doc/html/rfc4648#section-7, RFC 4648#7}.
-@optItem{basenc,--base16}
+@optItem{basenc,--base16,}
Encode into (or decode from with @option{-d/--decode}) base16 (hexadecimal)
form. The encoded data uses the @samp{0123456789ABCDEF} characters. The format
conforms to
@uref{https://datatracker.ietf.org/doc/html/rfc4648#section-8, RFC 4648#8}.
-@optItem{basenc,--base2lsbf}
+@optItem{basenc,--base2lsbf,}
Encode into (or decode from with @option{-d/--decode}) binary string form
(@samp{0} and @samp{1}) with the @emph{least} significant bit of every byte
first.
-@optItem{basenc,--base2msbf}
+@optItem{basenc,--base2msbf,}
Encode into (or decode from with @option{-d/--decode}) binary string form
(@samp{0} and @samp{1}) with the @emph{most} significant bit of every byte
first.
-@optItem{basenc,--z85}
+@optItem{basenc,--z85,}
Encode into (or decode from with @option{-d/--decode}) Z85 form
(a modified Ascii85 form). The encoded data uses the
@samp{0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTU@
@@ -2505,33 +2505,33 @@ The program accepts the following options. Also see @ref{Common options}.
@table @samp
-@optItem{fmt,-c}
-@optItemx{fmt,--crown-margin}
+@optItem{fmt,-c,}
+@optItemx{fmt,--crown-margin,}
@cindex crown margin
@dfn{Crown margin} mode: preserve the indentation of the first two
lines within a paragraph, and align the left margin of each subsequent
line with that of the second line.
-@optItem{fmt,-t}
-@optItemx{fmt,--tagged-paragraph}
+@optItem{fmt,-t,}
+@optItemx{fmt,--tagged-paragraph,}
@cindex tagged paragraphs
@dfn{Tagged paragraph} mode: like crown margin mode, except that if
indentation of the first line of a paragraph is the same as the
indentation of the second, the first line is treated as a one-line
paragraph.
-@optItem{fmt,-s}
-@optItemx{fmt,--split-only}
+@optItem{fmt,-s,}
+@optItemx{fmt,--split-only,}
Split lines only. Do not join short lines to form longer ones. This
prevents sample lines of code, and other such ``formatted'' text from
being unduly combined.
-@optItem{fmt,-u}
-@optItemx{fmt,--uniform-spacing}
+@optItem{fmt,-u,}
+@optItemx{fmt,--uniform-spacing,}
Uniform spacing. Reduce spacing between words to one space, and spacing
between sentences to two spaces.
-@optItem{fmt,-@var{width}}
+@optItem{fmt,-@var{width},}
@optItemx{fmt,-w,@w{ }@var{width}}
@optItemx{fmt,--width,=@var{width}}
Fill output lines up to @var{width} characters (default 75 or @var{goal}
@@ -2619,7 +2619,7 @@ is identical. By default, counting starts with the first page of input
file (not first page printed). Line numbering may be altered by @option{-N}
option.
-@optItem{pr,-@var{column}}
+@optItem{pr,-@var{column},}
@optItemx{pr,--columns,=@var{column}}
@cindex down columns
With each single @var{file}, produce @var{column} columns of output
@@ -2636,21 +2636,21 @@ Lines of full length are joined in a free field format and @option{-S}
option may set field separators. @option{-@var{column}} may not be used
with the @option{-m} option.
-@optItem{pr,-a}
-@optItemx{pr,--across}
+@optItem{pr,-a,}
+@optItemx{pr,--across,}
@cindex across columns
With each single @var{file}, print columns across rather than down. The
@option{-@var{column}} option must be given with @var{column} greater than one.
If a line is too long to fit in a column, it is truncated.
-@optItem{pr,-c}
-@optItemx{pr,--show-control-chars}
+@optItem{pr,-c,}
+@optItemx{pr,--show-control-chars,}
Print control characters using hat notation (e.g., @samp{^G}); print
other nonprinting characters in octal backslash notation. By default,
nonprinting characters are not changed.
-@optItem{pr,-d}
-@optItemx{pr,--double-space}
+@optItem{pr,-d,}
+@optItemx{pr,--double-space,}
@cindex double spacing
Double space the output.
@@ -2688,9 +2688,9 @@ the input tab character (default is the TAB character). Second optional
argument @var{in-tabwidth} is the input tab character's width (default
is 8).
-@optItem{pr,-f}
-@optItemx{pr,-F}
-@optItemx{pr,--form-feed}
+@optItem{pr,-f,}
+@optItemx{pr,-F,}
+@optItemx{pr,--form-feed,}
Use a form feed instead of newlines to separate output pages. This does
not alter the default page length of 66 lines.
@@ -2708,8 +2708,8 @@ is the output tab character (default is the TAB character). Second optional
argument @var{out-tabwidth} is the output tab character's width (default
is 8).
-@optItem{pr,-J}
-@optItemx{pr,--join-lines}
+@optItem{pr,-J,}
+@optItemx{pr,--join-lines,}
Merge lines of full length. Used together with the column options
@option{-@var{column}}, @option{-a -@var{column}} or @option{-m}. Turns off
@option{-W/-w} line truncation;
@@ -2727,8 +2727,8 @@ the lines of the header [and the footer]. If @var{page_length} is less
than or equal to 10, the header and footer are omitted, as if the
@option{-t} option had been given.
-@optItem{pr,-m}
-@optItemx{pr,--merge}
+@optItem{pr,-m,}
+@optItemx{pr,--merge,}
Merge and print all @var{file}s in parallel, one in each column. If a
line is too long to fit in a column, it is truncated, unless the @option{-J}
option is used. @option{--sep-string[=@var{string}]} may be used.
@@ -2777,8 +2777,8 @@ The total page width is the size of the margin plus the @var{page_width}
set with the @option{-W/-w} option. A limited overflow may occur with
numbered single column output (compare @option{-n} option).
-@optItem{pr,-r}
-@optItemx{pr,--no-file-warnings}
+@optItem{pr,-r,}
+@optItemx{pr,--no-file-warnings,}
Do not print a warning message when an argument @var{file} cannot be
opened. (The exit status will still be nonzero, however.)
@@ -2802,8 +2802,8 @@ Without @option{-S} or @option{-J}, @command{pr} uses a @samp{space}
(same as @option{-S"@w{ }"}).
If no @samp{@var{string}} argument is specified, @samp{""} is assumed.
-@optItem{pr,-t}
-@optItemx{pr,--omit-header}
+@optItem{pr,-t,}
+@optItemx{pr,--omit-header,}
Do not print the usual header [and footer] on each page, and do not fill
out the bottom of pages (with blank lines or a form feed). No page
structure is produced, but form feeds set in the input files are retained.
@@ -2812,13 +2812,13 @@ useful together with other options; e.g.: @option{-t -e4}, expand TAB characters
in the input file to 4 spaces but don't make any other changes. Use of
@option{-t} overrides @option{-h}.
-@optItem{pr,-T}
-@optItemx{pr,--omit-pagination}
+@optItem{pr,-T,}
+@optItemx{pr,--omit-pagination,}
Do not print header [and footer]. In addition eliminate all form feeds
set in the input files.
-@optItem{pr,-v}
-@optItemx{pr,--show-nonprinting}
+@optItem{pr,-v,}
+@optItemx{pr,--show-nonprinting,}
Print nonprinting characters in octal backslash notation.
@optItem{pr,-w,@w{ }@var{page_width}}
@@ -2878,19 +2878,19 @@ The program accepts the following options. Also see @ref{Common options}.
@table @samp
-@optItem{fold,-b}
-@optItemx{fold,--bytes}
+@optItem{fold,-b,}
+@optItemx{fold,--bytes,}
Count bytes rather than columns, so that tabs, backspaces, and carriage
returns are each counted as taking up one column, just like other
characters.
-@optItem{fold,-c}
-@optItemx{fold,--characters}
+@optItem{fold,-c,}
+@optItemx{fold,--characters,}
Count characters rather than columns, meaning that lines containing
characters wider than one column will be visually longer.
-@optItem{fold,-s}
-@optItemx{fold,--spaces}
+@optItem{fold,-s,}
+@optItemx{fold,--spaces,}
Break at word boundaries: the line is broken after the last blank before
the maximum line length. If the line contains no such blanks, the line
is broken at the maximum line length as usual.
@@ -2966,13 +2966,13 @@ However, if @var{num} is prefixed with a @samp{-},
print all but the last @var{num} lines of each file.
Size multiplier suffixes are the same as with the @option{-c} option.
-@optItem{head,-q}
-@optItemx{head,--quiet}
-@optItemx{head,--silent}
+@optItem{head,-q,}
+@optItemx{head,--quiet,}
+@optItemx{head,--silent,}
Never print file name headers.
-@optItem{head,-v}
-@optItemx{head,--verbose}
+@optItem{head,-v,}
+@optItemx{head,--verbose,}
Always print file name headers.
@optZeroTerminated{head}
@@ -3046,11 +3046,11 @@ byte @var{num} from the start of each file. For example to skip the first byte
use @code{tail -c +2}, while to skip all but the last byte use @code{tail -c 1}.
@multiplierSuffixes{num}
-@optItem{tail,--debug}
+@optItem{tail,--debug,}
Output extra information to standard error,
like the --follow implementation being used.
-@optItem{tail,-f}
+@optItem{tail,-f,}
@optItemx{tail,--follow,[=@var{how}]}
@cindex growing files
@vindex name @r{follow option}
@@ -3108,7 +3108,7 @@ by using a sub-second sleep interval, e.g., via an alias like this:
alias tail='tail -s.1'
@end example
-@optItem{tail,-F}
+@optItem{tail,-F,}
This option is the same as @option{--follow=name --retry}. That is, tail
will attempt to reopen a file when it is removed. Should this fail, tail
will keep trying until it becomes accessible again.
@@ -3156,12 +3156,12 @@ terminate until long after the real writer has terminated.
On some systems, @option{--pid} is not supported and @command{tail}
outputs a warning.
-@optItem{tail,-q}
-@optItemx{tail,--quiet}
-@optItemx{tail,--silent}
+@optItem{tail,-q,}
+@optItemx{tail,--quiet,}
+@optItemx{tail,--silent,}
Never print file name headers.
-@optItem{tail,--retry}
+@optItem{tail,--retry,}
Indefinitely try to open the specified file.
This option is useful mainly when following (and otherwise issues a warning).
@@ -3188,8 +3188,8 @@ every @var{number} seconds.
The @var{number} must be non-negative and can be a floating-point number
in either the current or the C locale. @xref{Floating point}.
-@optItem{tail,-v}
-@optItemx{tail,--verbose}
+@optItem{tail,-v,}
+@optItemx{tail,--verbose,}
Always print file name headers.
@optZeroTerminated{tail}
@@ -3359,7 +3359,7 @@ thus enables the default behavior, which starts the suffix length at 2,
and unless @option{-n} or @option{--numeric-suffixes=@var{from}} is
specified, will auto increase the length by 2 as required.
-@optItem{split,-d}
+@optItem{split,-d,}
@optItemx{split,--numeric-suffixes,[=@var{from}]}
Use digits in suffixes rather than lower-case letters. The numerical
suffix counts from @var{from} if specified, 0 otherwise.
@@ -3372,7 +3372,7 @@ suffixes beyond @samp{99}. If option @option{--number} is specified and
the number of files is less than @var{from}, a single run is assumed and the
minimum suffix length required is automatically determined.
-@optItem{split,-x}
+@optItem{split,-x,}
@optItemx{split,--hex-suffixes,[=@var{from}]}
Like @option{--numeric-suffixes}, but use hexadecimal numbers (in lower case).
@@ -3380,8 +3380,8 @@ Like @option{--numeric-suffixes}, but use hexadecimal numbers (in lower case).
Append an additional @var{suffix} to output file names. @var{suffix}
must not contain slash.
-@optItem{split,-e}
-@optItemx{split,--elide-empty-files}
+@optItem{split,-e,}
+@optItemx{split,--elide-empty-files,}
Suppress the generation of zero-length output files. This can happen
with the @option{--number} option if a file is (truncated to be) shorter
than the number requested, or if a line is so long as to completely
@@ -3397,12 +3397,12 @@ newline character (ASCII LF).
To specify ASCII NUL as the separator, use the two-character string @samp{\0},
e.g., @samp{split -t '\0'}.
-@optItem{split,-u}
-@optItemx{split,--unbuffered}
+@optItem{split,-u,}
+@optItemx{split,--unbuffered,}
Immediately copy input to output in @option{--number r/@dots{}} mode,
which is a much slower mode of operation.
-@optItem{split,--verbose}
+@optItem{split,--verbose,}
Write a diagnostic just before each output file is opened.
@end table
@@ -3569,17 +3569,17 @@ individual output files in turn. If this option is used, the
Use output file names containing numbers that are @var{digits} digits
long instead of the default 2.
-@optItem{csplit,-k}
-@optItemx{csplit,--keep-files}
+@optItem{csplit,-k,}
+@optItemx{csplit,--keep-files,}
Do not remove output files when errors are encountered.
-@optItem{csplit,--suppress-matched}
+@optItem{csplit,--suppress-matched,}
Do not output lines matching the specified @var{pattern}.
I.e., suppress the boundary line from the start of the second
and subsequent splits.
-@optItem{csplit,-z}
-@optItemx{csplit,--elide-empty-files}
+@optItem{csplit,-z,}
+@optItemx{csplit,--elide-empty-files,}
Suppress the generation of zero-length output files. (In cases where
the section delimiters of the input file are supposed to mark the first
lines of each of the sections, the first output file will generally be a
@@ -3587,10 +3587,10 @@ zero-length file unless you use this option.) The output file sequence
numbers always run consecutively starting from 0, even when this option
is specified.
-@optItem{csplit,-s}
-@optItemx{csplit,-q}
-@optItemx{csplit,--silent}
-@optItemx{csplit,--quiet}
+@optItem{csplit,-s,}
+@optItemx{csplit,-q,}
+@optItemx{csplit,--silent,}
+@optItemx{csplit,--quiet,}
Do not print counts of output file sizes.
@end table
@@ -3742,17 +3742,17 @@ The program accepts the following options. Also see @ref{Common options}.
@table @samp
-@optItem{wc,-c}
-@optItemx{wc,--bytes}
+@optItem{wc,-c,}
+@optItemx{wc,--bytes,}
Print only the byte counts.
-@optItem{wc,-m}
-@optItemx{wc,--chars}
+@optItem{wc,-m,}
+@optItemx{wc,--chars,}
Print only the character counts, as per the current locale.
Encoding errors are not counted.
-@optItem{wc,-w}
-@optItemx{wc,--words}
+@optItem{wc,-w,}
+@optItemx{wc,--words,}
Print only the word counts. A word is a nonempty sequence of non white
space delimited by white space characters or by start or end of input.
The current locale determines which characters are white space.
@@ -3765,24 +3765,24 @@ space even if the current locale does not: U+00A0 NO-BREAK SPACE,
U+2007 FIGURE SPACE, U+202F NARROW NO-BREAK SPACE, and U+2060 WORD
JOINER.
-@optItem{wc,-l}
-@optItemx{wc,--lines}
+@optItem{wc,-l,}
+@optItemx{wc,--lines,}
Print only the newline character counts.
If a file ends in a non-newline character,
its trailing partial line is not counted.
-@optItem{wc,--debug}
+@optItem{wc,--debug,}
Output extra information to standard error.
Currently; print the line count acceleration implementation being used.
-@optItem{wc,-L}
-@optItemx{wc,--max-line-length}
+@optItem{wc,-L,}
+@optItemx{wc,--max-line-length,}
Print only the maximum display widths.
Tabs are set at every 8th column.
Display widths of wide characters are considered.
Non-printable characters are given 0 width.
-@optItem{wc,--total}
+@optItem{wc,--total,}
Control when and how the final line with cumulative counts is printed.
@var{when} is one of:
@itemize @bullet
@@ -3865,14 +3865,14 @@ The program accepts the following options. Also see @ref{Common options}.
@table @samp
-@optItem{sum,-r}
+@optItem{sum,-r,}
@cindex BSD @command{sum}
Use the default (BSD compatible) algorithm. This option is included for
compatibility with the System V @command{sum}. Unless @option{-s} was also
given, it has no effect.
-@optItem{sum,-s}
-@optItemx{sum,--sysv}
+@optItem{sum,-s,}
+@optItemx{sum,--sysv,}
@cindex System V @command{sum}
Compute checksums using an algorithm compatible with System V
@command{sum}'s default, and print file sizes in units of 512-byte blocks.
@@ -4002,7 +4002,7 @@ produce the same checksum:
@samp{blake2b} equivalent to @command{b2sum}
@end example
-@optItem{cksum,--base64}
+@optItem{cksum,--base64,}
@cindex base64 checksum encoding
Print base64-encoded digests not hexadecimal.
This option is ignored with @option{--check}.
@@ -4015,7 +4015,7 @@ modulo 3, and the @option{--check} parser requires precisely the same
input digest string as what is output. I.e., removing or adding any
@samp{=} padding renders a digest non-matching.
-@optItem{cksum,--debug}
+@optItem{cksum,--debug,}
Output extra information to standard error,
like the checksum implementation being used.
@@ -4032,7 +4032,7 @@ option is required, and the @var{length} must be one of 224, 256, 384, or 512.
This option is ignored when @option{--check} is specified,
as the length is automatically determined when checking.
-@optItem{cksum,--raw}
+@optItem{cksum,--raw,}
@cindex raw binary checksum
Print only the unencoded raw binary digest for a single input.
Do not output the file name or anything else.
@@ -4042,7 +4042,7 @@ This option works only with a single input.
Unlike other output formats, @command{cksum} provides no way to
@option{--check} a @option{--raw} checksum.
-@optItem{cksum,--untagged}
+@optItem{cksum,--untagged,}
Output using the original Coreutils format used by the other
standalone checksum utilities like @command{md5sum} for example.
This format has the checksum at the start of the line, and may be
@@ -4057,8 +4057,8 @@ This does not identify the digest algorithm used for the checksum.
@table @samp
-@optItem{cksum,-b}
-@optItemx{cksum,--binary}
+@optItem{cksum,-b,}
+@optItemx{cksum,--binary,}
@cindex binary input files
Treat each input file as binary, by reading it in binary mode and
outputting a @samp{*} flag. This is the inverse of @option{--text}.
@@ -4074,8 +4074,8 @@ of the legacy standalone checksumming utilities.
@end macro
@cksumTextMode
-@optItem{cksum,-c}
-@optItemx{cksum,--check}
+@optItem{cksum,-c,}
+@optItemx{cksum,--check,}
Read file names and checksum information (not data) from each
@var{file} (or from standard input if no @var{file} was specified) and report
whether the checksums match the contents of the named files.
@@ -4116,14 +4116,14 @@ a checksum inconsistent with the associated file, or if no valid
line is found, @command{cksum} exits with nonzero status. Otherwise,
it exits successfully.
-@optItem{cksum,--ignore-missing}
+@optItem{cksum,--ignore-missing,}
@cindex verifying checksums
This option is useful only when verifying checksums.
When verifying checksums, don't fail or report any status
for missing files. This is useful when verifying a subset
of downloaded files given a larger list of checksums.
-@optItem{cksum,--quiet}
+@optItem{cksum,--quiet,}
@cindex verifying checksums
This option is useful only when verifying checksums.
When verifying checksums, don't generate an 'OK' message per successfully
@@ -4131,7 +4131,7 @@ checked file. Files that fail the verification are reported in the
default one-line-per-file format. If there is any checksum mismatch,
print a warning summarizing the failures to standard error.
-@optItem{cksum,--status}
+@optItem{cksum,--status,}
@cindex verifying checksums
This option is useful only when verifying checksums.
When verifying checksums, don't generate the default one-line-per-file
@@ -4142,7 +4142,7 @@ If all listed files are readable and are consistent with the associated
checksums, exit successfully. Otherwise exit with a status code
indicating there was a failure.
-@optItem{cksum,--tag}
+@optItem{cksum,--tag,}
@cindex BSD output
Output BSD style checksums, which indicate the checksum algorithm used.
As a GNU extension, if @option{--zero} is not used, file names with problematic
@@ -4154,8 +4154,8 @@ the output format, while providing little benefit.
@xref{cksum output modes} for details of this format.
The @command{cksum} command, uses @option{--tag} as its default output format.
-@optItem{cksum,-t}
-@optItemx{cksum,--text}
+@optItem{cksum,-t,}
+@optItemx{cksum,--text,}
@cindex text input files
Treat each input file as text, by reading it in text mode and
outputting a @samp{ } flag. This is the inverse of @option{--binary}.
@@ -4165,14 +4165,14 @@ the default for reading standard input when standard input is a
terminal. This mode is never defaulted to if @option{--tag} is used.
@cksumTextMode
-@optItem{cksum,-w}
-@optItemx{cksum,--warn}
+@optItem{cksum,-w,}
+@optItemx{cksum,--warn,}
@cindex verifying checksums
When verifying checksums, warn about improperly formatted checksum lines.
This option is useful only if all but a few lines in the checked input
are valid.
-@optItem{cksum,--strict}
+@optItem{cksum,--strict,}
@cindex verifying checksums
When verifying checksums,
if one or more input line is invalid,
@@ -4386,8 +4386,8 @@ mode:
@table @samp
-@optItem{sort,-c}
-@optItemx{sort,--check}
+@optItem{sort,-c,}
+@optItemx{sort,--check,}
@itemx --check=diagnose-first
@cindex checking whether a file is sorted
Check whether the given file is already sorted: if it is not all
@@ -4396,7 +4396,7 @@ exit with a status of 1.
Otherwise, exit successfully.
At most one input file can be given.
-@optItem{sort,-C}
+@optItem{sort,-C,}
@itemx --check=quiet
@itemx --check=silent
@opindex --check
@@ -4406,8 +4406,8 @@ exit with status 1 otherwise.
At most one input file can be given.
This is like @option{-c}, except it does not print a diagnostic.
-@optItem{sort,-m}
-@optItemx{sort,--merge}
+@optItem{sort,-m,}
+@optItemx{sort,--merge,}
@cindex merging sorted files
Merge the given files by sorting them as a group. Each input file must
always be individually sorted. It always works to sort instead of
@@ -4441,8 +4441,8 @@ so portable shell scripts should specify global options first.
@table @samp
-@optItem{sort,-b}
-@optItemx{sort,--ignore-leading-blanks}
+@optItem{sort,-b,}
+@optItemx{sort,--ignore-leading-blanks,}
@cindex blanks, ignoring leading
@vindex LC_CTYPE
Ignore leading blanks when finding sort keys in each line.
@@ -4451,8 +4451,8 @@ can change this. Blanks may be ignored by your locale's collating
rules, but without this option they will be significant for character
positions specified in keys with the @option{-k} option.
-@optItem{sort,-d}
-@optItemx{sort,--dictionary-order}
+@optItem{sort,-d,}
+@optItemx{sort,--dictionary-order,}
@cindex dictionary order
@cindex phone directory order
@cindex telephone directory order
@@ -4462,8 +4462,8 @@ letters, digits and blanks when sorting.
By default letters and digits are those of ASCII and a blank
is a space or a tab, but the @env{LC_CTYPE} locale can change this.
-@optItem{sort,-f}
-@optItemx{sort,--ignore-case}
+@optItem{sort,-f,}
+@optItemx{sort,--ignore-case,}
@cindex ignoring case
@cindex case folding
@vindex LC_CTYPE
@@ -4475,8 +4475,8 @@ thrown away. (There is currently no way to throw away the upper case
equivalent instead. (Any @option{--reverse} given would only affect
the final result, after the throwing away.))
-@optItem{sort,-g}
-@optItemx{sort,--general-numeric-sort}
+@optItem{sort,-g,}
+@optItemx{sort,--general-numeric-sort,}
@optItemx{sort,--sort,=general-numeric}
@cindex general numeric sort
@vindex LC_NUMERIC
@@ -4509,8 +4509,8 @@ or of varying case. However for hex numbers of consistent case,
and left padded with @samp{0} to a consistent width, a standard
lexicographic sort will be faster.
-@optItem{sort,-h}
-@optItemx{sort,--human-numeric-sort}
+@optItem{sort,-h,}
+@optItemx{sort,--human-numeric-sort,}
@itemx --sort=human-numeric
@opindex --sort
@cindex human numeric sort
@@ -4530,8 +4530,8 @@ option; the SI suffix must immediately follow the number.
To sort more accurately, you can use the @command{numfmt} command
to reformat numbers to human format @emph{after} the sort.
-@optItem{sort,-i}
-@optItemx{sort,--ignore-nonprinting}
+@optItem{sort,-i,}
+@optItemx{sort,--ignore-nonprinting,}
@cindex nonprinting characters, ignoring
@cindex unprintable characters, ignoring
@vindex LC_CTYPE
@@ -4540,8 +4540,8 @@ The @env{LC_CTYPE} locale determines character types.
This option has no effect if the stronger @option{--dictionary-order}
(@option{-d}) option is also given.
-@optItem{sort,-M}
-@optItemx{sort,--month-sort}
+@optItem{sort,-M,}
+@optItemx{sort,--month-sort,}
@itemx --sort=month
@opindex --sort
@cindex months, sorting by
@@ -4554,8 +4554,8 @@ category determines the month spellings.
By default a blank is a space or a tab, but the @env{LC_CTYPE} locale
can change this.
-@optItem{sort,-n}
-@optItemx{sort,--numeric-sort}
+@optItem{sort,-n,}
+@optItemx{sort,--numeric-sort,}
@itemx --sort=numeric
@opindex --sort
@cindex numeric sort
@@ -4579,8 +4579,8 @@ Neither a leading @samp{+} nor exponential notation is recognized.
To compare such strings numerically, use the
@option{--general-numeric-sort} (@option{-g}) option.
-@optItem{sort,-V}
-@optItemx{sort,--version-sort}
+@optItem{sort,-V,}
+@optItemx{sort,--version-sort,}
@itemx --sort=version
@opindex --sort
@cindex version number sort
@@ -4588,14 +4588,14 @@ Sort by version name and number. It behaves like a standard sort,
except that each sequence of decimal digits is treated numerically
as an index/version number. (@xref{Version sort ordering}.)
-@optItem{sort,-r}
-@optItemx{sort,--reverse}
+@optItem{sort,-r,}
+@optItemx{sort,--reverse,}
@cindex reverse sorting
Reverse the result of comparison, so that lines with greater key values
appear earlier in the output instead of later.
-@optItem{sort,-R}
-@optItemx{sort,--random-sort}
+@optItem{sort,-R,}
+@optItemx{sort,--random-sort,}
@itemx --sort=random
@opindex --sort
@cindex random sort
@@ -4667,7 +4667,7 @@ Example: To sort on the second field, use @option{--key=2,2}
See also the @option{--debug} option to help determine the part
of the line being used in the sort.
-@optItem{sort,--debug}
+@optItem{sort,--debug,}
Highlight the portion of each line used for sorting.
Also issue warnings about questionable usage to standard error.
@@ -4724,8 +4724,8 @@ Use @var{file} as a source of random data used to determine which
random hash function to use with the @option{-R} option. @xref{Random
sources}.
-@optItem{sort,-s}
-@optItemx{sort,--stable}
+@optItem{sort,-s,}
+@optItemx{sort,--stable,}
@cindex sort stability
@cindex sort's last-resort comparison
@@ -4792,8 +4792,8 @@ to 8, as performance gains diminish after that.
Using @var{n} threads increases the memory usage by
a factor of log @var{n}. Also see @ref{nproc invocation}.
-@optItem{sort,-u}
-@optItemx{sort,--unique}
+@optItem{sort,-u,}
+@optItemx{sort,--unique,}
@cindex uniquifying output
Normally, output only the first of a sequence of lines that compare
@@ -5054,8 +5054,8 @@ input. The following options change the operation mode:
@table @samp
-@optItem{shuf,-e}
-@optItemx{shuf,--echo}
+@optItem{shuf,-e,}
+@optItemx{shuf,--echo,}
@cindex command-line operands to shuffle
Treat each command-line operand as an input line.
@@ -5091,8 +5091,8 @@ commands like @code{shuf -o F