randomtest fixes
[oweals/busybox.git] / include / usage.h
index 1505ac3060e96472c2bb2035d7eb21d94a1b2850..9d9ad008bad554b6aa60b20b05fc4ee8f86ba8cb 100644 (file)
@@ -16,7 +16,7 @@
 #define NOUSAGE_STR "\b"
 
 #define acpid_trivial_usage \
-       "[-d] [-c CONFDIR] [-l LOGFILE] [-e PROC_EVENT_FILE] [EVDEV_EVENT_FILE...]"
+       "[-d] [-c CONFDIR] [-l LOGFILE] [-e PROC_EVENT_FILE] [EVDEV_EVENT_FILE]..."
 #define acpid_full_usage "\n\n" \
        "Listen to ACPI events and spawn specific helpers on event arrival\n" \
      "\nOptions:" \
@@ -33,7 +33,7 @@
        "# acpid -d /dev/input/event*\n"
 
 #define addgroup_trivial_usage \
-       "[-g GID] " IF_FEATURE_ADDUSER_TO_GROUP("[user_name] ") "group_name"
+       "[-g GID] " IF_FEATURE_ADDUSER_TO_GROUP("[USER] ") "GROUP"
 #define addgroup_full_usage "\n\n" \
        "Add a group " IF_FEATURE_ADDUSER_TO_GROUP("or add a user to a group") "\n" \
      "\nOptions:" \
@@ -41,7 +41,7 @@
      "\n       -S      Create a system group" \
 
 #define adduser_trivial_usage \
-       "[OPTIONS] user_name"
+       "[OPTIONS] USER"
 #define adduser_full_usage "\n\n" \
        "Add a user\n" \
      "\nOptions:" \
      "\n       -u UID          User id" \
 
 #define adjtimex_trivial_usage \
-       "[-q] [-o offset] [-f frequency] [-p timeconstant] [-t tick]"
+       "[-q] [-o OFF] [-f FREQ] [-p TCONST] [-t TICK]"
 #define adjtimex_full_usage "\n\n" \
-       "Read and optionally set system timebase parameters. See adjtimex(2).\n" \
+       "Read and optionally set system timebase parameters. See adjtimex(2)\n" \
      "\nOptions:" \
-     "\n       -q              Quiet" \
-     "\n       -o offset       Time offset, microseconds" \
-     "\n       -f frequency    Frequency adjust, integer kernel units (65536 is 1ppm)" \
-     "\n                       (positive values make clock run faster)" \
-     "\n       -t tick         Microseconds per tick, usually 10000" \
-     "\n       -p timeconstant" \
+     "\n       -q      Quiet" \
+     "\n       -o OFF  Time offset, microseconds" \
+     "\n       -f FREQ Frequency adjust, integer kernel units (65536 is 1ppm)" \
+     "\n               (positive values make clock run faster)" \
+     "\n       -t TICK Microseconds per tick, usually 10000" \
+     "\n       -p TCONST" \
 
 #define ar_trivial_usage \
        "[-o] [-v] [-p] [-t] [-x] ARCHIVE FILES"
      "\n       -v      Verbose" \
 
 #define arp_trivial_usage \
-     "\n[-vn]  [-H type] [-i if] -a [hostname]" \
-     "\n[-v]             [-i if] -d hostname [pub]" \
-     "\n[-v]   [-H type] [-i if] -s hostname hw_addr [temp]" \
-     "\n[-v]   [-H type] [-i if] -s hostname hw_addr [netmask nm] pub" \
-     "\n[-v]   [-H type] [-i if] -Ds hostname ifa [netmask nm] pub"
+     "\n[-vn]  [-H HWTYPE] [-i IF] -a [HOSTNAME]" \
+     "\n[-v]               [-i IF] -d HOSTNAME [pub]" \
+     "\n[-v]   [-H HWTYPE] [-i IF] -s HOSTNAME HWADDR [temp]" \
+     "\n[-v]   [-H HWTYPE] [-i IF] -s HOSTNAME HWADDR [netmask MASK] pub" \
+     "\n[-v]   [-H HWTYPE] [-i IF] -Ds HOSTNAME IFACE [netmask MASK] pub"
 #define arp_full_usage "\n\n" \
        "Manipulate ARP cache\n" \
      "\nOptions:" \
@@ -97,7 +97,7 @@
        "\n     -H HWTYPE       Hardware address type" \
 
 #define arping_trivial_usage \
-       "[-fqbDUA] [-c count] [-w timeout] [-I dev] [-s sender] target"
+       "[-fqbDUA] [-c CNT] [-w TIMEOUT] [-I IFACE] [-s SRC_IP] DST_IP"
 #define arping_full_usage "\n\n" \
        "Send ARP requests/replies\n" \
      "\nOptions:" \
      "\n       -U              Unsolicited ARP mode, update your neighbors" \
      "\n       -A              ARP answer mode, update your neighbors" \
      "\n       -c N            Stop after sending N ARP requests" \
-     "\n       -w timeout      Time to wait for ARP reply, in seconds" \
-     "\n       -I dev          Interface to use (default eth0)" \
-     "\n       -s sender       Sender IP address" \
-     "\n       target          Target IP address" \
+     "\n       -w TIMEOUT      Time to wait for ARP reply, seconds" \
+     "\n       -I IFACE        Interface to use (default eth0)" \
+     "\n       -s SRC_IP       Sender IP address" \
+     "\n       DST_IP          Target IP address" \
 
 #define sh_trivial_usage NOUSAGE_STR
 #define sh_full_usage ""
        "Options:" \
      "\n       -v VAR=VAL      Set variable" \
      "\n       -F SEP          Use SEP as field separator" \
-     "\n       -f FILE         Read program from file" \
+     "\n       -f FILE         Read program from FILE" \
 
 #define basename_trivial_usage \
        "FILE [SUFFIX]"
      "\n       -r      Repetitions" \
      "\n       -n      Start new tone" \
 
-#define fbsplash_trivial_usage \
-       "-s IMGFILE [-c] [-d DEV] [-i INIFILE] [-f CMD]"
-#define fbsplash_full_usage "\n\n" \
-       "Options:" \
-     "\n       -s      Image" \
-     "\n       -c      Hide cursor" \
-     "\n       -d      Framebuffer device (default /dev/fb0)" \
-     "\n       -i      Config file (var=value):" \
-     "\n                       BAR_LEFT,BAR_TOP,BAR_WIDTH,BAR_HEIGHT" \
-     "\n                       BAR_R,BAR_G,BAR_B" \
-     "\n       -f      Control pipe (else exit after drawing image)" \
-     "\n                       commands: 'NN' (% for progress bar) or 'exit'" \
+#define bootchartd_trivial_usage \
+       "start [PROG ARGS]|stop|init"
+#define bootchartd_full_usage "\n\n" \
+       "Create /var/log/bootchart.tgz with boot chart data\n" \
+     "\nOptions:" \
+     "\nstart: start background logging; with PROG, run PROG, then kill logging with USR1" \
+     "\nstop: send USR1 to all bootchartd processes" \
+     "\ninit: start background logging; stop when getty/xdm is seen (for init scripts)" \
+     "\nUnder PID 1: as init, then exec $bootchart_init, /init, /sbin/init" \
 
 #define brctl_trivial_usage \
        "COMMAND [BRIDGE [INTERFACE]]"
      "\n       setpathcost BRIDGE COST         Set path cost" \
      "\n       setportprio BRIDGE PRIO         Set port priority" \
      "\n       setbridgeprio BRIDGE PRIO       Set bridge priority" \
-     "\n       stp BRIDGE [1|0]                STP on/off" \
+     "\n       stp BRIDGE [1/yes/on|0/no/off]  STP on/off" \
        ) \
 
 #define bunzip2_trivial_usage \
-       "[OPTIONS] [FILE]"
+       "[OPTIONS] [FILE]..."
 #define bunzip2_full_usage "\n\n" \
-       "Uncompress FILE (or standard input)\n" \
+       "Uncompress FILEs (or stdin)\n" \
      "\nOptions:" \
-     "\n       -c      Write to standard output" \
+     "\n       -c      Write to stdout" \
      "\n       -f      Force" \
 
 #define bzip2_trivial_usage \
        "[OPTIONS] [FILE]..."
 #define bzip2_full_usage "\n\n" \
-       "Compress FILEs (or standard input) with bzip2 algorithm.\n" \
+       "Compress FILEs (or stdin) with bzip2 algorithm\n" \
      "\nOptions:" \
-     "\n       -c      Write to standard output" \
+     "\n       -c      Write to stdout" \
      "\n       -d      Decompress" \
      "\n       -f      Force" \
      "\n       -1..-9  Compression level" \
 #define lzop_trivial_usage \
        "[-cfvd123456789CF] [FILE]..."
 #define lzop_full_usage "\n\n" \
-       "       -c      Write to standard output" \
+       "       -c      Write to stdout" \
      "\n       -f      Force" \
      "\n       -v      Verbose" \
      "\n       -d      Decompress" \
 #define unlzop_trivial_usage \
        "[-cfvCF] [FILE]..."
 #define unlzop_full_usage "\n\n" \
-       "       -c      Write to standard output" \
+       "       -c      Write to stdout" \
      "\n       -f      Force" \
      "\n       -v      Verbose" \
      "\n       -F      Don't store or verify checksum" \
        "Uncompress to stdout"
 
 #define unlzma_trivial_usage \
-       "[OPTIONS] [FILE]"
+       "[OPTIONS] [FILE]..."
 #define unlzma_full_usage "\n\n" \
-       "Uncompress FILE (or standard input)\n" \
+       "Uncompress FILE (or stdin)\n" \
      "\nOptions:" \
-     "\n       -c      Write to standard output" \
+     "\n       -c      Write to stdout" \
      "\n       -f      Force" \
 
 #define lzmacat_trivial_usage \
        "Uncompress to stdout"
 
 #define cal_trivial_usage \
-       "[-jy] [[month] year]"
+       "[-jy] [[MONTH] YEAR]"
 #define cal_full_usage "\n\n" \
        "Display a calendar\n" \
      "\nOptions:" \
        "chat '' ATZ OK ATD123456 CONNECT '' ogin: pppuser word: ppppass '~'" \
 
 #define chattr_trivial_usage \
-       "[-R] [-+=AacDdijsStTu] [-v version] files..."
+       "[-R] [-+=AacDdijsStTu] [-v VERSION] [FILE]..."
 #define chattr_full_usage "\n\n" \
        "Change file attributes on an ext2 fs\n" \
      "\nModifiers:" \
      "\n       t       Disable tail-merging of partial blocks with other files" \
      "\n       u       Allow file to be undeleted" \
      "\nOptions:" \
-     "\n       -R      Recursively list subdirectories" \
+     "\n       -R      Recurse" \
      "\n       -v      Set the file's version/generation number" \
 
 #define chcon_trivial_usage \
      "\n       -c BYTES        Limit core file size" \
      "\n       -v              Verbose" \
      "\n       -P              Create new process group" \
-     "\n       -0              Close standard input" \
-     "\n       -1              Close standard output" \
-     "\n       -2              Close standard error" \
+     "\n       -0              Close stdin" \
+     "\n       -1              Close stdout" \
+     "\n       -2              Close stderr" \
 
 #define setuidgid_trivial_usage \
-       "account prog args"
+       "USER PROG ARGS"
 #define setuidgid_full_usage "\n\n" \
-       "Set uid and gid to account's uid and gid, removing all supplementary\n" \
+       "Set uid and gid to USER's uid and gid, removing all supplementary\n" \
        "groups and run PROG"
 #define envuidgid_trivial_usage \
-       "account prog args"
+       "USER PROG ARGS"
 #define envuidgid_full_usage "\n\n" \
-       "Set $UID to account's uid and $GID to account's gid and run PROG"
+       "Set $UID to USER's uid and $GID to USER's gid and run PROG"
 #define envdir_trivial_usage \
-       "dir prog args"
+       "DIR PROG ARGS"
 #define envdir_full_usage "\n\n" \
        "Set various environment variables as specified by files\n" \
        "in the directory dir and run PROG"
      "\n                       a SIGXCPU after N seconds" \
 
 #define chroot_trivial_usage \
-       "NEWROOT [PROG [ARGS]]"
+       "NEWROOT [PROG ARGS]"
 #define chroot_full_usage "\n\n" \
        "Run PROG with root directory set to NEWROOT"
 #define chroot_example_usage \
        "Clear screen"
 
 #define cmp_trivial_usage \
-       "[-l] [-s] FILE1 [FILE2" IF_DESKTOP(" [SKIP1 [SKIP2]") "]]"
+       "[-l] [-s] FILE1 [FILE2" IF_DESKTOP(" [SKIP1 [SKIP2]]") "]"
 #define cmp_full_usage "\n\n" \
-       "Compares FILE1 vs stdin if FILE2 is not specified\n" \
+       "Compare FILE1 with FILE2 (or stdin)\n" \
      "\nOptions:" \
      "\n       -l      Write the byte numbers (decimal) and values (octal)" \
      "\n               for all differing bytes" \
 #define comm_trivial_usage \
        "[-123] FILE1 FILE2"
 #define comm_full_usage "\n\n" \
-       "Compare FILE1 to FILE2, or to stdin if - is specified\n" \
+       "Compare FILE1 with FILE2\n" \
      "\nOptions:" \
      "\n       -1      Suppress lines unique to FILE1" \
      "\n       -2      Suppress lines unique to FILE2" \
        "Print the config file which built busybox"
 
 #define chrt_trivial_usage \
-       "[OPTIONS] [PRIO] [PID | PROG [ARGS]]"
+       "[OPTIONS] [PRIO] [PID | PROG ARGS]"
 #define chrt_full_usage "\n\n" \
        "Manipulate real-time attributes of a process\n" \
      "\nOptions:" \
-     "\n       -p      Operate on pid" \
-     "\n       -r      Set scheduling policy to SCHED_RR" \
-     "\n       -f      Set scheduling policy to SCHED_FIFO" \
-     "\n       -o      Set scheduling policy to SCHED_OTHER" \
+     "\n       -p      Operate on PID" \
+     "\n       -r      Set SCHED_RR scheduling" \
+     "\n       -f      Set SCHED_FIFO scheduling" \
+     "\n       -o      Set SCHED_OTHER scheduling" \
      "\n       -m      Show min and max priorities" \
 
 #define chrt_example_usage \
        IF_SELINUX( \
      "\n       -c      Preserve security context" \
        ) \
-     "\n       -d,-P   Preserve links" \
-     "\n       -H,-L   Dereference all symlinks (default)" \
+     "\n       -R,-r   Recurse" \
+     "\n       -d,-P   Preserve symlinks (default if -R)" \
+     "\n       -L      Follow all symlinks" \
+     "\n       -H      Follow symlinks on command line" \
      "\n       -p      Preserve file attributes if possible" \
      "\n       -f      Force overwrite" \
      "\n       -i      Prompt before overwrite" \
-     "\n       -R,-r   Recurse" \
      "\n       -l,-s   Create (sym)links" \
 
 #define cpio_trivial_usage \
-       "-[ti" IF_FEATURE_CPIO_O("o") IF_FEATURE_CPIO_P("p") "dmvu] [-F FILE]" \
-       IF_FEATURE_CPIO_O( " [-H newc]" )
+       "[-dmvu] [-F FILE]" IF_FEATURE_CPIO_O(" [-H newc]") \
+       " [-ti"IF_FEATURE_CPIO_O("o")"]" IF_FEATURE_CPIO_P(" [-p DIR]")
 #define cpio_full_usage "\n\n" \
        "Extract or list files from a cpio archive" \
-       IF_FEATURE_CPIO_O( ", or create a cpio archive" ) \
+       IF_FEATURE_CPIO_O(", or" \
+     "\ncreate an archive" IF_FEATURE_CPIO_P(" (-o) or copy files (-p)") \
+               " using file list on stdin" \
+       ) \
+     "\n" \
      "\nMain operation mode:" \
      "\n       -t      List" \
      "\n       -i      Extract" \
        IF_FEATURE_CPIO_O( \
-     "\n       -o      Create" \
+     "\n       -o      Create (requires -H newc)" \
        ) \
        IF_FEATURE_CPIO_P( \
-     "\n       -p      Passthrough" \
+     "\n       -p DIR  Copy files to DIR" \
        ) \
      "\nOptions:" \
      "\n       -d      Make leading directories" \
      "\n       -m      Preserve mtime" \
      "\n       -v      Verbose" \
      "\n       -u      Overwrite" \
-     "\n       -F      Input file" \
+     "\n       -F FILE Input (-t,-i,-p) or output (-o) file" \
        IF_FEATURE_CPIO_O( \
-     "\n       -H      Define format" \
+     "\n       -H newc Archive format" \
        ) \
 
 #define crond_trivial_usage \
 #define cut_trivial_usage \
        "[OPTIONS] [FILE]..."
 #define cut_full_usage "\n\n" \
-       "Print selected fields from each input FILE to standard output\n" \
+       "Print selected fields from each input FILE to stdout\n" \
      "\nOptions:" \
      "\n       -b LIST Output only bytes from LIST" \
      "\n       -c LIST Output only characters from LIST" \
        "p - print top of the stack (without altering the stack),\n" \
        "f - print entire stack, o - pop the value and set output radix\n" \
        "(value must be 10 or 16).\n" \
-       "Examples: 'dc 2 2 add' -> 4, 'dc 8 8 * 2 2 + /' -> 16.\n" \
+       "Examples: 'dc 2 2 add' -> 4, 'dc 8 8 * 2 2 + /' -> 16\n" \
 
 #define dc_example_usage \
        "$ dc 2 2 + p\n" \
        "[-Pk" \
        IF_FEATURE_HUMAN_READABLE("mh") \
        IF_FEATURE_DF_FANCY("ai] [-B SIZE") \
-       "] [FILESYSTEM...]"
+       "] [FILESYSTEM]..."
 #define df_full_usage "\n\n" \
        "Print filesystem usage statistics\n" \
      "\nOptions:" \
        "/dev/sda3             17381728  17107080    274648      98% /\n"
 
 #define dhcprelay_trivial_usage \
-       "CLIENT_IFACE[,CLIENT_IFACE2...] SERVER_IFACE [SERVER_IP]"
+       "CLIENT_IFACE[,CLIENT_IFACE2]... SERVER_IFACE [SERVER_IP]"
 #define dhcprelay_full_usage "\n\n" \
        "Relay DHCP requests between clients and server" \
 
 #define diff_trivial_usage \
-       "[-abdiNqrTstw] [-L LABEL] [-S FILE] [-U LINES] FILE1 FILE2"
+       "[-abBdiNqrTstw] [-L LABEL] [-S FILE] [-U LINES] FILE1 FILE2"
 #define diff_full_usage "\n\n" \
        "Compare files line by line and output the differences between them.\n" \
        "This implementation supports unified diffs only.\n" \
      "\nOptions:" \
      "\n       -a      Treat all files as text" \
      "\n       -b      Ignore changes in the amount of whitespace" \
+     "\n       -B      Ignore changes whose lines are all blank" \
      "\n       -d      Try hard to find a smaller set of changes" \
      "\n       -i      Ignore case differences" \
      "\n       -L      Use LABEL instead of the filename in the unified header" \
      "\n       -N      Treat absent files as empty" \
      "\n       -q      Output only whether files differ" \
-     "\n       -r      Recursively compare subdirectories" \
+     "\n       -r      Recurse" \
      "\n       -S      Start with FILE when comparing directories" \
      "\n       -T      Make tabs line up by prefixing a tab when necessary" \
      "\n       -s      Report when two files are the same" \
      "\n       -s SIZE         Buffer size" \
 
 #define dnsd_trivial_usage \
-       "[-c config] [-t seconds] [-p port] [-i iface-ip] [-d]"
+       "[-dvs] [-c CONFFILE] [-t TTL_SEC] [-p PORT] [-i ADDR]"
 #define dnsd_full_usage "\n\n" \
        "Small static DNS server daemon\n" \
      "\nOptions:" \
-     "\n       -c      Config filename" \
-     "\n       -t      TTL in seconds" \
-     "\n       -p      Listening port" \
-     "\n       -i      Listening ip (default all)" \
+     "\n       -c FILE Config file" \
+     "\n       -t SEC  TTL" \
+     "\n       -p PORT Listen on PORT" \
+     "\n       -i ADDR Listen on ADDR" \
      "\n       -d      Daemonize" \
+     "\n       -v      Verbose" \
+     "\n       -s      Send successful replies only. Use this if you want" \
+     "\n               to use /etc/resolv.conf with two nameserver lines:" \
+     "\n                       nameserver DNSD_SERVER" \
+     "\n                       nameserver NORNAL_DNS_SERVER" \
 
 #define dos2unix_trivial_usage \
        "[OPTIONS] [FILE]"
      "\n       -d      unix2dos" \
 
 #define dpkg_trivial_usage \
-       "[-ilCPru] [-F option] package_name"
+       "[-ilCPru] [-F OPT] PACKAGE"
 #define dpkg_full_usage "\n\n" \
        "Install, remove and manage Debian packages\n" \
      "\nOptions:" \
+       IF_LONG_OPTS( \
+     "\n       -i,--install    Install the package" \
+     "\n       -l,--list       List of installed packages" \
+     "\n       --configure     Configure an unpackaged package" \
+     "\n       -P,--purge      Purge all files of a package" \
+     "\n       -r,--remove     Remove all but the configuration files for a package" \
+     "\n       --unpack        Unpack a package, but don't configure it" \
+     "\n       --force-depends Ignore dependency problems" \
+     "\n       --force-confnew Overwrite existing config files when installing" \
+     "\n       --force-confold Keep old config files when installing" \
+       ) \
+       IF_NOT_LONG_OPTS( \
      "\n       -i              Install the package" \
      "\n       -l              List of installed packages" \
      "\n       -C              Configure an unpackaged package" \
-     "\n       -F depends      Ignore dependency problems" \
      "\n       -P              Purge all files of a package" \
      "\n       -r              Remove all but the configuration files for a package" \
      "\n       -u              Unpack a package, but don't configure it" \
+     "\n       -F depends      Ignore dependency problems" \
+     "\n       -F confnew      Overwrite existing config files when installing" \
+     "\n       -F confold      Keep old config files when installing" \
+       )
 
 #define dpkg_deb_trivial_usage \
        "[-cefxX] FILE [argument]"
        " bytes.\n" \
      "\nOptions:" \
      "\n       -a      Show file sizes too" \
-     "\n       -H      Follow symlinks on command line" \
      "\n       -L      Follow all symlinks" \
+     "\n       -H      Follow symlinks on command line" \
      "\n       -d N    Limit output to directories (and files with -a) of depth < N" \
      "\n       -c      Show grand total" \
      "\n       -l      Count sizes many times if hard linked" \
 #define dumpkmap_trivial_usage \
        "> keymap"
 #define dumpkmap_full_usage "\n\n" \
-       "Print a binary keyboard translation table to standard output"
+       "Print a binary keyboard translation table to stdout"
 #define dumpkmap_example_usage \
        "$ dumpkmap > keymap\n"
 
        "Display DHCP leases granted by udhcpd\n" \
      "\nOptions:" \
        IF_LONG_OPTS( \
-     "\n       -f,--file=FILE  Leases file to load" \
-     "\n       -r,--remaining  Interpret lease times as time remaining" \
-     "\n       -a,--absolute   Interpret lease times as expire time" \
+     "\n       -f,--file=FILE  Lease file" \
+     "\n       -r,--remaining  Show remaining time" \
+     "\n       -a,--absolute   Show expiration time" \
        ) \
        IF_NOT_LONG_OPTS( \
-     "\n       -f FILE Leases file to load" \
-     "\n       -r      Interpret lease times as time remaining" \
-     "\n       -a      Interpret lease times as expire time" \
+     "\n       -f FILE Lease file" \
+     "\n       -r      Show remaining time" \
+     "\n       -a      Show expiration time" \
        )
 
 /*
 */
 
 #define echo_trivial_usage \
-       IF_FEATURE_FANCY_ECHO("[-neE] ") "[ARG...]"
+       IF_FEATURE_FANCY_ECHO("[-neE] ") "[ARG]..."
 #define echo_full_usage "\n\n" \
        "Print the specified ARGs to stdout" \
        IF_FEATURE_FANCY_ECHO( "\n" \
      "\nOptions:" \
      "\n       -n      Suppress trailing newline" \
-     "\n       -e      Interpret backslash-escaped characters (i.e., \\t=tab)" \
-     "\n       -E      Disable interpretation of backslash-escaped characters" \
+     "\n       -e      Interpret backslash escapes (i.e., \\t=tab)" \
+     "\n       -E      Don't interpret backslash escapes (default)" \
        )
 #define echo_example_usage \
        "$ echo \"Erik is cool\"\n" \
 #define eject_trivial_usage \
        "[-t] [-T] [DEVICE]"
 #define eject_full_usage "\n\n" \
-       "Eject specified DEVICE (or default /dev/cdrom)\n" \
+       "Eject DEVICE or default /dev/cdrom\n" \
      "\nOptions:" \
        IF_FEATURE_EJECT_SCSI( \
      "\n       -s      SCSI device" \
 #define ed_full_usage ""
 
 #define env_trivial_usage \
-       "[-iu] [-] [name=value]... [PROG [ARGS]]"
+       "[-iu] [-] [name=value]... [PROG ARGS]"
 #define env_full_usage "\n\n" \
        "Print the current environment or run PROG after setting up\n" \
        "the specified environment\n" \
      "\n       -p pass         Append four or six byte password PW to the packet" \
 
 #define expand_trivial_usage \
-       "[-i] [-t N] [FILE|-]"
+       "[-i] [-t N] [FILE]..."
 #define expand_full_usage "\n\n" \
-       "Convert tabs to spaces, writing to standard output\n" \
+       "Convert tabs to spaces, writing to stdout\n" \
      "\nOptions:" \
        IF_FEATURE_EXPAND_LONG_OPTIONS( \
      "\n       -i,--initial    Don't convert tabs after non blanks" \
 #define expr_trivial_usage \
        "EXPRESSION"
 #define expr_full_usage "\n\n" \
-       "Print the value of EXPRESSION to standard output\n" \
+       "Print the value of EXPRESSION to stdout\n" \
     "\n" \
        "EXPRESSION may be:\n" \
        "       ARG1 | ARG2     ARG1 if it is neither null nor 0, otherwise ARG2\n" \
        "$ echo $?\n" \
        "1\n"
 
+#define fbsplash_trivial_usage \
+       "-s IMGFILE [-c] [-d DEV] [-i INIFILE] [-f CMD]"
+#define fbsplash_full_usage "\n\n" \
+       "Options:" \
+     "\n       -s      Image" \
+     "\n       -c      Hide cursor" \
+     "\n       -d      Framebuffer device (default /dev/fb0)" \
+     "\n       -i      Config file (var=value):" \
+     "\n                       BAR_LEFT,BAR_TOP,BAR_WIDTH,BAR_HEIGHT" \
+     "\n                       BAR_R,BAR_G,BAR_B" \
+     "\n       -f      Control pipe (else exit after drawing image)" \
+     "\n                       commands: 'NN' (% for progress bar) or 'exit'" \
+
 #define fbset_trivial_usage \
        "[OPTIONS] [MODE]"
 #define fbset_full_usage "\n\n" \
        ) \
      "\n       -b 2048         (for certain MO disks) use 2048-byte sectors" \
      "\n       -C CYLINDERS    Set number of cylinders/heads/sectors" \
-     "\n       -H HEADS\n" \
+     "\n       -H HEADS" \
      "\n       -S SECTORS" \
 
 #define blkid_trivial_usage \
        "$ findfs LABEL=MyDevice"
 
 #define find_trivial_usage \
-       "[PATH...] [EXPRESSION]"
+       "[PATH]... [EXPRESSION]"
 #define find_full_usage "\n\n" \
        "Search for files. The default PATH is the current directory,\n" \
        "default EXPRESSION is '-print'\n" \
      "\nEXPRESSION may consist of:" \
-     "\n       -follow         Dereference symlinks" \
+     "\n       -follow         Follow symlinks" \
        IF_FEATURE_FIND_XDEV( \
      "\n       -xdev           Don't descend directories on other filesystems") \
        IF_FEATURE_FIND_MAXDEPTH( \
      "\n       -type X         File type is X (X is one of: f,d,l,b,c,...)") \
        IF_FEATURE_FIND_PERM( \
      "\n       -perm NNN       Permissions match any of (+NNN), all of (-NNN)," \
-     "\n                       or exactly (NNN)") \
+     "\n                       or exactly NNN") \
        IF_FEATURE_FIND_MTIME( \
      "\n       -mtime DAYS     Modified time is greater than (+N), less than (-N)," \
-     "\n                       or exactly (N) days") \
+     "\n                       or exactly N days") \
        IF_FEATURE_FIND_MMIN( \
      "\n       -mmin MINS      Modified time is greater than (+N), less than (-N)," \
-     "\n                       or exactly (N) minutes") \
+     "\n                       or exactly N minutes") \
        IF_FEATURE_FIND_NEWER( \
      "\n       -newer FILE     Modified time is more recent than FILE's") \
        IF_FEATURE_FIND_INUM( \
        IF_FEATURE_FIND_DEPTH( \
      "\n       -depth          Process directory name after traversing it") \
        IF_FEATURE_FIND_SIZE( \
-     "\n       -size N[bck]    File size is N (c:bytes,k:kbytes,b:512 bytes(def.))." \
+     "\n       -size N[bck]    File size is N (c:bytes,k:kbytes,b:512 bytes(def.))" \
      "\n                       +/-N: file size is bigger/smaller than N") \
+       IF_FEATURE_FIND_LINKS( \
+     "\n       -links N        Number of links is greater than (+N), less than (-N)," \
+     "\n                       or exactly N") \
      "\n       -print          Print (default and assumed)" \
        IF_FEATURE_FIND_PRINT0( \
      "\n       -print0         Delimit output with null characters rather than" \
      "\nOptions:" \
      "\n       -v      Verbose" \
 
+#define flock_trivial_usage \
+       "[-sxun] FD|{FILE [-c] PROG ARGS}"
+#define flock_full_usage "\n\n" \
+       "[Un]lock file descriptor, or lock FILE and run PROG\n" \
+     "\nOptions:" \
+     "\n       -s      Shared lock" \
+     "\n       -x      Exclusive lock (default)" \
+     "\n       -u      Unlock FD" \
+     "\n       -n      Fail rather than wait" \
+
 #define fold_trivial_usage \
-       "[-bs] [-w WIDTH] [FILE]"
+       "[-bs] [-w WIDTH] [FILE]..."
 #define fold_full_usage "\n\n" \
-       "Wrap input lines in each FILE (standard input by default), writing to\n" \
-       "standard output\n" \
+       "Wrap input lines in each FILE (or stdin), writing to stdout\n" \
      "\nOptions:" \
      "\n       -b      Count bytes rather than columns" \
      "\n       -s      Break at spaces" \
        "$ freeramdisk /dev/ram2\n"
 
 #define fsck_trivial_usage \
-       "[-ANPRTV] [-C fd] [-t fstype] [fs-options] [filesys...]"
+       "[-ANPRTV] [-C FD] [-t FSTYPE] [FS_OPTS] [BLOCKDEV]..."
 #define fsck_full_usage "\n\n" \
        "Check and repair filesystems\n" \
      "\nOptions:" \
      "\n       -T      Don't show title on startup" \
      "\n       -V      Verbose" \
      "\n       -C n    Write status information to specified filedescriptor" \
-     "\n       -t type List of filesystem types to check" \
+     "\n       -t TYPE List of filesystem types to check" \
 
 #define fsck_minix_trivial_usage \
-       "[-larvsmf] /dev/name"
+       "[-larvsmf] BLOCKDEV"
 #define fsck_minix_full_usage "\n\n" \
        "Check MINIX filesystem\n" \
      "\nOptions:" \
        "#!/bin/sh\n" \
        "GETOPT=`getopt -o ab:c:: --long a-long,b-long:,c-long:: \\\n" \
        "       -n 'example.busybox' -- \"$@\"`\n" \
-       "if [ $? != 0 ]; then  exit 1; fi\n" \
+       "if [ $? != 0 ]; then exit 1; fi\n" \
        "eval set -- \"$GETOPT\"\n" \
        "while true; do\n" \
        " case $1 in\n" \
 #define getsebool_trivial_usage \
        "-a or getsebool boolean..."
 #define getsebool_full_usage "\n\n" \
-       "       -a      Show all SELinux booleans"
+       "       -a      Show all selinux booleans"
 
 #define getty_trivial_usage \
        "[OPTIONS] BAUD_RATE TTY [TERMTYPE]"
      "\n       -H HOST         Log HOST into the utmp file as the hostname" \
 
 #define grep_trivial_usage \
-       "[-HhrilLnqvso" \
-       IF_DESKTOP("w") \
-       "eF" \
+       "[-HhnlLoqvsriw" \
+       "F" \
        IF_FEATURE_GREP_EGREP_ALIAS("E") \
-       IF_FEATURE_GREP_CONTEXT("ABC") \
        IF_EXTRA_COMPAT("z") \
-       "] PATTERN [FILE]..."
+       "] [-m N] " \
+       IF_FEATURE_GREP_CONTEXT("[-A/B/C N] ") \
+       "PATTERN/-e PATTERN.../-f FILE [FILE]..."
 #define grep_full_usage "\n\n" \
-       "Search for PATTERN in each FILE or standard input\n" \
-     "\nOptions:" \
-     "\n       -H      Prefix output lines with filename where match was found" \
-     "\n       -h      Suppress the prefixing filename on output" \
-     "\n       -r      Recurse" \
-     "\n       -i      Ignore case distinctions" \
-     "\n       -l      List names of files that match" \
-     "\n       -L      List names of files that don't match" \
-     "\n       -n      Print line number with output lines" \
+       "Search for PATTERN in FILEs (or stdin)\n" \
+     "\nOptions:" \
+     "\n       -H      Add 'filename:' prefix" \
+     "\n       -h      Do not add 'filename:' prefix" \
+     "\n       -n      Add 'line_no:' prefix" \
+     "\n       -l      Show only names of files that match" \
+     "\n       -L      Show only names of files that don't match" \
+     "\n       -c      Show only count of matching lines" \
+     "\n       -o      Show only the matching part of line" \
      "\n       -q      Quiet. Return 0 if PATTERN is found, 1 otherwise" \
      "\n       -v      Select non-matching lines" \
-     "\n       -s      Suppress file open/read error messages" \
-     "\n       -c      Only print count of matching lines" \
-     "\n       -o      Show only the part of a line that matches PATTERN" \
-     "\n       -m N    Match up to N times per file" \
-       IF_DESKTOP( \
-     "\n       -w      Match whole words only") \
-     "\n       -F      PATTERN is a set of newline-separated strings" \
+     "\n       -s      Suppress open and read errors" \
+     "\n       -r      Recurse" \
+     "\n       -i      Ignore case" \
+     "\n       -w      Match whole words only" \
+     "\n       -F      PATTERN is a literal (not regexp)" \
        IF_FEATURE_GREP_EGREP_ALIAS( \
-     "\n       -E      PATTERN is an extended regular expression") \
-     "\n       -e PTRN Pattern to match" \
-     "\n       -f FILE Read pattern from file" \
+     "\n       -E      PATTERN is an extended regexp" \
+       ) \
+       IF_EXTRA_COMPAT( \
+     "\n       -z      Input is NUL terminated" \
+       ) \
+     "\n       -m N    Match up to N times per file" \
        IF_FEATURE_GREP_CONTEXT( \
      "\n       -A N    Print N lines of trailing context" \
      "\n       -B N    Print N lines of leading context" \
-     "\n       -C N    Print N lines of output context") \
-       IF_EXTRA_COMPAT( \
-     "\n       -z      Input is NUL terminated") \
+     "\n       -C N    Same as '-A N -B N'" \
+       ) \
+     "\n       -e PTRN Pattern to match" \
+     "\n       -f FILE Read pattern from file" \
 
 #define grep_example_usage \
        "$ grep root /etc/passwd\n" \
 #define gunzip_trivial_usage \
        "[OPTIONS] [FILE]..."
 #define gunzip_full_usage "\n\n" \
-       "Uncompress FILEs (or standard input)\n" \
+       "Uncompress FILEs (or stdin)\n" \
      "\nOptions:" \
-     "\n       -c      Write to standard output" \
+     "\n       -c      Write to stdout" \
      "\n       -f      Force" \
      "\n       -t      Test file integrity" \
 
 #define gzip_trivial_usage \
        "[OPTIONS] [FILE]..."
 #define gzip_full_usage "\n\n" \
-       "Compress FILEs (or standard input)\n" \
+       "Compress FILEs (or stdin)\n" \
      "\nOptions:" \
-     "\n       -c      Write to standard output" \
+     "\n       -c      Write to stdout" \
      "\n       -d      Decompress" \
      "\n       -f      Force" \
 
      "\n       -T      Perform cache read timings" \
      "\n       -u      Get/set unmaskirq flag (0/1)" \
        IF_FEATURE_HDPARM_HDIO_UNREGISTER_HWIF( \
-     "\n       -U      Un-register an IDE interface (DANGEROUS)") \
+     "\n       -U      Unregister an IDE interface (DANGEROUS)") \
      "\n       -v      Defaults; same as -mcudkrag for IDE drives" \
      "\n       -V      Display program version and exit immediately" \
        IF_FEATURE_HDPARM_HDIO_DRIVE_RESET( \
      "\n       -y      Put IDE drive in standby mode" \
      "\n       -Y      Put IDE drive to sleep" \
      "\n       -Z      Disable Seagate auto-powersaving mode" \
-     "\n       -z      Re-read partition table" \
+     "\n       -z      Reread partition table" \
 
 #define head_trivial_usage \
        "[OPTIONS] [FILE]..."
 #define head_full_usage "\n\n" \
-       "Print first 10 lines of each FILE (or standard input) to standard output.\n" \
-       "With more than one FILE, precede each with a header giving the file name.\n" \
+       "Print first 10 lines of each FILE (or stdin) to stdout.\n" \
+       "With more than one FILE, precede each with a filename header.\n" \
      "\nOptions:" \
-     "\n       -n N    Print first N lines instead of first 10" \
+     "\n       -n N[kbm]       Print first N lines" \
        IF_FEATURE_FANCY_HEAD( \
-     "\n       -c N    Output the first N bytes" \
-     "\n       -q      Never output headers giving file names" \
-     "\n       -v      Always output headers giving file names") \
+     "\n       -c N[kbm]       Print first N bytes" \
+     "\n       -q              Never print headers" \
+     "\n       -v              Always print headers" \
+       ) \
+     "\n" \
+     "\nN may be suffixed by k (x1024), b (x512), or m (x1024^2)." \
 
 #define head_example_usage \
        "$ head -n 2 /etc/passwd\n" \
        "root:x:0:0:root:/root:/bin/bash\n" \
        "daemon:x:1:1:daemon:/usr/sbin:/bin/sh\n"
 
+#define tail_trivial_usage \
+       "[OPTIONS] [FILE]..."
+#define tail_full_usage "\n\n" \
+       "Print last 10 lines of each FILE (or stdin) to stdout.\n" \
+       "With more than one FILE, precede each with a filename header.\n" \
+     "\nOptions:" \
+     "\n       -f              Print data as file grows" \
+       IF_FEATURE_FANCY_TAIL( \
+     "\n       -s SECONDS      Wait SECONDS between reads with -f" \
+       ) \
+     "\n       -n N[kbm]       Print last N lines" \
+       IF_FEATURE_FANCY_TAIL( \
+     "\n       -c N[kbm]       Print last N bytes" \
+     "\n       -q              Never print headers" \
+     "\n       -v              Always print headers" \
+     "\n" \
+     "\nN may be suffixed by k (x1024), b (x512), or m (x1024^2)." \
+     "\nIf N starts with a '+', output begins with the Nth item from the start" \
+     "\nof each file, not from the end." \
+       ) \
+
+#define tail_example_usage \
+       "$ tail -n 1 /etc/resolv.conf\n" \
+       "nameserver 10.0.0.1\n"
+
 #define hexdump_trivial_usage \
-       "[-bcCdefnosvx" IF_FEATURE_HEXDUMP_REVERSE("R") "] FILE..."
+       "[-bcCdefnosvx" IF_FEATURE_HEXDUMP_REVERSE("R") "] [FILE]..."
 #define hexdump_full_usage "\n\n" \
-       "Display FILEs or standard input in a user specified format\n" \
+       "Display FILEs (or stdin) in a user specified format\n" \
      "\nOptions:" \
      "\n       -b              One-byte octal display" \
      "\n       -c              One-byte character display" \
      "\n       -i              Inetd mode" \
      "\n       -f              Don't daemonize" \
      "\n       -v[v]           Verbose" \
-     "\n       -c FILE         Configuration file (default httpd.conf)" \
      "\n       -p [IP:]PORT    Bind to ip:port (default *:80)" \
        IF_FEATURE_HTTPD_SETUID( \
      "\n       -u USER[:GRP]   Set uid/gid after binding to port") \
        IF_FEATURE_HTTPD_BASIC_AUTH( \
      "\n       -r REALM        Authentication Realm for Basic Authentication") \
      "\n       -h HOME         Home directory (default .)" \
+     "\n       -c FILE         Configuration file (default {/etc,HOME}/httpd.conf)" \
        IF_FEATURE_HTTPD_AUTH_MD5( \
      "\n       -m STRING       MD5 crypt STRING") \
      "\n       -e STRING       HTML encode STRING" \
        "       [up|down] ..."
 
 #define ifenslave_trivial_usage \
-       "[-cdf] master-iface <slave-iface...>"
+       "[-cdf] MASTER_IFACE SLAVE_IFACE..."
 #define ifenslave_full_usage "\n\n" \
        "Configure network interfaces for parallel routing\n" \
      "\nOptions:" \
      "\n       -i IFACE        Interface" \
      "\n       -f/-F           Treat link detection error as link down/link up" \
      "\n                       (otherwise exit on error)" \
-     "\n       -a              Don't up interface automatically" \
+     "\n       -a              Don't up interface at each link probe" \
      "\n       -M              Monitor creation/destruction of interface" \
      "\n                       (otherwise it must exist)" \
      "\n       -r PROG         Script to run" \
      "\n       -t SECS         Poll time in seconds" \
      "\n       -u SECS         Delay before running script after link up" \
      "\n       -d SECS         Delay after link down" \
-     "\n       -m MODE         API mode (mii, priv, ethtool, wlan, auto)" \
+     "\n       -m MODE         API mode (mii, priv, ethtool, wlan, iff, auto)" \
      "\n       -k              Kill running daemon" \
 
 #define ifup_trivial_usage \
-       "[-ain"IF_FEATURE_IFUPDOWN_MAPPING("m")"vf] ifaces..."
+       "[-ain"IF_FEATURE_IFUPDOWN_MAPPING("m")"vf] IFACE..."
 #define ifup_full_usage "\n\n" \
        "Options:" \
      "\n       -a      De/configure all interfaces automatically" \
 "      ::shutdown:/sbin/swapoff -a\n"
 
 #define inotifyd_trivial_usage \
-       "PROG FILE1[:MASK] ..."
+       "PROG FILE1[:MASK]..."
 #define inotifyd_full_usage "\n\n" \
        "Run PROG on filesystem changes." \
      "\nWhen a filesystem event matching MASK occurs on FILEn," \
-     "\nPROG <actual_event(s)> <FILEn> [<subfile_name>] is run." \
+     "\nPROG ACTUAL_EVENTS FILEn [SUBFILE] is run." \
      "\nEvents:" \
      "\n       a       File is accessed" \
      "\n       c       File is modified" \
      "\n       d       Subfile is deleted" \
      "\n" \
      "\ninotifyd waits for PROG to exit." \
-     "\nWhen x event happens for all FILEs, inotifyd exits" \
+     "\nWhen x event happens for all FILEs, inotifyd exits." \
 
 /* 2.6 style insmod has no options and required filename
  * (not module name - .ko can't be omitted) */
 
 /* -v, -b, -c are ignored */
 #define install_trivial_usage \
-       "[-cdDsp] [-o USER] [-g GRP] [-m MODE] [source] dest|directory"
+       "[-cdDsp] [-o USER] [-g GRP] [-m MODE] [SOURCE]... DEST"
 #define install_full_usage "\n\n" \
        "Copy files and set attributes\n" \
      "\nOptions:" \
        "$ kill 252\n"
 
 #define killall_trivial_usage \
-       "[-l] [-q] [-SIG] process-name..."
+       "[-l] [-q] [-SIG] PROCESS_NAME..."
 #define killall_full_usage "\n\n" \
        "Send a signal (default: TERM) to given processes\n" \
      "\nOptions:" \
 #define less_trivial_usage \
        "[-EMNmh~I?] [FILE]..."
 #define less_full_usage "\n\n" \
-       "View a file or list of files. The position within files can be\n" \
-       "changed, and files can be manipulated in various ways.\n" \
+       "View FILE (or stdin) one screenful at a time\n" \
      "\nOptions:" \
      "\n       -E      Quit once the end of a file is reached" \
      "\n       -M,-m   Display status line with line numbers" \
 #define linuxrc_full_usage ""
 
 #define setarch_trivial_usage \
-       "personality program [args...]"
+       "personality PROG ARGS"
 #define setarch_full_usage "\n\n" \
        "Personality may be:\n" \
        "       linux32         Set 32bit uname emulation\n" \
        "       linux64         Set 64bit uname emulation" \
 
 #define ln_trivial_usage \
-       "[OPTIONS] TARGET... LINK|DIRECTORY"
+       "[OPTIONS] TARGET... LINK|DIR"
 #define ln_full_usage "\n\n" \
-       "Create a link LINK or DIRECTORY/TARGET to the specified TARGET(s)\n" \
+       "Create a link LINK or DIR/TARGET to the specified TARGET(s)\n" \
      "\nOptions:" \
      "\n       -s      Make symlinks instead of hardlinks" \
-     "\n       -f      Remove existing destination files" \
+     "\n       -f      Remove existing destinations" \
      "\n       -n      Don't dereference symlinks - treat like normal file" \
      "\n       -b      Make a backup of the target (if exists) before link operation" \
      "\n       -S suf  Use suffix instead of ~ when making backup files" \
 #define loadfont_trivial_usage \
        "< font"
 #define loadfont_full_usage "\n\n" \
-       "Load a console font from standard input" \
+       "Load a console font from stdin" \
 /*   "\n       -C TTY  Affect TTY instead of /dev/tty" */ \
 
 #define loadfont_example_usage \
 #define loadkmap_trivial_usage \
        "< keymap"
 #define loadkmap_full_usage "\n\n" \
-       "Load a binary keyboard translation table from standard input\n" \
+       "Load a binary keyboard translation table from stdin\n" \
 /*   "\n       -C TTY  Affect TTY instead of /dev/tty" */ \
 
 #define loadkmap_example_usage \
 #define logger_trivial_usage \
        "[OPTIONS] [MESSAGE]"
 #define logger_full_usage "\n\n" \
-       "Write MESSAGE to the system log. If MESSAGE is omitted, log stdin.\n" \
+       "Write MESSAGE (or stdin) to syslog\n" \
      "\nOptions:" \
      "\n       -s      Log to stderr as well as the system log" \
      "\n       -t TAG  Log using the specified tag (defaults to user name)" \
      "\n       tcpsvd -E 0 515 softlimit -m 999999 lpd /var/spool ./print" \
 
 #define lpq_trivial_usage \
-       "[-P queue[@host[:port]]] [-U USERNAME] [-d JOBID...] [-fs]"
+       "[-P queue[@host[:port]]] [-U USERNAME] [-d JOBID]... [-fs]"
 #define lpq_full_usage "\n\n" \
        "Options:" \
      "\n       -P      lp service to connect to (else uses $PRINTER)" \
        IF_FEATURE_LS_FOLLOWLINKS( \
      "\n       -L      List entries pointed to by symlinks") \
        IF_FEATURE_LS_RECURSIVE( \
-     "\n       -R      List subdirectories recursively") \
+     "\n       -R      Recurse") \
        IF_FEATURE_LS_SORTFILES( \
      "\n       -r      Sort in reverse order") \
        IF_FEATURE_LS_SORTFILES( \
 #define lsattr_full_usage "\n\n" \
        "List file attributes on an ext2 fs\n" \
      "\nOptions:" \
-     "\n       -R      Recursively list subdirectories" \
+     "\n       -R      Recurse" \
      "\n       -a      Don't hide entries starting with ." \
      "\n       -d      List directory entries instead of contents" \
      "\n       -l      List long flag names" \
 #define lsmod_full_usage "\n\n" \
        "List the currently loaded kernel modules"
 
+#define lspci_trivial_usage \
+       "[-mk]"
+#define lspci_full_usage "\n\n" \
+       "List all PCI devices" \
+     "\n" \
+     "\n       -m      Parseable output" \
+     "\n       -k      Show driver" \
+
+#define lsusb_trivial_usage NOUSAGE_STR
+#define lsusb_full_usage ""
+
 #if ENABLE_FEATURE_MAKEDEVS_LEAF
 #define makedevs_trivial_usage \
        "NAME TYPE MAJOR MINOR FIRST LAST [s]"
        "[-L LABEL] " \
        /* "[-M last-mounted-directory] [-S] [-T filesystem-type] " */ \
        "BLOCKDEV [KBYTES]"
-#define mkfs_ext2_full_usage "\n" \
-     "\n       -b BLK_SIZE     Block size, bytes" \
+#define mkfs_ext2_full_usage "\n\n" \
+       "       -b BLK_SIZE     Block size, bytes" \
 /*   "\n       -c              Check device for bad blocks" */ \
 /*   "\n       -E opts         Set extended options" */ \
 /*   "\n       -f size         Fragment size in bytes" */ \
 /*   "\n       -v              Verbose" */ \
 
 #define mkfs_minix_trivial_usage \
-       "[-c | -l filename] [-nXX] [-iXX] BLOCKDEV [KBYTES]"
+       "[-c | -l FILE] [-nXX] [-iXX] BLOCKDEV [KBYTES]"
 #define mkfs_minix_full_usage "\n\n" \
        "Make a MINIX filesystem\n" \
      "\nOptions:" \
      "\n       -c              Check device for bad blocks" \
      "\n       -n [14|30]      Maximum length of filenames" \
      "\n       -i INODES       Number of inodes for the filesystem" \
-     "\n       -l FILENAME     Read bad blocks list from FILENAME" \
+     "\n       -l FILE         Read bad blocks list from FILE" \
      "\n       -v              Make version 2 filesystem" \
 
 #define mkfs_reiser_trivial_usage \
        "$ mknod -m 644 /tmp/pipe p\n"
 
 #define mkswap_trivial_usage \
-       "[OPTIONS] BLOCKDEV" /* [SIZE_IN_KB] */
+       "[OPTIONS] BLOCKDEV [KBYTES]"
 #define mkswap_full_usage "\n\n" \
        "Prepare BLOCKDEV to be used as swap partition\n" \
      "\nOptions:" \
        "-rw-------    1 andersen andersen        0 Apr 25 17:10 /tmp/temp.mWiLjM\n"
 
 #define modprobe_trivial_usage \
-       IF_MODPROBE_SMALL("[-qfwrsv] MODULE [symbol=value...]") \
+       IF_MODPROBE_SMALL("[-qfwrsv] MODULE [symbol=value]...") \
        IF_NOT_MODPROBE_SMALL("[-" \
                IF_FEATURE_2_4_MODULES("k")"nqrsv" \
-               IF_FEATURE_MODPROBE_BLACKLIST("b")"] MODULE [symbol=value...]")
+               IF_FEATURE_MODPROBE_BLACKLIST("b")"] MODULE [symbol=value]...")
 #define modprobe_full_usage "\n\n" \
        "Options:" \
        IF_MODPROBE_SMALL( \
 #define more_trivial_usage \
        "[FILE]..."
 #define more_full_usage "\n\n" \
-       "View FILE or standard input one screenful at a time"
+       "View FILE (or stdin) one screenful at a time"
 
 #define more_example_usage \
        "$ dmesg | more\n"
        )
 
 #define nice_trivial_usage \
-       "[-n ADJUST] [PROG [ARGS]]"
+       "[-n ADJUST] [PROG ARGS]"
 #define nice_full_usage "\n\n" \
        "Run PROG with modified scheduling priority\n" \
      "\nOptions:" \
        "nmeter '%250d%t %20c int %i bio %b mem %m forks%p'"
 
 #define nohup_trivial_usage \
-       "PROG [ARGS]"
+       "PROG ARGS"
 #define nohup_full_usage "\n\n" \
        "Run PROG immune to hangups, with output to a non-tty"
 #define nohup_example_usage \
        "Address:    127.0.0.1\n"
 
 #define ntpd_trivial_usage \
-       "[-dngql] [-p PEER]..."
+       "[-dnqwl] [-S PROG] [-p PEER]..."
 #define ntpd_full_usage "\n\n" \
        "NTP client/server\n" \
      "\nOptions:" \
 /* -N exists for mostly compat reasons, thus not essential to inform */ \
 /* the user that it exists: user may use nice as well */ \
 /*   "\n       -N      Run at high priority" */ \
+     "\n       -w      Do not set time (only query peers), implies -n" \
      "\n       -l      Run as server on port 123" \
+     "\n       -S PROG Run PROG after stepping time, stratum change, and every 11 mins" \
      "\n       -p PEER Obtain time from PEER (may be repeated)" \
 
 #define od_trivial_usage \
        "[-aBbcDdeFfHhIiLlOovXx] " IF_DESKTOP("[-t TYPE] ") "[FILE]"
 #define od_full_usage "\n\n" \
        "Write an unambiguous representation, octal bytes by default, of FILE\n" \
-       "(or standard input) to standard output."
+       "(or stdin) to stdout"
 
 #define openvt_trivial_usage \
-       "[-c N] [-sw] [PROG [ARGS]]"
+       "[-c N] [-sw] [PROG ARGS]"
 #define openvt_full_usage "\n\n" \
        "Start PROG on a new virtual terminal\n" \
      "\nOptions:" \
 
 #if (ENABLE_FEATURE_PIDOF_SINGLE || ENABLE_FEATURE_PIDOF_OMIT)
 #define pidof_trivial_usage \
-       "[OPTIONS] [NAME...]"
+       "[OPTIONS] [NAME]..."
 #define USAGE_PIDOF "\n\nOptions:"
 #else
 #define pidof_trivial_usage \
-       "[NAME...]"
+       "[NAME]..."
 #define USAGE_PIDOF /* none */
 #endif
 #define pidof_full_usage "\n\n" \
 /*   "\n       -c              Use tcpclient. Ignored" */ \
 /*   "\n       -a              Use APOP protocol. Implied. If server supports APOP -> use it" */ \
      "\n       -s              Skip authorization" \
-     "\n       -T              Get messages with TOP instead with RETR" \
+     "\n       -T              Get messages with TOP instead of RETR" \
      "\n       -k              Keep retrieved messages on the server" \
      "\n       -t SEC          Network timeout" \
        IF_FEATURE_POPMAILDIR_DELIVERY( \
-     "\n       -F \"PROG ARGS\"        Filter program. May be multiple" \
+     "\n       -F \"PROG ARGS\"        Filter program (may be repeated)" \
      "\n       -M \"PROG ARGS\"        Delivery program" \
        ) \
+     "\n" \
+     "\nFetch from plain POP3 server:" \
+     "\npopmaildir -k DIR nc pop3.server.com 110 <user_and_pass.txt" \
+     "\nFetch from SSLed POP3 server and delete fetched emails:" \
+     "\npopmaildir DIR -- openssl s_client -quiet -connect pop3.server.com:995 <user_and_pass.txt"
 /*   "\n       -R BYTES        Remove old messages on the server >= BYTES. Ignored" */
 /*   "\n       -Z N1-N2        Remove messages from N1 to N2 (dangerous). Ignored" */
 /*   "\n       -L BYTES        Don't retrieve new messages >= BYTES. Ignored" */
        "Halt and shut off power\n" \
      "\nOptions:" \
      "\n       -d      Delay interval for halting" \
-     "\n       -n      No call to sync()" \
+     "\n       -n      Do not sync" \
      "\n       -f      Force power off (don't go through init)" \
 
 #define printenv_trivial_usage \
-       "[VARIABLE...]"
+       "[VARIABLE]..."
 #define printenv_full_usage "\n\n" \
-       "Print all or part of environment.\n" \
-       "If no environment VARIABLE specified, print them all."
+       "Print environment VARIABLEs.\n" \
+       "If no VARIABLE specified, print all."
 
 #define printf_trivial_usage \
-       "FORMAT [ARGUMENT...]"
+       "FORMAT [ARGUMENT]..."
 #define printf_full_usage "\n\n" \
        "Format and print ARGUMENT(s) according to FORMAT,\n" \
        "where FORMAT controls the output exactly as in C printf"
        "Report process status\n" \
        USAGE_PS \
        IF_SELINUX( \
-     "\n       -Z      Show SE Linux context" \
+     "\n       -Z      Show selinux context" \
        ) \
        IF_FEATURE_PS_WIDE( \
      "\n       w       Wide output" \
        "Options:" \
      "\n       -m mapfile      (Default: /boot/System.map)" \
      "\n       -p profile      (Default: /proc/profile)" \
-     "\n       -M mult         Set the profiling multiplier to mult" \
+     "\n       -M NUM          Set the profiling multiplier to NUM" \
      "\n       -i              Print only info about the sampling step" \
      "\n       -v              Verbose" \
      "\n       -a              Print all symbols, even if count is 0" \
      "\n       -n              Disable byte order auto-detection" \
 
 #define realpath_trivial_usage \
-       "pathname..."
+       "FILE..."
 #define realpath_full_usage "\n\n" \
-       "Return the absolute pathnames of given argument"
+       "Return the absolute pathnames of given FILE"
 
 #define reboot_trivial_usage \
        "[-d DELAY] [-n] [-f]"
 #define reformime_full_usage "\n\n" \
        "Parse MIME-encoded message\n" \
      "\nOptions:" \
-     "\n       -x prefix       Extract content of MIME sections to files" \
-     "\n       -X prog [args]  Filter content of MIME sections through prog." \
+     "\n       -x PREFIX       Extract content of MIME sections to files" \
+     "\n       -X PROG ARGS    Filter content of MIME sections through PROG" \
      "\n                       Must be the last option" \
      "\n" \
-     "\nOther options are silently ignored." \
+     "\nOther options are silently ignored" \
 
 #define renice_trivial_usage \
        "{{-n INCREMENT} | PRIORITY} [[-p | -g | -u] ID...]"
        "Resize the screen"
 
 #define restorecon_trivial_usage \
-       "[-iFnrRv] [-e excludedir]... [-o filename] [-f filename | pathname]"
+       "[-iFnRv] [-e EXCLUDEDIR]... [-o FILE] [-f FILE]"
 #define restorecon_full_usage "\n\n" \
        "Reset security contexts of files in pathname\n" \
-     "\n       -i              Ignore files that don't exist" \
-     "\n       -f file         File with list of files to process. Use - for stdin" \
-     "\n       -e directory    Directory to exclude" \
-     "\n       -R,-r           Recurse" \
-     "\n       -n              Don't change any file labels" \
-     "\n       -o file         Save list of files with incorrect context" \
-     "\n       -v              Verbose" \
-     "\n       -vv             Show changed labels" \
-     "\n       -F              Force reset of context to match file_context" \
-     "\n                       for customizable files, or the user section," \
-     "\n                       if it has changed" \
+     "\n       -i      Ignore files that don't exist" \
+     "\n       -f FILE File with list of files to process" \
+     "\n       -e DIR  Directory to exclude" \
+     "\n       -R,-r   Recurse" \
+     "\n       -n      Don't change any file labels" \
+     "\n       -o FILE Save list of files with incorrect context" \
+     "\n       -v      Verbose" \
+     "\n       -vv     Show changed labels" \
+     "\n       -F      Force reset of context to match file_context" \
+     "\n               for customizable files, or the user section," \
+     "\n               if it has changed" \
+
+#define rfkill_trivial_usage \
+       "COMMAND [INDEX|TYPE]"
+#define rfkill_full_usage "\n\n" \
+       "Enable/disable wireless devices\n" \
+       "\nCommands:" \
+     "\n       list [INDEX|TYPE]       List current state" \
+     "\n       block INDEX|TYPE        Disable device" \
+     "\n       unblock INDEX|TYPE      Enable device" \
+     "\n" \
+     "\n       TYPE: all, wlan(wifi), bluetooth, uwb(ultrawideband)," \
+     "\n               wimax, wwan, gps, fm" \
 
 #define rm_trivial_usage \
        "[OPTIONS] FILE..."
      "\nOptions:" \
      "\n       -i      Always prompt before removing" \
      "\n       -f      Never prompt" \
-     "\n       -r,-R   Remove directories recursively" \
+     "\n       -R,-r   Recurse" \
 
 #define rm_example_usage \
        "$ rm -rf /tmp/foo\n"
 #define rmdir_trivial_usage \
        "[OPTIONS] DIRECTORY..."
 #define rmdir_full_usage "\n\n" \
-       "Remove the DIRECTORY, if it is empty\n" \
+       "Remove DIRECTORY if it is empty\n" \
      "\nOptions:" \
        IF_FEATURE_RMDIR_LONG_OPTIONS( \
      "\n       -p|--parents    Include parents" \
      "\n       -A inet" IF_FEATURE_IPV6("{6}") "       Select address family" \
 
 #define rpm_trivial_usage \
-       "-i -q[ildc]p package.rpm"
+       "-i PACKAGE.rpm; rpm -qp[ildc] PACKAGE.rpm"
 #define rpm_full_usage "\n\n" \
        "Manipulate RPM packages\n" \
-     "\nOptions:" \
+     "\nCommands:" \
      "\n       -i      Install package" \
-     "\n       -q      Query package" \
-     "\n       -p      Query uninstalled package" \
+     "\n       -qp     Query package" \
+     "\nOptions:" \
      "\n       -i      Show information" \
      "\n       -l      List contents" \
      "\n       -d      List documents" \
        )
 
 #define runcon_trivial_usage \
-       "[-c] [-u USER] [-r ROLE] [-t TYPE] [-l RANGE] PROG [ARGS]\n" \
-       "       runcon CONTEXT PROG [ARGS]"
+       "[-c] [-u USER] [-r ROLE] [-t TYPE] [-l RANGE] PROG ARGS\n" \
+       "runcon CONTEXT PROG ARGS"
 #define runcon_full_usage "\n\n" \
        "Run PROG in a different security context\n" \
      "\n       CONTEXT         Complete security context\n" \
 #define run_parts_trivial_usage \
        "[-t] "IF_FEATURE_RUN_PARTS_FANCY("[-l] ")"[-a ARG] [-u MASK] DIRECTORY"
 #define run_parts_full_usage "\n\n" \
-       "Run a bunch of scripts in a directory\n" \
+       "Run a bunch of scripts in DIRECTORY\n" \
      "\nOptions:" \
      "\n       -t      Print what would be run, but don't actually run anything" \
      "\n       -a ARG  Pass ARG as argument for every program" \
        "+ shutdown -h +4m"
 
 #define runlevel_trivial_usage \
-       "[utmp]"
+       "[FILE]"
 #define runlevel_full_usage "\n\n" \
        "Find the current and previous system runlevel\n" \
        "\n" \
-       "If no utmp file exists or if no runlevel record can be found,\n" \
+       "If no utmp FILE exists or if no runlevel record can be found,\n" \
        "print \"unknown\""
 #define runlevel_example_usage \
        "$ runlevel /var/run/utmp\n" \
        "N 2"
 
 #define runsv_trivial_usage \
-       "dir"
+       "DIR"
 #define runsv_full_usage "\n\n" \
        "Start and monitor a service and optionally an appendant log service"
 
 #define runsvdir_trivial_usage \
-       "[-P] [-s SCRIPT] dir"
+       "[-P] [-s SCRIPT] DIR"
 #define runsvdir_full_usage "\n\n" \
        "Start a runsv process for each subdirectory. If it exits, restart it.\n" \
      "\n       -P              Put each runsv in a new session" \
 #define script_full_usage "\n\n" \
        "Options:" \
      "\n       -a      Append output" \
-     "\n       -c      Run PROG, not shell" \
+     "\n       -c PROG Run PROG, not shell" \
      "\n       -f      Flush output after each write" \
      "\n       -q      Quiet" \
        IF_SCRIPTREPLAY( \
        "[-w] [-s SEP] [FIRST [INC]] LAST"
 #define seq_full_usage "\n\n" \
        "Print numbers from FIRST to LAST, in steps of INC.\n" \
-       "FIRST, INC default to 1\n" \
+       "FIRST, INC default to 1.\n" \
      "\nOptions:" \
      "\n       -w      Pad to last with leading zeros" \
      "\n       -s SEP  String separator" \
 #define setenforce_full_usage ""
 
 #define setfiles_trivial_usage \
-       "[-dnpqsvW] [-e dir]... [-o file] [-r alt_root_path]" \
+       "[-dnpqsvW] [-e DIR]... [-o FILE] [-r alt_root_path]" \
        IF_FEATURE_SETFILES_CHECK_OPTION( \
        " [-c policyfile] spec_file" \
        ) \
 #define setfiles_full_usage "\n\n" \
        "Reset file contexts under pathname according to spec_file\n" \
        IF_FEATURE_SETFILES_CHECK_OPTION( \
-     "\n       -c file Check the validity of the contexts against the specified binary policy" \
+     "\n       -c FILE Check the validity of the contexts against the specified binary policy" \
        ) \
      "\n       -d      Show which specification matched each file" \
      "\n       -l      Log changes in file labels to syslog" \
      "\n       -n      Don't change any file labels" \
      "\n       -q      Suppress warnings" \
-     "\n       -r dir  Use an alternate root path" \
-     "\n       -e dir  Exclude directory" \
+     "\n       -r DIR  Use an alternate root path" \
+     "\n       -e DIR  Exclude DIR" \
      "\n       -F      Force reset of context to match file_context for customizable files" \
-     "\n       -o file Save list of files with incorrect context" \
-     "\n       -s      Take a list of files from standard input (instead of command line)" \
+     "\n       -o FILE Save list of files with incorrect context" \
+     "\n       -s      Take a list of files from stdin (instead of command line)" \
      "\n       -v      Show changes in file labels, if type or role are changing" \
      "\n       -vv     Show changes in file labels, if type, role, or user are changing" \
      "\n       -W      Display warnings about entries that had no matching files" \
        "Set entries into the kernel's scancode-to-keycode map,\n" \
        "allowing unusual keyboards to generate usable keycodes.\n\n" \
        "SCANCODE may be either xx or e0xx (hexadecimal),\n" \
-       "and KEYCODE is given in decimal" \
+       "and KEYCODE is given in decimal." \
 
 #define setkeycodes_example_usage \
        "$ setkeycodes e030 127\n"
        "Change boolean setting"
 
 #define setsid_trivial_usage \
-       "PROG [ARG...]"
+       "PROG ARGS"
 #define setsid_full_usage "\n\n" \
        "Run PROG in a new session. PROG will have no controlling terminal\n" \
        "and will not be affected by keyboard signals (Ctrl-C etc).\n" \
        "See setsid(2) for details." \
 
 #define last_trivial_usage \
-       ""IF_FEATURE_LAST_FANCY("[-HW] [-f file]")
+       ""IF_FEATURE_LAST_FANCY("[-HW] [-f FILE]")
 #define last_full_usage "\n\n" \
        "Show listing of the last users that logged into the system" \
        IF_FEATURE_LAST_FANCY( "\n" \
      "\nOptions:" \
 /*   "\n       -H      Show header line" */ \
      "\n       -W      Display with no host column truncation" \
-     "\n       -f file Read from file instead of /var/log/wtmp" \
+     "\n       -f FILE Read from FILE instead of /var/log/wtmp" \
        )
 
 #define showkey_trivial_usage \
        "$ cat TODO | split -a 2 -l 2 TODO_\n"
 
 #define start_stop_daemon_trivial_usage \
-       "[OPTIONS] [-S|-K] ... [-- arguments...]"
+       "[OPTIONS] [-S|-K] ... [-- ARGS...]"
 #define start_stop_daemon_full_usage "\n\n" \
        "Search for matching processes, and then\n" \
        "-K: stop all matching processes.\n" \
      "\n       -c fmt  Use the specified format" \
        ) \
      "\n       -f      Display filesystem status" \
-     "\n       -L      Dereference links" \
+     "\n       -L      Follow links" \
      "\n       -t      Display info in terse form" \
        IF_SELINUX( \
      "\n       -Z      Print security context" \
        " %h    Number of hard links\n" \
        " %i    Inode number\n" \
        " %n    File name\n" \
-       " %N    Quoted file name with dereference if symlink\n" \
+       " %N    File name, with -> TARGET if symlink\n" \
        " %o    I/O block size\n" \
        " %s    Total size, in bytes\n" \
        " %t    Major device type in hex\n" \
        " %d    Free file nodes in file system\n" \
        " %f    Free blocks in file system\n" \
        IF_SELINUX( \
-       " %C    Security context in SELinux\n" \
+       " %C    Security context in selinux\n" \
        ) \
        " %i    File System ID in hex\n" \
        " %l    Maximum length of filenames\n" \
      "\n       -s SH   Shell to use instead of default shell" \
 
 #define sulogin_trivial_usage \
-       "[OPTIONS] [TTY]"
+       "[-t N] [TTY]"
 #define sulogin_full_usage "\n\n" \
        "Single user login\n" \
      "\nOptions:" \
      "\n       -s      Use System V sum algorithm (512byte blocks)" \
 
 #define sv_trivial_usage \
-       "[-v] [-w SEC] command service..."
+       "[-v] [-w SEC] CMD SERVICE_DIR..."
 #define sv_full_usage "\n\n" \
        "Control services monitored by runsv supervisor.\n" \
        "Commands (only first character is enough):\n" \
        "STOP, CONT, HUP, ALRM, INT, QUIT, USR1, USR2, TERM, KILL signal to service" \
 
 #define svlogd_trivial_usage \
-       "[-ttv] [-r c] [-R abc] [-l len] [-b buflen] dir..."
+       "[-ttv] [-r C] [-R CHARS] [-l MATCHLEN] [-b BUFLEN] DIR..."
 #define svlogd_full_usage "\n\n" \
-       "Continuously read log data from standard input, optionally\n" \
+       "Continuously read log data from stdin, optionally\n" \
        "filter log messages, and write the data to one or more automatically\n" \
        "rotated logs" \
 
 
 #define fsync_trivial_usage \
        "[OPTIONS] FILE..."
-#define fsync_full_usage \
+#define fsync_full_usage "\n\n" \
        "Write files' buffered blocks to disk\n" \
      "\nOptions:" \
      "\n       -d      Avoid syncing metadata"
        "[OPTIONS]"
 #define syslogd_full_usage "\n\n" \
        "System logging utility.\n" \
-       "Note that this version of syslogd ignores /etc/syslog.conf.\n" \
+       "This version of syslogd ignores /etc/syslog.conf\n" \
      "\nOptions:" \
      "\n       -n              Run in foreground" \
      "\n       -O FILE         Log to given file (default:/var/log/messages)" \
-     "\n       -l n            Set local log level" \
+     "\n       -l N            Set local log level" \
      "\n       -S              Smaller logging output" \
        IF_FEATURE_ROTATE_LOGFILE( \
      "\n       -s SIZE         Max size (KB) before rotate (default:200KB, 0=off)" \
 #define tac_full_usage "\n\n" \
        "Concatenate FILEs and print them in reverse"
 
-#define tail_trivial_usage \
-       "[OPTIONS] [FILE]..."
-#define tail_full_usage "\n\n" \
-       "Print last 10 lines of each FILE (or standard input) to standard output.\n" \
-       "With more than one FILE, precede each with a header giving the file name.\n" \
-     "\nOptions:" \
-       IF_FEATURE_FANCY_TAIL( \
-     "\n       -c N[kbm]       Output last N bytes") \
-     "\n       -n N[kbm]       Print last N lines instead of last 10" \
-     "\n       -f              Output data as the file grows" \
-       IF_FEATURE_FANCY_TAIL( \
-     "\n       -q              Never output headers giving file names" \
-     "\n       -s SEC          Wait SEC seconds between reads with -f" \
-     "\n       -v              Always output headers giving file names" \
-     "\n" \
-     "\nIf the first character of N (bytes or lines) is a '+', output begins with" \
-     "\nthe Nth item from the start of each file, otherwise, print the last N items" \
-     "\nin the file. N bytes may be suffixed by k (x1024), b (x512), or m (1024^2)." ) \
-
-#define tail_example_usage \
-       "$ tail -n 1 /etc/resolv.conf\n" \
-       "nameserver 10.0.0.1\n"
-
 #define tar_trivial_usage \
-       "-[" IF_FEATURE_TAR_CREATE("c") IF_FEATURE_SEAMLESS_GZ("z") \
+       "-[" IF_FEATURE_TAR_CREATE("c") "xt" IF_FEATURE_SEAMLESS_GZ("z") \
        IF_FEATURE_SEAMLESS_BZ2("j") IF_FEATURE_SEAMLESS_LZMA("a") \
-       IF_FEATURE_SEAMLESS_Z("Z") "xtvO] " \
+       IF_FEATURE_SEAMLESS_Z("Z") IF_FEATURE_TAR_NOPRESERVE_TIME("m") "vO] " \
        IF_FEATURE_TAR_FROM("[-X FILE] ") \
        "[-f TARFILE] [-C DIR] [FILE]..."
 #define tar_full_usage "\n\n" \
        "or list files from a tar file\n" \
      "\nOptions:" \
        IF_FEATURE_TAR_CREATE( \
-     "\n       c       Create") \
+     "\n       c       Create" \
+       ) \
      "\n       x       Extract" \
      "\n       t       List" \
      "\nArchive format selection:" \
        IF_FEATURE_SEAMLESS_Z( \
      "\n       Z       Filter the archive through compress" \
        ) \
+       IF_FEATURE_TAR_NOPRESERVE_TIME( \
+     "\n       m       Do not restore mtime" \
+       ) \
      "\nFile selection:" \
      "\n       f       Name of TARFILE or \"-\" for stdin" \
      "\n       O       Extract to stdout" \
        IF_FEATURE_TAR_FROM( \
+       IF_FEATURE_TAR_LONG_OPTIONS( \
      "\n       exclude File to exclude" \
+       ) \
      "\n       X       File with names to exclude" \
        ) \
-     "\n       C       Change to directory DIR before operation" \
+     "\n       C       Change to DIR before operation" \
      "\n       v       Verbose" \
 
 #define tar_example_usage \
        "$ tar -cf /tmp/tarball.tar /usr/local\n"
 
 #define taskset_trivial_usage \
-       "[-p] [MASK] [PID | PROG [ARGS]]"
+       "[-p] [MASK] [PID | PROG ARGS]"
 #define taskset_full_usage "\n\n" \
        "Set or get CPU affinity\n" \
      "\nOptions:" \
 #define tee_trivial_usage \
        "[OPTIONS] [FILE]..."
 #define tee_full_usage "\n\n" \
-       "Copy standard input to each FILE, and also to standard output\n" \
+       "Copy stdin to each FILE, and also to stdout\n" \
      "\nOptions:" \
      "\n       -a      Append to the given FILEs, don't overwrite" \
      "\n       -i      Ignore interrupt signals (SIGINT)" \
      "\n       -p PORT         Port to listen on" \
      "\n       -b ADDR[:PORT]  Address to bind to" \
      "\n       -F              Run in foreground" \
-     "\n       -i              Run as inetd service" \
+     "\n       -i              Inetd mode" \
        IF_FEATURE_TELNETD_INETD_WAIT( \
-     "\n       -w SEC          Run as inetd service in wait mode, linger time SEC" \
+     "\n       -w SEC          Inetd 'wait' mode, linger time SEC" \
      "\n       -S              Log to syslog (implied by -i or without -F and -w)" \
        ) \
        )
 
 /* "test --help" does not print help (POSIX compat), only "[ --help" does.
- * We display "<applet> EXPRESSION ]" here (not "<applet> EXPRESSION") */
+ * We display "<applet> EXPRESSION ]" here (not "<applet> EXPRESSION")
+ * Unfortunately, it screws up generated BusyBox.html. TODO. */
 #define test_trivial_usage \
        "EXPRESSION ]"
 #define test_full_usage "\n\n" \
 /* with not-implemented options: */
 /*     "[-hpEvv] [-c N] [-C N[:MSG]] [-b N] [-u USER] [-l NAME] [-i DIR|-x CDB] [-t SEC] IP PORT PROG" */
 #define tcpsvd_full_usage "\n\n" \
-       "Create TCP socket, bind  to IP:PORT and listen\n" \
+       "Create TCP socket, bind to IP:PORT and listen\n" \
        "for incoming connection. Run PROG for each connection.\n" \
      "\n       IP              IP to listen on. '0' = all" \
      "\n       PORT            Port to listen on" \
-     "\n       PROG [ARGS]     Program to run" \
+     "\n       PROG ARGS       Program to run" \
      "\n       -l NAME         Local hostname (else looks up local hostname in DNS)" \
      "\n       -u USER[:GRP]   Change to user/group after bind" \
      "\n       -c N            Handle up to N connections simultaneously" \
        "redirecting all further packets with same peer ip:port to it.\n" \
      "\n       IP              IP to listen on. '0' = all" \
      "\n       PORT            Port to listen on" \
-     "\n       PROG [ARGS]     Program to run" \
+     "\n       PROG ARGS       Program to run" \
      "\n       -l NAME         Local hostname (else looks up local hostname in DNS)" \
      "\n       -u USER[:GRP]   Change to user/group after bind" \
      "\n       -c N            Handle up to N connections simultaneously" \
      "\n       -u      Access files as USER" \
 
 #define time_trivial_usage \
-       "[OPTIONS] PROG [ARGS]"
+       "[OPTIONS] PROG ARGS"
 #define time_full_usage "\n\n" \
-       "Run PROG. When it finishes, its resource usage is displayed.\n" \
+       "Run PROG, display resource usage when it exits\n" \
      "\nOptions:" \
      "\n       -v      Verbose" \
 
 #define timeout_trivial_usage \
-       "[-t SECS] [-s SIG] PROG [ARGS]"
+       "[-t SECS] [-s SIG] PROG ARGS"
 #define timeout_full_usage "\n\n" \
        "Runs PROG. Sends SIG to it if it is not gone in SECS seconds.\n" \
        "Defaults: SECS: 10, SIG: TERM." \
 #define top_full_usage "\n\n" \
        "Provide a view of process activity in real time.\n" \
        "Read the status of all processes from /proc each SECONDS\n" \
-       "and show the status for however many processes will fit on the screen." \
+       "and display a screenful of them." \
+//TODO: add options and keyboard commands
 
 #define touch_trivial_usage \
        "[-c] [-d DATE] FILE [FILE]..."
 #define tr_trivial_usage \
        "[-cds] STRING1 [STRING2]"
 #define tr_full_usage "\n\n" \
-       "Translate, squeeze, and/or delete characters from\n" \
-       "standard input, writing to standard output\n" \
+       "Translate, squeeze, or delete characters from stdin, writing to stdout\n" \
      "\nOptions:" \
      "\n       -c      Take complement of STRING1" \
      "\n       -d      Delete input characters coded STRING1" \
        ) \
      "\n       -F      Set the don't fragment bit" \
      "\n       -I      Use ICMP ECHO instead of UDP datagrams" \
-     "\n       -l      Display the ttl value of the returned packet" \
+     "\n       -l      Display the TTL value of the returned packet" \
      "\n       -d      Set SO_DEBUG options to socket" \
      "\n       -n      Print numeric addresses" \
      "\n       -r      Bypass routing tables, send directly to HOST" \
      "\n       -m      Max time-to-live (max number of hops)" \
      "\n       -p      Base UDP port number used in probes" \
      "\n               (default 33434)" \
-     "\n       -q      Number of probes per 'ttl' (default 3)" \
+     "\n       -q      Number of probes per TTL (default 3)" \
      "\n       -s      IP address to use as the source address" \
      "\n       -t      Type-of-service in probe packets (default 0)" \
      "\n       -w      Time in seconds to wait for a response (default 3)" \
      "\n       -m      Max time-to-live (max number of hops)" \
      "\n       -p      Base UDP port number used in probes" \
      "\n               (default is 33434)" \
-     "\n       -q      Number of probes per 'ttl' (default 3)" \
+     "\n       -q      Number of probes per TTL (default 3)" \
      "\n       -s      IP address to use as the source address" \
      "\n       -t      Type-of-service in probe packets (default 0)" \
      "\n       -w      Time in seconds to wait for a response (default 3)" \
 #define tty_trivial_usage \
        ""
 #define tty_full_usage "\n\n" \
-       "Print file name of standard input's terminal" \
+       "Print file name of stdin's terminal" \
        IF_INCLUDE_SUSv2( "\n" \
      "\nOptions:" \
      "\n       -s      Print nothing, only return exit status" \
 #define ttysize_trivial_usage \
        "[w] [h]"
 #define ttysize_full_usage "\n\n" \
-       "Print dimension(s) of standard input's terminal, on error return 80x25"
+       "Print dimension(s) of stdin's terminal, on error return 80x25"
 
 #define tunctl_trivial_usage \
        "[-f device] ([-t name] | -d name)" IF_FEATURE_TUNCTL_UG(" [-u owner] [-g group] [-b]")
        "Adjust filesystem options on ext[23] filesystems"
 
 #define udhcpc_trivial_usage \
-       "[-Cfbnqtvo] [-c CID] [-V VCLS] [-H HOSTNAME] [-i INTERFACE]\n" \
-       "       [-p pidfile] [-r IP] [-s script] [-O dhcp-option]..." IF_FEATURE_UDHCP_PORT(" [-P N]")
-#define udhcpc_full_usage "\n\n" \
+       "[-fbnqvoCR] [-i IFACE] [-r IP] [-s PROG] [-p PIDFILE]\n" \
+       "       [-H HOSTNAME] [-c CID] [-V VENDOR] [-O DHCP_OPT]..." IF_FEATURE_UDHCP_PORT(" [-P N]")
+#define udhcpc_full_usage "\n" \
        IF_LONG_OPTS( \
-       "       -V,--vendorclass=CLASSID        Vendor class identifier" \
-     "\n       -i,--interface=INTERFACE        Interface to use (default eth0)" \
-     "\n       -H,-h,--hostname=HOSTNAME       Client hostname" \
-     "\n       -c,--clientid=CLIENTID  Client identifier" \
-     "\n       -C,--clientid-none      Suppress default client identifier" \
-     "\n       -p,--pidfile=file       Create pidfile" \
-     "\n       -r,--request=IP         IP address to request" \
-     "\n       -s,--script=file        Run file at DHCP events (default "CONFIG_UDHCPC_DEFAULT_SCRIPT")" \
-     "\n       -t,--retries=N          Send up to N discover packets" \
-     "\n       -T,--timeout=N          Pause between packets (default 3 seconds)" \
-     "\n       -A,--tryagain=N         Wait N seconds (default 20) after failure" \
-     "\n       -O,--request-option=OPT Request DHCP option OPT (cumulative)" \
-     "\n       -o,--no-default-options Don't request any options (unless -O is also given)" \
-     "\n       -f,--foreground Run in foreground" \
+     "\n       -i,--interface IFACE    Interface to use (default eth0)" \
+     "\n       -p,--pidfile FILE       Create pidfile" \
+     "\n       -r,--request IP         IP address to request" \
+     "\n       -s,--script PROG        Run PROG at DHCP events (default "CONFIG_UDHCPC_DEFAULT_SCRIPT")" \
+     "\n       -t,--retries N          Send up to N discover packets" \
+     "\n       -T,--timeout N          Pause between packets (default 3 seconds)" \
+     "\n       -A,--tryagain N         Wait N seconds after failure (default 20)" \
+     "\n       -f,--foreground         Run in foreground" \
        USE_FOR_MMU( \
-     "\n       -b,--background Background if lease is not immediately obtained" \
+     "\n       -b,--background         Background if lease is not obtained" \
        ) \
-     "\n       -S,--syslog     Log to syslog too" \
-     "\n       -n,--now        Exit with failure if lease is not immediately obtained" \
-     "\n       -q,--quit       Quit after obtaining lease" \
-     "\n       -R,--release    Release IP on quit" \
+     "\n       -S,--syslog             Log to syslog too" \
+     "\n       -n,--now                Exit if lease is not obtained" \
+     "\n       -q,--quit               Exit after obtaining lease" \
+     "\n       -R,--release            Release IP on exit" \
        IF_FEATURE_UDHCP_PORT( \
-     "\n       -P,--client-port N  Use port N instead of default 68" \
+     "\n       -P,--client-port N      Use port N (default 68)" \
        ) \
        IF_FEATURE_UDHCPC_ARPING( \
-     "\n       -a,--arping     Use arping to validate offered address" \
+     "\n       -a,--arping             Use arping to validate offered address" \
        ) \
+     "\n       -O,--request-option OPT Request DHCP option OPT (cumulative)" \
+     "\n       -o,--no-default-options Don't request any options (unless -O is given)" \
+     "\n       -x OPT:VAL              Include option OPT in sent packets (cumulative)" \
+     "\n       -F,--fqdn NAME          Ask server to update DNS mapping for NAME" \
+     "\n       -H,-h,--hostname NAME   Send NAME as client hostname (default none)" \
+     "\n       -V,--vendorclass VENDOR Vendor identifier (default 'udhcp VERSION')" \
+     "\n       -c,--clientid CLIENTID  Client identifier (default own MAC)" \
+     "\n       -C,--clientid-none      Don't send client identifier" \
        ) \
        IF_NOT_LONG_OPTS( \
-       "       -V CLASSID      Vendor class identifier" \
-     "\n       -i INTERFACE    Interface to use (default: eth0)" \
-     "\n       -H,-h HOSTNAME  Client hostname" \
-     "\n       -c CLIENTID     Client identifier" \
-     "\n       -C              Suppress default client identifier" \
-     "\n       -p file         Create pidfile" \
+     "\n       -i IFACE        Interface to use (default eth0)" \
+     "\n       -p FILE         Create pidfile" \
      "\n       -r IP           IP address to request" \
-     "\n       -s file         Run file at DHCP events (default "CONFIG_UDHCPC_DEFAULT_SCRIPT")" \
-     "\n       -t N            Send up to N request packets" \
-     "\n       -T N            Try to get a lease for N seconds (default 3)" \
+     "\n       -s PROG         Run PROG at DHCP events (default "CONFIG_UDHCPC_DEFAULT_SCRIPT")" \
+     "\n       -t N            Send up to N discover packets" \
+     "\n       -T N            Pause between packets (default 3 seconds)" \
      "\n       -A N            Wait N seconds (default 20) after failure" \
+     "\n       -x OPT:VAL      Include option OPT in sent packets" \
      "\n       -O OPT          Request DHCP option OPT (cumulative)" \
-     "\n       -o              Don't request any options (unless -O is also given)" \
+     "\n       -o              Don't request any options (unless -O is given)" \
      "\n       -f              Run in foreground" \
        USE_FOR_MMU( \
-     "\n       -b              Background if lease is not immediately obtained" \
+     "\n       -b              Background if lease is not obtained" \
        ) \
      "\n       -S              Log to syslog too" \
-     "\n       -n              Exit with failure if lease is not immediately obtained" \
-     "\n       -q              Quit after obtaining lease" \
-     "\n       -R              Release IP on quit" \
+     "\n       -n              Exit if lease is not obtained" \
+     "\n       -q              Exit after obtaining lease" \
+     "\n       -R              Release IP on exit" \
        IF_FEATURE_UDHCP_PORT( \
-     "\n       -P N            Use port N instead of default 68" \
+     "\n       -P N            Use port N (default 68)" \
        ) \
        IF_FEATURE_UDHCPC_ARPING( \
      "\n       -a              Use arping to validate offered address" \
        ) \
+     "\n       -F NAME         Ask server to update DNS mapping for NAME" \
+     "\n       -H,-h NAME      Send NAME as client hostname (default none)" \
+     "\n       -V VENDOR       Vendor identifier (default 'udhcp VERSION')" \
+     "\n       -c CLIENTID     Client identifier (default own MAC)" \
+     "\n       -C              Don't send client identifier" \
        )
 
 #define udhcpd_trivial_usage \
      "\n       -f      Run in foreground" \
      "\n       -S      Log to syslog too" \
        IF_FEATURE_UDHCP_PORT( \
-     "\n       -P N    Use port N instead of default 67" \
+     "\n       -P N    Use port N (default 67)" \
        )
 
 #define umount_trivial_usage \
        "Linux debian 2.4.23 #2 Tue Dec 23 17:09:10 MST 2003 i686 GNU/Linux\n"
 
 #define uncompress_trivial_usage \
-       "[-c] [-f] [FILE...]"
+       "[-cf] [FILE]..."
 #define uncompress_full_usage "\n\n" \
        "Uncompress .Z file[s]\n" \
      "\nOptions:" \
      "\n       -f      Overwrite an existing file" \
 
 #define unexpand_trivial_usage \
-       "[-f][-a][-t N] [FILE|-]"
+       "[-fa][-t N] [FILE]..."
 #define unexpand_full_usage "\n\n" \
-       "Convert spaces to tabs, writing to standard output\n" \
+       "Convert spaces to tabs, writing to stdout\n" \
      "\nOptions:" \
        IF_FEATURE_UNEXPAND_LONG_OPTIONS( \
      "\n       -a,--all        Convert all blanks" \
        )
 
 #define uniq_trivial_usage \
-       "[-fscduw]... [INPUT [OUTPUT]]"
+       "[-cdu][-f,s,w N] [INPUT [OUTPUT]]"
 #define uniq_full_usage "\n\n" \
        "Discard duplicate lines\n" \
      "\nOptions:" \
        "c\n"
 
 #define unzip_trivial_usage \
-       "[-opts[modifiers]] file[.zip] [list] [-x xlist] [-d exdir]"
+       "[-opts[modifiers]] FILE[.zip] [LIST] [-x XLIST] [-d DIR]"
 #define unzip_full_usage "\n\n" \
        "Extract files from ZIP archives\n" \
      "\nOptions:" \
      "\n       -o      Overwrite files without prompting" \
      "\n       -p      Send output to stdout" \
      "\n       -q      Quiet" \
-     "\n       -x      Exclude these files" \
-     "\n       -d      Extract files into this directory" \
+     "\n       -x XLST Exclude these files" \
+     "\n       -d DIR  Extract files into DIR" \
 
 #define uptime_trivial_usage \
        ""
        IF_FEATURE_VI_COLON( \
      "\n       -c      Initial command to run ($EXINIT also available)") \
        IF_FEATURE_VI_READONLY( \
-     "\n       -R      Read-only - don't write to the file") \
+     "\n       -R      Read-only") \
      "\n       -H      Short help regarding available features" \
 
 #define vlock_trivial_usage \
 #define wall_trivial_usage \
        "[FILE]"
 #define wall_full_usage "\n\n" \
-       "Write content of FILE or standard-input to all logged-in users"
+       "Write content of FILE or stdin to all logged-in users"
 #define wall_sample_usage \
        "echo foo | wall\n" \
        "wall ./mymessage"
 
 #define watch_trivial_usage \
-       "[-n seconds] [-t] PROG [ARGS]"
+       "[-n SEC] [-t] PROG ARGS"
 #define watch_full_usage "\n\n" \
        "Run PROG periodically\n" \
      "\nOptions:" \
 #define wc_trivial_usage \
        "[OPTIONS] [FILE]..."
 #define wc_full_usage "\n\n" \
-       "Print line, word, and byte counts for each FILE, and a total line if\n" \
-       "more than one FILE is specified. With no FILE, read standard input.\n" \
+       "Print line, word, and byte counts for each FILE (or stdin),\n" \
+       "and a total line if more than one FILE is specified\n" \
      "\nOptions:" \
      "\n       -c      Print the byte counts" \
      "\n       -l      Print the newline counts" \
 
 #define wget_trivial_usage \
        IF_FEATURE_WGET_LONG_OPTIONS( \
-       "[-c|--continue] [-s|--spider] [-q|--quiet] [-O|--output-document file]\n" \
+       "[-c|--continue] [-s|--spider] [-q|--quiet] [-O|--output-document FILE]\n" \
        "       [--header 'header: value'] [-Y|--proxy on/off] [-P DIR]\n" \
-       "       [-U|--user-agent agent] url" \
+       "       [--no-check-certificate] [-U|--user-agent AGENT] URL" \
        ) \
        IF_NOT_FEATURE_WGET_LONG_OPTIONS( \
-       "[-csq] [-O file] [-Y on/off] [-P DIR] [-U agent] url" \
+       "[-csq] [-O FILE] [-Y on/off] [-P DIR] [-U AGENT] URL" \
        )
 #define wget_full_usage "\n\n" \
        "Retrieve files via HTTP or FTP\n" \
      "\n       -c      Continue retrieval of aborted transfer" \
      "\n       -q      Quiet" \
      "\n       -P      Set directory prefix to DIR" \
-     "\n       -O      Save to filename ('-' for stdout)" \
-     "\n       -U      Adjust 'User-Agent' field" \
+     "\n       -O FILE Save to FILE ('-' for stdout)" \
+     "\n       -U STR  Use STR for User-Agent header" \
      "\n       -Y      Use proxy ('on' or 'off')" \
 
 #define which_trivial_usage \
        "Print the user name associated with the current effective user id"
 
 #define xargs_trivial_usage \
-       "[OPTIONS] [PROG [ARGS]]"
+       "[OPTIONS] [PROG ARGS]"
 #define xargs_full_usage "\n\n" \
-       "Run PROG on every item given by standard input\n" \
+       "Run PROG on every item given by stdin\n" \
      "\nOptions:" \
        IF_FEATURE_XARGS_SUPPORT_CONFIRMATION( \
      "\n       -p      Ask user whether to run each command") \