]> git.ipfire.org Git - thirdparty/curl.git/commitdiff
tool_listhelp: easier to generate with gen.pl
authorDaniel Stenberg <daniel@haxx.se>
Tue, 28 Sep 2021 15:36:09 +0000 (17:36 +0200)
committerDaniel Stenberg <daniel@haxx.se>
Thu, 30 Sep 2021 15:50:48 +0000 (17:50 +0200)
tool_listhelp.c is now a separate file with only the command line --help
output, exactly as generated by gen.pl. This makes it easier to generate
updates according to what's in the docs/cmdline-opts docs.

  cd $srcroot/docs/cmdline-opts
  ./gen.pl listhelp *.d > $srcroot/src/tool_listhelp.c

With a configure build, this also works:

  make -C src listhelp

Closes #7787

docs/cmdline-opts/gen.pl
src/Makefile.am
src/Makefile.inc
src/tool_help.c
src/tool_help.h
src/tool_listhelp.c [new file with mode: 0644]
tests/data/test1463
tests/data/test1464
tests/manpage-scan.pl

index 405099b710902a33cac77192e8b705831e09fce4..2a89d5e7627c77e42fdb08a27a24f19a079860ab 100755 (executable)
@@ -47,6 +47,7 @@ my %catlong;
 
 use POSIX qw(strftime);
 my $date = strftime "%B %d %Y", localtime;
+my $year = strftime "%Y", localtime;
 my $version = "unknown";
 
 open(INC, "<../../include/curl/curlver.h");
@@ -418,6 +419,42 @@ sub header {
 }
 
 sub listhelp {
+    print <<HEAD
+/***************************************************************************
+ *                                  _   _ ____  _
+ *  Project                     ___| | | |  _ \\| |
+ *                             / __| | | | |_) | |
+ *                            | (__| |_| |  _ <| |___
+ *                             \\___|\\___/|_| \\_\\_____|
+ *
+ * Copyright (C) 1998 - $year, Daniel Stenberg, <daniel@haxx.se>, et al.
+ *
+ * This software is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at https://curl.se/docs/copyright.html.
+ *
+ * You may opt to use, copy, modify, merge, publish, distribute and/or sell
+ * copies of the Software, and permit persons to whom the Software is
+ * furnished to do so, under the terms of the COPYING file.
+ *
+ * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+ * KIND, either express or implied.
+ *
+ ***************************************************************************/
+#include "tool_setup.h"
+#include "tool_help.h"
+
+/*
+ * DO NOT edit tool_listhelp.c manually.
+ * This source file is generated with the following command:
+
+  cd \$srcroot/docs/cmdline-opts
+  ./gen.pl listhelp *.d > \$srcroot/src/tool_listhelp.c
+ */
+
+const struct helptxt helptext[] = {
+HEAD
+        ;
     foreach my $f (sort keys %helplong) {
         my $long = $f;
         my $short = $optlong{$long};
@@ -455,6 +492,11 @@ sub listhelp {
         }
         print $line;
     }
+    print <<FOOT
+  { NULL, NULL, CURLHELP_HIDDEN }
+};
+FOOT
+        ;
 }
 
 sub listcats {
index 7343731876f91ce49f4dcc7b4a059ed00a923cc7..c8abc93b140329591563264ba8779828ec3dd1d6 100644 (file)
@@ -150,3 +150,6 @@ TIDY:=clang-tidy
 
 tidy:
        $(TIDY) $(CURL_CFILES) $(TIDYFLAGS) -- $(curl_CPPFLAGS) $(CPPFLAGS) -DHAVE_CONFIG_H
+
+listhelp:
+       (cd $(top_srcdir)/docs/cmdline-opts && ./gen.pl listhelp *.d) > tool_listhelp.c
index 9839d4ff349faa1ce4dfb805c4b2ae9b2ef2217e..9fb9946d633510bc8145ea10b6c2371e8c4e577a 100644 (file)
@@ -73,6 +73,7 @@ CURL_CFILES = \
   tool_homedir.c \
   tool_hugehelp.c \
   tool_libinfo.c \
+  tool_listhelp.c \
   tool_main.c \
   tool_msgs.c \
   tool_operate.c \
index 46969e77f73f93879a8995043a511d6be884a886..8eee606b76f7ae7d4201e1695ad20f49ca1157a8 100644 (file)
 #  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;
@@ -108,753 +74,7 @@ static const struct category_descriptors categories[] = {
   {NULL, NULL, CURLHELP_HIDDEN}
 };
 
-/*
- * The help output is generated with the following command
- ---------------------------------------------------------
-
-  cd $srcroot/docs/cmdline-opts
-  ./gen.pl listhelp *.d
- */
-
-struct helptxt {
-  const char *opt;
-  const char *desc;
-  curlhelp_t categories;
-};
-
-
-static const struct helptxt helptext[] = {
-  {"    --abstract-unix-socket <path>",
-   "Connect via abstract Unix domain socket",
-   CURLHELP_CONNECTION},
-  {"    --alt-svc <file name>",
-   "Enable alt-svc with this cache file",
-   CURLHELP_HTTP},
-  {"    --anyauth",
-   "Pick any authentication method",
-   CURLHELP_HTTP | CURLHELP_PROXY | CURLHELP_AUTH},
-  {"-a, --append",
-   "Append to target file when uploading",
-   CURLHELP_FTP | CURLHELP_SFTP},
-  {"    --aws-sigv4 <provider1[:provider2[:region[:service]]]>",
-   "Use AWS V4 signature authentication",
-   CURLHELP_AUTH | CURLHELP_HTTP},
-  {"    --basic",
-   "Use HTTP Basic Authentication",
-   CURLHELP_AUTH},
-  {"    --cacert <file>",
-   "CA certificate to verify peer against",
-   CURLHELP_TLS},
-  {"    --capath <dir>",
-   "CA directory to verify peer against",
-   CURLHELP_TLS},
-  {"-E, --cert <certificate[:password]>",
-   "Client certificate file and password",
-   CURLHELP_TLS},
-  {"    --cert-status",
-   "Verify the status of the server cert via OCSP-staple",
-   CURLHELP_TLS},
-  {"    --cert-type <type>",
-   "Certificate type (DER/PEM/ENG)",
-   CURLHELP_TLS},
-  {"    --ciphers <list of ciphers>",
-   "SSL ciphers to use",
-   CURLHELP_TLS},
-  {"    --compressed",
-   "Request compressed response",
-   CURLHELP_HTTP},
-  {"    --compressed-ssh",
-   "Enable SSH compression",
-   CURLHELP_SCP | CURLHELP_SSH},
-  {"-K, --config <file>",
-   "Read config from a file",
-   CURLHELP_CURL},
-  {"    --connect-timeout <fractional seconds>",
-   "Maximum time allowed for connection",
-   CURLHELP_CONNECTION},
-  {"    --connect-to <HOST1:PORT1:HOST2:PORT2>",
-   "Connect to host",
-   CURLHELP_CONNECTION},
-  {"-C, --continue-at <offset>",
-   "Resumed transfer offset",
-   CURLHELP_CONNECTION},
-  {"-b, --cookie <data|filename>",
-   "Send cookies from string/file",
-   CURLHELP_HTTP},
-  {"-c, --cookie-jar <filename>",
-   "Write cookies to <filename> after operation",
-   CURLHELP_HTTP},
-  {"    --create-dirs",
-   "Create necessary local directory hierarchy",
-   CURLHELP_CURL},
-  {"    --create-file-mode <mode>",
-   "File mode (octal) for created files",
-   CURLHELP_SFTP | CURLHELP_SCP | CURLHELP_FILE | CURLHELP_UPLOAD},
-  {"    --crlf",
-   "Convert LF to CRLF in upload",
-   CURLHELP_FTP | CURLHELP_SMTP},
-  {"    --crlfile <file>",
-   "Use this CRL list",
-   CURLHELP_TLS},
-  {"    --curves <algorithm list>",
-   "(EC) TLS key exchange algorithm(s) to request",
-   CURLHELP_TLS},
-  {"-d, --data <data>",
-   "HTTP POST data",
-   CURLHELP_IMPORTANT | CURLHELP_HTTP | CURLHELP_POST | CURLHELP_UPLOAD},
-  {"    --data-ascii <data>",
-   "HTTP POST ASCII data",
-   CURLHELP_HTTP | CURLHELP_POST | CURLHELP_UPLOAD},
-  {"    --data-binary <data>",
-   "HTTP POST binary data",
-   CURLHELP_HTTP | CURLHELP_POST | CURLHELP_UPLOAD},
-  {"    --data-raw <data>",
-   "HTTP POST data, '@' allowed",
-   CURLHELP_HTTP | CURLHELP_POST | CURLHELP_UPLOAD},
-  {"    --data-urlencode <data>",
-   "HTTP POST data url encoded",
-   CURLHELP_HTTP | CURLHELP_POST | CURLHELP_UPLOAD},
-  {"    --delegation <LEVEL>",
-   "GSS-API delegation permission",
-   CURLHELP_AUTH},
-  {"    --digest",
-   "Use HTTP Digest Authentication",
-   CURLHELP_PROXY | CURLHELP_AUTH | CURLHELP_HTTP},
-  {"-q, --disable",
-   "Disable .curlrc",
-   CURLHELP_CURL},
-  {"    --disable-eprt",
-   "Inhibit using EPRT or LPRT",
-   CURLHELP_FTP},
-  {"    --disable-epsv",
-   "Inhibit using EPSV",
-   CURLHELP_FTP},
-  {"    --disallow-username-in-url",
-   "Disallow username in url",
-   CURLHELP_CURL | CURLHELP_HTTP},
-  {"    --dns-interface <interface>",
-   "Interface to use for DNS requests",
-   CURLHELP_DNS},
-  {"    --dns-ipv4-addr <address>",
-   "IPv4 address to use for DNS requests",
-   CURLHELP_DNS},
-  {"    --dns-ipv6-addr <address>",
-   "IPv6 address to use for DNS requests",
-   CURLHELP_DNS},
-  {"    --dns-servers <addresses>",
-   "DNS server addrs to use",
-   CURLHELP_DNS},
-  {"    --doh-cert-status",
-   "Verify the status of the DoH server cert via OCSP-staple",
-   CURLHELP_DNS | CURLHELP_TLS},
-  {"    --doh-insecure",
-   "Allow insecure DoH server connections",
-   CURLHELP_DNS | CURLHELP_TLS},
-  {"    --doh-url <URL>",
-   "Resolve host names over DoH",
-   CURLHELP_DNS},
-  {"-D, --dump-header <filename>",
-   "Write the received headers to <filename>",
-   CURLHELP_HTTP | CURLHELP_FTP},
-  {"    --egd-file <file>",
-   "EGD socket path for random data",
-   CURLHELP_TLS},
-  {"    --engine <name>",
-   "Crypto engine to use",
-   CURLHELP_TLS},
-  {"    --etag-compare <file>",
-   "Pass an ETag from a file as a custom header",
-   CURLHELP_HTTP},
-  {"    --etag-save <file>",
-   "Parse ETag from a request and save it to a file",
-   CURLHELP_HTTP},
-  {"    --expect100-timeout <seconds>",
-   "How long to wait for 100-continue",
-   CURLHELP_HTTP},
-  {"-f, --fail",
-   "Fail silently (no output at all) on HTTP errors",
-   CURLHELP_IMPORTANT | CURLHELP_HTTP},
-  {"    --fail-early",
-   "Fail on first transfer error, do not continue",
-   CURLHELP_CURL},
-  {"    --fail-with-body",
-   "Fail on HTTP errors but save the body",
-   CURLHELP_HTTP | CURLHELP_OUTPUT},
-  {"    --false-start",
-   "Enable TLS False Start",
-   CURLHELP_TLS},
-  {"-F, --form <name=content>",
-   "Specify multipart MIME data",
-   CURLHELP_HTTP | CURLHELP_UPLOAD},
-  {"    --form-string <name=string>",
-   "Specify multipart MIME data",
-   CURLHELP_HTTP | CURLHELP_UPLOAD},
-  {"    --ftp-account <data>",
-   "Account data string",
-   CURLHELP_FTP | CURLHELP_AUTH},
-  {"    --ftp-alternative-to-user <command>",
-   "String to replace USER [name]",
-   CURLHELP_FTP},
-  {"    --ftp-create-dirs",
-   "Create the remote dirs if not present",
-   CURLHELP_FTP | CURLHELP_SFTP | CURLHELP_CURL},
-  {"    --ftp-method <method>",
-   "Control CWD usage",
-   CURLHELP_FTP},
-  {"    --ftp-pasv",
-   "Use PASV/EPSV instead of PORT",
-   CURLHELP_FTP},
-  {"-P, --ftp-port <address>",
-   "Use PORT instead of PASV",
-   CURLHELP_FTP},
-  {"    --ftp-pret",
-   "Send PRET before PASV",
-   CURLHELP_FTP},
-  {"    --ftp-skip-pasv-ip",
-   "Skip the IP address for PASV",
-   CURLHELP_FTP},
-  {"    --ftp-ssl-ccc",
-   "Send CCC after authenticating",
-   CURLHELP_FTP | CURLHELP_TLS},
-  {"    --ftp-ssl-ccc-mode <active/passive>",
-   "Set CCC mode",
-   CURLHELP_FTP | CURLHELP_TLS},
-  {"    --ftp-ssl-control",
-   "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",
-   CURLHELP_HTTP | CURLHELP_UPLOAD},
-  {"-g, --globoff",
-   "Disable URL sequences and ranges using {} and []",
-   CURLHELP_CURL},
-  {"    --happy-eyeballs-timeout-ms <milliseconds>",
-   "Time for IPv6 before trying IPv4",
-   CURLHELP_CONNECTION},
-  {"    --haproxy-protocol",
-   "Send HAProxy PROXY protocol v1 header",
-   CURLHELP_HTTP | CURLHELP_PROXY},
-  {"-I, --head",
-   "Show document info only",
-   CURLHELP_HTTP | CURLHELP_FTP | CURLHELP_FILE},
-  {"-H, --header <header/@file>",
-   "Pass custom header(s) to server",
-   CURLHELP_HTTP},
-  {"-h, --help <category>",
-   "Get help for commands",
-   CURLHELP_IMPORTANT | CURLHELP_CURL},
-  {"    --hostpubmd5 <md5>",
-   "Acceptable MD5 hash of the host public key",
-   CURLHELP_SFTP | CURLHELP_SCP},
-  {"    --hostpubsha256 <sha256>",
-   "Acceptable SHA256 hash of the host public key",
-   CURLHELP_SFTP | CURLHELP_SCP},
-  {"    --hsts <file name>",
-   "Enable HSTS with this cache file",
-   CURLHELP_HTTP},
-  {"    --http0.9",
-   "Allow HTTP 0.9 responses",
-   CURLHELP_HTTP},
-  {"-0, --http1.0",
-   "Use HTTP 1.0",
-   CURLHELP_HTTP},
-  {"    --http1.1",
-   "Use HTTP 1.1",
-   CURLHELP_HTTP},
-  {"    --http2",
-   "Use HTTP 2",
-   CURLHELP_HTTP},
-  {"    --http2-prior-knowledge",
-   "Use HTTP 2 without HTTP/1.1 Upgrade",
-   CURLHELP_HTTP},
-  {"    --http3",
-   "Use HTTP v3",
-   CURLHELP_HTTP},
-  {"    --ignore-content-length",
-   "Ignore the size of the remote resource",
-   CURLHELP_HTTP | CURLHELP_FTP},
-  {"-i, --include",
-   "Include protocol response headers in the output",
-   CURLHELP_IMPORTANT | CURLHELP_VERBOSE},
-  {"-k, --insecure",
-   "Allow insecure server connections when using SSL",
-   CURLHELP_TLS},
-  {"    --interface <name>",
-   "Use network INTERFACE (or address)",
-   CURLHELP_CONNECTION},
-  {"-4, --ipv4",
-   "Resolve names to IPv4 addresses",
-   CURLHELP_CONNECTION | CURLHELP_DNS},
-  {"-6, --ipv6",
-   "Resolve names to IPv6 addresses",
-   CURLHELP_CONNECTION | CURLHELP_DNS},
-  {"-j, --junk-session-cookies",
-   "Ignore session cookies read from file",
-   CURLHELP_HTTP},
-  {"    --keepalive-time <seconds>",
-   "Interval time for keepalive probes",
-   CURLHELP_CONNECTION},
-  {"    --key <key>",
-   "Private key file name",
-   CURLHELP_TLS | CURLHELP_SSH},
-  {"    --key-type <type>",
-   "Private key file type (DER/PEM/ENG)",
-   CURLHELP_TLS},
-  {"    --krb <level>",
-   "Enable Kerberos with security <level>",
-   CURLHELP_FTP},
-  {"    --libcurl <file>",
-   "Dump libcurl equivalent code of this command line",
-   CURLHELP_CURL},
-  {"    --limit-rate <speed>",
-   "Limit transfer speed to RATE",
-   CURLHELP_CONNECTION},
-  {"-l, --list-only",
-   "List only mode",
-   CURLHELP_FTP | CURLHELP_POP3},
-  {"    --local-port <num/range>",
-   "Force use of RANGE for local port numbers",
-   CURLHELP_CONNECTION},
-  {"-L, --location",
-   "Follow redirects",
-   CURLHELP_HTTP},
-  {"    --location-trusted",
-   "Like --location, and send auth to other hosts",
-   CURLHELP_HTTP | CURLHELP_AUTH},
-  {"    --login-options <options>",
-   "Server login options",
-   CURLHELP_IMAP | CURLHELP_POP3 | CURLHELP_SMTP | CURLHELP_AUTH},
-  {"    --mail-auth <address>",
-   "Originator address of the original email",
-   CURLHELP_SMTP},
-  {"    --mail-from <address>",
-   "Mail from this address",
-   CURLHELP_SMTP},
-  {"    --mail-rcpt <address>",
-   "Mail to this address",
-   CURLHELP_SMTP},
-  {"    --mail-rcpt-allowfails",
-   "Allow RCPT TO command to fail for some recipients",
-   CURLHELP_SMTP},
-  {"-M, --manual",
-   "Display the full manual",
-   CURLHELP_CURL},
-  {"    --max-filesize <bytes>",
-   "Maximum file size to download",
-   CURLHELP_CONNECTION},
-  {"    --max-redirs <num>",
-   "Maximum number of redirects allowed",
-   CURLHELP_HTTP},
-  {"-m, --max-time <fractional seconds>",
-   "Maximum time allowed for the transfer",
-   CURLHELP_CONNECTION},
-  {"    --metalink",
-   "Process given URLs as metalink XML file",
-   CURLHELP_MISC},
-  {"    --negotiate",
-   "Use HTTP Negotiate (SPNEGO) authentication",
-   CURLHELP_AUTH | CURLHELP_HTTP},
-  {"-n, --netrc",
-   "Must read .netrc for user name and password",
-   CURLHELP_CURL},
-  {"    --netrc-file <filename>",
-   "Specify FILE for netrc",
-   CURLHELP_CURL},
-  {"    --netrc-optional",
-   "Use either .netrc or URL",
-   CURLHELP_CURL},
-  {"-:, --next",
-   "Make next URL use its separate set of options",
-   CURLHELP_CURL},
-  {"    --no-alpn",
-   "Disable the ALPN TLS extension",
-   CURLHELP_TLS | CURLHELP_HTTP},
-  {"-N, --no-buffer",
-   "Disable buffering of the output stream",
-   CURLHELP_CURL},
-  {"    --no-keepalive",
-   "Disable TCP keepalive on the connection",
-   CURLHELP_CONNECTION},
-  {"    --no-npn",
-   "Disable the NPN TLS extension",
-   CURLHELP_TLS | CURLHELP_HTTP},
-  {"    --no-progress-meter",
-   "Do not show the progress meter",
-   CURLHELP_VERBOSE},
-  {"    --no-sessionid",
-   "Disable SSL session-ID reusing",
-   CURLHELP_TLS},
-  {"    --noproxy <no-proxy-list>",
-   "List of hosts which do not use proxy",
-   CURLHELP_PROXY},
-  {"    --ntlm",
-   "Use HTTP NTLM authentication",
-   CURLHELP_AUTH | CURLHELP_HTTP},
-  {"    --ntlm-wb",
-   "Use HTTP NTLM authentication with winbind",
-   CURLHELP_AUTH | CURLHELP_HTTP},
-  {"    --oauth2-bearer <token>",
-   "OAuth 2 Bearer Token",
-   CURLHELP_AUTH},
-  {"-o, --output <file>",
-   "Write to file instead of stdout",
-   CURLHELP_IMPORTANT | CURLHELP_CURL},
-  {"    --output-dir <dir>",
-   "Directory to save files in",
-   CURLHELP_CURL},
-  {"-Z, --parallel",
-   "Perform transfers in parallel",
-   CURLHELP_CONNECTION | CURLHELP_CURL},
-  {"    --parallel-immediate",
-   "Do not wait for multiplexing (with --parallel)",
-   CURLHELP_CONNECTION | CURLHELP_CURL},
-  {"    --parallel-max <num>",
-   "Maximum concurrency for parallel transfers",
-   CURLHELP_CONNECTION | CURLHELP_CURL},
-  {"    --pass <phrase>",
-   "Pass phrase for the private key",
-   CURLHELP_SSH | CURLHELP_TLS | CURLHELP_AUTH},
-  {"    --path-as-is",
-   "Do not squash .. sequences in URL path",
-   CURLHELP_CURL},
-  {"    --pinnedpubkey <hashes>",
-   "FILE/HASHES Public key to verify peer against",
-   CURLHELP_TLS},
-  {"    --post301",
-   "Do not switch to GET after following a 301",
-   CURLHELP_HTTP | CURLHELP_POST},
-  {"    --post302",
-   "Do not switch to GET after following a 302",
-   CURLHELP_HTTP | CURLHELP_POST},
-  {"    --post303",
-   "Do not switch to GET after following a 303",
-   CURLHELP_HTTP | CURLHELP_POST},
-  {"    --preproxy [protocol://]host[:port]",
-   "Use this proxy first",
-   CURLHELP_PROXY},
-  {"-#, --progress-bar",
-   "Display transfer progress as a bar",
-   CURLHELP_VERBOSE},
-  {"    --proto <protocols>",
-   "Enable/disable PROTOCOLS",
-   CURLHELP_CONNECTION | CURLHELP_CURL},
-  {"    --proto-default <protocol>",
-   "Use PROTOCOL for any URL missing a scheme",
-   CURLHELP_CONNECTION | CURLHELP_CURL},
-  {"    --proto-redir <protocols>",
-   "Enable/disable PROTOCOLS on redirect",
-   CURLHELP_CONNECTION | CURLHELP_CURL},
-  {"-x, --proxy [protocol://]host[:port]",
-   "Use this proxy",
-   CURLHELP_PROXY},
-  {"    --proxy-anyauth",
-   "Pick any proxy authentication method",
-   CURLHELP_PROXY | CURLHELP_AUTH},
-  {"    --proxy-basic",
-   "Use Basic authentication on the proxy",
-   CURLHELP_PROXY | CURLHELP_AUTH},
-  {"    --proxy-cacert <file>",
-   "CA certificate to verify peer against for proxy",
-   CURLHELP_PROXY | CURLHELP_TLS},
-  {"    --proxy-capath <dir>",
-   "CA directory to verify peer against for proxy",
-   CURLHELP_PROXY | CURLHELP_TLS},
-  {"    --proxy-cert <cert[:passwd]>",
-   "Set client certificate for proxy",
-   CURLHELP_PROXY | CURLHELP_TLS},
-  {"    --proxy-cert-type <type>",
-   "Client certificate type for HTTPS proxy",
-   CURLHELP_PROXY | CURLHELP_TLS},
-  {"    --proxy-ciphers <list>",
-   "SSL ciphers to use for proxy",
-   CURLHELP_PROXY | CURLHELP_TLS},
-  {"    --proxy-crlfile <file>",
-   "Set a CRL list for proxy",
-   CURLHELP_PROXY | CURLHELP_TLS},
-  {"    --proxy-digest",
-   "Use Digest authentication on the proxy",
-   CURLHELP_PROXY | CURLHELP_TLS},
-  {"    --proxy-header <header/@file>",
-   "Pass custom header(s) to proxy",
-   CURLHELP_PROXY},
-  {"    --proxy-insecure",
-   "Do HTTPS proxy connections without verifying the proxy",
-   CURLHELP_PROXY | CURLHELP_TLS},
-  {"    --proxy-key <key>",
-   "Private key for HTTPS proxy",
-   CURLHELP_PROXY | CURLHELP_TLS},
-  {"    --proxy-key-type <type>",
-   "Private key file type for proxy",
-   CURLHELP_PROXY | CURLHELP_TLS},
-  {"    --proxy-negotiate",
-   "Use HTTP Negotiate (SPNEGO) authentication on the proxy",
-   CURLHELP_PROXY | CURLHELP_AUTH},
-  {"    --proxy-ntlm",
-   "Use NTLM authentication on the proxy",
-   CURLHELP_PROXY | CURLHELP_AUTH},
-  {"    --proxy-pass <phrase>",
-   "Pass phrase for the private key for HTTPS proxy",
-   CURLHELP_PROXY | CURLHELP_TLS | CURLHELP_AUTH},
-  {"    --proxy-pinnedpubkey <hashes>",
-   "FILE/HASHES public key to verify proxy with",
-   CURLHELP_PROXY | CURLHELP_TLS},
-  {"    --proxy-service-name <name>",
-   "SPNEGO proxy service name",
-   CURLHELP_PROXY | CURLHELP_TLS},
-  {"    --proxy-ssl-allow-beast",
-   "Allow security flaw for interop for HTTPS proxy",
-   CURLHELP_PROXY | CURLHELP_TLS},
-  {"    --proxy-ssl-auto-client-cert",
-   "Use auto client certificate for proxy (Schannel)",
-   CURLHELP_PROXY | CURLHELP_TLS},
-  {"    --proxy-tls13-ciphers <ciphersuite list>",
-   "TLS 1.3 proxy cipher suites",
-   CURLHELP_PROXY | CURLHELP_TLS},
-  {"    --proxy-tlsauthtype <type>",
-   "TLS authentication type for HTTPS proxy",
-   CURLHELP_PROXY | CURLHELP_TLS | CURLHELP_AUTH},
-  {"    --proxy-tlspassword <string>",
-   "TLS password for HTTPS proxy",
-   CURLHELP_PROXY | CURLHELP_TLS | CURLHELP_AUTH},
-  {"    --proxy-tlsuser <name>",
-   "TLS username for HTTPS proxy",
-   CURLHELP_PROXY | CURLHELP_TLS | CURLHELP_AUTH},
-  {"    --proxy-tlsv1",
-   "Use TLSv1 for HTTPS proxy",
-   CURLHELP_PROXY | CURLHELP_TLS | CURLHELP_AUTH},
-  {"-U, --proxy-user <user:password>",
-   "Proxy user and password",
-   CURLHELP_PROXY | CURLHELP_AUTH},
-  {"    --proxy1.0 <host[:port]>",
-   "Use HTTP/1.0 proxy on given port",
-   CURLHELP_PROXY},
-  {"-p, --proxytunnel",
-   "Operate through an HTTP proxy tunnel (using CONNECT)",
-   CURLHELP_PROXY},
-  {"    --pubkey <key>",
-   "SSH Public key file name",
-   CURLHELP_SFTP | CURLHELP_SCP | CURLHELP_AUTH},
-  {"-Q, --quote <command>",
-   "Send command(s) to server before transfer",
-   CURLHELP_FTP | CURLHELP_SFTP},
-  {"    --random-file <file>",
-   "File for reading random data from",
-   CURLHELP_MISC},
-  {"-r, --range <range>",
-   "Retrieve only the bytes within RANGE",
-   CURLHELP_HTTP | CURLHELP_FTP | CURLHELP_SFTP | CURLHELP_FILE},
-  {"    --raw",
-   "Do HTTP \"raw\"; no transfer decoding",
-   CURLHELP_HTTP},
-  {"-e, --referer <URL>",
-   "Referrer URL",
-   CURLHELP_HTTP},
-  {"-J, --remote-header-name",
-   "Use the header-provided filename",
-   CURLHELP_OUTPUT},
-  {"-O, --remote-name",
-   "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",
-   CURLHELP_OUTPUT},
-  {"-R, --remote-time",
-   "Set the remote file's time on the local output",
-   CURLHELP_OUTPUT},
-  {"-X, --request <command>",
-   "Specify request command to use",
-   CURLHELP_CONNECTION},
-  {"    --request-target <path>",
-   "Specify the target for this request",
-   CURLHELP_HTTP},
-  {"    --resolve <[+]host:port:addr[,addr]...>",
-   "Resolve the host+port to this address",
-   CURLHELP_CONNECTION},
-  {"    --retry <num>",
-   "Retry request if transient problems occur",
-   CURLHELP_CURL},
-  {"    --retry-all-errors",
-   "Retry all errors (use with --retry)",
-   CURLHELP_CURL},
-  {"    --retry-connrefused",
-   "Retry on connection refused (use with --retry)",
-   CURLHELP_CURL},
-  {"    --retry-delay <seconds>",
-   "Wait time between retries",
-   CURLHELP_CURL},
-  {"    --retry-max-time <seconds>",
-   "Retry only within this period",
-   CURLHELP_CURL},
-  {"    --sasl-authzid <identity>",
-   "Identity for SASL PLAIN authentication",
-   CURLHELP_AUTH},
-  {"    --sasl-ir",
-   "Enable initial response in SASL authentication",
-   CURLHELP_AUTH},
-  {"    --service-name <name>",
-   "SPNEGO service name",
-   CURLHELP_MISC},
-  {"-S, --show-error",
-   "Show error even when -s is used",
-   CURLHELP_CURL},
-  {"-s, --silent",
-   "Silent mode",
-   CURLHELP_IMPORTANT | CURLHELP_VERBOSE},
-  {"    --socks4 <host[:port]>",
-   "SOCKS4 proxy on given host + port",
-   CURLHELP_PROXY},
-  {"    --socks4a <host[:port]>",
-   "SOCKS4a proxy on given host + port",
-   CURLHELP_PROXY},
-  {"    --socks5 <host[:port]>",
-   "SOCKS5 proxy on given host + port",
-   CURLHELP_PROXY},
-  {"    --socks5-basic",
-   "Enable username/password auth for SOCKS5 proxies",
-   CURLHELP_PROXY | CURLHELP_AUTH},
-  {"    --socks5-gssapi",
-   "Enable GSS-API auth for SOCKS5 proxies",
-   CURLHELP_PROXY | CURLHELP_AUTH},
-  {"    --socks5-gssapi-nec",
-   "Compatibility with NEC SOCKS5 server",
-   CURLHELP_PROXY | CURLHELP_AUTH},
-  {"    --socks5-gssapi-service <name>",
-   "SOCKS5 proxy service name for GSS-API",
-   CURLHELP_PROXY | CURLHELP_AUTH},
-  {"    --socks5-hostname <host[:port]>",
-   "SOCKS5 proxy, pass host name to proxy",
-   CURLHELP_PROXY},
-  {"-Y, --speed-limit <speed>",
-   "Stop transfers slower than this",
-   CURLHELP_CONNECTION},
-  {"-y, --speed-time <seconds>",
-   "Trigger 'speed-limit' abort after this time",
-   CURLHELP_CONNECTION},
-  {"    --ssl",
-   "Try SSL/TLS",
-   CURLHELP_TLS},
-  {"    --ssl-allow-beast",
-   "Allow security flaw to improve interop",
-   CURLHELP_TLS},
-  {"    --ssl-auto-client-cert",
-   "Use auto client certificate (Schannel)",
-   CURLHELP_TLS},
-  {"    --ssl-no-revoke",
-   "Disable cert revocation checks (Schannel)",
-   CURLHELP_TLS},
-  {"    --ssl-reqd",
-   "Require SSL/TLS",
-   CURLHELP_TLS},
-  {"    --ssl-revoke-best-effort",
-   "Ignore missing/offline cert CRL dist points",
-   CURLHELP_TLS},
-  {"-2, --sslv2",
-   "Use SSLv2",
-   CURLHELP_TLS},
-  {"-3, --sslv3",
-   "Use SSLv3",
-   CURLHELP_TLS},
-  {"    --stderr <file>",
-   "Where to redirect stderr",
-   CURLHELP_VERBOSE},
-  {"    --styled-output",
-   "Enable styled output for HTTP headers",
-   CURLHELP_VERBOSE},
-  {"    --suppress-connect-headers",
-   "Suppress proxy CONNECT response headers",
-   CURLHELP_PROXY},
-  {"    --tcp-fastopen",
-   "Use TCP Fast Open",
-   CURLHELP_CONNECTION},
-  {"    --tcp-nodelay",
-   "Use the TCP_NODELAY option",
-   CURLHELP_CONNECTION},
-  {"-t, --telnet-option <opt=val>",
-   "Set telnet option",
-   CURLHELP_TELNET},
-  {"    --tftp-blksize <value>",
-   "Set TFTP BLKSIZE option",
-   CURLHELP_TFTP},
-  {"    --tftp-no-options",
-   "Do not send any TFTP options",
-   CURLHELP_TFTP},
-  {"-z, --time-cond <time>",
-   "Transfer based on a time condition",
-   CURLHELP_HTTP | CURLHELP_FTP},
-  {"    --tls-max <VERSION>",
-   "Set maximum allowed TLS version",
-   CURLHELP_TLS},
-  {"    --tls13-ciphers <ciphersuite list>",
-   "TLS 1.3 cipher suites to use",
-   CURLHELP_TLS},
-  {"    --tlsauthtype <type>",
-   "TLS authentication type",
-   CURLHELP_TLS | CURLHELP_AUTH},
-  {"    --tlspassword <string>",
-   "TLS password",
-   CURLHELP_TLS | CURLHELP_AUTH},
-  {"    --tlsuser <name>",
-   "TLS user name",
-   CURLHELP_TLS | CURLHELP_AUTH},
-  {"-1, --tlsv1",
-   "Use TLSv1.0 or greater",
-   CURLHELP_TLS},
-  {"    --tlsv1.0",
-   "Use TLSv1.0 or greater",
-   CURLHELP_TLS},
-  {"    --tlsv1.1",
-   "Use TLSv1.1 or greater",
-   CURLHELP_TLS},
-  {"    --tlsv1.2",
-   "Use TLSv1.2 or greater",
-   CURLHELP_TLS},
-  {"    --tlsv1.3",
-   "Use TLSv1.3 or greater",
-   CURLHELP_TLS},
-  {"    --tr-encoding",
-   "Request compressed transfer encoding",
-   CURLHELP_HTTP},
-  {"    --trace <file>",
-   "Write a debug trace to FILE",
-   CURLHELP_VERBOSE},
-  {"    --trace-ascii <file>",
-   "Like --trace, but without hex output",
-   CURLHELP_VERBOSE},
-  {"    --trace-time",
-   "Add time stamps to trace/verbose output",
-   CURLHELP_VERBOSE},
-  {"    --unix-socket <path>",
-   "Connect through this Unix domain socket",
-   CURLHELP_CONNECTION},
-  {"-T, --upload-file <file>",
-   "Transfer local FILE to destination",
-   CURLHELP_IMPORTANT | CURLHELP_UPLOAD},
-  {"    --url <url>",
-   "URL to work with",
-   CURLHELP_CURL},
-  {"-B, --use-ascii",
-   "Use ASCII/text transfer",
-   CURLHELP_MISC},
-  {"-u, --user <user:password>",
-   "Server user and password",
-   CURLHELP_IMPORTANT | CURLHELP_AUTH},
-  {"-A, --user-agent <name>",
-   "Send User-Agent <name> to server",
-   CURLHELP_IMPORTANT | CURLHELP_HTTP},
-  {"-v, --verbose",
-   "Make the operation more talkative",
-   CURLHELP_IMPORTANT | CURLHELP_VERBOSE},
-  {"-V, --version",
-   "Show version number and quit",
-   CURLHELP_IMPORTANT | CURLHELP_CURL},
-  {"-w, --write-out <format>",
-   "Use output FORMAT after completion",
-   CURLHELP_VERBOSE},
-  {"    --xattr",
-   "Store metadata in extended file attributes",
-   CURLHELP_MISC},
-  { NULL, NULL, CURLHELP_HIDDEN }
-};
+extern const struct helptxt helptext[];
 
 struct feat {
   const char *name;
index 39ea2400dc1eb5d9991e9512915ef6dc691ee12c..143466286f7f4d852fd64f21cb6c18ce05b772f6 100644 (file)
@@ -7,7 +7,7 @@
  *                            | (__| |_| |  _ <| |___
  *                             \___|\___/|_| \_\_____|
  *
- * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2021, Daniel Stenberg, <daniel@haxx.se>, et al.
  *
  * This software is licensed as described in the file COPYING, which
  * you should have received as part of this distribution. The terms
@@ -27,4 +27,46 @@ void tool_help(char *category);
 void tool_list_engines(void);
 void tool_version_info(void);
 
+typedef unsigned int curlhelp_t;
+
+struct helptxt {
+  const char *opt;
+  const char *desc;
+  curlhelp_t categories;
+};
+
+/*
+ * 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
+
+extern const struct helptxt helptext[];
+
 #endif /* HEADER_CURL_TOOL_HELP_H */
diff --git a/src/tool_listhelp.c b/src/tool_listhelp.c
new file mode 100644 (file)
index 0000000..ce92ec0
--- /dev/null
@@ -0,0 +1,764 @@
+/***************************************************************************
+ *                                  _   _ ____  _
+ *  Project                     ___| | | |  _ \| |
+ *                             / __| | | | |_) | |
+ *                            | (__| |_| |  _ <| |___
+ *                             \___|\___/|_| \_\_____|
+ *
+ * Copyright (C) 1998 - 2021, Daniel Stenberg, <daniel.se>, et al.
+ *
+ * This software is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at https://curl.se/docs/copyright.html.
+ *
+ * You may opt to use, copy, modify, merge, publish, distribute and/or sell
+ * copies of the Software, and permit persons to whom the Software is
+ * furnished to do so, under the terms of the COPYING file.
+ *
+ * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+ * KIND, either express or implied.
+ *
+ ***************************************************************************/
+#include "tool_setup.h"
+#include "tool_help.h"
+
+/*
+ * DO NOT edit tool_listhelp.c manually.
+ * This source file is generated with the following command:
+
+  cd $srcroot/docs/cmdline-opts
+  ./gen.pl listhelp *.d > $srcroot/src/tool_listhelp.c
+ */
+
+const struct helptxt helptext[] = {
+  {"    --abstract-unix-socket <path>",
+   "Connect via abstract Unix domain socket",
+   CURLHELP_CONNECTION},
+  {"    --alt-svc <file name>",
+   "Enable alt-svc with this cache file",
+   CURLHELP_HTTP},
+  {"    --anyauth",
+   "Pick any authentication method",
+   CURLHELP_HTTP | CURLHELP_PROXY | CURLHELP_AUTH},
+  {"-a, --append",
+   "Append to target file when uploading",
+   CURLHELP_FTP | CURLHELP_SFTP},
+  {"    --aws-sigv4 <provider1[:provider2[:region[:service]]]>",
+   "Use AWS V4 signature authentication",
+   CURLHELP_AUTH | CURLHELP_HTTP},
+  {"    --basic",
+   "Use HTTP Basic Authentication",
+   CURLHELP_AUTH},
+  {"    --cacert <file>",
+   "CA certificate to verify peer against",
+   CURLHELP_TLS},
+  {"    --capath <dir>",
+   "CA directory to verify peer against",
+   CURLHELP_TLS},
+  {"-E, --cert <certificate[:password]>",
+   "Client certificate file and password",
+   CURLHELP_TLS},
+  {"    --cert-status",
+   "Verify the status of the server cert via OCSP-staple",
+   CURLHELP_TLS},
+  {"    --cert-type <type>",
+   "Certificate type (DER/PEM/ENG)",
+   CURLHELP_TLS},
+  {"    --ciphers <list of ciphers>",
+   "SSL ciphers to use",
+   CURLHELP_TLS},
+  {"    --compressed",
+   "Request compressed response",
+   CURLHELP_HTTP},
+  {"    --compressed-ssh",
+   "Enable SSH compression",
+   CURLHELP_SCP | CURLHELP_SSH},
+  {"-K, --config <file>",
+   "Read config from a file",
+   CURLHELP_CURL},
+  {"    --connect-timeout <fractional seconds>",
+   "Maximum time allowed for connection",
+   CURLHELP_CONNECTION},
+  {"    --connect-to <HOST1:PORT1:HOST2:PORT2>",
+   "Connect to host",
+   CURLHELP_CONNECTION},
+  {"-C, --continue-at <offset>",
+   "Resumed transfer offset",
+   CURLHELP_CONNECTION},
+  {"-b, --cookie <data|filename>",
+   "Send cookies from string/file",
+   CURLHELP_HTTP},
+  {"-c, --cookie-jar <filename>",
+   "Write cookies to <filename> after operation",
+   CURLHELP_HTTP},
+  {"    --create-dirs",
+   "Create necessary local directory hierarchy",
+   CURLHELP_CURL},
+  {"    --create-file-mode <mode>",
+   "File mode for created files",
+   CURLHELP_SFTP | CURLHELP_SCP | CURLHELP_FILE | CURLHELP_UPLOAD},
+  {"    --crlf",
+   "Convert LF to CRLF in upload",
+   CURLHELP_FTP | CURLHELP_SMTP},
+  {"    --crlfile <file>",
+   "Use this CRL list",
+   CURLHELP_TLS},
+  {"    --curves <algorithm list>",
+   "(EC) TLS key exchange algorithm(s) to request",
+   CURLHELP_TLS},
+  {"-d, --data <data>",
+   "HTTP POST data",
+   CURLHELP_IMPORTANT | CURLHELP_HTTP | CURLHELP_POST | CURLHELP_UPLOAD},
+  {"    --data-ascii <data>",
+   "HTTP POST ASCII data",
+   CURLHELP_HTTP | CURLHELP_POST | CURLHELP_UPLOAD},
+  {"    --data-binary <data>",
+   "HTTP POST binary data",
+   CURLHELP_HTTP | CURLHELP_POST | CURLHELP_UPLOAD},
+  {"    --data-raw <data>",
+   "HTTP POST data, '@' allowed",
+   CURLHELP_HTTP | CURLHELP_POST | CURLHELP_UPLOAD},
+  {"    --data-urlencode <data>",
+   "HTTP POST data url encoded",
+   CURLHELP_HTTP | CURLHELP_POST | CURLHELP_UPLOAD},
+  {"    --delegation <LEVEL>",
+   "GSS-API delegation permission",
+   CURLHELP_AUTH},
+  {"    --digest",
+   "Use HTTP Digest Authentication",
+   CURLHELP_PROXY | CURLHELP_AUTH | CURLHELP_HTTP},
+  {"-q, --disable",
+   "Disable .curlrc",
+   CURLHELP_CURL},
+  {"    --disable-eprt",
+   "Inhibit using EPRT or LPRT",
+   CURLHELP_FTP},
+  {"    --disable-epsv",
+   "Inhibit using EPSV",
+   CURLHELP_FTP},
+  {"    --disallow-username-in-url",
+   "Disallow username in url",
+   CURLHELP_CURL | CURLHELP_HTTP},
+  {"    --dns-interface <interface>",
+   "Interface to use for DNS requests",
+   CURLHELP_DNS},
+  {"    --dns-ipv4-addr <address>",
+   "IPv4 address to use for DNS requests",
+   CURLHELP_DNS},
+  {"    --dns-ipv6-addr <address>",
+   "IPv6 address to use for DNS requests",
+   CURLHELP_DNS},
+  {"    --dns-servers <addresses>",
+   "DNS server addrs to use",
+   CURLHELP_DNS},
+  {"    --doh-cert-status",
+   "Verify the status of the DoH server cert via OCSP-staple",
+   CURLHELP_DNS | CURLHELP_TLS},
+  {"    --doh-insecure",
+   "Allow insecure DoH server connections",
+   CURLHELP_DNS | CURLHELP_TLS},
+  {"    --doh-url <URL>",
+   "Resolve host names over DoH",
+   CURLHELP_DNS},
+  {"-D, --dump-header <filename>",
+   "Write the received headers to <filename>",
+   CURLHELP_HTTP | CURLHELP_FTP},
+  {"    --egd-file <file>",
+   "EGD socket path for random data",
+   CURLHELP_TLS},
+  {"    --engine <name>",
+   "Crypto engine to use",
+   CURLHELP_TLS},
+  {"    --etag-compare <file>",
+   "Pass an ETag from a file as a custom header",
+   CURLHELP_HTTP},
+  {"    --etag-save <file>",
+   "Parse ETag from a request and save it to a file",
+   CURLHELP_HTTP},
+  {"    --expect100-timeout <seconds>",
+   "How long to wait for 100-continue",
+   CURLHELP_HTTP},
+  {"-f, --fail",
+   "Fail silently (no output at all) on HTTP errors",
+   CURLHELP_IMPORTANT | CURLHELP_HTTP},
+  {"    --fail-early",
+   "Fail on first transfer error, do not continue",
+   CURLHELP_CURL},
+  {"    --fail-with-body",
+   "Fail on HTTP errors but save the body",
+   CURLHELP_HTTP | CURLHELP_OUTPUT},
+  {"    --false-start",
+   "Enable TLS False Start",
+   CURLHELP_TLS},
+  {"-F, --form <name=content>",
+   "Specify multipart MIME data",
+   CURLHELP_HTTP | CURLHELP_UPLOAD},
+  {"    --form-string <name=string>",
+   "Specify multipart MIME data",
+   CURLHELP_HTTP | CURLHELP_UPLOAD},
+  {"    --ftp-account <data>",
+   "Account data string",
+   CURLHELP_FTP | CURLHELP_AUTH},
+  {"    --ftp-alternative-to-user <command>",
+   "String to replace USER [name]",
+   CURLHELP_FTP},
+  {"    --ftp-create-dirs",
+   "Create the remote dirs if not present",
+   CURLHELP_FTP | CURLHELP_SFTP | CURLHELP_CURL},
+  {"    --ftp-method <method>",
+   "Control CWD usage",
+   CURLHELP_FTP},
+  {"    --ftp-pasv",
+   "Use PASV/EPSV instead of PORT",
+   CURLHELP_FTP},
+  {"-P, --ftp-port <address>",
+   "Use PORT instead of PASV",
+   CURLHELP_FTP},
+  {"    --ftp-pret",
+   "Send PRET before PASV",
+   CURLHELP_FTP},
+  {"    --ftp-skip-pasv-ip",
+   "Skip the IP address for PASV",
+   CURLHELP_FTP},
+  {"    --ftp-ssl-ccc",
+   "Send CCC after authenticating",
+   CURLHELP_FTP | CURLHELP_TLS},
+  {"    --ftp-ssl-ccc-mode <active/passive>",
+   "Set CCC mode",
+   CURLHELP_FTP | CURLHELP_TLS},
+  {"    --ftp-ssl-control",
+   "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",
+   CURLHELP_HTTP | CURLHELP_UPLOAD},
+  {"-g, --globoff",
+   "Disable URL sequences and ranges using {} and []",
+   CURLHELP_CURL},
+  {"    --happy-eyeballs-timeout-ms <milliseconds>",
+   "Time for IPv6 before trying IPv4",
+   CURLHELP_CONNECTION},
+  {"    --haproxy-protocol",
+   "Send HAProxy PROXY protocol v1 header",
+   CURLHELP_HTTP | CURLHELP_PROXY},
+  {"-I, --head",
+   "Show document info only",
+   CURLHELP_HTTP | CURLHELP_FTP | CURLHELP_FILE},
+  {"-H, --header <header/@file>",
+   "Pass custom header(s) to server",
+   CURLHELP_HTTP},
+  {"-h, --help <category>",
+   "Get help for commands",
+   CURLHELP_IMPORTANT | CURLHELP_CURL},
+  {"    --hostpubmd5 <md5>",
+   "Acceptable MD5 hash of the host public key",
+   CURLHELP_SFTP | CURLHELP_SCP},
+  {"    --hostpubsha256 <sha256>",
+   "Acceptable SHA256 hash of the host public key",
+   CURLHELP_SFTP | CURLHELP_SCP},
+  {"    --hsts <file name>",
+   "Enable HSTS with this cache file",
+   CURLHELP_HTTP},
+  {"    --http0.9",
+   "Allow HTTP 0.9 responses",
+   CURLHELP_HTTP},
+  {"-0, --http1.0",
+   "Use HTTP 1.0",
+   CURLHELP_HTTP},
+  {"    --http1.1",
+   "Use HTTP 1.1",
+   CURLHELP_HTTP},
+  {"    --http2",
+   "Use HTTP 2",
+   CURLHELP_HTTP},
+  {"    --http2-prior-knowledge",
+   "Use HTTP 2 without HTTP/1.1 Upgrade",
+   CURLHELP_HTTP},
+  {"    --http3",
+   "Use HTTP v3",
+   CURLHELP_HTTP},
+  {"    --ignore-content-length",
+   "Ignore the size of the remote resource",
+   CURLHELP_HTTP | CURLHELP_FTP},
+  {"-i, --include",
+   "Include protocol response headers in the output",
+   CURLHELP_IMPORTANT | CURLHELP_VERBOSE},
+  {"-k, --insecure",
+   "Allow insecure server connections when using SSL",
+   CURLHELP_TLS},
+  {"    --interface <name>",
+   "Use network INTERFACE (or address)",
+   CURLHELP_CONNECTION},
+  {"-4, --ipv4",
+   "Resolve names to IPv4 addresses",
+   CURLHELP_CONNECTION | CURLHELP_DNS},
+  {"-6, --ipv6",
+   "Resolve names to IPv6 addresses",
+   CURLHELP_CONNECTION | CURLHELP_DNS},
+  {"-j, --junk-session-cookies",
+   "Ignore session cookies read from file",
+   CURLHELP_HTTP},
+  {"    --keepalive-time <seconds>",
+   "Interval time for keepalive probes",
+   CURLHELP_CONNECTION},
+  {"    --key <key>",
+   "Private key file name",
+   CURLHELP_TLS | CURLHELP_SSH},
+  {"    --key-type <type>",
+   "Private key file type (DER/PEM/ENG)",
+   CURLHELP_TLS},
+  {"    --krb <level>",
+   "Enable Kerberos with security <level>",
+   CURLHELP_FTP},
+  {"    --libcurl <file>",
+   "Dump libcurl equivalent code of this command line",
+   CURLHELP_CURL},
+  {"    --limit-rate <speed>",
+   "Limit transfer speed to RATE",
+   CURLHELP_CONNECTION},
+  {"-l, --list-only",
+   "List only mode",
+   CURLHELP_FTP | CURLHELP_POP3},
+  {"    --local-port <num/range>",
+   "Force use of RANGE for local port numbers",
+   CURLHELP_CONNECTION},
+  {"-L, --location",
+   "Follow redirects",
+   CURLHELP_HTTP},
+  {"    --location-trusted",
+   "Like --location, and send auth to other hosts",
+   CURLHELP_HTTP | CURLHELP_AUTH},
+  {"    --login-options <options>",
+   "Server login options",
+   CURLHELP_IMAP | CURLHELP_POP3 | CURLHELP_SMTP | CURLHELP_AUTH},
+  {"    --mail-auth <address>",
+   "Originator address of the original email",
+   CURLHELP_SMTP},
+  {"    --mail-from <address>",
+   "Mail from this address",
+   CURLHELP_SMTP},
+  {"    --mail-rcpt <address>",
+   "Mail to this address",
+   CURLHELP_SMTP},
+  {"    --mail-rcpt-allowfails",
+   "Allow RCPT TO command to fail for some recipients",
+   CURLHELP_SMTP},
+  {"-M, --manual",
+   "Display the full manual",
+   CURLHELP_CURL},
+  {"    --max-filesize <bytes>",
+   "Maximum file size to download",
+   CURLHELP_CONNECTION},
+  {"    --max-redirs <num>",
+   "Maximum number of redirects allowed",
+   CURLHELP_HTTP},
+  {"-m, --max-time <fractional seconds>",
+   "Maximum time allowed for transfer",
+   CURLHELP_CONNECTION},
+  {"    --metalink",
+   "Process given URLs as metalink XML file",
+   CURLHELP_MISC},
+  {"    --negotiate",
+   "Use HTTP Negotiate (SPNEGO) authentication",
+   CURLHELP_AUTH | CURLHELP_HTTP},
+  {"-n, --netrc",
+   "Must read .netrc for user name and password",
+   CURLHELP_CURL},
+  {"    --netrc-file <filename>",
+   "Specify FILE for netrc",
+   CURLHELP_CURL},
+  {"    --netrc-optional",
+   "Use either .netrc or URL",
+   CURLHELP_CURL},
+  {"-:, --next",
+   "Make next URL use its separate set of options",
+   CURLHELP_CURL},
+  {"    --no-alpn",
+   "Disable the ALPN TLS extension",
+   CURLHELP_TLS | CURLHELP_HTTP},
+  {"-N, --no-buffer",
+   "Disable buffering of the output stream",
+   CURLHELP_CURL},
+  {"    --no-keepalive",
+   "Disable TCP keepalive on the connection",
+   CURLHELP_CONNECTION},
+  {"    --no-npn",
+   "Disable the NPN TLS extension",
+   CURLHELP_TLS | CURLHELP_HTTP},
+  {"    --no-progress-meter",
+   "Do not show the progress meter",
+   CURLHELP_VERBOSE},
+  {"    --no-sessionid",
+   "Disable SSL session-ID reusing",
+   CURLHELP_TLS},
+  {"    --noproxy <no-proxy-list>",
+   "List of hosts which do not use proxy",
+   CURLHELP_PROXY},
+  {"    --ntlm",
+   "Use HTTP NTLM authentication",
+   CURLHELP_AUTH | CURLHELP_HTTP},
+  {"    --ntlm-wb",
+   "Use HTTP NTLM authentication with winbind",
+   CURLHELP_AUTH | CURLHELP_HTTP},
+  {"    --oauth2-bearer <token>",
+   "OAuth 2 Bearer Token",
+   CURLHELP_AUTH},
+  {"-o, --output <file>",
+   "Write to file instead of stdout",
+   CURLHELP_IMPORTANT | CURLHELP_CURL},
+  {"    --output-dir <dir>",
+   "Directory to save files in",
+   CURLHELP_CURL},
+  {"-Z, --parallel",
+   "Perform transfers in parallel",
+   CURLHELP_CONNECTION | CURLHELP_CURL},
+  {"    --parallel-immediate",
+   "Do not wait for multiplexing (with --parallel)",
+   CURLHELP_CONNECTION | CURLHELP_CURL},
+  {"    --parallel-max <num>",
+   "Maximum concurrency for parallel transfers",
+   CURLHELP_CONNECTION | CURLHELP_CURL},
+  {"    --pass <phrase>",
+   "Pass phrase for the private key",
+   CURLHELP_SSH | CURLHELP_TLS | CURLHELP_AUTH},
+  {"    --path-as-is",
+   "Do not squash .. sequences in URL path",
+   CURLHELP_CURL},
+  {"    --pinnedpubkey <hashes>",
+   "FILE/HASHES Public key to verify peer against",
+   CURLHELP_TLS},
+  {"    --post301",
+   "Do not switch to GET after following a 301",
+   CURLHELP_HTTP | CURLHELP_POST},
+  {"    --post302",
+   "Do not switch to GET after following a 302",
+   CURLHELP_HTTP | CURLHELP_POST},
+  {"    --post303",
+   "Do not switch to GET after following a 303",
+   CURLHELP_HTTP | CURLHELP_POST},
+  {"    --preproxy [protocol://]host[:port]",
+   "Use this proxy first",
+   CURLHELP_PROXY},
+  {"-#, --progress-bar",
+   "Display transfer progress as a bar",
+   CURLHELP_VERBOSE},
+  {"    --proto <protocols>",
+   "Enable/disable PROTOCOLS",
+   CURLHELP_CONNECTION | CURLHELP_CURL},
+  {"    --proto-default <protocol>",
+   "Use PROTOCOL for any URL missing a scheme",
+   CURLHELP_CONNECTION | CURLHELP_CURL},
+  {"    --proto-redir <protocols>",
+   "Enable/disable PROTOCOLS on redirect",
+   CURLHELP_CONNECTION | CURLHELP_CURL},
+  {"-x, --proxy [protocol://]host[:port]",
+   "Use this proxy",
+   CURLHELP_PROXY},
+  {"    --proxy-anyauth",
+   "Pick any proxy authentication method",
+   CURLHELP_PROXY | CURLHELP_AUTH},
+  {"    --proxy-basic",
+   "Use Basic authentication on the proxy",
+   CURLHELP_PROXY | CURLHELP_AUTH},
+  {"    --proxy-cacert <file>",
+   "CA certificate to verify peer against for proxy",
+   CURLHELP_PROXY | CURLHELP_TLS},
+  {"    --proxy-capath <dir>",
+   "CA directory to verify peer against for proxy",
+   CURLHELP_PROXY | CURLHELP_TLS},
+  {"    --proxy-cert <cert[:passwd]>",
+   "Set client certificate for proxy",
+   CURLHELP_PROXY | CURLHELP_TLS},
+  {"    --proxy-cert-type <type>",
+   "Client certificate type for HTTPS proxy",
+   CURLHELP_PROXY | CURLHELP_TLS},
+  {"    --proxy-ciphers <list>",
+   "SSL ciphers to use for proxy",
+   CURLHELP_PROXY | CURLHELP_TLS},
+  {"    --proxy-crlfile <file>",
+   "Set a CRL list for proxy",
+   CURLHELP_PROXY | CURLHELP_TLS},
+  {"    --proxy-digest",
+   "Use Digest authentication on the proxy",
+   CURLHELP_PROXY | CURLHELP_TLS},
+  {"    --proxy-header <header/@file>",
+   "Pass custom header(s) to proxy",
+   CURLHELP_PROXY},
+  {"    --proxy-insecure",
+   "Do HTTPS proxy connections without verifying the proxy",
+   CURLHELP_PROXY | CURLHELP_TLS},
+  {"    --proxy-key <key>",
+   "Private key for HTTPS proxy",
+   CURLHELP_PROXY | CURLHELP_TLS},
+  {"    --proxy-key-type <type>",
+   "Private key file type for proxy",
+   CURLHELP_PROXY | CURLHELP_TLS},
+  {"    --proxy-negotiate",
+   "Use HTTP Negotiate (SPNEGO) authentication on the proxy",
+   CURLHELP_PROXY | CURLHELP_AUTH},
+  {"    --proxy-ntlm",
+   "Use NTLM authentication on the proxy",
+   CURLHELP_PROXY | CURLHELP_AUTH},
+  {"    --proxy-pass <phrase>",
+   "Pass phrase for the private key for HTTPS proxy",
+   CURLHELP_PROXY | CURLHELP_TLS | CURLHELP_AUTH},
+  {"    --proxy-pinnedpubkey <hashes>",
+   "FILE/HASHES public key to verify proxy with",
+   CURLHELP_PROXY | CURLHELP_TLS},
+  {"    --proxy-service-name <name>",
+   "SPNEGO proxy service name",
+   CURLHELP_PROXY | CURLHELP_TLS},
+  {"    --proxy-ssl-allow-beast",
+   "Allow security flaw for interop for HTTPS proxy",
+   CURLHELP_PROXY | CURLHELP_TLS},
+  {"    --proxy-ssl-auto-client-cert",
+   "Use auto client certificate for proxy (Schannel)",
+   CURLHELP_PROXY | CURLHELP_TLS},
+  {"    --proxy-tls13-ciphers <ciphersuite list>",
+   "TLS 1.3 proxy cipher suites",
+   CURLHELP_PROXY | CURLHELP_TLS},
+  {"    --proxy-tlsauthtype <type>",
+   "TLS authentication type for HTTPS proxy",
+   CURLHELP_PROXY | CURLHELP_TLS | CURLHELP_AUTH},
+  {"    --proxy-tlspassword <string>",
+   "TLS password for HTTPS proxy",
+   CURLHELP_PROXY | CURLHELP_TLS | CURLHELP_AUTH},
+  {"    --proxy-tlsuser <name>",
+   "TLS username for HTTPS proxy",
+   CURLHELP_PROXY | CURLHELP_TLS | CURLHELP_AUTH},
+  {"    --proxy-tlsv1",
+   "Use TLSv1 for HTTPS proxy",
+   CURLHELP_PROXY | CURLHELP_TLS | CURLHELP_AUTH},
+  {"-U, --proxy-user <user:password>",
+   "Proxy user and password",
+   CURLHELP_PROXY | CURLHELP_AUTH},
+  {"    --proxy1.0 <host[:port]>",
+   "Use HTTP/1.0 proxy on given port",
+   CURLHELP_PROXY},
+  {"-p, --proxytunnel",
+   "Operate through an HTTP proxy tunnel (using CONNECT)",
+   CURLHELP_PROXY},
+  {"    --pubkey <key>",
+   "SSH Public key file name",
+   CURLHELP_SFTP | CURLHELP_SCP | CURLHELP_AUTH},
+  {"-Q, --quote <command>",
+   "Send command(s) to server before transfer",
+   CURLHELP_FTP | CURLHELP_SFTP},
+  {"    --random-file <file>",
+   "File for reading random data from",
+   CURLHELP_MISC},
+  {"-r, --range <range>",
+   "Retrieve only the bytes within RANGE",
+   CURLHELP_HTTP | CURLHELP_FTP | CURLHELP_SFTP | CURLHELP_FILE},
+  {"    --raw",
+   "Do HTTP \"raw\"; no transfer decoding",
+   CURLHELP_HTTP},
+  {"-e, --referer <URL>",
+   "Referrer URL",
+   CURLHELP_HTTP},
+  {"-J, --remote-header-name",
+   "Use the header-provided filename",
+   CURLHELP_OUTPUT},
+  {"-O, --remote-name",
+   "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",
+   CURLHELP_OUTPUT},
+  {"-R, --remote-time",
+   "Set the remote file's time on the local output",
+   CURLHELP_OUTPUT},
+  {"-X, --request <command>",
+   "Specify request command to use",
+   CURLHELP_CONNECTION},
+  {"    --request-target <path>",
+   "Specify the target for this request",
+   CURLHELP_HTTP},
+  {"    --resolve <[+]host:port:addr[,addr]...>",
+   "Resolve the host+port to this address",
+   CURLHELP_CONNECTION},
+  {"    --retry <num>",
+   "Retry request if transient problems occur",
+   CURLHELP_CURL},
+  {"    --retry-all-errors",
+   "Retry all errors (use with --retry)",
+   CURLHELP_CURL},
+  {"    --retry-connrefused",
+   "Retry on connection refused (use with --retry)",
+   CURLHELP_CURL},
+  {"    --retry-delay <seconds>",
+   "Wait time between retries",
+   CURLHELP_CURL},
+  {"    --retry-max-time <seconds>",
+   "Retry only within this period",
+   CURLHELP_CURL},
+  {"    --sasl-authzid <identity>",
+   "Identity for SASL PLAIN authentication",
+   CURLHELP_AUTH},
+  {"    --sasl-ir",
+   "Enable initial response in SASL authentication",
+   CURLHELP_AUTH},
+  {"    --service-name <name>",
+   "SPNEGO service name",
+   CURLHELP_MISC},
+  {"-S, --show-error",
+   "Show error even when -s is used",
+   CURLHELP_CURL},
+  {"-s, --silent",
+   "Silent mode",
+   CURLHELP_IMPORTANT | CURLHELP_VERBOSE},
+  {"    --socks4 <host[:port]>",
+   "SOCKS4 proxy on given host + port",
+   CURLHELP_PROXY},
+  {"    --socks4a <host[:port]>",
+   "SOCKS4a proxy on given host + port",
+   CURLHELP_PROXY},
+  {"    --socks5 <host[:port]>",
+   "SOCKS5 proxy on given host + port",
+   CURLHELP_PROXY},
+  {"    --socks5-basic",
+   "Enable username/password auth for SOCKS5 proxies",
+   CURLHELP_PROXY | CURLHELP_AUTH},
+  {"    --socks5-gssapi",
+   "Enable GSS-API auth for SOCKS5 proxies",
+   CURLHELP_PROXY | CURLHELP_AUTH},
+  {"    --socks5-gssapi-nec",
+   "Compatibility with NEC SOCKS5 server",
+   CURLHELP_PROXY | CURLHELP_AUTH},
+  {"    --socks5-gssapi-service <name>",
+   "SOCKS5 proxy service name for GSS-API",
+   CURLHELP_PROXY | CURLHELP_AUTH},
+  {"    --socks5-hostname <host[:port]>",
+   "SOCKS5 proxy, pass host name to proxy",
+   CURLHELP_PROXY},
+  {"-Y, --speed-limit <speed>",
+   "Stop transfers slower than this",
+   CURLHELP_CONNECTION},
+  {"-y, --speed-time <seconds>",
+   "Trigger 'speed-limit' abort after this time",
+   CURLHELP_CONNECTION},
+  {"    --ssl",
+   "Try SSL/TLS",
+   CURLHELP_TLS},
+  {"    --ssl-allow-beast",
+   "Allow security flaw to improve interop",
+   CURLHELP_TLS},
+  {"    --ssl-auto-client-cert",
+   "Use auto client certificate (Schannel)",
+   CURLHELP_TLS},
+  {"    --ssl-no-revoke",
+   "Disable cert revocation checks (Schannel)",
+   CURLHELP_TLS},
+  {"    --ssl-reqd",
+   "Require SSL/TLS",
+   CURLHELP_TLS},
+  {"    --ssl-revoke-best-effort",
+   "Ignore missing/offline cert CRL dist points",
+   CURLHELP_TLS},
+  {"-2, --sslv2",
+   "Use SSLv2",
+   CURLHELP_TLS},
+  {"-3, --sslv3",
+   "Use SSLv3",
+   CURLHELP_TLS},
+  {"    --stderr <file>",
+   "Where to redirect stderr",
+   CURLHELP_VERBOSE},
+  {"    --styled-output",
+   "Enable styled output for HTTP headers",
+   CURLHELP_VERBOSE},
+  {"    --suppress-connect-headers",
+   "Suppress proxy CONNECT response headers",
+   CURLHELP_PROXY},
+  {"    --tcp-fastopen",
+   "Use TCP Fast Open",
+   CURLHELP_CONNECTION},
+  {"    --tcp-nodelay",
+   "Use the TCP_NODELAY option",
+   CURLHELP_CONNECTION},
+  {"-t, --telnet-option <opt=val>",
+   "Set telnet option",
+   CURLHELP_TELNET},
+  {"    --tftp-blksize <value>",
+   "Set TFTP BLKSIZE option",
+   CURLHELP_TFTP},
+  {"    --tftp-no-options",
+   "Do not send any TFTP options",
+   CURLHELP_TFTP},
+  {"-z, --time-cond <time>",
+   "Transfer based on a time condition",
+   CURLHELP_HTTP | CURLHELP_FTP},
+  {"    --tls-max <VERSION>",
+   "Set maximum allowed TLS version",
+   CURLHELP_TLS},
+  {"    --tls13-ciphers <ciphersuite list>",
+   "TLS 1.3 cipher suites to use",
+   CURLHELP_TLS},
+  {"    --tlsauthtype <type>",
+   "TLS authentication type",
+   CURLHELP_TLS | CURLHELP_AUTH},
+  {"    --tlspassword <string>",
+   "TLS password",
+   CURLHELP_TLS | CURLHELP_AUTH},
+  {"    --tlsuser <name>",
+   "TLS user name",
+   CURLHELP_TLS | CURLHELP_AUTH},
+  {"-1, --tlsv1",
+   "Use TLSv1.0 or greater",
+   CURLHELP_TLS},
+  {"    --tlsv1.0",
+   "Use TLSv1.0 or greater",
+   CURLHELP_TLS},
+  {"    --tlsv1.1",
+   "Use TLSv1.1 or greater",
+   CURLHELP_TLS},
+  {"    --tlsv1.2",
+   "Use TLSv1.2 or greater",
+   CURLHELP_TLS},
+  {"    --tlsv1.3",
+   "Use TLSv1.3 or greater",
+   CURLHELP_TLS},
+  {"    --tr-encoding",
+   "Request compressed transfer encoding",
+   CURLHELP_HTTP},
+  {"    --trace <file>",
+   "Write a debug trace to FILE",
+   CURLHELP_VERBOSE},
+  {"    --trace-ascii <file>",
+   "Like --trace, but without hex output",
+   CURLHELP_VERBOSE},
+  {"    --trace-time",
+   "Add time stamps to trace/verbose output",
+   CURLHELP_VERBOSE},
+  {"    --unix-socket <path>",
+   "Connect through this Unix domain socket",
+   CURLHELP_CONNECTION},
+  {"-T, --upload-file <file>",
+   "Transfer local FILE to destination",
+   CURLHELP_IMPORTANT | CURLHELP_UPLOAD},
+  {"    --url <url>",
+   "URL to work with",
+   CURLHELP_CURL},
+  {"-B, --use-ascii",
+   "Use ASCII/text transfer",
+   CURLHELP_MISC},
+  {"-u, --user <user:password>",
+   "Server user and password",
+   CURLHELP_IMPORTANT | CURLHELP_AUTH},
+  {"-A, --user-agent <name>",
+   "Send User-Agent <name> to server",
+   CURLHELP_IMPORTANT | CURLHELP_HTTP},
+  {"-v, --verbose",
+   "Make the operation more talkative",
+   CURLHELP_IMPORTANT | CURLHELP_VERBOSE},
+  {"-V, --version",
+   "Show version number and quit",
+   CURLHELP_IMPORTANT | CURLHELP_CURL},
+  {"-w, --write-out <format>",
+   "Use output FORMAT after completion",
+   CURLHELP_VERBOSE},
+  {"    --xattr",
+   "Store metadata in extended file attributes",
+   CURLHELP_MISC},
+  { NULL, NULL, CURLHELP_HIDDEN }
+};
index 9326748ed8fc85b8c79992db23edf796a7b9a40c..87a2d3ca2833fca97ea2f9bc621e0b6979c198c0 100644 (file)
@@ -37,7 +37,7 @@ curl file category --help
 <stdout mode="text">
 Usage: curl [options...] <url>
 file: FILE protocol options
-     --create-file-mode <mode>  File mode (octal) for created files
+     --create-file-mode <mode>  File mode for created files
  -I, --head          Show document info only
  -r, --range <range>  Retrieve only the bytes within RANGE
 </stdout>
index 2ddacefa557ab6f364fdb70a39502f591ebcb468..9821f097b8690b948f46c4f38253b1d45b9509e3 100644 (file)
@@ -37,7 +37,7 @@ curl file category --help with lower/upper mix
 <stdout mode="text">
 Usage: curl [options...] <url>
 file: FILE protocol options
-     --create-file-mode <mode>  File mode (octal) for created files
+     --create-file-mode <mode>  File mode for created files
  -I, --head          Show document info only
  -r, --range <range>  Retrieve only the bytes within RANGE
 </stdout>
index ec2e7253df4b1c0af9d512fab8a40550478deb53..219c4a46324596ff7b84f3bd85f55520644c38b5 100755 (executable)
@@ -31,7 +31,7 @@
 #
 # src/tool_getparam.c lists all options curl can parse
 # docs/curl.1 documents all command line options
-# src/tool_help.c outputs all options with curl -h
+# src/tool_listhelp.c outputs all options with curl -h
 # - make sure they're all in sync
 #
 # Output all deviances to stderr.
@@ -147,7 +147,7 @@ my %opts = (
     '--no-keepalive' => 1,
     '--no-progress-meter' => 1,
 
-    # pretend these options without -no exist in curl.1 and tool_help.c
+    # pretend these options without -no exist in curl.1 and tool_listhelp.c
     '--alpn' => 6,
     '--npn' => 6,
     '--eprt' => 6,
@@ -157,7 +157,7 @@ my %opts = (
     '--sessionid' => 6,
     '--progress-meter' => 6,
 
-    # deprecated options do not need to be in tool_help.c nor curl.1
+    # deprecated options do not need to be in tool_listhelp.c nor curl.1
     '--krb4' => 6,
     '--ftp-ssl' => 6,
     '--ftp-ssl-reqd' => 6,
@@ -236,7 +236,7 @@ close(R);
 
 #########################################################################
 # parse the curl code that outputs the curl -h list
-open(R, "<$root/src/tool_help.c") ||
+open(R, "<$root/src/tool_listhelp.c") ||
     die "no input file";
 my @toolhelp; # store all parsed parameters
 while(<R>) {
@@ -286,10 +286,10 @@ foreach my $o (keys %opts) {
             $missing.= " curl.1";
         }
         if($where & 4) {
-            $exists .= " tool_help.c";
+            $exists .= " tool_listhelp.c";
         }
         else {
-            $missing .= " tool_help.c";
+            $missing .= " tool_listhelp.c";
         }
 
         print STDERR "$o is not in$missing (but in$exists)\n";