randomtest fixes
[oweals/busybox.git] / include / usage.h
index e571d2ba38c6636899d52985092c8f35b3121004..9d9ad008bad554b6aa60b20b05fc4ee8f86ba8cb 100644 (file)
 #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:" \
-     "\n       -d      Do not daemonize and log to stderr" \
+     "\n       -d      Don't daemonize, log to stderr" \
      "\n       -c DIR  Config directory [/etc/acpi]" \
      "\n       -e FILE /proc event file [/proc/acpi/event]" \
      "\n       -l FILE Log file [/var/log/acpid]" \
@@ -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:" \
      "\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       -h DIR          Home directory" \
      "\n       -g GECOS        GECOS field" \
      "\n       -s SHELL        Login shell" \
-     "\n       -G GROUP        Add user to existing group" \
+     "\n       -G GRP          Add user to existing group" \
      "\n       -S              Create a system user" \
-     "\n       -D              Do not assign a password" \
-     "\n       -H              Do not create home directory" \
+     "\n       -D              Don't assign a password" \
+     "\n       -H              Don't create home directory" \
      "\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]"
        "bar"
 
 #define beep_trivial_usage \
-       "-f freq -l length -d delay -r repetitions -n"
+       "-f FREQ -l LEN -d DELAY -r COUNT -n"
 #define beep_full_usage "\n\n" \
        "Options:" \
      "\n       -f      Frequency in Hz" \
      "\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 if FILE is '-' or omitted)\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 FILE(s) with bzip2 algorithm.\n" \
-       "When FILE is '-' or unspecified, reads standard input. Implies -c.\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 if FILE is '-' or omitted)\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:" \
 #define cat_trivial_usage \
        "[-u] [FILE]..."
 #define cat_full_usage "\n\n" \
-       "Concatenate FILE(s) and print them to stdout\n" \
+       "Concatenate FILEs and print them to stdout\n" \
      "\nOptions:" \
      "\n       -u      Use unbuffered i/o (ignored)" \
 
        "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       a       Append mode only" \
      "\n       c       Enable compress" \
      "\n       D       Write dir contents synchronously" \
-     "\n       d       Do not backup with dump" \
+     "\n       d       Don't backup with dump" \
      "\n       i       Cannot be modified (immutable)" \
      "\n       j       Write all data to journal first" \
      "\n       s       Zero disk storage when deleted" \
      "\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       -h      Affect symlinks instead of symlink targets" \
      "\n       -L      Traverse all symlinks to directories" \
      "\n       -H      Traverse symlinks on command line only" \
-     "\n       -P      Do not traverse symlinks (default)" \
+     "\n       -P      Don't traverse symlinks (default)" \
        IF_DESKTOP( \
      "\n       -c      List changed files" \
      "\n       -v      Verbose" \
      "\n       -h      Affect symlinks instead of symlink targets" \
      "\n       -L      Traverse all symlinks to directories" \
      "\n       -H      Traverse symlinks on command line only" \
-     "\n       -P      Do not traverse symlinks (default)" \
+     "\n       -P      Don't traverse symlinks (default)" \
        IF_DESKTOP( \
      "\n       -c      List changed files" \
      "\n       -v      List all files" \
      "\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 \
        "Crypt the PASSWORD using crypt(3)\n" \
      "\nOptions:" \
        IF_LONG_OPTS( \
-     "\n       -P,--password-fd=NUM    Read password from fd NUM" \
+     "\n       -P,--password-fd=N      Read password from fd N" \
 /*   "\n       -s,--stdin              Use stdin; like -P0" */ \
      "\n       -m,--method=TYPE        Encryption method TYPE" \
      "\n       -S,--salt=SALT" \
        ) \
        IF_NOT_LONG_OPTS( \
-     "\n       -P NUM  Read password from fd NUM" \
+     "\n       -P N    Read password from fd N" \
 /*   "\n       -s      Use stdin; like -P0" */ \
      "\n       -m TYPE Encryption method TYPE" \
      "\n       -S SALT" \
        "Crypt the PASSWORD using crypt(3)\n" \
      "\nOptions:" \
        IF_LONG_OPTS( \
-     "\n       -P,--password-fd=NUM    Read password from fd NUM" \
+     "\n       -P,--password-fd=N      Read password from fd N" \
 /*   "\n       -s,--stdin              Use stdin; like -P0" */ \
      "\n       -m,--method=TYPE        Encryption method TYPE" \
      "\n       -S,--salt=SALT" \
        ) \
        IF_NOT_LONG_OPTS( \
-     "\n       -P NUM  Read password from fd NUM" \
+     "\n       -P N    Read password from fd N" \
 /*   "\n       -s      Use stdin; like -P0" */ \
      "\n       -m TYPE Encryption method TYPE" \
      "\n       -S SALT" \
 #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" \
 #define date_full_usage "\n\n" \
        "Display time (using +FMT), or set time\n" \
      "\nOptions:" \
+       IF_NOT_LONG_OPTS( \
      "\n       [-s] TIME       Set time to TIME" \
      "\n       -u              Work in UTC (don't convert to local time)" \
-     "\n       -R              Output RFC-822 compliant date string" \
+     "\n       -R              Output RFC-2822 compliant date string" \
+       ) IF_LONG_OPTS( \
+     "\n       [-s,--set] TIME Set time to TIME" \
+     "\n       -u,--utc        Work in UTC (don't convert to local time)" \
+     "\n       -R,--rfc-2822   Output RFC-2822 compliant date string" \
+       ) \
        IF_FEATURE_DATE_ISOFMT( \
      "\n       -I[SPEC]        Output ISO-8601 compliant date string" \
      "\n                       SPEC='date' (default) for date only," \
      "\n                       'hours', 'minutes', or 'seconds' for date and" \
      "\n                       time to the indicated precision" \
-       ) \
+       ) IF_NOT_LONG_OPTS( \
      "\n       -r FILE         Display last modification time of FILE" \
      "\n       -d TIME         Display TIME, not 'now'" \
+       ) IF_LONG_OPTS( \
+     "\n       -r,--reference FILE     Display last modification time of FILE" \
+     "\n       -d,--date TIME  Display TIME, not 'now'" \
+       ) \
        IF_FEATURE_DATE_ISOFMT( \
      "\n       -D FMT          Use FMT for -d TIME conversion" \
        ) \
      "\n" \
-     "\nRecognized formats for TIME:" \
+     "\nRecognized TIME formats:" \
      "\n       hh:mm[:ss]" \
      "\n       [YYYY.]MM.DD-hh:mm[:ss]" \
      "\n       YYYY-MM-DD hh:mm[:ss]" \
        "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" \
      "\n       -fg     Run in foreground" \
      "\n       -np     Exit after parsing the configuration file" \
      "\n               and processing synthetic REGISTER events," \
-     "\n               do not poll for events" \
+     "\n               don't poll for events" \
        )
 
 #define df_trivial_usage \
        "[-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 \
-       "[OPTION] [FILE]"
+       "[OPTIONS] [FILE]"
 #define dos2unix_full_usage "\n\n" \
        "Convert FILE in-place from DOS to Unix format.\n" \
        "When no file is given, use stdin/stdout.\n" \
      "\n       -d      unix2dos" \
 
 #define unix2dos_trivial_usage \
-       "[OPTION] [FILE]"
+       "[OPTIONS] [FILE]"
 #define unix2dos_full_usage "\n\n" \
        "Convert FILE in-place from Unix to DOS format.\n" \
        "When no file is given, use stdin/stdout.\n" \
      "\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 e2fsck_trivial_usage \
        "[-panyrcdfvstDFSV] [-b superblock] [-B blocksize] " \
        "[-I inode_buffer_blocks] [-P process_inode_size] " \
      "\n       -j journal      Set location of the external journal" \
      "\n       -l file         Add to badblocks list" \
      "\n       -L file         Set badblocks list" \
+*/
 
 #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 NUM] [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    Do not convert tabs after non blanks" \
+     "\n       -i,--initial    Don't convert tabs after non blanks" \
      "\n       -t,--tabs=N     Tabstops every N chars" \
        ) \
        IF_NOT_FEATURE_EXPAND_LONG_OPTIONS( \
-     "\n       -i      Do not convert tabs after non blanks" \
+     "\n       -i      Don't convert tabs after non blanks" \
      "\n       -t      Tabstops every N chars" \
        )
 
 #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 \
        ""
 #define blkid_full_usage "\n\n" \
-       "Print UUIDs of all filesystems."
+       "Print UUIDs of all filesystems"
 
 #define findfs_trivial_usage \
        "LABEL=label or UUID=uuid"
 #define findfs_full_usage "\n\n" \
-       "Find a filesystem device based on a label or UUID."
+       "Find a filesystem device based on a label or UUID"
 #define findfs_example_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       -maxdepth N     Descend at most N levels. -maxdepth 0 applies" \
      "\n                       tests/actions to command line arguments only") \
-     "\n       -mindepth N     Do not act on first N levels" \
+     "\n       -mindepth N     Don't act on first N levels" \
      "\n       -name PATTERN   File name (w/o directory name) matches PATTERN" \
      "\n       -iname PATTERN  Case insensitive -name" \
        IF_FEATURE_FIND_PATH( \
      "\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" \
 #define flash_eraseall_full_usage "\n\n" \
        "Erase an MTD device\n" \
      "\nOptions:" \
-     "\n       -j      format the device for jffs2" \
-     "\n       -q      don't display progress messages"
+     "\n       -j      Format the device for jffs2" \
+     "\n       -q      Don't display progress messages" \
+
+#define flashcp_trivial_usage \
+       "-v FILE MTD_DEVICE"
+#define flashcp_full_usage "\n\n" \
+       "Copy an image to MTD device\n" \
+     "\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:" \
 #define ftpd_trivial_usage \
        "[-wvS] [-t N] [-T N] [DIR]"
 #define ftpd_full_usage "\n\n" \
-       "FTP server\n" \
+       "Anonymous FTP server\n" \
        "\n" \
        "ftpd should be used as an inetd service.\n" \
        "ftpd's line for inetd.conf:\n" \
      "\n       DIR     Change root to this directory" \
 
 #define ftpget_trivial_usage \
-       "[OPTIONS] HOST LOCAL_FILE REMOTE_FILE"
+       "[OPTIONS] HOST [LOCAL_FILE] REMOTE_FILE"
 #define ftpget_full_usage "\n\n" \
        "Retrieve a remote file via FTP\n" \
      "\nOptions:" \
        )
 
 #define ftpput_trivial_usage \
-       "[OPTIONS] HOST REMOTE_FILE LOCAL_FILE"
+       "[OPTIONS] HOST [REMOTE_FILE] LOCAL_FILE"
 #define ftpput_full_usage "\n\n" \
        "Store a local file on a remote machine via FTP\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]"
        "Open a tty, prompt for a login name, then invoke /bin/login\n" \
      "\nOptions:" \
      "\n       -h              Enable hardware (RTS/CTS) flow control" \
-     "\n       -i              Do not display /etc/issue before running login" \
-     "\n       -L              Local line, do not do carrier detect" \
+     "\n       -i              Don't display /etc/issue before running login" \
+     "\n       -L              Local line, don't do carrier detect" \
      "\n       -m              Get baud rate from modem's CONNECT status message" \
      "\n       -w              Wait for a CR or LF before sending /etc/issue" \
-     "\n       -n              Do not prompt the user for a login name" \
+     "\n       -n              Don't prompt the user for a login name" \
      "\n       -f ISSUE_FILE   Display ISSUE_FILE instead of /etc/issue" \
      "\n       -l LOGIN        Invoke LOGIN instead of /bin/login" \
      "\n       -t SEC          Terminate after SEC if no username is read" \
      "\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 do not 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 MAX  Match up to MAX 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      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    Same as '-A N -B N'" \
+       ) \
      "\n       -e PTRN Pattern to match" \
      "\n       -f FILE Read pattern from file" \
-       IF_FEATURE_GREP_CONTEXT( \
-     "\n       -A      Print NUM lines of trailing context" \
-     "\n       -B      Print NUM lines of leading context" \
-     "\n       -C      Print NUM lines of output context") \
-       IF_EXTRA_COMPAT( \
-     "\n       -z      Input is NUL terminated") \
 
 #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" \
 
        "-rw-rw-r--    1 andersen andersen   554058 Apr 14 17:49 /tmp/busybox.tar.gz\n"
 
 #define halt_trivial_usage \
-       "[-d delay] [-n] [-f]" IF_FEATURE_WTMP(" [-w]")
+       "[-d DELAY] [-n] [-f]" IF_FEATURE_WTMP(" [-w]")
 #define halt_full_usage "\n\n" \
        "Halt the system\n" \
      "\nOptions:" \
      "\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 to standard output.\n" \
-       "With more than one FILE, precede each with a header giving the\n" \
-       "file name. With no FILE, or when FILE is -, read standard input.\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 NUM  Print first NUM lines instead of first 10" \
+     "\n       -n N[kbm]       Print first N lines" \
        IF_FEATURE_FANCY_HEAD( \
-     "\n       -c NUM  Output the first NUM 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 file(s) 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" \
        "Listen for incoming HTTP requests\n" \
      "\nOptions:" \
      "\n       -i              Inetd mode" \
-     "\n       -f              Do not daemonize" \
+     "\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:" \
 #define ifplugd_full_usage "\n\n" \
        "Network interface plug detection daemon\n" \
      "\nOptions:" \
-     "\n       -n              Do not daemonize" \
-     "\n       -s              Do not log to syslog" \
+     "\n       -n              Don't daemonize" \
+     "\n       -s              Don't log to syslog" \
      "\n       -i IFACE        Interface" \
      "\n       -f/-F           Treat link detection error as link down/link up" \
      "\n                       (otherwise exit on error)" \
-     "\n       -a              Do not 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) */
      "\n       -m      Output load map to stdout" \
        ) \
      "\n       -o NAME Set internal module name to NAME" \
-     "\n       -x      Do not export externs" \
+     "\n       -x      Don't export externs" \
        )
 
 /* -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:" \
      "\n       -l      List all signal names and numbers" \
 /*   "\n       -s SIG  Yet another way of specifying SIG" */ \
-     "\n       -q      Do not complain if no processes were killed" \
+     "\n       -q      Don't complain if no processes were killed" \
 
 #define killall_example_usage \
        "$ killall apache\n"
        "Send a signal (default: TERM) to all processes outside current session\n" \
      "\nOptions:" \
      "\n       -l      List all signal names and numbers" \
-     "\n       -o PID  Do not signal this PID" \
+     "\n       -o PID  Don't signal this PID" \
 /*   "\n       -s SIG  Yet another way of specifying SIG" */ \
 
 #define klogd_trivial_usage \
 #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)" \
 #define login_full_usage "\n\n" \
        "Begin a new session on the system\n" \
      "\nOptions:" \
-     "\n       -f      Do not authenticate (user already authenticated)" \
+     "\n       -f      Don't authenticate (user already authenticated)" \
      "\n       -h      Name of the remote host" \
      "\n       -p      Preserve environment" \
 
      "\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( \
      "\n       -S      Sort by file size") \
      "\n       -s      List the size of each file, in blocks" \
        IF_FEATURE_AUTOWIDTH( \
-     "\n       -T NUM  Assume tabstop every NUM columns") \
+     "\n       -T N    Assume tabstop every N columns") \
        IF_FEATURE_LS_TIMESTAMPS( \
      "\n       -t      With -l: sort by modification time") \
        IF_FEATURE_LS_TIMESTAMPS( \
        IF_FEATURE_LS_SORTFILES( \
      "\n       -v      Sort by version") \
        IF_FEATURE_AUTOWIDTH( \
-     "\n       -w NUM  Assume the terminal is NUM columns wide") \
+     "\n       -w N    Assume the terminal is N columns wide") \
      "\n       -x      List by lines" \
        IF_FEATURE_LS_SORTFILES( \
      "\n       -X      Sort by extension") \
 #define lsattr_full_usage "\n\n" \
        "List file attributes on an ext2 fs\n" \
      "\nOptions:" \
-     "\n       -R      Recursively list subdirectories" \
-     "\n       -a      Do not hide entries starting with ." \
+     "\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" \
      "\n       -v      List the file's version/generation number" \
 #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]"
 #define matchpathcon_trivial_usage \
        "[-n] [-N] [-f file_contexts_file] [-p prefix] [-V]"
 #define matchpathcon_full_usage "\n\n" \
-       "       -n      Do not display path" \
-     "\n       -N      Do not use translations" \
+       "       -n      Don't display path" \
+     "\n       -N      Don't use translations" \
      "\n       -f      Use alternate file_context file" \
      "\n       -p      Use prefix to speed translations" \
      "\n       -V      Verify file context on disk matches defaults" \
        "       -s      Scan /sys and populate /dev during system boot\n" \
        "\n" \
        "It can be run by kernel as a hotplug helper. To activate it:\n" \
-       " echo /bin/mdev >/proc/sys/kernel/hotplug\n" \
+       " echo /sbin/mdev > /proc/sys/kernel/hotplug\n" \
        IF_FEATURE_MDEV_CONF( \
        "It uses /etc/mdev.conf with lines\n" \
        "[-]DEVNAME UID:GID PERM" \
        "/tmp/foo/bar/baz: No such file or directory\n" \
        "$ mkdir -p /tmp/foo/bar/baz\n"
 
-#define mke2fs_trivial_usage \
-       "[-c|-l filename] [-b block-size] [-f fragment-size] [-g blocks-per-group] " \
-       "[-i bytes-per-inode] [-j] [-J journal-options] [-N number-of-inodes] [-n] " \
-       "[-m reserved-blocks-percentage] [-o creator-os] [-O feature[,...]] [-q] " \
-       "[r fs-revision-level] [-E extended-options] [-v] [-F] [-L volume-label] " \
-       "[-M last-mounted-directory] [-S] [-T filesystem-type] " \
-       "device [blocks-count]"
-#define mke2fs_full_usage "\n\n" \
-       "       -b size         Block size in bytes" \
-     "\n       -c              Check for bad blocks before creating" \
-     "\n       -E opts         Set extended options" \
-     "\n       -f size         Fragment size in bytes" \
-     "\n       -F              Force (ignore sanity checks)" \
-     "\n       -g num          Number of blocks in a block group" \
-     "\n       -i ratio        The bytes/inode ratio" \
-     "\n       -j              Create a journal (ext3)" \
-     "\n       -J opts         Set journal options (size/device)" \
-     "\n       -l file         Read bad blocks list from file" \
-     "\n       -L lbl          Set the volume label" \
-     "\n       -m percent      Percent of fs blocks to reserve for admin" \
-     "\n       -M dir          Set last mounted directory" \
-     "\n       -n              Do not actually create anything" \
-     "\n       -N num          Number of inodes to create" \
-     "\n       -o os           Set the 'creator os' field" \
-     "\n       -O features     Dir_index/filetype/has_journal/journal_dev/sparse_super" \
-     "\n       -q              Quiet" \
-     "\n       -r rev          Set filesystem revision" \
-     "\n       -S              Write superblock and group descriptors only" \
-     "\n       -T fs-type      Set usage type (news/largefile/largefile4)" \
-     "\n       -v              Verbose" \
-
 #define mkfifo_trivial_usage \
        "[OPTIONS] name"
 #define mkfifo_full_usage "\n\n" \
      "\n       -Z      Set security context" \
        )
 
+#define mkfs_ext2_trivial_usage \
+       "[-Fn] " \
+       /* "[-c|-l filename] " */ \
+       "[-b BLK_SIZE] " \
+       /* "[-f fragment-size] [-g blocks-per-group] " */ \
+       "[-i INODE_RATIO] [-I INODE_SIZE] " \
+       /* "[-j] [-J journal-options] [-N number-of-inodes] " */ \
+       "[-m RESERVED_PERCENT] " \
+       /* "[-o creator-os] [-O feature[,...]] [-q] " */ \
+       /* "[r fs-revision-level] [-E extended-options] [-v] [-F] " */ \
+       "[-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" \
+/*   "\n       -c              Check device for bad blocks" */ \
+/*   "\n       -E opts         Set extended options" */ \
+/*   "\n       -f size         Fragment size in bytes" */ \
+     "\n       -F              Force" \
+/*   "\n       -g N            Number of blocks in a block group" */ \
+     "\n       -i RATIO        Max number of files is filesystem_size / RATIO" \
+     "\n       -I BYTES        Inode size (min 128)" \
+/*   "\n       -j              Create a journal (ext3)" */ \
+/*   "\n       -J opts         Set journal options (size/device)" */ \
+/*   "\n       -l file         Read bad blocks list from file" */ \
+     "\n       -L LBL          Volume label" \
+     "\n       -m PERCENT      Percent of blocks to reserve for admin" \
+/*   "\n       -M dir          Set last mounted directory" */ \
+     "\n       -n              Dry run" \
+/*   "\n       -N N            Number of inodes to create" */ \
+/*   "\n       -o os           Set the 'creator os' field" */ \
+/*   "\n       -O features     Dir_index/filetype/has_journal/journal_dev/sparse_super" */ \
+/*   "\n       -q              Quiet" */ \
+/*   "\n       -r rev          Set filesystem revision" */ \
+/*   "\n       -S              Write superblock and group descriptors only" */ \
+/*   "\n       -T fs-type      Set usage type (news/largefile/largefile4)" */ \
+/*   "\n       -v              Verbose" */ \
+
 #define mkfs_minix_trivial_usage \
-       "[-c | -l filename] [-nXX] [-iXX] /dev/name [blocks]"
+       "[-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 \
+       "[-f] [-l LABEL] BLOCKDEV [4K-BLOCKS]"
+
+#define mkfs_reiser_full_usage "\n\n" \
+       "Make a ReiserFS V3 filesystem\n" \
+     "\nOptions:" \
+     "\n       -f      Force" \
+     "\n       -l LBL  Volume label" \
+
 #define mkfs_vfat_trivial_usage \
-       "[-v] [-n LABEL] FILE_OR_DEVICE [SIZE_IN_KB]"
+       "[-v] [-n LABEL] BLOCKDEV [KBYTES]"
 /* Accepted but ignored:
        "[-c] [-C] [-I] [-l bad-block-file] [-b backup-boot-sector] "
        "[-m boot-msg-file] [-i volume-id] "
        "$ mknod -m 644 /tmp/pipe p\n"
 
 #define mkswap_trivial_usage \
-       "DEVICE"
+       "[OPTIONS] BLOCKDEV [KBYTES]"
 #define mkswap_full_usage "\n\n" \
-       "Prepare block device to be used as swap partition"
-#if 0
-       "[-c] [-v0|-v1] DEVICE [BLOCKS]"
-     "\nOptions:"
-     "\n       -c      Check for readability"
-     "\n       -v0     Make swap version 0 (max 128M)"
-     "\n       -v1     Make swap version 1 (default for kernels > 2.1.117)"
-     "\n       BLOCKS  Number of blocks to use (default is entire partition)"
-#endif
+       "Prepare BLOCKDEV to be used as swap partition\n" \
+     "\nOptions:" \
+     "\n       -L LBL  Label" \
 
 #define mktemp_trivial_usage \
        "[-dt] [-p DIR] [TEMPLATE]"
        "-rw-------    1 andersen andersen        0 Apr 25 17:10 /tmp/temp.mWiLjM\n"
 
 #define modprobe_trivial_usage \
-       "[-knqrsv] 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]...")
 #define modprobe_full_usage "\n\n" \
        "Options:" \
+       IF_MODPROBE_SMALL( \
+     "\n       -q      Quiet" \
+     "\n       -f      Force" \
+     "\n       -w      Wait for unload" \
+     "\n       -r      Remove module (stacks) or do autoclean" \
+     "\n       -s      Report via syslog instead of stderr" \
+     "\n       -v      Verbose" \
+       ) \
+       IF_NOT_MODPROBE_SMALL( \
        IF_FEATURE_2_4_MODULES( \
      "\n       -k      Make module autoclean-able" \
        ) \
      "\n       -v      Verbose" \
        IF_FEATURE_MODPROBE_BLACKLIST( \
      "\n       -b      Apply blacklist to module names too" \
-        )
+       ) \
+       )
 
 #define modprobe_notes_usage \
 "modprobe can (un)load a stack of modules, passing each module options (when\n" \
 #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 mount_trivial_usage \
-       "[flags] DEVICE NODE [-o OPT,OPT]"
+       "[OPTIONS] [-o OPTS] DEVICE NODE"
 #define mount_full_usage "\n\n" \
        "Mount a filesystem. Filesystem autodetection requires /proc.\n" \
      "\nOptions:" \
      "\n       [r]slave        Convert [recursively] to a slave subtree" \
      "\n       [r]private      Convert [recursively] to a private subtree" \
      "\n       [un]bindable    Make mount point [un]able to be bind mounted" \
-     "\n       bind            Bind a directory to an additional location" \
+     "\n       bind            Bind a file or directory to another location" \
      "\n       move            Relocate an existing mount point" \
        ) \
-     "\n       remount         Remount a mounted filesystem, changing its flags" \
-     "\n       ro/rw           Read-only/read-write mount" \
+     "\n       remount         Remount a mounted filesystem, changing flags" \
+     "\n       ro/rw           Same as -r/-w" \
      "\n" \
-     "\nThere are EVEN MORE flags that are specific to each filesystem" \
-     "\nYou'll have to see the written documentation for those filesystems" \
+     "\nThere are filesystem-specific -o flags." \
 
 #define mount_example_usage \
        "$ mount\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:" \
 #define nmeter_full_usage "\n\n" \
        "Monitor system in real time\n\n" \
        "Format specifiers:\n" \
-       "%Nc or %[cN]   Monitor CPU. N - bar size, default 10\n" \
+       " %Nc or %[cN]  Monitor CPU. N - bar size, default 10\n" \
        "               (displays: S:system U:user N:niced D:iowait I:irq i:softirq)\n" \
-       "%[niface]      Monitor network interface 'iface'\n" \
-       "%m             Monitor allocated memory\n" \
-       "%[mf]          Monitor free memory\n" \
-       "%[mt]          Monitor total memory\n" \
-       "%s             Monitor allocated swap\n" \
-       "%f             Monitor number of used file descriptors\n" \
-       "%Ni            Monitor total/specific IRQ rate\n" \
-       "%x             Monitor context switch rate\n" \
-       "%p             Monitor forks\n" \
-       "%[pn]          Monitor # of processes\n" \
-       "%b             Monitor block io\n" \
-       "%Nt            Show time (with N decimal points)\n" \
-       "%Nd            Milliseconds between updates (default:1000)\n" \
-       "%r             Print <cr> instead of <lf> at EOL" \
+       " %[niface]     Monitor network interface 'iface'\n" \
+       " %m            Monitor allocated memory\n" \
+       " %[mf]         Monitor free memory\n" \
+       " %[mt]         Monitor total memory\n" \
+       " %s            Monitor allocated swap\n" \
+       " %f            Monitor number of used file descriptors\n" \
+       " %Ni           Monitor total/specific IRQ rate\n" \
+       " %x            Monitor context switch rate\n" \
+       " %p            Monitor forks\n" \
+       " %[pn]         Monitor # of processes\n" \
+       " %b            Monitor block io\n" \
+       " %Nt           Show time (with N decimal points)\n" \
+       " %Nd           Milliseconds between updates (default:1000)\n" \
+       " %r            Print <cr> instead of <lf> at EOL" \
 
 #define nmeter_example_usage \
        "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 \
        "Name:       debian\n" \
        "Address:    127.0.0.1\n"
 
+#define ntpd_trivial_usage \
+       "[-dnqwl] [-S PROG] [-p PEER]..."
+#define ntpd_full_usage "\n\n" \
+       "NTP client/server\n" \
+     "\nOptions:" \
+     "\n       -d      Verbose" \
+     "\n       -n      Do not daemonize" \
+     "\n       -q      Quit after clock is set" \
+/* -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" \
-       "to standard output. With no FILE or when FILE is -, read standard input."
+       "(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:" \
 #define openvt_example_usage \
        "openvt 2 /bin/ash\n"
 
+/*
 #define parse_trivial_usage \
-       "[-n maxtokens] [-m mintokens] [-d delims] [-f flags] file ..."
-#define parse_full_usage "\n\n" \
-       "[-n maxtokens] [-m mintokens] [-d delims] [-f flags] file ..."
+       "[-n MAXTOKENS] [-m MINTOKENS] [-d DELIMS] [-f FLAGS] FILE..."
+#define parse_full_usage ""
+*/
 
 #define passwd_trivial_usage \
        "[OPTIONS] [USER]"
        "Change USER's password. If no USER is specified,\n" \
        "changes the password for the current user.\n" \
      "\nOptions:" \
-     "\n       -a      Algorithm to use for password (choices: des, md5)" /* ", sha1)" */ \
+     "\n       -a      Algorithm to use for password (des, md5)" /* ", sha1)" */ \
      "\n       -d      Delete password for the account" \
      "\n       -l      Lock (disable) account" \
      "\n       -u      Unlock (re-enable) account" \
        )
 
 #define patch_trivial_usage \
-       "[-p NUM] [-i DIFF] [-R] [-N]"
+       "[OPTIONS] [ORIGFILE [PATCHFILE]]"
 #define patch_full_usage "\n\n" \
-       "       -p NUM  Strip NUM leading components from file names" \
+       IF_LONG_OPTS( \
+       "       -p,--strip N    Strip N leading components from file names" \
+     "\n       -i,--input DIFF Read DIFF instead of stdin" \
+     "\n       -R,--reverse    Reverse patch" \
+     "\n       -N,--forward    Ignore already applied patches" \
+     "\n       --dry-run       Don't actually change files" \
+       ) \
+       IF_NOT_LONG_OPTS( \
+       "       -p N    Strip N leading components from file names" \
      "\n       -i DIFF Read DIFF instead of stdin" \
      "\n       -R      Reverse patch" \
      "\n       -N      Ignore already applied patches" \
+       )
 
 #define patch_example_usage \
        "$ patch -p1 < example.diff\n" \
 
 #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" \
 #define ping_full_usage "\n\n" \
        "Send ICMP ECHO_REQUEST packets to network hosts\n" \
      "\nOptions:" \
-     "\n       -4, -6          Force IPv4 or IPv6 hostname resolution" \
+     "\n       -4, -6          Force IP or IPv6 name resolution" \
      "\n       -c CNT          Send only CNT pings" \
      "\n       -s SIZE         Send SIZE data bytes in packets (default:56)" \
      "\n       -I IFACE/IP     Use interface or IP address as source" \
      "\n       -P      Match parent process ID" \
 
 #define popmaildir_trivial_usage \
-       "[OPTIONS] Maildir [connection-helper ...]"
+       "[OPTIONS] MAILDIR [CONN_HELPER ARGS]"
 #define popmaildir_full_usage "\n\n" \
        "Fetch content of remote mailbox to local maildir\n" \
      "\nOptions:" \
-     "\n       -b              Binary mode. Ignored" \
-     "\n       -d              Debug. Ignored" \
-     "\n       -m              Show used memory. Ignored" \
-     "\n       -V              Show version. Ignored" \
-     "\n       -c              Use tcpclient. Ignored" \
-     "\n       -a              Use APOP protocol. Implied. If server supports APOP -> use it" \
+/*   "\n       -b              Binary mode. Ignored" */ \
+/*   "\n       -d              Debug. Ignored" */ \
+/*   "\n       -m              Show used memory. Ignored" */ \
+/*   "\n       -V              Show version. Ignored" */ \
+/*   "\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 timeout      Network timeout" \
+     "\n       -t SEC          Network timeout" \
        IF_FEATURE_POPMAILDIR_DELIVERY( \
-     "\n       -F \"program arg1 arg2 ...\"    Filter by program. May be multiple" \
-     "\n       -M \"program arg1 arg2 ...\"    Deliver by program" \
+     "\n       -F \"PROG ARGS\"        Filter program (may be repeated)" \
+     "\n       -M \"PROG ARGS\"        Delivery program" \
        ) \
-     "\n       -R size         Remove old messages on the server >= size (in bytes). Ignored" \
-     "\n       -Z N1-N2        Remove messages from N1 to N2 (dangerous). Ignored" \
-     "\n       -L size         Do not retrieve new messages >= size (in bytes). Ignored" \
-     "\n       -H lines        Type specified number of lines of a message. Ignored"
+     "\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" */
+/*   "\n       -H LINES        Type first LINES of a message. Ignored" */
 #define popmaildir_example_usage \
        "$ popmaildir -k ~/Maildir -- nc pop.drvv.ru 110 [<password_file]\n" \
        "$ popmaildir ~/Maildir -- openssl s_client -quiet -connect pop.gmail.com:995 [<password_file]\n"
 
 #define poweroff_trivial_usage \
-       "[-d delay] [-n] [-f]"
+       "[-d DELAY] [-n] [-f]"
 #define poweroff_full_usage "\n\n" \
        "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" \
      "\nOptions:" \
      "\n       -o col1,col2=header     Select columns for display" \
+       IF_FEATURE_SHOW_THREADS( \
+     "\n       -T                      Show threads" \
+       )
 
 #else /* !ENABLE_DESKTOP */
 
        "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" \
 #define readahead_trivial_usage \
        "[FILE]..."
 #define readahead_full_usage "\n\n" \
-       "Preload FILE(s) in RAM cache so that subsequent reads for those" \
-       "files do not block on disk I/O"
+       "Preload FILEs to RAM"
 
 #define readlink_trivial_usage \
        IF_FEATURE_READLINK_FOLLOW("[-fnv] ") "FILE"
        "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]"
+       "[-d DELAY] [-n] [-f]"
 #define reboot_full_usage "\n\n" \
        "Reboot the system\n" \
      "\nOptions:" \
 #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 do not 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..."
 #define rm_full_usage "\n\n" \
-       "Remove (unlink) the FILE(s). Use '--' to\n" \
-       "indicate that all following arguments are non-options.\n" \
+       "Remove (unlink) FILEs\n" \
      "\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( \
        "Options:" \
      "\n       -e CMD  Add CMD to sed commands to be executed" \
      "\n       -f FILE Add FILE contents to sed commands to be executed" \
-     "\n       -i      Edit files in-place" \
+     "\n       -i      Edit files in-place (else sends result to stdout)" \
      "\n       -n      Suppress automatic printing of pattern space" \
      "\n       -r      Use extended regex syntax" \
      "\n" \
-     "\nIf no -e or -f is given, the first non-option argument is taken as the sed" \
-     "\ncommand to interpret. All remaining arguments are names of input files; if no" \
-     "\ninput files are specified, then the standard input is read. Source files" \
-     "\nwill not be modified unless -i option is given." \
+     "\nIf no -e or -f, the first non-option argument is the sed command string." \
+     "\nRemaining arguments are input files (stdin if none)."
 
 #define sed_example_usage \
        "$ echo \"foo\" | sed -e 's/f[a-zA-Z]o/bar/g'\n" \
      "\n       -t              Read additional recipients from message body" \
      "\n       -f sender       Sender (required)" \
      "\n       -o options      Various options. -oi implied, others are ignored" \
+     "\n       -i              -oi synonym. implied and ignored" \
      "\n" \
      "\nBusybox specific options:" \
      "\n       -w seconds      Network timeout" \
        "[-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       [SETTING]       See manpage" \
 
 #define su_trivial_usage \
-       "[OPTIONS] [-] [username]"
+       "[OPTIONS] [-] [USERNAME]"
 #define su_full_usage "\n\n" \
        "Change user id or become root\n" \
      "\nOptions:" \
-     "\n       -p, -m  Preserve environment" \
+     "\n       -p,-m   Preserve environment" \
      "\n       -c CMD  Command to pass to 'sh -c'" \
      "\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" \
        "up: if service isn't running, start it. If service stops, restart it\n" \
        "once: like 'up', but if service stops, don't restart it\n" \
        "down: send TERM and CONT signals. If ./run exits, start ./finish\n" \
-       "       if it exists. After it stops, do not restart service\n" \
+       "       if it exists. After it stops, don't restart service\n" \
        "exit: send TERM and CONT signals to service and log service. If they exit,\n" \
        "       runsv exits too\n" \
        "pause, cont, hup, alarm, interrupt, quit, 1, 2, term, kill: send\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" \
 
      "\n       -a      Stop swapping on all swap devices" \
 
 #define swapon_trivial_usage \
-       "[-a]" IF_FEATURE_SWAPON_PRI(" [-p pri]") " [DEVICE]"
+       "[-a]" IF_FEATURE_SWAPON_PRI(" [-p PRI]") " [DEVICE]"
 #define swapon_full_usage "\n\n" \
        "Start swapping on DEVICE\n" \
      "\nOptions:" \
      "\n       -a      Start swapping on all swap devices" \
        IF_FEATURE_SWAPON_PRI( \
-     "\n       -p pri  Set swap device priority" \
+     "\n       -p PRI  Set swap device priority" \
        ) \
 
 #define switch_root_trivial_usage \
 
 #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)" \
-     "\n       -b NUM          Number of rotated logs to keep (default:1, max=99, 0=purge)") \
+     "\n       -b N            N rotated logs to keep (default:1, max=99, 0=purge)") \
        IF_FEATURE_REMOTE_LOG( \
      "\n       -R HOST[:PORT]  Log to IP or hostname on PORT (default PORT=514/UDP)" \
      "\n       -L              Log locally and via network (default is network only if -R)") \
 #define tac_trivial_usage \
        "[FILE]..."
 #define tac_full_usage "\n\n" \
-       "Concatenate FILE(s) and print them in reverse"
-
-#define tail_trivial_usage \
-       "[OPTIONS] [FILE]..."
-#define tail_full_usage "\n\n" \
-       "Print last 10 lines of each FILE to standard output.\n" \
-       "With more than one FILE, precede each with a header giving the\n" \
-       "file name. With no FILE, or when FILE is -, read standard input.\n" \
-     "\nOptions:" \
-       IF_FEATURE_FANCY_TAIL( \
-     "\n       -c N[kbm]       Output the 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"
+       "Concatenate FILEs and print them in reverse"
 
 #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(s)]..."
+       "[-f TARFILE] [-C DIR] [FILE]..."
 #define tar_full_usage "\n\n" \
-       "Create, extract, or list files from a tar file\n" \
+       IF_FEATURE_TAR_CREATE("Create, extract, ") \
+       IF_NOT_FEATURE_TAR_CREATE("Extract ") \
+       "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, do not overwrite" \
+     "\n       -a      Append to the given FILEs, don't overwrite" \
      "\n       -i      Ignore interrupt signals (SIGINT)" \
 
 #define tee_example_usage \
      "\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" \
-     "\nIP             IP to listen on. '0' = all" \
-     "\nPORT           Port to listen on" \
-     "\nPROG [ARGS]    Program to run" \
-     "\n-l NAME                Local hostname (else looks up local hostname in DNS)" \
-     "\n-u USER[:GROUP]        Change to user/group after bind" \
-     "\n-c N           Handle up to N connections simultaneously" \
-     "\n-b N           Allow a backlog of approximately N TCP SYNs" \
-     "\n-C N[:MSG]     Allow only up to N connections from the same IP" \
-     "\n               New connections from this IP address are closed" \
-     "\n               immediately. MSG is written to the peer before close" \
-     "\n-h             Look up peer's hostname" \
-     "\n-E             Do not set up environment variables" \
-     "\n-v             Verbose" \
+     "\n       IP              IP to listen on. '0' = all" \
+     "\n       PORT            Port to listen on" \
+     "\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       -b N            Allow a backlog of approximately N TCP SYNs" \
+     "\n       -C N[:MSG]      Allow only up to N connections from the same IP" \
+     "\n                       New connections from this IP address are closed" \
+     "\n                       immediately. MSG is written to the peer before close" \
+     "\n       -h              Look up peer's hostname" \
+     "\n       -E              Don't set up environment variables" \
+     "\n       -v              Verbose" \
 
 #define udpsvd_trivial_usage \
        "[-hEv] [-c N] [-u USER] [-l NAME] IP PORT PROG"
 #define udpsvd_full_usage "\n\n" \
        "Create UDP socket, bind to IP:PORT and wait\n" \
        "for incoming packets. Run PROG for each packet,\n" \
-       "redirecting all further packets with same peer ip:port to it\n" \
-     "\nIP             IP to listen on. '0' = all" \
-     "\nPORT           Port to listen on" \
-     "\nPROG [ARGS]    Program to run" \
-     "\n-l NAME                Local hostname (else looks up local hostname in DNS)" \
-     "\n-u USER[:GROUP]        Change to user/group after bind" \
-     "\n-c N           Handle up to N connections simultaneously" \
-     "\n-h             Look up peer's hostname" \
-     "\n-E             Do not set up environment variables" \
-     "\n-v             Verbose" \
+       "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       -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       -h              Look up peer's hostname" \
+     "\n       -E              Don't set up environment variables" \
+     "\n       -v              Verbose" \
 
 #define tftp_trivial_usage \
        "[OPTIONS] HOST [PORT]"
      "\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_trivial_usage \
-       "[-b] [-nCOUNT] [-dSECONDS]"
+       "[-b] [-nCOUNT] [-dSECONDS]" IF_FEATURE_TOPMEM(" [-m]")
 #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 touch_full_usage "\n\n" \
        "Update the last-modified date on the given FILE[s]\n" \
      "\nOptions:" \
-     "\n       -c      Do not create files" \
+     "\n       -c      Don't create files" \
      "\n       -d DT   Date/time to use" \
 
 #define touch_example_usage \
 #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" \
        "hello world\n"
 
 #define traceroute_trivial_usage \
-       "[-FIldnrv] [-f 1st_ttl] [-m max_ttl] [-p port#] [-q nqueries]\n" \
-       "       [-s src_addr] [-t tos] [-w wait] [-g gateway] [-i iface]\n" \
-       "       [-z pausemsecs] HOST [data size]"
+       "[-"IF_TRACEROUTE6("46")"FIldnrv] [-f 1ST_TTL] [-m MAXTTL] [-p PORT] [-q PROBES]\n" \
+       "       [-s SRC_IP] [-t TOS] [-w WAIT_SEC] [-g GATEWAY] [-i IFACE]\n" \
+       "       [-z PAUSE_MSEC] HOST [BYTES]"
 #define traceroute_full_usage "\n\n" \
        "Trace the route to HOST\n" \
      "\nOptions:" \
+       IF_TRACEROUTE6( \
+     "\n       -4, -6  Force IP or IPv6 name resolution" \
+       ) \
      "\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       -v      Verbose" \
+     "\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       -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       -g      Loose source route gateway (8 max)" \
+
+#define traceroute6_trivial_usage \
+       "[-dnrv] [-m MAXTTL] [-p PORT] [-q PROBES]\n" \
+       "       [-s SRC_IP] [-t TOS] [-w WAIT_SEC] [-i IFACE]\n" \
+       "       HOST [BYTES]"
+#define traceroute6_full_usage "\n\n" \
+       "Trace the route to HOST\n" \
+     "\nOptions:" \
      "\n       -d      Set SO_DEBUG options to socket" \
-     "\n       -n      Print hop addresses numerically rather than symbolically" \
-     "\n       -r      Bypass the normal routing tables and send directly to a host" \
+     "\n       -n      Print numeric addresses" \
+     "\n       -r      Bypass routing tables, send directly to HOST" \
      "\n       -v      Verbose" \
-     "\n       -m max_ttl      Max time-to-live (max number of hops)" \
-     "\n       -p port#        Base UDP port number used in probes" \
-     "\n                       (default 33434)" \
-     "\n       -q nqueries     Number of probes per 'ttl' (default 3)" \
-     "\n       -s src_addr     IP address to use as the source address" \
-     "\n       -t tos          Type-of-service in probe packets (default 0)" \
-     "\n       -w wait         Time in seconds to wait for a response" \
-     "\n                       (default 3 sec)" \
-     "\n       -g              Loose source route gateway (8 max)" \
+     "\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       -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 true_trivial_usage \
        ""
 #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]")
      "\n       -f name         tun device (/dev/net/tun)" \
      "\n       -t name         Create iface 'name'" \
      "\n       -d name         Delete iface 'name'" \
-IF_FEATURE_TUNCTL_UG( \
+       IF_FEATURE_TUNCTL_UG( \
      "\n       -u owner        Set iface owner" \
      "\n       -g group        Set iface group" \
      "\n       -b              Brief output" \
-)
+       )
 #define tunctl_example_usage \
        "# tunctl\n" \
        "# tunctl -d tun0\n"
 
 #define tune2fs_trivial_usage \
-       "[-c max-mounts-count] [-e errors-behavior] [-g group] " \
-       "[-i interval[d|m|w]] [-j] [-J journal-options] [-l] [-s sparse-flag] " \
-       "[-m reserved-blocks-percent] [-o [^]mount-options[,...]] " \
-       "[-r reserved-blocks-count] [-u user] [-C mount-count] " \
-       "[-L volume-label] [-M last-mounted-dir] [-O [^]feature[,...]] " \
-       "[-T last-check-time] [-U UUID] device"
+/*     "[-c max-mounts-count] [-e errors-behavior] [-g group] " */ \
+/*     "[-i interval[d|m|w]] [-j] [-J journal-options] [-l] [-s sparse-flag] " */ \
+/*     "[-m reserved-blocks-percent] [-o [^]mount-options[,...]] " */ \
+/*     "[-r reserved-blocks-count] [-u user] [-C mount-count] " */ \
+       "[-L LABEL] " \
+/*     "[-M last-mounted-dir] [-O [^]feature[,...]] " */ \
+/*     "[-T last-check-time] [-U UUID] " */ \
+       "BLOCKDEV"
 #define tune2fs_full_usage "\n\n" \
        "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 request packets" \
-     "\n       -T,--timeout=N          Try to get a lease for N seconds (default 3)" \
-     "\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 Do not 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              Do not 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 \
@@ -4736,11 +4918,11 @@ IF_FEATURE_TUNCTL_UG( \
      "\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 \
-       "[flags] FILESYSTEM|DIRECTORY"
+       "[OPTIONS] FILESYSTEM|DIRECTORY"
 #define umount_full_usage "\n\n" \
        "Unmount file systems\n" \
      "\nOptions:" \
@@ -4778,7 +4960,7 @@ IF_FEATURE_TUNCTL_UG( \
        "Linux debian 2.4.23 #2 Tue Dec 23 17:09:10 MST 2003 i686 GNU/Linux\n"
 
 #define uncompress_trivial_usage \
-       "[-c] [-f] [name...]"
+       "[-cf] [FILE]..."
 #define uncompress_full_usage "\n\n" \
        "Uncompress .Z file[s]\n" \
      "\nOptions:" \
@@ -4786,9 +4968,9 @@ IF_FEATURE_TUNCTL_UG( \
      "\n       -f      Overwrite an existing file" \
 
 #define unexpand_trivial_usage \
-       "[-f][-a][-t NUM] [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" \
@@ -4802,7 +4984,7 @@ IF_FEATURE_TUNCTL_UG( \
        )
 
 #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:" \
@@ -4820,7 +5002,7 @@ IF_FEATURE_TUNCTL_UG( \
        "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:" \
@@ -4829,8 +5011,8 @@ IF_FEATURE_TUNCTL_UG( \
      "\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 \
        ""
@@ -4851,7 +5033,7 @@ IF_FEATURE_TUNCTL_UG( \
        "[pauses for 1 second]\n"
 
 #define uudecode_trivial_usage \
-       "[-o outfile] [infile]"
+       "[-o OUTFILE] [INFILE]"
 #define uudecode_full_usage "\n\n" \
        "Uudecode a file\n" \
        "Finds outfile name in uuencoded source unless -o is given"
@@ -4862,7 +5044,7 @@ IF_FEATURE_TUNCTL_UG( \
        "-rwxr-xr-x   1 ams      ams        245264 Jun  7 21:35 busybox\n"
 
 #define uuencode_trivial_usage \
-       "[-m] [infile] stored_filename"
+       "[-m] [INFILE] STORED_FILENAME"
 #define uuencode_full_usage "\n\n" \
        "Uuencode a file to stdout\n" \
      "\nOptions:" \
@@ -4895,7 +5077,7 @@ IF_FEATURE_TUNCTL_UG( \
        IF_FEATURE_VI_COLON( \
      "\n       -c      Initial command to run ($EXINIT also available)") \
        IF_FEATURE_VI_READONLY( \
-     "\n       -R      Read-only - do not write to the file") \
+     "\n       -R      Read-only") \
      "\n       -H      Short help regarding available features" \
 
 #define vlock_trivial_usage \
@@ -4910,8 +5092,16 @@ IF_FEATURE_TUNCTL_UG( \
 #define volname_full_usage "\n\n" \
        "Show CD volume name of the DEVICE (default /dev/cdrom)"
 
+#define wall_trivial_usage \
+       "[FILE]"
+#define wall_full_usage "\n\n" \
+       "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:" \
@@ -4938,8 +5128,8 @@ IF_FEATURE_TUNCTL_UG( \
 #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" \
@@ -4952,12 +5142,12 @@ IF_FEATURE_TUNCTL_UG( \
 
 #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" \
@@ -4966,8 +5156,8 @@ IF_FEATURE_TUNCTL_UG( \
      "\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 \
@@ -4991,13 +5181,13 @@ IF_FEATURE_TUNCTL_UG( \
        "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") \
-     "\n       -r      Do not run command if input is empty" \
+     "\n       -r      Don't run command if input is empty" \
        IF_FEATURE_XARGS_SUPPORT_ZERO_TERM( \
      "\n       -0      Input is separated by NUL characters") \
      "\n       -t      Print the command on stderr before execution" \