On Tue, Feb 26, 2013 at 8:23 AM, Bernhard Voelker
<[email protected]> wrote:
> On 02/25/2013 07:46 PM, Benno Schulenberg wrote:
>> Well, what I meant was [...]
>
> Hi Benno,
>
> here's the updated patch.

Thanks.   Applied and pushed.

I changed your patch also to update ChangeLog and NEWS.   Attached for
your reference, but also available now in git.

Thanks again,
James.
commit 5a20251ff65038e71f99a1220669d4aa953e40a5
Author: Bernhard Voelker <[email protected]>
Date:   Tue Feb 26 09:14:09 2013 +0100

    xargs: split usage text to help translators
    
    Smaller chunks are easier to handle for translators, ideally
    one msgid per option.  Separate them.
    
    Change "mandatory arguments ..." note: optional arguments to long
    options are also optional for their corresponding short option.
    
    Remove the general note about the meaning of square brackets - the
    reader has to know this already.
    
    Fix the long --replace option: the equal sign must go into the
    square brackets: --replace[=R].
    
    Clarify -l option: separate from -L to emphasize that MAX-LINES
    is optional for the -l option; therefore, mention the optional
    argument with the option as "-l[MAX-LINES]".
    
    * xargs/xargs.c (usage): Define HTL macro to print one help text
    line (or entry).  Split the option descriptions up by using the
    above macro.  Refine the messages to adapt to the common way:
    change the start of each option's description to lower case,
    do not use periods at the end, use semicolons where needed,
    indent secondary lines, several other minor improvements.
    
    Reported by Benno Schulenberg in
    http://lists.gnu.org/archive/html/bug-findutils/2013-02/msg00017.html

diff --git a/ChangeLog b/ChangeLog
index 5c8aefb..28fba03 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -7,6 +7,15 @@
        the find binary.
        * NEWS: Mention this improvement.
 
+       xargs: split usage text to help translators, and clarify it.
+       * xargs/xargs.c (usage):  Define HTL macro to print one help text
+       line (or entry).  Split the option descriptions up by using the
+       above macro.  Refine the messages to adapt to the common way:
+       change the start of each option's description to lower case, do
+       not use periods at the end, use semicolons where needed, indent
+       secondary lines, several other minor improvements.
+       * NEWS: Mention this improvement.
+
 2013-03-24  James Youngman  <[email protected]>
 
        Fix Savannah bug #38583: errno-buffer read failed in xargs_do_exec
diff --git a/NEWS b/NEWS
index 4889e85..cdba58b 100644
--- a/NEWS
+++ b/NEWS
@@ -10,6 +10,9 @@ find will now give a clearer error message (though the 
functionality
 is unchanged).  Type letters are affected are D, l and p (for Solaris
 Doors, symbolic links and named pipes respectively).
 
+The output of xargs --help has been slightly changed for greater
+clarity.
+
 ** Bug Fixes
 
 Some bugs in 4.5.11 were fixed without addinng them to the bug
diff --git a/xargs/xargs.c b/xargs/xargs.c
index 92390a9..6acea52 100644
--- a/xargs/xargs.c
+++ b/xargs/xargs.c
@@ -1587,46 +1587,48 @@ parse_num (char *str, int option, long int min, long 
int max, int fatal)
 static void
 usage (FILE *stream)
 {
-  fprintf (stream, _("\
-Usage: %s [OPTION]... COMMAND INITIAL-ARGS...\n\
-Run COMMAND with arguments INITIAL-ARGS and more arguments read from 
input.\n"),
-          program_name);
-  fprintf (stream, _("\n\
-Mandatory arguments to long options are mandatory for short options too.\n\
-Non-mandatory arguments are indicated by [square brackets]\n\
-  -0, --null                   Items are separated by a null, not 
whitespace.\n\
-                               Disables quote and backslash processing\n\
-  -a, --arg-file=FILE          Read arguments from FILE, not standard input\n\
-  -d, --delimiter=CHARACTER    Input items are separated by CHARACTER, not 
by\n\
-                               blank space. Disables quote and backslash\n\
-                               processing\n\
-  -E END                       If END occurs as a line of input, the rest of\n\
-                               the input is ignored.\n\
-  -e [END], --eof[=END]        Equivalent to -E END if END is specified.\n\
-                               Otherwise, there is no end-of-file string\n\
-  --help                       Print a summary of the options to xargs.\n\
-  -I R                         same as --replace=R (R must be specified)\n\
-  -i,--replace=[R]             Replace R in initial arguments with names\n\
-                               read from standard input. If R is\n\
-                               unspecified, assume {}\n\
-  -L,-l, --max-lines=MAX-LINES Use at most MAX-LINES nonblank input lines 
per\n\
-                               command line\n\
-  -l                           Use at most one nonblank input line per\n\
-                               command line\n\
-  -n, --max-args=MAX-ARGS      Use at most MAX-ARGS arguments per command\n\
-                               line\n\
-  -P, --max-procs=MAX-PROCS    Run up to max-procs processes at a time\n\
-  -p, --interactive            Prompt before running commands\n\
-  --process-slot-var=VAR       Set environment variable VAR in child\n\
-                               processes\n\
-  -r, --no-run-if-empty        If there are no arguments, run no command.\n\
-                               If this option is not given, COMMAND will be\n\
-                               run at least once.\n\
-  -s, --max-chars=MAX-CHARS    Limit commands to MAX-CHARS at most\n\
-  --show-limits                Show limits on command-line length.\n\
-  -t, --verbose                Print commands before executing them\n\
-  --version                    Print the version number\n\
-  -x, --exit                   Exit if the size (see -s) is exceeded\n\
-"));
-  fputs (_("\nReport bugs to <[email protected]>.\n"), stream);
+  fprintf (stream,
+           _("Usage: %s [OPTION]... COMMAND [INITIAL-ARGS]...\n"),
+           program_name);
+
+#define HTL(t) fputs (t, stream);
+
+  HTL (_("Run COMMAND with arguments INITIAL-ARGS and more arguments read from 
input.\n"
+         "\n"));
+  HTL (_("Mandatory and optional arguments to long options are also\n"
+         "mandatory or optional for the corresponding short option.\n"));
+  HTL (_("  -0, --null                   items are separated by a null, not 
whitespace;\n"
+         "                                 disables quote and backslash 
processing\n"));
+  HTL (_("  -a, --arg-file=FILE          read arguments from FILE, not 
standard input\n"));
+  HTL (_("  -d, --delimiter=CHARACTER    items in input stream are separated 
by CHARACTER,\n"
+         "                                 not by whitespace; disables quote 
and backslash\n"
+         "                                 processing\n"));
+  HTL (_("  -E END                       if END occurs as a line of input, the 
rest of\n"
+         "                                 the input is ignored\n"));
+  HTL (_("  -e, --eof[=END]              equivalent to -E END if END is 
specified;\n"
+         "                                 otherwise, there is no end-of-file 
string\n"));
+  HTL (_("  -I R                         same as --replace=R\n"));
+  HTL (_("  -i, --replace[=R]            replace R in INITIAL-ARGS with names 
read\n"
+         "                                 from standard input; if R is 
unspecified,\n"
+         "                                 assume {}\n"));
+  HTL (_("  -L, --max-lines=MAX-LINES    use at most MAX-LINES non-blank input 
lines per\n"
+         "                                 command line\n"));
+  HTL (_("  -l[MAX-LINES]                similar to -L but defaults to at most 
one non-\n"
+         "                                 blank input line if MAX-LINES is 
not specified\n"));
+  HTL (_("  -n, --max-args=MAX-ARGS      use at most MAX-ARGS arguments per 
command line\n"));
+  HTL (_("  -P, --max-procs=MAX-PROCS    run at most MAX-PROCS processes at a 
time\n"));
+  HTL (_("  -p, --interactive            prompt before running commands\n"));
+  HTL (_("      --process-slot-var=VAR   set environment variable VAR in child 
processes\n"));
+  HTL (_("  -r, --no-run-if-empty        if there are no arguments, then do 
not run COMMAND;\n"
+         "                                 if this option is not given, 
COMMAND will be\n"
+         "                                 run at least once\n"));
+  HTL (_("  -s, --max-chars=MAX-CHARS    limit length of command line to 
MAX-CHARS\n"));
+  HTL (_("      --show-limits            show limits on command-line 
length\n"));
+  HTL (_("  -t, --verbose                print commands before executing 
them\n"));
+  HTL (_("  -x, --exit                   exit if the size (see -s) is 
exceeded\n"));
+
+  HTL (_("      --help                   display this help and exit\n"));
+  HTL (_("      --version                output version information and 
exit\n"));
+  HTL (_("\n"
+         "Report bugs to <[email protected]>.\n"));
 }

Reply via email to