exclude --longopts from usage texts if those are disabled
diff --git a/include/usage.h b/include/usage.h
index 1e05532..3ee9961 100644
--- a/include/usage.h
+++ b/include/usage.h
@@ -210,21 +210,37 @@
" -v Set the file's version/generation number"
#define chcon_trivial_usage \
- "[OPTIONS] CONTEXT FILE...\n" \
- " chcon [OPTIONS] [-u USER] [-r ROLE] [-l RANGE] [-t TYPE] FILE...\n" \
- " chcon [OPTIONS] --reference=RFILE FILE...\n"
+ "[OPTIONS] CONTEXT FILE..." \
+ "\n chcon [OPTIONS] [-u USER] [-r ROLE] [-l RANGE] [-t TYPE] FILE..." \
+ USE_FEATURE_CHCON_LONG_OPTIONS( \
+ "\n chcon [OPTIONS] --reference=RFILE FILE..." \
+ )
#define chcon_full_usage \
"Change the security context of each FILE to CONTEXT\n" \
- "\n -v, --verbose Verbose" \
- "\n -c, --changes Report changes made" \
- "\n -h, --no-dereference Affect symlinks instead of their targets" \
- "\n -f, --silent, --quiet Suppress most error messages" \
+ USE_FEATURE_CHCON_LONG_OPTIONS( \
+ "\n -v,--verbose Verbose" \
+ "\n -c,--changes Report changes made" \
+ "\n -h,--no-dereference Affect symlinks instead of their targets" \
+ "\n -f,--silent,--quiet Suppress most error messages" \
"\n --reference=RFILE Use RFILE's group instead of using a CONTEXT value" \
- "\n -u, --user=USER Set user USER in the target security context" \
- "\n -r, --role=ROLE Set role ROLE in the target security context" \
- "\n -t, --type=TYPE Set type TYPE in the target security context" \
- "\n -l, --range=RANGE Set range RANGE in the target security context" \
- "\n -R, --recursive Recurse subdirectories" \
+ "\n -u,--user=USER Set user USER in the target security context" \
+ "\n -r,--role=ROLE Set role ROLE in the target security context" \
+ "\n -t,--type=TYPE Set type TYPE in the target security context" \
+ "\n -l,--range=RANGE Set range RANGE in the target security context" \
+ "\n -R,--recursive Recurse subdirectories" \
+ ) \
+ SKIP_FEATURE_CHCON_LONG_OPTIONS( \
+ "\n -v Verbose" \
+ "\n -c Report changes made" \
+ "\n -h Affect symlinks instead of their targets" \
+ "\n -f Suppress most error messages" \
+ "\n -u USER Set user USER in the target security context" \
+ "\n -r ROLE Set role ROLE in the target security context" \
+ "\n -t TYPE Set type TYPE in the target security context" \
+ "\n -l RNG Set range RNE in the target security context" \
+ "\n -R Recurse subdirectories" \
+ )
+
#define chmod_trivial_usage \
"[-R"USE_DESKTOP("cvf")"] MODE[,MODE]... FILE..."
@@ -780,9 +796,16 @@
#define dumpleases_full_usage \
"Display DHCP leases granted by udhcpd" \
"\n\nOptions:\n" \
- " -f, --file=FILENAME Leases file to load\n" \
- " -r, --remaining Interpret lease times as time remaining\n" \
- " -a, --absolute Interpret lease times as expire time"
+ USE_GETOPT_LONG( \
+ " -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" \
+ ) \
+ SKIP_GETOPT_LONG( \
+ " -f FILE Leases file to load\n" \
+ " -r Interpret lease times as time remaining\n" \
+ " -a Interpret lease times as expire time" \
+ )
#define e2fsck_trivial_usage \
"[-panyrcdfvstDFSV] [-b superblock] [-B blocksize] " \
@@ -1079,21 +1102,38 @@
#define ftpget_full_usage \
"Retrieve a remote file via FTP" \
"\n\nOptions:\n" \
- " -c, --continue Continue a previous transfer\n" \
- " -v, --verbose Verbose\n" \
- " -u, --username Username to be used\n" \
- " -p, --password Password to be used\n" \
- " -P, --port Port number to be used"
+ USE_GETOPT_LONG( \
+ " -c,--continue Continue previous transfer\n" \
+ " -v,--verbose Verbose\n" \
+ " -u,--username Username\n" \
+ " -p,--password Password\n" \
+ " -P,--port Port number" \
+ ) \
+ SKIP_GETOPT_LONG( \
+ " -c Continue previous transfer\n" \
+ " -v Verbose\n" \
+ " -u Username\n" \
+ " -p Password\n" \
+ " -P Port number" \
+ )
#define ftpput_trivial_usage \
"[options] remote-host remote-file local-file"
#define ftpput_full_usage \
"Store a local file on a remote machine via FTP" \
"\n\nOptions:\n" \
- " -v, --verbose Verbose\n" \
- " -u, --username Username to be used\n" \
- " -p, --password Password to be used\n" \
- " -P, --port Port number to be used"
+ USE_GETOPT_LONG( \
+ " -v,--verbose Verbose\n" \
+ " -u,--username Username\n" \
+ " -p,--password Password\n" \
+ " -P,--port Port number" \
+ ) \
+ SKIP_GETOPT_LONG( \
+ " -v Verbose\n" \
+ " -u Username\n" \
+ " -p Password\n" \
+ " -P Port number" \
+ )
#define fuser_trivial_usage \
"[options] file OR port/proto"
@@ -1113,15 +1153,28 @@
"[OPTIONS]..."
#define getopt_full_usage \
"Parse command options\n" \
- " -a, --alternative Allow long options starting with single -\n" \
- " -l, --longoptions=longopts Long options to be recognized\n" \
- " -n, --name=progname The name under which errors are reported\n" \
- " -o, --options=optstring Short options to be recognized\n" \
- " -q, --quiet Disable error reporting by getopt(3)\n" \
- " -Q, --quiet-output No normal output\n" \
- " -s, --shell=shell Set shell quoting conventions\n" \
- " -T, --test Test for getopt(1) version\n" \
- " -u, --unquoted Do not quote the output"
+ USE_GETOPT_LONG( \
+ " -a,--alternative Allow long options starting with single -\n" \
+ " -l,--longoptions=longopts Long options to be recognized\n" \
+ " -n,--name=progname The name under which errors are reported\n" \
+ " -o,--options=optstring Short options to be recognized\n" \
+ " -q,--quiet Disable error reporting by getopt(3)\n" \
+ " -Q,--quiet-output No normal output\n" \
+ " -s,--shell=shell Set shell quoting conventions\n" \
+ " -T,--test Test for getopt(1) version\n" \
+ " -u,--unquoted Don't quote the output" \
+ ) \
+ SKIP_GETOPT_LONG( \
+ " -a Allow long options starting with single -\n" \
+ " -l longopts Long options to be recognized\n" \
+ " -n progname The name under which errors are reported\n" \
+ " -o optstring Short options to be recognized\n" \
+ " -q Disable error reporting by getopt(3)\n" \
+ " -Q No normal output\n" \
+ " -s shell Set shell quoting conventions\n" \
+ " -T Test for getopt(1) version\n" \
+ " -u Don't quote the output" \
+ )
#define getopt_example_usage \
"$ cat getopt.test\n" \
"#!/bin/sh\n" \
@@ -2551,13 +2604,19 @@
" -u Unlocks (re-enables) the specified user account"
#define chpasswd_trivial_usage \
- "[--md5|--encrypt]"
+ USE_GETOPT_LONG("[--md5|--encrypt]") SKIP_GETOPT_LONG("[-m|-e]")
#define chpasswd_full_usage \
"Read user:password information from stdin\n" \
"and update /etc/passwd accordingly." \
"\n\nOptions:" \
- "\n -e, --encrypt Supplied passwords are in encrypted form" \
- "\n -m, --md5 Use MD5 encryption instead of DES"
+ USE_GETOPT_LONG( \
+ "\n -e,--encrypt Supplied passwords are in encrypted form" \
+ "\n -m,--md5 Use MD5 encryption instead of DES" \
+ ) \
+ SKIP_GETOPT_LONG( \
+ "\n -e Supplied passwords are in encrypted form" \
+ "\n -m Use MD5 encryption instead of DES" \
+ )
#define patch_trivial_usage \
"[-p num] [-i diff]"
@@ -3187,27 +3246,50 @@
"$ cat TODO | split -a 2 -l 2 TODO_\n"
#define start_stop_daemon_trivial_usage \
- "[OPTIONS] [--start|--stop] ... [-- arguments...]"
+ "[OPTIONS] [" \
+ USE_GETOPT_LONG("--start|--stop") SKIP_GETOPT_LONG("-S|-K") \
+ "] ... [-- arguments...]"
#define start_stop_daemon_full_usage \
"Start and stop services" \
"\n\nOptions:" \
- "\n -S|--start Start" \
- "\n -K|--stop Stop" \
- "\n -a|--startas pathname Starts process specified by pathname" \
- "\n -b|--background Put process into background" \
- "\n -u|--user username|uid Stop this user's processes" \
- "\n -x|--exec executable Program to either start or check" \
- "\n -m|--make-pidfile Create the -p file and enter pid in it" \
- "\n -n|--name process-name Stop processes with this name" \
- "\n -p|--pidfile pid-file Save or load pid using a pid-file" \
- "\n -q|--quiet Quiet" \
+ USE_GETOPT_LONG( \
+ "\n -S,--start Start" \
+ "\n -K,--stop Stop" \
+ "\n -a,--startas pathname Starts process specified by pathname" \
+ "\n -b,--background Put process into background" \
+ "\n -u,--user username|uid Stop this user's processes" \
+ "\n -x,--exec executable Program to either start or check" \
+ "\n -n,--name process-name Stop processes with this name" \
+ "\n -p,--pidfile pid-file Save or load pid using a pid-file" \
+ "\n -m,--make-pidfile Create the -p file and enter pid in it" \
+ "\n -q,--quiet Quiet" \
USE_FEATURE_START_STOP_DAEMON_FANCY( \
- "\n -o|--oknodo Exit status 0 if nothing done" \
- "\n -v|--verbose Verbose" \
- "\n -N|--nicelevel N Add N to process's nice level" \
+ "\n -o,--oknodo Exit status 0 if nothing done" \
+ "\n -v,--verbose Verbose" \
+ "\n -N,--nicelevel N Add N to process's nice level" \
) \
- "\n -s|--signal signal Signal to send (default TERM)" \
- "\n -c|--chuid user[:[group]] Change to specified user/group"
+ "\n -s,--signal signal Signal to send (default TERM)" \
+ "\n -c,--chuid user[:[grp]] Change to specified user/group" \
+ ) \
+ SKIP_GETOPT_LONG( \
+ "\n -S Start" \
+ "\n -K Stop" \
+ "\n -a pathname Starts process specified by pathname" \
+ "\n -b Put process into background" \
+ "\n -u username|uid Stop this user's processes" \
+ "\n -x executable Program to either start or check" \
+ "\n -n process-name Stop processes with this name" \
+ "\n -p pid-file Save or load pid using a pid-file" \
+ "\n -m Create the -p file and enter pid in it" \
+ "\n -q Quiet" \
+ USE_FEATURE_START_STOP_DAEMON_FANCY( \
+ "\n -o Exit status 0 if nothing done" \
+ "\n -v Verbose" \
+ "\n -N N Add N to process's nice level" \
+ ) \
+ "\n -s signal Signal to send (default TERM)" \
+ "\n -c user[:[grp]] Change to specified user/group" \
+ )
#define stat_trivial_usage \
"[OPTION] FILE..."