From: Emil Engler Date: Wed, 2 Sep 2020 18:11:20 +0000 (+0200) Subject: tool: update --help with categories X-Git-Tag: curl-7_73_0~145 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=aa8777f63febc;p=thirdparty%2Fcurl.git tool: update --help with categories This commit is a part of "--help me if you can" Closes #5680 --- diff --git a/src/tool_cfgable.h b/src/tool_cfgable.h index a3b8dd51b3..489f9ca0e4 100644 --- a/src/tool_cfgable.h +++ b/src/tool_cfgable.h @@ -312,6 +312,7 @@ struct GlobalConfig { bool parallel; long parallel_max; bool parallel_connect; + char *help_category; /* The help category, if set */ struct OperationConfig *first; struct OperationConfig *current; struct OperationConfig *last; /* Always last in the struct */ diff --git a/src/tool_getparam.c b/src/tool_getparam.c index 64c988122f..a884f4b381 100644 --- a/src/tool_getparam.c +++ b/src/tool_getparam.c @@ -1777,6 +1777,7 @@ ParameterError getparameter(const char *flag, /* f or -long-flag */ case 'h': /* h for help */ if(toggle) { + global->help_category = nextarg; return PARAM_HELP_REQUESTED; } /* we now actually support --no-help too! */ diff --git a/src/tool_help.c b/src/tool_help.c index c8b2f52c9f..54a37e6b22 100644 --- a/src/tool_help.c +++ b/src/tool_help.c @@ -35,6 +35,76 @@ # define USE_WATT32 #endif +/* + * The bitmask output is generated with the following command + ------------------------------------------------------------ + cd $srcroot/docs/cmdline-opts + ./gen.pl listcats *.d + */ + +#define CURLHELP_HIDDEN 1u << 0u +#define CURLHELP_AUTH 1u << 1u +#define CURLHELP_CONNECTION 1u << 2u +#define CURLHELP_CURL 1u << 3u +#define CURLHELP_DNS 1u << 4u +#define CURLHELP_FILE 1u << 5u +#define CURLHELP_FTP 1u << 6u +#define CURLHELP_HTTP 1u << 7u +#define CURLHELP_IMAP 1u << 8u +#define CURLHELP_IMPORTANT 1u << 9u +#define CURLHELP_MISC 1u << 10u +#define CURLHELP_OUTPUT 1u << 11u +#define CURLHELP_POP3 1u << 12u +#define CURLHELP_POST 1u << 13u +#define CURLHELP_PROXY 1u << 14u +#define CURLHELP_SCP 1u << 15u +#define CURLHELP_SFTP 1u << 16u +#define CURLHELP_SMTP 1u << 17u +#define CURLHELP_SSH 1u << 18u +#define CURLHELP_TELNET 1u << 19u +#define CURLHELP_TFTP 1u << 20u +#define CURLHELP_TLS 1u << 21u +#define CURLHELP_UPLOAD 1u << 22u +#define CURLHELP_VERBOSE 1u << 23u + +typedef unsigned int curlhelp_t; + +struct category_descriptors { + const char *opt; + const char *desc; + curlhelp_t category; +}; + +static const struct category_descriptors categories[] = { + {"auth", "Different types of authentication methods", CURLHELP_AUTH}, + {"connection", "Low level networking operations", + CURLHELP_CONNECTION}, + {"curl", "The command line tool itself", CURLHELP_CURL}, + {"dns", "General DNS options", CURLHELP_DNS}, + {"file", "FILE protocol options", CURLHELP_FILE}, + {"ftp", "FTP protocol options", CURLHELP_FTP}, + {"http", "HTTP and HTTPS protocol options", CURLHELP_HTTP}, + {"imap", "IMAP protocol options", CURLHELP_IMAP}, + /* important is left out because it is the default help page */ + {"misc", "Options that don't fit into any other category", CURLHELP_MISC}, + {"output", "The output of curl", CURLHELP_OUTPUT}, + {"pop3", "POP3 protocol options", CURLHELP_POP3}, + {"post", "HTTP Post specific options", CURLHELP_POST}, + {"proxy", "All options related to proxies", CURLHELP_PROXY}, + {"scp", "SCP protocol options", CURLHELP_SCP}, + {"sftp", "SFTP protocol options", CURLHELP_SFTP}, + {"smtp", "SMTP protocol options", CURLHELP_SMTP}, + {"ssh", "SSH protocol options", CURLHELP_SSH}, + {"telnet", "TELNET protocol options", CURLHELP_TELNET}, + {"tftp", "TFTP protocol options", CURLHELP_TFTP}, + {"tls", "All TLS/SSL related options", CURLHELP_TLS}, + {"upload", "All options for uploads", + CURLHELP_UPLOAD}, + {"verbose", "Options related to any kind of command line output of curl", + CURLHELP_VERBOSE}, + {NULL, NULL, CURLHELP_HIDDEN} +}; + /* * The help output is generated with the following command --------------------------------------------------------- @@ -46,479 +116,714 @@ struct helptxt { const char *opt; const char *desc; + curlhelp_t categories; }; static const struct helptxt helptext[] = { {" --abstract-unix-socket ", - "Connect via abstract Unix domain socket"}, + "Connect via abstract Unix domain socket", + CURLHELP_CONNECTION}, {" --alt-svc ", - "Enable alt-svc with this cache file"}, + "Enable alt-svc with this cache file", + CURLHELP_HTTP}, {" --anyauth", - "Pick any authentication method"}, + "Pick any authentication method", + CURLHELP_HTTP | CURLHELP_PROXY | CURLHELP_AUTH}, {"-a, --append", - "Append to target file when uploading"}, + "Append to target file when uploading", + CURLHELP_FTP | CURLHELP_SFTP}, {" --basic", - "Use HTTP Basic Authentication"}, + "Use HTTP Basic Authentication", + CURLHELP_AUTH}, {" --cacert ", - "CA certificate to verify peer against"}, + "CA certificate to verify peer against", + CURLHELP_TLS}, {" --capath ", - "CA directory to verify peer against"}, + "CA directory to verify peer against", + CURLHELP_TLS}, {"-E, --cert ", - "Client certificate file and password"}, + "Client certificate file and password", + CURLHELP_TLS}, {" --cert-status", - "Verify the status of the server certificate"}, + "Verify the status of the server certificate", + CURLHELP_TLS}, {" --cert-type ", - "Certificate type (DER/PEM/ENG)"}, + "Certificate type (DER/PEM/ENG)", + CURLHELP_TLS}, {" --ciphers ", - "SSL ciphers to use"}, + "SSL ciphers to use", + CURLHELP_TLS}, {" --compressed", - "Request compressed response"}, + "Request compressed response", + CURLHELP_HTTP}, {" --compressed-ssh", - "Enable SSH compression"}, + "Enable SSH compression", + CURLHELP_SCP | CURLHELP_SSH}, {"-K, --config ", - "Read config from a file"}, + "Read config from a file", + CURLHELP_CURL}, {" --connect-timeout ", - "Maximum time allowed for connection"}, + "Maximum time allowed for connection", + CURLHELP_CONNECTION}, {" --connect-to ", - "Connect to host"}, + "Connect to host", + CURLHELP_CONNECTION}, {"-C, --continue-at ", - "Resumed transfer offset"}, + "Resumed transfer offset", + CURLHELP_CONNECTION}, {"-b, --cookie ", - "Send cookies from string/file"}, + "Send cookies from string/file", + CURLHELP_HTTP}, {"-c, --cookie-jar ", - "Write cookies to after operation"}, + "Write cookies to after operation", + CURLHELP_HTTP}, {" --create-dirs", - "Create necessary local directory hierarchy"}, + "Create necessary local directory hierarchy", + CURLHELP_CURL}, {" --crlf", - "Convert LF to CRLF in upload"}, + "Convert LF to CRLF in upload", + CURLHELP_FTP | CURLHELP_SMTP}, {" --crlfile ", - "Get a CRL list in PEM format from the given file"}, + "Get a CRL list in PEM format from the given file", + CURLHELP_TLS}, {" --curves ", - "(EC) TLS key exchange algorithm(s) to request "}, + "(EC) TLS key exchange algorithm(s) to request", + CURLHELP_TLS}, {"-d, --data ", - "HTTP POST data"}, + "HTTP POST data", + CURLHELP_IMPORTANT | CURLHELP_HTTP | CURLHELP_POST | CURLHELP_UPLOAD}, {" --data-ascii ", - "HTTP POST ASCII data"}, + "HTTP POST ASCII data", + CURLHELP_HTTP | CURLHELP_POST | CURLHELP_UPLOAD}, {" --data-binary ", - "HTTP POST binary data"}, + "HTTP POST binary data", + CURLHELP_HTTP | CURLHELP_POST | CURLHELP_UPLOAD}, {" --data-raw ", - "HTTP POST data, '@' allowed"}, + "HTTP POST data, '@' allowed", + CURLHELP_HTTP | CURLHELP_POST | CURLHELP_UPLOAD}, {" --data-urlencode ", - "HTTP POST data url encoded"}, + "HTTP POST data url encoded", + CURLHELP_HTTP | CURLHELP_POST | CURLHELP_UPLOAD}, {" --delegation ", - "GSS-API delegation permission"}, + "GSS-API delegation permission", + CURLHELP_MISC}, {" --digest", - "Use HTTP Digest Authentication"}, + "Use HTTP Digest Authentication", + CURLHELP_PROXY | CURLHELP_AUTH | CURLHELP_HTTP}, {"-q, --disable", - "Disable .curlrc"}, + "Disable .curlrc", + CURLHELP_CURL}, {" --disable-eprt", - "Inhibit using EPRT or LPRT"}, + "Inhibit using EPRT or LPRT", + CURLHELP_FTP}, {" --disable-epsv", - "Inhibit using EPSV"}, + "Inhibit using EPSV", + CURLHELP_FTP}, {" --disallow-username-in-url", - "Disallow username in url"}, + "Disallow username in url", + CURLHELP_CURL | CURLHELP_HTTP}, {" --dns-interface ", - "Interface to use for DNS requests"}, + "Interface to use for DNS requests", + CURLHELP_DNS}, {" --dns-ipv4-addr
", - "IPv4 address to use for DNS requests"}, + "IPv4 address to use for DNS requests", + CURLHELP_DNS}, {" --dns-ipv6-addr
", - "IPv6 address to use for DNS requests"}, + "IPv6 address to use for DNS requests", + CURLHELP_DNS}, {" --dns-servers ", - "DNS server addrs to use"}, + "DNS server addrs to use", + CURLHELP_DNS}, {" --doh-url ", - "Resolve host names over DOH"}, + "Resolve host names over DOH", + CURLHELP_DNS}, {"-D, --dump-header ", - "Write the received headers to "}, + "Write the received headers to ", + CURLHELP_HTTP | CURLHELP_FTP}, {" --egd-file ", - "EGD socket path for random data"}, + "EGD socket path for random data", + CURLHELP_TLS}, {" --engine ", - "Crypto engine to use"}, + "Crypto engine to use", + CURLHELP_TLS}, {" --etag-compare ", - "Pass an ETag from a file as a custom header"}, + "Pass an ETag from a file as a custom header", + CURLHELP_HTTP}, {" --etag-save ", - "Parse ETag from a request and save it to a file"}, + "Parse ETag from a request and save it to a file", + CURLHELP_HTTP}, {" --expect100-timeout ", - "How long to wait for 100-continue"}, + "How long to wait for 100-continue", + CURLHELP_HTTP}, {"-f, --fail", - "Fail silently (no output at all) on HTTP errors"}, + "Fail silently (no output at all) on HTTP errors", + CURLHELP_IMPORTANT | CURLHELP_HTTP}, {" --fail-early", - "Fail on first transfer error, do not continue"}, + "Fail on first transfer error, do not continue", + CURLHELP_CURL}, {" --false-start", - "Enable TLS False Start"}, + "Enable TLS False Start", + CURLHELP_TLS}, {"-F, --form ", - "Specify multipart MIME data"}, + "Specify multipart MIME data", + CURLHELP_HTTP | CURLHELP_UPLOAD}, {" --form-string ", - "Specify multipart MIME data"}, + "Specify multipart MIME data", + CURLHELP_HTTP | CURLHELP_UPLOAD}, {" --ftp-account ", - "Account data string"}, + "Account data string", + CURLHELP_FTP | CURLHELP_AUTH}, {" --ftp-alternative-to-user ", - "String to replace USER [name]"}, + "String to replace USER [name]", + CURLHELP_FTP}, {" --ftp-create-dirs", - "Create the remote dirs if not present"}, + "Create the remote dirs if not present", + CURLHELP_FTP | CURLHELP_SFTP | CURLHELP_CURL}, {" --ftp-method ", - "Control CWD usage"}, + "Control CWD usage", + CURLHELP_FTP}, {" --ftp-pasv", - "Use PASV/EPSV instead of PORT"}, + "Use PASV/EPSV instead of PORT", + CURLHELP_FTP}, {"-P, --ftp-port
", - "Use PORT instead of PASV"}, + "Use PORT instead of PASV", + CURLHELP_FTP}, {" --ftp-pret", - "Send PRET before PASV"}, + "Send PRET before PASV", + CURLHELP_FTP}, {" --ftp-skip-pasv-ip", - "Skip the IP address for PASV"}, + "Skip the IP address for PASV", + CURLHELP_FTP}, {" --ftp-ssl-ccc", - "Send CCC after authenticating"}, + "Send CCC after authenticating", + CURLHELP_FTP | CURLHELP_TLS}, {" --ftp-ssl-ccc-mode ", - "Set CCC mode"}, + "Set CCC mode", + CURLHELP_FTP | CURLHELP_TLS}, {" --ftp-ssl-control", - "Require SSL/TLS for FTP login, clear for transfer"}, + "Require SSL/TLS for FTP login, clear for transfer", + CURLHELP_FTP | CURLHELP_TLS}, {"-G, --get", - "Put the post data in the URL and use GET"}, + "Put the post data in the URL and use GET", + CURLHELP_HTTP | CURLHELP_UPLOAD}, {"-g, --globoff", - "Disable URL sequences and ranges using {} and []"}, + "Disable URL sequences and ranges using {} and []", + CURLHELP_CURL}, {" --happy-eyeballs-timeout-ms ", - "Time for IPv6 before trying IPv4"}, + "Time for IPv6 before trying IPv4", + CURLHELP_CONNECTION}, {" --haproxy-protocol", - "Send HAProxy PROXY protocol v1 header"}, + "Send HAProxy PROXY protocol v1 header", + CURLHELP_HTTP | CURLHELP_PROXY}, {"-I, --head", - "Show document info only"}, + "Show document info only", + CURLHELP_HTTP | CURLHELP_FTP | CURLHELP_FILE}, {"-H, --header
", - "Pass custom header(s) to server"}, - {"-h, --help", - "This help text"}, + "Pass custom header(s) to server", + CURLHELP_HTTP}, + {"-h, --help ", + "Get help for commands", + CURLHELP_IMPORTANT | CURLHELP_CURL}, {" --hostpubmd5 ", - "Acceptable MD5 hash of the host public key"}, + "Acceptable MD5 hash of the host public key", + CURLHELP_SFTP | CURLHELP_SCP}, {" --http0.9", - "Allow HTTP 0.9 responses"}, + "Allow HTTP 0.9 responses", + CURLHELP_HTTP}, {"-0, --http1.0", - "Use HTTP 1.0"}, + "Use HTTP 1.0", + CURLHELP_HTTP}, {" --http1.1", - "Use HTTP 1.1"}, + "Use HTTP 1.1", + CURLHELP_HTTP}, {" --http2", - "Use HTTP 2"}, + "Use HTTP 2", + CURLHELP_HTTP}, {" --http2-prior-knowledge", - "Use HTTP 2 without HTTP/1.1 Upgrade"}, + "Use HTTP 2 without HTTP/1.1 Upgrade", + CURLHELP_HTTP}, {" --http3", - "Use HTTP v3"}, + "Use HTTP v3", + CURLHELP_HTTP}, {" --ignore-content-length", - "Ignore the size of the remote resource"}, + "Ignore the size of the remote resource", + CURLHELP_HTTP | CURLHELP_FTP}, {"-i, --include", - "Include protocol response headers in the output"}, + "Include protocol response headers in the output", + CURLHELP_IMPORTANT | CURLHELP_VERBOSE}, {"-k, --insecure", - "Allow insecure server connections when using SSL"}, + "Allow insecure server connections when using SSL", + CURLHELP_TLS}, {" --interface ", - "Use network INTERFACE (or address)"}, + "Use network INTERFACE (or address)", + CURLHELP_CONNECTION}, {"-4, --ipv4", - "Resolve names to IPv4 addresses"}, + "Resolve names to IPv4 addresses", + CURLHELP_CONNECTION | CURLHELP_DNS}, {"-6, --ipv6", - "Resolve names to IPv6 addresses"}, + "Resolve names to IPv6 addresses", + CURLHELP_CONNECTION | CURLHELP_DNS}, {"-j, --junk-session-cookies", - "Ignore session cookies read from file"}, + "Ignore session cookies read from file", + CURLHELP_HTTP}, {" --keepalive-time ", - "Interval time for keepalive probes"}, + "Interval time for keepalive probes", + CURLHELP_CONNECTION}, {" --key ", - "Private key file name"}, + "Private key file name", + CURLHELP_TLS | CURLHELP_SSH}, {" --key-type ", - "Private key file type (DER/PEM/ENG)"}, + "Private key file type (DER/PEM/ENG)", + CURLHELP_TLS}, {" --krb ", - "Enable Kerberos with security "}, + "Enable Kerberos with security ", + CURLHELP_FTP}, {" --libcurl ", - "Dump libcurl equivalent code of this command line"}, + "Dump libcurl equivalent code of this command line", + CURLHELP_CURL}, {" --limit-rate ", - "Limit transfer speed to RATE"}, + "Limit transfer speed to RATE", + CURLHELP_CONNECTION}, {"-l, --list-only", - "List only mode"}, + "List only mode", + CURLHELP_FTP | CURLHELP_POP3}, {" --local-port ", - "Force use of RANGE for local port numbers"}, + "Force use of RANGE for local port numbers", + CURLHELP_CONNECTION}, {"-L, --location", - "Follow redirects"}, + "Follow redirects", + CURLHELP_HTTP}, {" --location-trusted", - "Like --location, and send auth to other hosts"}, + "Like --location, and send auth to other hosts", + CURLHELP_HTTP | CURLHELP_AUTH}, {" --login-options ", - "Server login options"}, + "Server login options", + CURLHELP_IMAP | CURLHELP_POP3 | CURLHELP_SMTP | CURLHELP_AUTH}, {" --mail-auth
", - "Originator address of the original email"}, + "Originator address of the original email", + CURLHELP_SMTP}, {" --mail-from
", - "Mail from this address"}, + "Mail from this address", + CURLHELP_SMTP}, {" --mail-rcpt
", - "Mail to this address"}, + "Mail to this address", + CURLHELP_SMTP}, {" --mail-rcpt-allowfails", - "Allow RCPT TO command to fail for some recipients"}, + "Allow RCPT TO command to fail for some recipients", + CURLHELP_SMTP}, {"-M, --manual", - "Display the full manual"}, + "Display the full manual", + CURLHELP_CURL}, {" --max-filesize ", - "Maximum file size to download"}, + "Maximum file size to download", + CURLHELP_CONNECTION}, {" --max-redirs ", - "Maximum number of redirects allowed"}, + "Maximum number of redirects allowed", + CURLHELP_HTTP}, {"-m, --max-time ", - "Maximum time allowed for the transfer"}, + "Maximum time allowed for the transfer", + CURLHELP_CONNECTION}, {" --metalink", - "Process given URLs as metalink XML file"}, + "Process given URLs as metalink XML file", + CURLHELP_MISC}, {" --negotiate", - "Use HTTP Negotiate (SPNEGO) authentication"}, + "Use HTTP Negotiate (SPNEGO) authentication", + CURLHELP_AUTH | CURLHELP_HTTP}, {"-n, --netrc", - "Must read .netrc for user name and password"}, + "Must read .netrc for user name and password", + CURLHELP_CURL}, {" --netrc-file ", - "Specify FILE for netrc"}, + "Specify FILE for netrc", + CURLHELP_CURL}, {" --netrc-optional", - "Use either .netrc or URL"}, + "Use either .netrc or URL", + CURLHELP_CURL}, {"-:, --next", - "Make next URL use its separate set of options"}, + "Make next URL use its separate set of options", + CURLHELP_CURL}, {" --no-alpn", - "Disable the ALPN TLS extension"}, + "Disable the ALPN TLS extension", + CURLHELP_TLS | CURLHELP_HTTP}, {"-N, --no-buffer", - "Disable buffering of the output stream"}, + "Disable buffering of the output stream", + CURLHELP_CURL}, {" --no-keepalive", - "Disable TCP keepalive on the connection"}, + "Disable TCP keepalive on the connection", + CURLHELP_CONNECTION}, {" --no-npn", - "Disable the NPN TLS extension"}, + "Disable the NPN TLS extension", + CURLHELP_TLS | CURLHELP_HTTP}, {" --no-progress-meter", - "Do not show the progress meter"}, + "Do not show the progress meter", + CURLHELP_VERBOSE}, {" --no-sessionid", - "Disable SSL session-ID reusing"}, + "Disable SSL session-ID reusing", + CURLHELP_TLS}, {" --noproxy ", - "List of hosts which do not use proxy"}, + "List of hosts which do not use proxy", + CURLHELP_PROXY}, {" --ntlm", - "Use HTTP NTLM authentication"}, + "Use HTTP NTLM authentication", + CURLHELP_AUTH | CURLHELP_HTTP}, {" --ntlm-wb", - "Use HTTP NTLM authentication with winbind"}, + "Use HTTP NTLM authentication with winbind", + CURLHELP_AUTH | CURLHELP_HTTP}, {" --oauth2-bearer ", - "OAuth 2 Bearer Token"}, + "OAuth 2 Bearer Token", + CURLHELP_AUTH}, {"-o, --output ", - "Write to file instead of stdout"}, + "Write to file instead of stdout", + CURLHELP_IMPORTANT | CURLHELP_CURL}, {" --output-dir ", - "Directory to save files in"}, + "Directory to save files in", + CURLHELP_CURL}, {"-Z, --parallel", - "Perform transfers in parallel"}, + "Perform transfers in parallel", + CURLHELP_CONNECTION | CURLHELP_CURL}, {" --parallel-immediate", - "Do not wait for multiplexing (with --parallel)"}, + "Do not wait for multiplexing (with --parallel)", + CURLHELP_CONNECTION | CURLHELP_CURL}, {" --parallel-max", - "Maximum concurrency for parallel transfers"}, + "Maximum concurrency for parallel transfers", + CURLHELP_CONNECTION | CURLHELP_CURL}, {" --pass ", - "Pass phrase for the private key"}, + "Pass phrase for the private key", + CURLHELP_SSH | CURLHELP_TLS | CURLHELP_AUTH}, {" --path-as-is", - "Do not squash .. sequences in URL path"}, + "Do not squash .. sequences in URL path", + CURLHELP_CURL}, {" --pinnedpubkey ", - "FILE/HASHES Public key to verify peer against"}, + "FILE/HASHES Public key to verify peer against", + CURLHELP_TLS}, {" --post301", - "Do not switch to GET after following a 301"}, + "Do not switch to GET after following a 301", + CURLHELP_HTTP | CURLHELP_POST}, {" --post302", - "Do not switch to GET after following a 302"}, + "Do not switch to GET after following a 302", + CURLHELP_HTTP | CURLHELP_POST}, {" --post303", - "Do not switch to GET after following a 303"}, + "Do not switch to GET after following a 303", + CURLHELP_HTTP | CURLHELP_POST}, {" --preproxy [protocol://]host[:port]", - "Use this proxy first"}, + "Use this proxy first", + CURLHELP_PROXY}, {"-#, --progress-bar", - "Display transfer progress as a bar"}, + "Display transfer progress as a bar", + CURLHELP_VERBOSE}, {" --proto ", - "Enable/disable PROTOCOLS"}, + "Enable/disable PROTOCOLS", + CURLHELP_CONNECTION | CURLHELP_CURL}, {" --proto-default ", - "Use PROTOCOL for any URL missing a scheme"}, + "Use PROTOCOL for any URL missing a scheme", + CURLHELP_CONNECTION | CURLHELP_CURL}, {" --proto-redir ", - "Enable/disable PROTOCOLS on redirect"}, + "Enable/disable PROTOCOLS on redirect", + CURLHELP_CONNECTION | CURLHELP_CURL}, {"-x, --proxy [protocol://]host[:port]", - "Use this proxy"}, + "Use this proxy", + CURLHELP_PROXY}, {" --proxy-anyauth", - "Pick any proxy authentication method"}, + "Pick any proxy authentication method", + CURLHELP_PROXY | CURLHELP_AUTH}, {" --proxy-basic", - "Use Basic authentication on the proxy"}, + "Use Basic authentication on the proxy", + CURLHELP_PROXY | CURLHELP_AUTH}, {" --proxy-cacert ", - "CA certificate to verify peer against for proxy"}, + "CA certificate to verify peer against for proxy", + CURLHELP_PROXY | CURLHELP_TLS}, {" --proxy-capath ", - "CA directory to verify peer against for proxy"}, + "CA directory to verify peer against for proxy", + CURLHELP_PROXY | CURLHELP_TLS}, {" --proxy-cert ", - "Set client certificate for proxy"}, + "Set client certificate for proxy", + CURLHELP_PROXY | CURLHELP_TLS}, {" --proxy-cert-type ", - "Client certificate type for HTTPS proxy"}, + "Client certificate type for HTTPS proxy", + CURLHELP_PROXY | CURLHELP_TLS}, {" --proxy-ciphers ", - "SSL ciphers to use for proxy"}, + "SSL ciphers to use for proxy", + CURLHELP_PROXY | CURLHELP_TLS}, {" --proxy-crlfile ", - "Set a CRL list for proxy"}, + "Set a CRL list for proxy", + CURLHELP_PROXY | CURLHELP_TLS}, {" --proxy-digest", - "Use Digest authentication on the proxy"}, + "Use Digest authentication on the proxy", + CURLHELP_PROXY | CURLHELP_TLS}, {" --proxy-header
", - "Pass custom header(s) to proxy"}, + "Pass custom header(s) to proxy", + CURLHELP_PROXY}, {" --proxy-insecure", - "Do HTTPS proxy connections without verifying the proxy"}, + "Do HTTPS proxy connections without verifying the proxy", + CURLHELP_PROXY | CURLHELP_TLS}, {" --proxy-key ", - "Private key for HTTPS proxy"}, + "Private key for HTTPS proxy", + CURLHELP_PROXY | CURLHELP_TLS}, {" --proxy-key-type ", - "Private key file type for proxy"}, + "Private key file type for proxy", + CURLHELP_PROXY | CURLHELP_TLS}, {" --proxy-negotiate", - "Use HTTP Negotiate (SPNEGO) authentication on the proxy"}, + "Use HTTP Negotiate (SPNEGO) authentication on the proxy", + CURLHELP_PROXY | CURLHELP_AUTH}, {" --proxy-ntlm", - "Use NTLM authentication on the proxy"}, + "Use NTLM authentication on the proxy", + CURLHELP_PROXY | CURLHELP_AUTH}, {" --proxy-pass ", - "Pass phrase for the private key for HTTPS proxy"}, + "Pass phrase for the private key for HTTPS proxy", + CURLHELP_PROXY | CURLHELP_TLS | CURLHELP_AUTH}, {" --proxy-pinnedpubkey ", - "FILE/HASHES public key to verify proxy with"}, + "FILE/HASHES public key to verify proxy with", + CURLHELP_PROXY | CURLHELP_TLS}, {" --proxy-service-name ", - "SPNEGO proxy service name"}, + "SPNEGO proxy service name", + CURLHELP_PROXY | CURLHELP_TLS}, {" --proxy-ssl-allow-beast", - "Allow security flaw for interop for HTTPS proxy"}, + "Allow security flaw for interop for HTTPS proxy", + CURLHELP_PROXY | CURLHELP_TLS}, {" --proxy-tls13-ciphers ", - "TLS 1.3 proxy cipher suites"}, + "TLS 1.3 proxy cipher suites", + CURLHELP_PROXY | CURLHELP_TLS}, {" --proxy-tlsauthtype ", - "TLS authentication type for HTTPS proxy"}, + "TLS authentication type for HTTPS proxy", + CURLHELP_PROXY | CURLHELP_TLS | CURLHELP_AUTH}, {" --proxy-tlspassword ", - "TLS password for HTTPS proxy"}, + "TLS password for HTTPS proxy", + CURLHELP_PROXY | CURLHELP_TLS | CURLHELP_AUTH}, {" --proxy-tlsuser ", - "TLS username for HTTPS proxy"}, + "TLS username for HTTPS proxy", + CURLHELP_PROXY | CURLHELP_TLS | CURLHELP_AUTH}, {" --proxy-tlsv1", - "Use TLSv1 for HTTPS proxy"}, + "Use TLSv1 for HTTPS proxy", + CURLHELP_PROXY | CURLHELP_TLS | CURLHELP_AUTH}, {"-U, --proxy-user ", - "Proxy user and password"}, + "Proxy user and password", + CURLHELP_PROXY | CURLHELP_AUTH}, {" --proxy1.0 ", - "Use HTTP/1.0 proxy on given port"}, + "Use HTTP/1.0 proxy on given port", + CURLHELP_PROXY}, {"-p, --proxytunnel", - "Operate through an HTTP proxy tunnel (using CONNECT)"}, + "Operate through an HTTP proxy tunnel (using CONNECT)", + CURLHELP_PROXY}, {" --pubkey ", - "SSH Public key file name"}, + "SSH Public key file name", + CURLHELP_SFTP | CURLHELP_SCP | CURLHELP_AUTH}, {"-Q, --quote", - "Send command(s) to server before transfer"}, + "Send command(s) to server before transfer", + CURLHELP_FTP | CURLHELP_SFTP}, {" --random-file ", - "File for reading random data from"}, + "File for reading random data from", + CURLHELP_MISC}, {"-r, --range ", - "Retrieve only the bytes within RANGE"}, + "Retrieve only the bytes within RANGE", + CURLHELP_HTTP | CURLHELP_FTP | CURLHELP_SFTP | CURLHELP_FILE}, {" --raw", - "Do HTTP \"raw\"; no transfer decoding"}, + "Do HTTP \"raw\"; no transfer decoding", + CURLHELP_HTTP}, {"-e, --referer ", - "Referrer URL"}, + "Referrer URL", + CURLHELP_HTTP}, {"-J, --remote-header-name", - "Use the header-provided filename"}, + "Use the header-provided filename", + CURLHELP_OUTPUT}, {"-O, --remote-name", - "Write output to a file named as the remote file"}, + "Write output to a file named as the remote file", + CURLHELP_IMPORTANT | CURLHELP_OUTPUT}, {" --remote-name-all", - "Use the remote file name for all URLs"}, + "Use the remote file name for all URLs", + CURLHELP_OUTPUT}, {"-R, --remote-time", - "Set the remote file's time on the local output"}, + "Set the remote file's time on the local output", + CURLHELP_OUTPUT}, {"-X, --request ", - "Specify request command to use"}, + "Specify request command to use", + CURLHELP_CONNECTION}, {" --request-target", - "Specify the target for this request"}, + "Specify the target for this request", + CURLHELP_HTTP}, {" --resolve ", - "Resolve the host+port to this address"}, + "Resolve the host+port to this address", + CURLHELP_CONNECTION}, {" --retry ", - "Retry request if transient problems occur"}, + "Retry request if transient problems occur", + CURLHELP_CURL}, {" --retry-all-errors", - "Retry all errors (use with --retry)"}, + "Retry all errors (use with --retry)", + CURLHELP_CURL}, {" --retry-connrefused", - "Retry on connection refused (use with --retry)"}, + "Retry on connection refused (use with --retry)", + CURLHELP_CURL}, {" --retry-delay ", - "Wait time between retries"}, + "Wait time between retries", + CURLHELP_CURL}, {" --retry-max-time ", - "Retry only within this period"}, + "Retry only within this period", + CURLHELP_CURL}, {" --sasl-authzid ", - "Identity for SASL PLAIN authentication"}, + "Identity for SASL PLAIN authentication", + CURLHELP_AUTH}, {" --sasl-ir", - "Enable initial response in SASL authentication"}, + "Enable initial response in SASL authentication", + CURLHELP_AUTH}, {" --service-name ", - "SPNEGO service name"}, + "SPNEGO service name", + CURLHELP_MISC}, {"-S, --show-error", - "Show error even when -s is used"}, + "Show error even when -s is used", + CURLHELP_CURL}, {"-s, --silent", - "Silent mode"}, + "Silent mode", + CURLHELP_IMPORTANT | CURLHELP_VERBOSE}, {" --socks4 ", - "SOCKS4 proxy on given host + port"}, + "SOCKS4 proxy on given host + port", + CURLHELP_PROXY}, {" --socks4a ", - "SOCKS4a proxy on given host + port"}, + "SOCKS4a proxy on given host + port", + CURLHELP_PROXY}, {" --socks5 ", - "SOCKS5 proxy on given host + port"}, + "SOCKS5 proxy on given host + port", + CURLHELP_PROXY}, {" --socks5-basic", - "Enable username/password auth for SOCKS5 proxies"}, + "Enable username/password auth for SOCKS5 proxies", + CURLHELP_PROXY | CURLHELP_AUTH}, {" --socks5-gssapi", - "Enable GSS-API auth for SOCKS5 proxies"}, + "Enable GSS-API auth for SOCKS5 proxies", + CURLHELP_PROXY | CURLHELP_AUTH}, {" --socks5-gssapi-nec", - "Compatibility with NEC SOCKS5 server"}, + "Compatibility with NEC SOCKS5 server", + CURLHELP_PROXY | CURLHELP_AUTH}, {" --socks5-gssapi-service ", - "SOCKS5 proxy service name for GSS-API"}, + "SOCKS5 proxy service name for GSS-API", + CURLHELP_PROXY | CURLHELP_AUTH}, {" --socks5-hostname ", - "SOCKS5 proxy, pass host name to proxy"}, + "SOCKS5 proxy, pass host name to proxy", + CURLHELP_PROXY}, {"-Y, --speed-limit ", - "Stop transfers slower than this"}, + "Stop transfers slower than this", + CURLHELP_CONNECTION}, {"-y, --speed-time ", - "Trigger 'speed-limit' abort after this time"}, + "Trigger 'speed-limit' abort after this time", + CURLHELP_CONNECTION}, {" --ssl", - "Try SSL/TLS"}, + "Try SSL/TLS", + CURLHELP_TLS}, {" --ssl-allow-beast", - "Allow security flaw to improve interop"}, + "Allow security flaw to improve interop", + CURLHELP_TLS}, {" --ssl-no-revoke", - "Disable cert revocation checks (Schannel)"}, + "Disable cert revocation checks (Schannel)", + CURLHELP_TLS}, {" --ssl-reqd", - "Require SSL/TLS"}, + "Require SSL/TLS", + CURLHELP_TLS}, {" --ssl-revoke-best-effort", - "Ignore missing/offline cert CRL dist points"}, + "Ignore missing/offline cert CRL dist points", + CURLHELP_TLS}, {"-2, --sslv2", - "Use SSLv2"}, + "Use SSLv2", + CURLHELP_TLS}, {"-3, --sslv3", - "Use SSLv3"}, + "Use SSLv3", + CURLHELP_TLS}, {" --stderr", - "Where to redirect stderr"}, + "Where to redirect stderr", + CURLHELP_VERBOSE}, {" --styled-output", - "Enable styled output for HTTP headers"}, + "Enable styled output for HTTP headers", + CURLHELP_VERBOSE}, {" --suppress-connect-headers", - "Suppress proxy CONNECT response headers"}, + "Suppress proxy CONNECT response headers", + CURLHELP_MISC}, {" --tcp-fastopen", - "Use TCP Fast Open"}, + "Use TCP Fast Open", + CURLHELP_CONNECTION}, {" --tcp-nodelay", - "Use the TCP_NODELAY option"}, + "Use the TCP_NODELAY option", + CURLHELP_CONNECTION}, {"-t, --telnet-option ", - "Set telnet option"}, + "Set telnet option", + CURLHELP_TELNET}, {" --tftp-blksize ", - "Set TFTP BLKSIZE option"}, + "Set TFTP BLKSIZE option", + CURLHELP_TFTP}, {" --tftp-no-options", - "Do not send any TFTP options"}, + "Do not send any TFTP options", + CURLHELP_TFTP}, {"-z, --time-cond