[PATCH 1/2 V2] copyfilerange: (usage) correct the markup and improve the wording
Benno Schulenberg <[email protected]> Thu, 12 Mar 2026 16:55:31 +0100
| Newsgroups | org.kernel.vger.util-linux |
|---|---|
| Message-ID | <[email protected]> |
The <source>, <destination>, and <range> arguments are required, so do not mark them as optional (with the square brackets). Also, trim the redundant lines about the source and destination files, improve the explanation for the <range> argument and put it after the options, and keep the text within 80 columns. Furthermore, list the short options first (as is custom), and match the indentaion of the -h and -V options to the others. CC: Dick Marinus <[email protected]> Signed-off-by: Benno Schulenberg <[email protected]> --- V2: Use the standard USAGE_ARGUMENTS header instead of an unusually placed lone paragraph. --- misc-utils/copyfilerange.c | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/misc-utils/copyfilerange.c b/misc-utils/copyfilerange.c index 20f0373bd..5ee562d22 100644 --- a/misc-utils/copyfilerange.c +++ b/misc-utils/copyfilerange.c @@ -55,25 +55,23 @@ static void __attribute__((__noreturn__)) usage(void) FILE *out = stdout; fputs(USAGE_HEADER, out); fprintf(out, - _(" %1$s [options] [<source>] [<destination>] [<range>...]\n"), + _(" %1$s [options] <source> <destination> <range>...\n"), program_invocation_short_name); fputs(USAGE_SEPARATOR, out); - fputsln(_("Copy file ranges from source to destination file."), out); - - fputs(USAGE_SEPARATOR, out); - fputsln(_(" source source filename"), out); - fputsln(_(" destination destination filename"), out); - fputsln(_(" range source_offset:dest_offset:length, all values are in bytes"), out); - fputsln(_(" if length is set to 0 as much as available will be copied"), out); - fputsln(_(" when the offset is omitted the last file position is used"), out); + fputsln(_("Copy the specified range(s) from source to destination file."), out); fputs(USAGE_OPTIONS, out); - fputsln(_(" --ranges, -r filename read range(s) separated by newlines from filename"), out); - fputsln(_(" --verbose, -v verbose mode"), out); + fputsln(_(" -r, --ranges <file> read ranges separated by newlines from this file"), out); + fputsln(_(" -v, --verbose verbose mode"), out); fputs(USAGE_SEPARATOR, out); - fprintf(out, USAGE_HELP_OPTIONS(16)); + fprintf(out, USAGE_HELP_OPTIONS(25)); + + fputs(USAGE_ARGUMENTS, out); + fputsln(_(" <range> is of the form <source_offset>:<destination_offset>:<length>,\n" + " with all values in bytes. If <length> is 0, as much data as available\n" + " is copied. When an offset is omitted, the last file position is used."), out); fprintf(out, USAGE_MAN_TAIL("copyfilerange(1)")); exit(EXIT_SUCCESS); -- 2.53.0