ifplugd: simplify run_script()
[oweals/busybox.git] / include / usage.h
index f905145ae13ba4119f735ff5fe5b54af182be4a0..8c5a2dbc5c957631efd30e581ec7da915a070737 100644 (file)
        "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" \
        "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:" \
        "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 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       -d      Daemonize" \
 
 #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       -a      Interpret lease times as expire 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...]"
      "\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" \
      "\nOptions:" \
      "\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_SIZE( \
      "\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 fold_trivial_usage \
        "[-bs] [-w WIDTH] [FILE]"
      "\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:" \
      "\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" \
+     "\n       -m N    Match up to N times per file" \
        IF_DESKTOP( \
      "\n       -w      Match whole words only") \
      "\n       -F      PATTERN is a set of newline-separated strings" \
      "\n       -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") \
+     "\n       -A N    Print N lines of trailing context" \
+     "\n       -B N    Print N lines of leading context" \
+     "\n       -C N    Print N lines of output context") \
        IF_EXTRA_COMPAT( \
      "\n       -z      Input is NUL terminated") \
 
        "-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:" \
        "Print first 10 lines of each FILE (or standard input) to standard output.\n" \
        "With more than one FILE, precede each with a header giving the file name.\n" \
      "\nOptions:" \
-     "\n       -n NUM  Print first NUM lines instead of first 10" \
+     "\n       -n N    Print first N lines instead of first 10" \
        IF_FEATURE_FANCY_HEAD( \
-     "\n       -c NUM  Output the first NUM bytes" \
+     "\n       -c N    Output the first N bytes" \
      "\n       -q      Never output headers giving file names" \
      "\n       -v      Always output headers giving file names") \
 
      "\n       -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 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]"
        "       -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              Don't 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 filename] [-nXX] [-iXX] BLOCKDEV [KBYTES]"
 #define mkfs_minix_full_usage "\n\n" \
        "Make a MINIX filesystem\n" \
      "\nOptions:" \
      "\n       -l FILENAME     Read bad blocks list from FILENAME" \
      "\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" /* [SIZE_IN_KB] */
 #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]"
        "$ 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" \
        "Name:       debian\n" \
        "Address:    127.0.0.1\n"
 
+#define ntpd_trivial_usage \
+       "[-dnqwl] [-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       -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" \
 #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" \
 #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       -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 multiple" \
+     "\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         Don't retrieve new messages >= size (in bytes). Ignored" \
-     "\n       -H lines        Type specified number of lines of a message. Ignored"
+/*   "\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:" \
        "Return the absolute pathnames of given argument"
 
 #define reboot_trivial_usage \
-       "[-d delay] [-n] [-f]"
+       "[-d DELAY] [-n] [-f]"
 #define reboot_full_usage "\n\n" \
        "Reboot the system\n" \
      "\nOptions:" \
        "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       [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" \
 
      "\n       -s      Use System V sum algorithm (512byte blocks)" \
 
 #define sv_trivial_usage \
-       "[-v] [-w sec] command service..."
+       "[-v] [-w SEC] command service..."
 #define sv_full_usage "\n\n" \
        "Control services monitored by runsv supervisor.\n" \
        "Commands (only first character is enough):\n" \
      "\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 \
      "\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)") \
        "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       -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 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 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 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 \
        ""
      "\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"
 
@@ -4689,11 +4777,11 @@ IF_FEATURE_TUNCTL_UG( \
      "\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       -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       -s,--script=FILE        Run FILE at DHCP events (default "CONFIG_UDHCPC_DEFAULT_SCRIPT")" \
+     "\n       -t,--retries=N          Send up to N discover packets" \
+     "\n       -T,--timeout=N          Pause between packets (default 3 seconds)" \
      "\n       -A,--tryagain=N         Wait N seconds (default 20) after failure" \
      "\n       -O,--request-option=OPT Request DHCP option OPT (cumulative)" \
      "\n       -o,--no-default-options Don't request any options (unless -O is also given)" \
@@ -4718,9 +4806,9 @@ IF_FEATURE_TUNCTL_UG( \
      "\n       -H,-h HOSTNAME  Client hostname" \
      "\n       -c CLIENTID     Client identifier" \
      "\n       -C              Suppress default client identifier" \
-     "\n       -p file         Create pidfile" \
+     "\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       -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       -A N            Wait N seconds (default 20) after failure" \
@@ -4754,7 +4842,7 @@ IF_FEATURE_TUNCTL_UG( \
        )
 
 #define umount_trivial_usage \
-       "[flags] FILESYSTEM|DIRECTORY"
+       "[OPTIONS] FILESYSTEM|DIRECTORY"
 #define umount_full_usage "\n\n" \
        "Unmount file systems\n" \
      "\nOptions:" \
@@ -4792,7 +4880,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...]"
+       "[-c] [-f] [FILE...]"
 #define uncompress_full_usage "\n\n" \
        "Uncompress .Z file[s]\n" \
      "\nOptions:" \
@@ -4800,7 +4888,7 @@ IF_FEATURE_TUNCTL_UG( \
      "\n       -f      Overwrite an existing file" \
 
 #define unexpand_trivial_usage \
-       "[-f][-a][-t NUM] [FILE|-]"
+       "[-f][-a][-t N] [FILE|-]"
 #define unexpand_full_usage "\n\n" \
        "Convert spaces to tabs, writing to standard output\n" \
      "\nOptions:" \
@@ -4865,7 +4953,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"
@@ -4876,7 +4964,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:" \
@@ -4924,6 +5012,14 @@ 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 standard-input to all logged-in users"
+#define wall_sample_usage \
+       "echo foo | wall\n" \
+       "wall ./mymessage"
+
 #define watch_trivial_usage \
        "[-n seconds] [-t] PROG [ARGS]"
 #define watch_full_usage "\n\n" \