xref: /aosp_15_r20/external/curl/src/tool_getparam.h (revision 6236dae45794135f37c4eb022389c904c8b0090d)
1*6236dae4SAndroid Build Coastguard Worker #ifndef HEADER_CURL_TOOL_GETPARAM_H
2*6236dae4SAndroid Build Coastguard Worker #define HEADER_CURL_TOOL_GETPARAM_H
3*6236dae4SAndroid Build Coastguard Worker /***************************************************************************
4*6236dae4SAndroid Build Coastguard Worker  *                                  _   _ ____  _
5*6236dae4SAndroid Build Coastguard Worker  *  Project                     ___| | | |  _ \| |
6*6236dae4SAndroid Build Coastguard Worker  *                             / __| | | | |_) | |
7*6236dae4SAndroid Build Coastguard Worker  *                            | (__| |_| |  _ <| |___
8*6236dae4SAndroid Build Coastguard Worker  *                             \___|\___/|_| \_\_____|
9*6236dae4SAndroid Build Coastguard Worker  *
10*6236dae4SAndroid Build Coastguard Worker  * Copyright (C) Daniel Stenberg, <[email protected]>, et al.
11*6236dae4SAndroid Build Coastguard Worker  *
12*6236dae4SAndroid Build Coastguard Worker  * This software is licensed as described in the file COPYING, which
13*6236dae4SAndroid Build Coastguard Worker  * you should have received as part of this distribution. The terms
14*6236dae4SAndroid Build Coastguard Worker  * are also available at https://curl.se/docs/copyright.html.
15*6236dae4SAndroid Build Coastguard Worker  *
16*6236dae4SAndroid Build Coastguard Worker  * You may opt to use, copy, modify, merge, publish, distribute and/or sell
17*6236dae4SAndroid Build Coastguard Worker  * copies of the Software, and permit persons to whom the Software is
18*6236dae4SAndroid Build Coastguard Worker  * furnished to do so, under the terms of the COPYING file.
19*6236dae4SAndroid Build Coastguard Worker  *
20*6236dae4SAndroid Build Coastguard Worker  * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
21*6236dae4SAndroid Build Coastguard Worker  * KIND, either express or implied.
22*6236dae4SAndroid Build Coastguard Worker  *
23*6236dae4SAndroid Build Coastguard Worker  * SPDX-License-Identifier: curl
24*6236dae4SAndroid Build Coastguard Worker  *
25*6236dae4SAndroid Build Coastguard Worker  ***************************************************************************/
26*6236dae4SAndroid Build Coastguard Worker #include "tool_setup.h"
27*6236dae4SAndroid Build Coastguard Worker 
28*6236dae4SAndroid Build Coastguard Worker /* one enum for every command line option. The name is the verbatim long
29*6236dae4SAndroid Build Coastguard Worker    option name, but in uppercase with periods and minuses replaced with
30*6236dae4SAndroid Build Coastguard Worker    underscores using a "C_" prefix. */
31*6236dae4SAndroid Build Coastguard Worker typedef enum {
32*6236dae4SAndroid Build Coastguard Worker   C_ABSTRACT_UNIX_SOCKET,
33*6236dae4SAndroid Build Coastguard Worker   C_ALPN,
34*6236dae4SAndroid Build Coastguard Worker   C_ALT_SVC,
35*6236dae4SAndroid Build Coastguard Worker   C_ANYAUTH,
36*6236dae4SAndroid Build Coastguard Worker   C_APPEND,
37*6236dae4SAndroid Build Coastguard Worker   C_AWS_SIGV4,
38*6236dae4SAndroid Build Coastguard Worker   C_BASIC,
39*6236dae4SAndroid Build Coastguard Worker   C_BUFFER,
40*6236dae4SAndroid Build Coastguard Worker   C_CA_NATIVE,
41*6236dae4SAndroid Build Coastguard Worker   C_CACERT,
42*6236dae4SAndroid Build Coastguard Worker   C_CAPATH,
43*6236dae4SAndroid Build Coastguard Worker   C_CERT,
44*6236dae4SAndroid Build Coastguard Worker   C_CERT_STATUS,
45*6236dae4SAndroid Build Coastguard Worker   C_CERT_TYPE,
46*6236dae4SAndroid Build Coastguard Worker   C_CIPHERS,
47*6236dae4SAndroid Build Coastguard Worker   C_CLOBBER,
48*6236dae4SAndroid Build Coastguard Worker   C_COMPRESSED,
49*6236dae4SAndroid Build Coastguard Worker   C_COMPRESSED_SSH,
50*6236dae4SAndroid Build Coastguard Worker   C_CONFIG,
51*6236dae4SAndroid Build Coastguard Worker   C_CONNECT_TIMEOUT,
52*6236dae4SAndroid Build Coastguard Worker   C_CONNECT_TO,
53*6236dae4SAndroid Build Coastguard Worker   C_CONTINUE_AT,
54*6236dae4SAndroid Build Coastguard Worker   C_COOKIE,
55*6236dae4SAndroid Build Coastguard Worker   C_COOKIE_JAR,
56*6236dae4SAndroid Build Coastguard Worker   C_CREATE_DIRS,
57*6236dae4SAndroid Build Coastguard Worker   C_CREATE_FILE_MODE,
58*6236dae4SAndroid Build Coastguard Worker   C_CRLF,
59*6236dae4SAndroid Build Coastguard Worker   C_CRLFILE,
60*6236dae4SAndroid Build Coastguard Worker   C_CURVES,
61*6236dae4SAndroid Build Coastguard Worker   C_DATA,
62*6236dae4SAndroid Build Coastguard Worker   C_DATA_ASCII,
63*6236dae4SAndroid Build Coastguard Worker   C_DATA_BINARY,
64*6236dae4SAndroid Build Coastguard Worker   C_DATA_RAW,
65*6236dae4SAndroid Build Coastguard Worker   C_DATA_URLENCODE,
66*6236dae4SAndroid Build Coastguard Worker   C_DELEGATION,
67*6236dae4SAndroid Build Coastguard Worker   C_DIGEST,
68*6236dae4SAndroid Build Coastguard Worker   C_DISABLE,
69*6236dae4SAndroid Build Coastguard Worker   C_DISABLE_EPRT,
70*6236dae4SAndroid Build Coastguard Worker   C_DISABLE_EPSV,
71*6236dae4SAndroid Build Coastguard Worker   C_DISALLOW_USERNAME_IN_URL,
72*6236dae4SAndroid Build Coastguard Worker   C_DNS_INTERFACE,
73*6236dae4SAndroid Build Coastguard Worker   C_DNS_IPV4_ADDR,
74*6236dae4SAndroid Build Coastguard Worker   C_DNS_IPV6_ADDR,
75*6236dae4SAndroid Build Coastguard Worker   C_DNS_SERVERS,
76*6236dae4SAndroid Build Coastguard Worker   C_DOH_CERT_STATUS,
77*6236dae4SAndroid Build Coastguard Worker   C_DOH_INSECURE,
78*6236dae4SAndroid Build Coastguard Worker   C_DOH_URL,
79*6236dae4SAndroid Build Coastguard Worker   C_DUMP_CA_EMBED,
80*6236dae4SAndroid Build Coastguard Worker   C_DUMP_HEADER,
81*6236dae4SAndroid Build Coastguard Worker   C_ECH,
82*6236dae4SAndroid Build Coastguard Worker   C_EGD_FILE,
83*6236dae4SAndroid Build Coastguard Worker   C_ENGINE,
84*6236dae4SAndroid Build Coastguard Worker   C_EPRT,
85*6236dae4SAndroid Build Coastguard Worker   C_EPSV,
86*6236dae4SAndroid Build Coastguard Worker   C_ETAG_COMPARE,
87*6236dae4SAndroid Build Coastguard Worker   C_ETAG_SAVE,
88*6236dae4SAndroid Build Coastguard Worker   C_EXPECT100_TIMEOUT,
89*6236dae4SAndroid Build Coastguard Worker   C_FAIL,
90*6236dae4SAndroid Build Coastguard Worker   C_FAIL_EARLY,
91*6236dae4SAndroid Build Coastguard Worker   C_FAIL_WITH_BODY,
92*6236dae4SAndroid Build Coastguard Worker   C_FALSE_START,
93*6236dae4SAndroid Build Coastguard Worker   C_FORM,
94*6236dae4SAndroid Build Coastguard Worker   C_FORM_ESCAPE,
95*6236dae4SAndroid Build Coastguard Worker   C_FORM_STRING,
96*6236dae4SAndroid Build Coastguard Worker   C_FTP_ACCOUNT,
97*6236dae4SAndroid Build Coastguard Worker   C_FTP_ALTERNATIVE_TO_USER,
98*6236dae4SAndroid Build Coastguard Worker   C_FTP_CREATE_DIRS,
99*6236dae4SAndroid Build Coastguard Worker   C_FTP_METHOD,
100*6236dae4SAndroid Build Coastguard Worker   C_FTP_PASV,
101*6236dae4SAndroid Build Coastguard Worker   C_FTP_PORT,
102*6236dae4SAndroid Build Coastguard Worker   C_FTP_PRET,
103*6236dae4SAndroid Build Coastguard Worker   C_FTP_SKIP_PASV_IP,
104*6236dae4SAndroid Build Coastguard Worker   C_FTP_SSL,
105*6236dae4SAndroid Build Coastguard Worker   C_FTP_SSL_CCC,
106*6236dae4SAndroid Build Coastguard Worker   C_FTP_SSL_CCC_MODE,
107*6236dae4SAndroid Build Coastguard Worker   C_FTP_SSL_CONTROL,
108*6236dae4SAndroid Build Coastguard Worker   C_FTP_SSL_REQD,
109*6236dae4SAndroid Build Coastguard Worker   C_GET,
110*6236dae4SAndroid Build Coastguard Worker   C_GLOBOFF,
111*6236dae4SAndroid Build Coastguard Worker   C_HAPPY_EYEBALLS_TIMEOUT_MS,
112*6236dae4SAndroid Build Coastguard Worker   C_HAPROXY_CLIENTIP,
113*6236dae4SAndroid Build Coastguard Worker   C_HAPROXY_PROTOCOL,
114*6236dae4SAndroid Build Coastguard Worker   C_HEAD,
115*6236dae4SAndroid Build Coastguard Worker   C_HEADER,
116*6236dae4SAndroid Build Coastguard Worker   C_HELP,
117*6236dae4SAndroid Build Coastguard Worker   C_HOSTPUBMD5,
118*6236dae4SAndroid Build Coastguard Worker   C_HOSTPUBSHA256,
119*6236dae4SAndroid Build Coastguard Worker   C_HSTS,
120*6236dae4SAndroid Build Coastguard Worker   C_HTTP0_9,
121*6236dae4SAndroid Build Coastguard Worker   C_HTTP1_0,
122*6236dae4SAndroid Build Coastguard Worker   C_HTTP1_1,
123*6236dae4SAndroid Build Coastguard Worker   C_HTTP2,
124*6236dae4SAndroid Build Coastguard Worker   C_HTTP2_PRIOR_KNOWLEDGE,
125*6236dae4SAndroid Build Coastguard Worker   C_HTTP3,
126*6236dae4SAndroid Build Coastguard Worker   C_HTTP3_ONLY,
127*6236dae4SAndroid Build Coastguard Worker   C_IGNORE_CONTENT_LENGTH,
128*6236dae4SAndroid Build Coastguard Worker   C_INCLUDE,
129*6236dae4SAndroid Build Coastguard Worker   C_INSECURE,
130*6236dae4SAndroid Build Coastguard Worker   C_INTERFACE,
131*6236dae4SAndroid Build Coastguard Worker   C_IPFS_GATEWAY,
132*6236dae4SAndroid Build Coastguard Worker   C_IPV4,
133*6236dae4SAndroid Build Coastguard Worker   C_IPV6,
134*6236dae4SAndroid Build Coastguard Worker   C_JSON,
135*6236dae4SAndroid Build Coastguard Worker   C_JUNK_SESSION_COOKIES,
136*6236dae4SAndroid Build Coastguard Worker   C_KEEPALIVE,
137*6236dae4SAndroid Build Coastguard Worker   C_KEEPALIVE_CNT,
138*6236dae4SAndroid Build Coastguard Worker   C_KEEPALIVE_TIME,
139*6236dae4SAndroid Build Coastguard Worker   C_KEY,
140*6236dae4SAndroid Build Coastguard Worker   C_KEY_TYPE,
141*6236dae4SAndroid Build Coastguard Worker   C_KRB,
142*6236dae4SAndroid Build Coastguard Worker   C_KRB4,
143*6236dae4SAndroid Build Coastguard Worker   C_LIBCURL,
144*6236dae4SAndroid Build Coastguard Worker   C_LIMIT_RATE,
145*6236dae4SAndroid Build Coastguard Worker   C_LIST_ONLY,
146*6236dae4SAndroid Build Coastguard Worker   C_LOCAL_PORT,
147*6236dae4SAndroid Build Coastguard Worker   C_LOCATION,
148*6236dae4SAndroid Build Coastguard Worker   C_LOCATION_TRUSTED,
149*6236dae4SAndroid Build Coastguard Worker   C_LOGIN_OPTIONS,
150*6236dae4SAndroid Build Coastguard Worker   C_MAIL_AUTH,
151*6236dae4SAndroid Build Coastguard Worker   C_MAIL_FROM,
152*6236dae4SAndroid Build Coastguard Worker   C_MAIL_RCPT,
153*6236dae4SAndroid Build Coastguard Worker   C_MAIL_RCPT_ALLOWFAILS,
154*6236dae4SAndroid Build Coastguard Worker   C_MANUAL,
155*6236dae4SAndroid Build Coastguard Worker   C_MAX_FILESIZE,
156*6236dae4SAndroid Build Coastguard Worker   C_MAX_REDIRS,
157*6236dae4SAndroid Build Coastguard Worker   C_MAX_TIME,
158*6236dae4SAndroid Build Coastguard Worker   C_METALINK,
159*6236dae4SAndroid Build Coastguard Worker   C_MPTCP,
160*6236dae4SAndroid Build Coastguard Worker   C_NEGOTIATE,
161*6236dae4SAndroid Build Coastguard Worker   C_NETRC,
162*6236dae4SAndroid Build Coastguard Worker   C_NETRC_FILE,
163*6236dae4SAndroid Build Coastguard Worker   C_NETRC_OPTIONAL,
164*6236dae4SAndroid Build Coastguard Worker   C_NEXT,
165*6236dae4SAndroid Build Coastguard Worker   C_NOPROXY,
166*6236dae4SAndroid Build Coastguard Worker   C_NPN,
167*6236dae4SAndroid Build Coastguard Worker   C_NTLM,
168*6236dae4SAndroid Build Coastguard Worker   C_NTLM_WB,
169*6236dae4SAndroid Build Coastguard Worker   C_OAUTH2_BEARER,
170*6236dae4SAndroid Build Coastguard Worker   C_OUTPUT,
171*6236dae4SAndroid Build Coastguard Worker   C_OUTPUT_DIR,
172*6236dae4SAndroid Build Coastguard Worker   C_PARALLEL,
173*6236dae4SAndroid Build Coastguard Worker   C_PARALLEL_IMMEDIATE,
174*6236dae4SAndroid Build Coastguard Worker   C_PARALLEL_MAX,
175*6236dae4SAndroid Build Coastguard Worker   C_PASS,
176*6236dae4SAndroid Build Coastguard Worker   C_PATH_AS_IS,
177*6236dae4SAndroid Build Coastguard Worker   C_PINNEDPUBKEY,
178*6236dae4SAndroid Build Coastguard Worker   C_POST301,
179*6236dae4SAndroid Build Coastguard Worker   C_POST302,
180*6236dae4SAndroid Build Coastguard Worker   C_POST303,
181*6236dae4SAndroid Build Coastguard Worker   C_PREPROXY,
182*6236dae4SAndroid Build Coastguard Worker   C_PROGRESS_BAR,
183*6236dae4SAndroid Build Coastguard Worker   C_PROGRESS_METER,
184*6236dae4SAndroid Build Coastguard Worker   C_PROTO,
185*6236dae4SAndroid Build Coastguard Worker   C_PROTO_DEFAULT,
186*6236dae4SAndroid Build Coastguard Worker   C_PROTO_REDIR,
187*6236dae4SAndroid Build Coastguard Worker   C_PROXY,
188*6236dae4SAndroid Build Coastguard Worker   C_PROXY_ANYAUTH,
189*6236dae4SAndroid Build Coastguard Worker   C_PROXY_BASIC,
190*6236dae4SAndroid Build Coastguard Worker   C_PROXY_CA_NATIVE,
191*6236dae4SAndroid Build Coastguard Worker   C_PROXY_CACERT,
192*6236dae4SAndroid Build Coastguard Worker   C_PROXY_CAPATH,
193*6236dae4SAndroid Build Coastguard Worker   C_PROXY_CERT,
194*6236dae4SAndroid Build Coastguard Worker   C_PROXY_CERT_TYPE,
195*6236dae4SAndroid Build Coastguard Worker   C_PROXY_CIPHERS,
196*6236dae4SAndroid Build Coastguard Worker   C_PROXY_CRLFILE,
197*6236dae4SAndroid Build Coastguard Worker   C_PROXY_DIGEST,
198*6236dae4SAndroid Build Coastguard Worker   C_PROXY_HEADER,
199*6236dae4SAndroid Build Coastguard Worker   C_PROXY_HTTP2,
200*6236dae4SAndroid Build Coastguard Worker   C_PROXY_INSECURE,
201*6236dae4SAndroid Build Coastguard Worker   C_PROXY_KEY,
202*6236dae4SAndroid Build Coastguard Worker   C_PROXY_KEY_TYPE,
203*6236dae4SAndroid Build Coastguard Worker   C_PROXY_NEGOTIATE,
204*6236dae4SAndroid Build Coastguard Worker   C_PROXY_NTLM,
205*6236dae4SAndroid Build Coastguard Worker   C_PROXY_PASS,
206*6236dae4SAndroid Build Coastguard Worker   C_PROXY_PINNEDPUBKEY,
207*6236dae4SAndroid Build Coastguard Worker   C_PROXY_SERVICE_NAME,
208*6236dae4SAndroid Build Coastguard Worker   C_PROXY_SSL_ALLOW_BEAST,
209*6236dae4SAndroid Build Coastguard Worker   C_PROXY_SSL_AUTO_CLIENT_CERT,
210*6236dae4SAndroid Build Coastguard Worker   C_PROXY_TLS13_CIPHERS,
211*6236dae4SAndroid Build Coastguard Worker   C_PROXY_TLSAUTHTYPE,
212*6236dae4SAndroid Build Coastguard Worker   C_PROXY_TLSPASSWORD,
213*6236dae4SAndroid Build Coastguard Worker   C_PROXY_TLSUSER,
214*6236dae4SAndroid Build Coastguard Worker   C_PROXY_TLSV1,
215*6236dae4SAndroid Build Coastguard Worker   C_PROXY_USER,
216*6236dae4SAndroid Build Coastguard Worker   C_PROXY1_0,
217*6236dae4SAndroid Build Coastguard Worker   C_PROXYTUNNEL,
218*6236dae4SAndroid Build Coastguard Worker   C_PUBKEY,
219*6236dae4SAndroid Build Coastguard Worker   C_QUOTE,
220*6236dae4SAndroid Build Coastguard Worker   C_RANDOM_FILE,
221*6236dae4SAndroid Build Coastguard Worker   C_RANGE,
222*6236dae4SAndroid Build Coastguard Worker   C_RATE,
223*6236dae4SAndroid Build Coastguard Worker   C_RAW,
224*6236dae4SAndroid Build Coastguard Worker   C_REFERER,
225*6236dae4SAndroid Build Coastguard Worker   C_REMOTE_HEADER_NAME,
226*6236dae4SAndroid Build Coastguard Worker   C_REMOTE_NAME,
227*6236dae4SAndroid Build Coastguard Worker   C_REMOTE_NAME_ALL,
228*6236dae4SAndroid Build Coastguard Worker   C_REMOTE_TIME,
229*6236dae4SAndroid Build Coastguard Worker   C_REMOVE_ON_ERROR,
230*6236dae4SAndroid Build Coastguard Worker   C_REQUEST,
231*6236dae4SAndroid Build Coastguard Worker   C_REQUEST_TARGET,
232*6236dae4SAndroid Build Coastguard Worker   C_RESOLVE,
233*6236dae4SAndroid Build Coastguard Worker   C_RETRY,
234*6236dae4SAndroid Build Coastguard Worker   C_RETRY_ALL_ERRORS,
235*6236dae4SAndroid Build Coastguard Worker   C_RETRY_CONNREFUSED,
236*6236dae4SAndroid Build Coastguard Worker   C_RETRY_DELAY,
237*6236dae4SAndroid Build Coastguard Worker   C_RETRY_MAX_TIME,
238*6236dae4SAndroid Build Coastguard Worker   C_SASL_AUTHZID,
239*6236dae4SAndroid Build Coastguard Worker   C_SASL_IR,
240*6236dae4SAndroid Build Coastguard Worker   C_SERVICE_NAME,
241*6236dae4SAndroid Build Coastguard Worker   C_SESSIONID,
242*6236dae4SAndroid Build Coastguard Worker   C_SHOW_ERROR,
243*6236dae4SAndroid Build Coastguard Worker   C_SHOW_HEADERS,
244*6236dae4SAndroid Build Coastguard Worker   C_SILENT,
245*6236dae4SAndroid Build Coastguard Worker   C_SKIP_EXISTING,
246*6236dae4SAndroid Build Coastguard Worker   C_SOCKS4,
247*6236dae4SAndroid Build Coastguard Worker   C_SOCKS4A,
248*6236dae4SAndroid Build Coastguard Worker   C_SOCKS5,
249*6236dae4SAndroid Build Coastguard Worker   C_SOCKS5_BASIC,
250*6236dae4SAndroid Build Coastguard Worker   C_SOCKS5_GSSAPI,
251*6236dae4SAndroid Build Coastguard Worker   C_SOCKS5_GSSAPI_NEC,
252*6236dae4SAndroid Build Coastguard Worker   C_SOCKS5_GSSAPI_SERVICE,
253*6236dae4SAndroid Build Coastguard Worker   C_SOCKS5_HOSTNAME,
254*6236dae4SAndroid Build Coastguard Worker   C_SPEED_LIMIT,
255*6236dae4SAndroid Build Coastguard Worker   C_SPEED_TIME,
256*6236dae4SAndroid Build Coastguard Worker   C_SSL,
257*6236dae4SAndroid Build Coastguard Worker   C_SSL_ALLOW_BEAST,
258*6236dae4SAndroid Build Coastguard Worker   C_SSL_AUTO_CLIENT_CERT,
259*6236dae4SAndroid Build Coastguard Worker   C_SSL_NO_REVOKE,
260*6236dae4SAndroid Build Coastguard Worker   C_SSL_REQD,
261*6236dae4SAndroid Build Coastguard Worker   C_SSL_REVOKE_BEST_EFFORT,
262*6236dae4SAndroid Build Coastguard Worker   C_SSLV2,
263*6236dae4SAndroid Build Coastguard Worker   C_SSLV3,
264*6236dae4SAndroid Build Coastguard Worker   C_STDERR,
265*6236dae4SAndroid Build Coastguard Worker   C_STYLED_OUTPUT,
266*6236dae4SAndroid Build Coastguard Worker   C_SUPPRESS_CONNECT_HEADERS,
267*6236dae4SAndroid Build Coastguard Worker   C_TCP_FASTOPEN,
268*6236dae4SAndroid Build Coastguard Worker   C_TCP_NODELAY,
269*6236dae4SAndroid Build Coastguard Worker   C_TELNET_OPTION,
270*6236dae4SAndroid Build Coastguard Worker   C_TEST_EVENT,
271*6236dae4SAndroid Build Coastguard Worker   C_TFTP_BLKSIZE,
272*6236dae4SAndroid Build Coastguard Worker   C_TFTP_NO_OPTIONS,
273*6236dae4SAndroid Build Coastguard Worker   C_TIME_COND,
274*6236dae4SAndroid Build Coastguard Worker   C_TLS_EARLYDATA,
275*6236dae4SAndroid Build Coastguard Worker   C_TLS_MAX,
276*6236dae4SAndroid Build Coastguard Worker   C_TLS13_CIPHERS,
277*6236dae4SAndroid Build Coastguard Worker   C_TLSAUTHTYPE,
278*6236dae4SAndroid Build Coastguard Worker   C_TLSPASSWORD,
279*6236dae4SAndroid Build Coastguard Worker   C_TLSUSER,
280*6236dae4SAndroid Build Coastguard Worker   C_TLSV1,
281*6236dae4SAndroid Build Coastguard Worker   C_TLSV1_0,
282*6236dae4SAndroid Build Coastguard Worker   C_TLSV1_1,
283*6236dae4SAndroid Build Coastguard Worker   C_TLSV1_2,
284*6236dae4SAndroid Build Coastguard Worker   C_TLSV1_3,
285*6236dae4SAndroid Build Coastguard Worker   C_TR_ENCODING,
286*6236dae4SAndroid Build Coastguard Worker   C_TRACE,
287*6236dae4SAndroid Build Coastguard Worker   C_TRACE_ASCII,
288*6236dae4SAndroid Build Coastguard Worker   C_TRACE_CONFIG,
289*6236dae4SAndroid Build Coastguard Worker   C_TRACE_IDS,
290*6236dae4SAndroid Build Coastguard Worker   C_TRACE_TIME,
291*6236dae4SAndroid Build Coastguard Worker   C_IP_TOS,
292*6236dae4SAndroid Build Coastguard Worker   C_UNIX_SOCKET,
293*6236dae4SAndroid Build Coastguard Worker   C_UPLOAD_FILE,
294*6236dae4SAndroid Build Coastguard Worker   C_URL,
295*6236dae4SAndroid Build Coastguard Worker   C_URL_QUERY,
296*6236dae4SAndroid Build Coastguard Worker   C_USE_ASCII,
297*6236dae4SAndroid Build Coastguard Worker   C_USER,
298*6236dae4SAndroid Build Coastguard Worker   C_USER_AGENT,
299*6236dae4SAndroid Build Coastguard Worker   C_VARIABLE,
300*6236dae4SAndroid Build Coastguard Worker   C_VERBOSE,
301*6236dae4SAndroid Build Coastguard Worker   C_VERSION,
302*6236dae4SAndroid Build Coastguard Worker   C_VLAN_PRIORITY,
303*6236dae4SAndroid Build Coastguard Worker   C_WDEBUG,
304*6236dae4SAndroid Build Coastguard Worker   C_WRITE_OUT,
305*6236dae4SAndroid Build Coastguard Worker   C_XATTR
306*6236dae4SAndroid Build Coastguard Worker } cmdline_t;
307*6236dae4SAndroid Build Coastguard Worker 
308*6236dae4SAndroid Build Coastguard Worker #define ARG_NONE 0 /* stand-alone but not a boolean */
309*6236dae4SAndroid Build Coastguard Worker #define ARG_BOOL 1 /* accepts a --no-[name] prefix */
310*6236dae4SAndroid Build Coastguard Worker #define ARG_STRG 2 /* requires an argument */
311*6236dae4SAndroid Build Coastguard Worker #define ARG_FILE 3 /* requires an argument, usually a filename */
312*6236dae4SAndroid Build Coastguard Worker 
313*6236dae4SAndroid Build Coastguard Worker #define ARG_TYPEMASK 0x03
314*6236dae4SAndroid Build Coastguard Worker #define ARGTYPE(x) ((x) & ARG_TYPEMASK)
315*6236dae4SAndroid Build Coastguard Worker 
316*6236dae4SAndroid Build Coastguard Worker #define ARG_NO 0x80 /* set if the option is documented as --no-* */
317*6236dae4SAndroid Build Coastguard Worker 
318*6236dae4SAndroid Build Coastguard Worker struct LongShort {
319*6236dae4SAndroid Build Coastguard Worker   const char *lname;  /* long name option */
320*6236dae4SAndroid Build Coastguard Worker   unsigned char desc; /* type, see ARG_* */
321*6236dae4SAndroid Build Coastguard Worker   char letter;  /* short name option or ' ' */
322*6236dae4SAndroid Build Coastguard Worker   unsigned short cmd;
323*6236dae4SAndroid Build Coastguard Worker };
324*6236dae4SAndroid Build Coastguard Worker 
325*6236dae4SAndroid Build Coastguard Worker typedef enum {
326*6236dae4SAndroid Build Coastguard Worker   PARAM_OK = 0,
327*6236dae4SAndroid Build Coastguard Worker   PARAM_OPTION_AMBIGUOUS,
328*6236dae4SAndroid Build Coastguard Worker   PARAM_OPTION_UNKNOWN,
329*6236dae4SAndroid Build Coastguard Worker   PARAM_REQUIRES_PARAMETER,
330*6236dae4SAndroid Build Coastguard Worker   PARAM_BAD_USE,
331*6236dae4SAndroid Build Coastguard Worker   PARAM_HELP_REQUESTED,
332*6236dae4SAndroid Build Coastguard Worker   PARAM_MANUAL_REQUESTED,
333*6236dae4SAndroid Build Coastguard Worker   PARAM_VERSION_INFO_REQUESTED,
334*6236dae4SAndroid Build Coastguard Worker   PARAM_ENGINES_REQUESTED,
335*6236dae4SAndroid Build Coastguard Worker   PARAM_CA_EMBED_REQUESTED,
336*6236dae4SAndroid Build Coastguard Worker   PARAM_GOT_EXTRA_PARAMETER,
337*6236dae4SAndroid Build Coastguard Worker   PARAM_BAD_NUMERIC,
338*6236dae4SAndroid Build Coastguard Worker   PARAM_NEGATIVE_NUMERIC,
339*6236dae4SAndroid Build Coastguard Worker   PARAM_LIBCURL_DOESNT_SUPPORT,
340*6236dae4SAndroid Build Coastguard Worker   PARAM_LIBCURL_UNSUPPORTED_PROTOCOL,
341*6236dae4SAndroid Build Coastguard Worker   PARAM_NO_MEM,
342*6236dae4SAndroid Build Coastguard Worker   PARAM_NEXT_OPERATION,
343*6236dae4SAndroid Build Coastguard Worker   PARAM_NO_PREFIX,
344*6236dae4SAndroid Build Coastguard Worker   PARAM_NUMBER_TOO_LARGE,
345*6236dae4SAndroid Build Coastguard Worker   PARAM_NO_NOT_BOOLEAN,
346*6236dae4SAndroid Build Coastguard Worker   PARAM_CONTDISP_RESUME_FROM, /* --continue-at and --remote-header-name */
347*6236dae4SAndroid Build Coastguard Worker   PARAM_READ_ERROR,
348*6236dae4SAndroid Build Coastguard Worker   PARAM_EXPAND_ERROR, /* --expand problem */
349*6236dae4SAndroid Build Coastguard Worker   PARAM_BLANK_STRING,
350*6236dae4SAndroid Build Coastguard Worker   PARAM_LAST
351*6236dae4SAndroid Build Coastguard Worker } ParameterError;
352*6236dae4SAndroid Build Coastguard Worker 
353*6236dae4SAndroid Build Coastguard Worker struct GlobalConfig;
354*6236dae4SAndroid Build Coastguard Worker struct OperationConfig;
355*6236dae4SAndroid Build Coastguard Worker 
356*6236dae4SAndroid Build Coastguard Worker const struct LongShort *findlongopt(const char *opt);
357*6236dae4SAndroid Build Coastguard Worker const struct LongShort *findshortopt(char letter);
358*6236dae4SAndroid Build Coastguard Worker 
359*6236dae4SAndroid Build Coastguard Worker ParameterError getparameter(const char *flag, char *nextarg,
360*6236dae4SAndroid Build Coastguard Worker                             argv_item_t cleararg,
361*6236dae4SAndroid Build Coastguard Worker                             bool *usedarg,
362*6236dae4SAndroid Build Coastguard Worker                             struct GlobalConfig *global,
363*6236dae4SAndroid Build Coastguard Worker                             struct OperationConfig *operation);
364*6236dae4SAndroid Build Coastguard Worker 
365*6236dae4SAndroid Build Coastguard Worker #ifdef UNITTESTS
366*6236dae4SAndroid Build Coastguard Worker void parse_cert_parameter(const char *cert_parameter,
367*6236dae4SAndroid Build Coastguard Worker                           char **certname,
368*6236dae4SAndroid Build Coastguard Worker                           char **passphrase);
369*6236dae4SAndroid Build Coastguard Worker #endif
370*6236dae4SAndroid Build Coastguard Worker 
371*6236dae4SAndroid Build Coastguard Worker ParameterError parse_args(struct GlobalConfig *config, int argc,
372*6236dae4SAndroid Build Coastguard Worker                           argv_item_t argv[]);
373*6236dae4SAndroid Build Coastguard Worker 
374*6236dae4SAndroid Build Coastguard Worker #endif /* HEADER_CURL_TOOL_GETPARAM_H */
375