File: | src/idn_cmd.c |
Location: | line 547, column 3 |
Description: | Value stored to 'check_required' is never read |
1 | /* |
2 | File autogenerated by gengetopt version 2.22.6 |
3 | generated with the following command: |
4 | gengetopt --unamed-opts --no-handle-version --no-handle-help --set-package=idn --input idn.ggo --file-name idn_cmd Makefile.am |
5 | |
6 | The developers of gengetopt consider the fixed text that goes in all |
7 | gengetopt output files to be in the public domain: |
8 | we make no copyright claims on it. |
9 | */ |
10 | |
11 | /* If we use autoconf. */ |
12 | #ifdef HAVE_CONFIG_H1 |
13 | #include "config.h" |
14 | #endif |
15 | |
16 | #include <stdio.h> |
17 | #include <stdlib.h> |
18 | #include <string.h> |
19 | |
20 | #ifndef FIX_UNUSED |
21 | #define FIX_UNUSED(X)(void) (X) (void) (X) /* avoid warnings for unused params */ |
22 | #endif |
23 | |
24 | #include <getopt.h> |
25 | |
26 | #include "idn_cmd.h" |
27 | |
28 | const char *gengetopt_args_info_purpose = ""; |
29 | |
30 | const char *gengetopt_args_info_usage = "Usage: idn [OPTION]... [STRING]..."; |
31 | |
32 | const char *gengetopt_args_info_versiontext = ""; |
33 | |
34 | const char *gengetopt_args_info_description = ""; |
35 | |
36 | const char *gengetopt_args_info_full_help[] = { |
37 | " -h, --help Print help and exit", |
38 | " --full-help Print help, including hidden options, and exit", |
39 | " -V, --version Print version and exit", |
40 | " -s, --stringprep Prepare string according to nameprep profile", |
41 | " -d, --punycode-decode Decode Punycode", |
42 | " -e, --punycode-encode Encode Punycode", |
43 | " -a, --idna-to-ascii Convert to ACE according to IDNA (default)", |
44 | " -u, --idna-to-unicode Convert from ACE according to IDNA", |
45 | " --allow-unassigned Toggle IDNA AllowUnassigned flag (default=off)", |
46 | " --usestd3asciirules Toggle IDNA UseSTD3ASCIIRules flag (default=off)", |
47 | " -t, --tld Check string for TLD specific rules\n Only for --idna-to-ascii and --idna-to-unicode\n (default=on)", |
48 | " --no-tld Don't check string for TLD specific rules\n Only for --idna-to-ascii and --idna-to-unicode\n (default=off)", |
49 | " -n, --nfkc Normalize string according to Unicode v3.2 NFKC", |
50 | " -k, --hidden-nfkc Hidden parameter for backwards compatibility", |
51 | " -p, --profile=STRING Use specified stringprep profile instead\n Valid stringprep profiles are `Nameprep', `iSCSI',\n `Nodeprep', `Resourceprep', `trace', and\n `SASLprep'.", |
52 | " --debug Print debugging information (default=off)", |
53 | " --quiet Silent operation (default=off)", |
54 | 0 |
55 | }; |
56 | |
57 | static void |
58 | init_help_array(void) |
59 | { |
60 | gengetopt_args_info_help[0] = gengetopt_args_info_full_help[0]; |
61 | gengetopt_args_info_help[1] = gengetopt_args_info_full_help[1]; |
62 | gengetopt_args_info_help[2] = gengetopt_args_info_full_help[2]; |
63 | gengetopt_args_info_help[3] = gengetopt_args_info_full_help[3]; |
64 | gengetopt_args_info_help[4] = gengetopt_args_info_full_help[4]; |
65 | gengetopt_args_info_help[5] = gengetopt_args_info_full_help[5]; |
66 | gengetopt_args_info_help[6] = gengetopt_args_info_full_help[6]; |
67 | gengetopt_args_info_help[7] = gengetopt_args_info_full_help[7]; |
68 | gengetopt_args_info_help[8] = gengetopt_args_info_full_help[8]; |
69 | gengetopt_args_info_help[9] = gengetopt_args_info_full_help[9]; |
70 | gengetopt_args_info_help[10] = gengetopt_args_info_full_help[10]; |
71 | gengetopt_args_info_help[11] = gengetopt_args_info_full_help[11]; |
72 | gengetopt_args_info_help[12] = gengetopt_args_info_full_help[12]; |
73 | gengetopt_args_info_help[13] = gengetopt_args_info_full_help[14]; |
74 | gengetopt_args_info_help[14] = gengetopt_args_info_full_help[15]; |
75 | gengetopt_args_info_help[15] = gengetopt_args_info_full_help[16]; |
76 | gengetopt_args_info_help[16] = 0; |
77 | |
78 | } |
79 | |
80 | const char *gengetopt_args_info_help[17]; |
81 | |
82 | typedef enum {ARG_NO |
83 | , ARG_FLAG |
84 | , ARG_STRING |
85 | } cmdline_parser_arg_type; |
86 | |
87 | static |
88 | void clear_given (struct gengetopt_args_info *args_info); |
89 | static |
90 | void clear_args (struct gengetopt_args_info *args_info); |
91 | |
92 | static int |
93 | cmdline_parser_internal (int argc, char **argv, struct gengetopt_args_info *args_info, |
94 | struct cmdline_parser_params *params, const char *additional_error); |
95 | |
96 | |
97 | static char * |
98 | gengetopt_strdup (const char *s); |
99 | |
100 | static |
101 | void clear_given (struct gengetopt_args_info *args_info) |
102 | { |
103 | args_info->help_given = 0 ; |
104 | args_info->full_help_given = 0 ; |
105 | args_info->version_given = 0 ; |
106 | args_info->stringprep_given = 0 ; |
107 | args_info->punycode_decode_given = 0 ; |
108 | args_info->punycode_encode_given = 0 ; |
109 | args_info->idna_to_ascii_given = 0 ; |
110 | args_info->idna_to_unicode_given = 0 ; |
111 | args_info->allow_unassigned_given = 0 ; |
112 | args_info->usestd3asciirules_given = 0 ; |
113 | args_info->tld_given = 0 ; |
114 | args_info->no_tld_given = 0 ; |
115 | args_info->nfkc_given = 0 ; |
116 | args_info->hidden_nfkc_given = 0 ; |
117 | args_info->profile_given = 0 ; |
118 | args_info->debug_given = 0 ; |
119 | args_info->quiet_given = 0 ; |
120 | } |
121 | |
122 | static |
123 | void clear_args (struct gengetopt_args_info *args_info) |
124 | { |
125 | FIX_UNUSED (args_info)(void) (args_info); |
126 | args_info->allow_unassigned_flag = 0; |
127 | args_info->usestd3asciirules_flag = 0; |
128 | args_info->tld_flag = 1; |
129 | args_info->no_tld_flag = 0; |
130 | args_info->profile_arg = NULL((void*)0); |
131 | args_info->profile_orig = NULL((void*)0); |
132 | args_info->debug_flag = 0; |
133 | args_info->quiet_flag = 0; |
134 | |
135 | } |
136 | |
137 | static |
138 | void init_args_info(struct gengetopt_args_info *args_info) |
139 | { |
140 | |
141 | init_help_array(); |
142 | args_info->help_help = gengetopt_args_info_full_help[0] ; |
143 | args_info->full_help_help = gengetopt_args_info_full_help[1] ; |
144 | args_info->version_help = gengetopt_args_info_full_help[2] ; |
145 | args_info->stringprep_help = gengetopt_args_info_full_help[3] ; |
146 | args_info->punycode_decode_help = gengetopt_args_info_full_help[4] ; |
147 | args_info->punycode_encode_help = gengetopt_args_info_full_help[5] ; |
148 | args_info->idna_to_ascii_help = gengetopt_args_info_full_help[6] ; |
149 | args_info->idna_to_unicode_help = gengetopt_args_info_full_help[7] ; |
150 | args_info->allow_unassigned_help = gengetopt_args_info_full_help[8] ; |
151 | args_info->usestd3asciirules_help = gengetopt_args_info_full_help[9] ; |
152 | args_info->tld_help = gengetopt_args_info_full_help[10] ; |
153 | args_info->no_tld_help = gengetopt_args_info_full_help[11] ; |
154 | args_info->nfkc_help = gengetopt_args_info_full_help[12] ; |
155 | args_info->hidden_nfkc_help = gengetopt_args_info_full_help[13] ; |
156 | args_info->profile_help = gengetopt_args_info_full_help[14] ; |
157 | args_info->debug_help = gengetopt_args_info_full_help[15] ; |
158 | args_info->quiet_help = gengetopt_args_info_full_help[16] ; |
159 | |
160 | } |
161 | |
162 | void |
163 | cmdline_parser_print_version (void) |
164 | { |
165 | printf ("%s %s\n", |
166 | (strlen(CMDLINE_PARSER_PACKAGE_NAME"idn") ? CMDLINE_PARSER_PACKAGE_NAME"idn" : CMDLINE_PARSER_PACKAGE"idn"), |
167 | CMDLINE_PARSER_VERSION"1.32"); |
168 | |
169 | if (strlen(gengetopt_args_info_versiontext) > 0) |
170 | printf("\n%s\n", gengetopt_args_info_versiontext); |
171 | } |
172 | |
173 | static void print_help_common(void) { |
174 | cmdline_parser_print_version (); |
175 | |
176 | if (strlen(gengetopt_args_info_purpose) > 0) |
177 | printf("\n%s\n", gengetopt_args_info_purpose); |
178 | |
179 | if (strlen(gengetopt_args_info_usage) > 0) |
180 | printf("\n%s\n", gengetopt_args_info_usage); |
181 | |
182 | printf("\n"); |
183 | |
184 | if (strlen(gengetopt_args_info_description) > 0) |
185 | printf("%s\n\n", gengetopt_args_info_description); |
186 | } |
187 | |
188 | void |
189 | cmdline_parser_print_help (void) |
190 | { |
191 | int i = 0; |
192 | print_help_common(); |
193 | while (gengetopt_args_info_help[i]) |
194 | printf("%s\n", gengetopt_args_info_help[i++]); |
195 | } |
196 | |
197 | void |
198 | cmdline_parser_print_full_help (void) |
199 | { |
200 | int i = 0; |
201 | print_help_common(); |
202 | while (gengetopt_args_info_full_help[i]) |
203 | printf("%s\n", gengetopt_args_info_full_help[i++]); |
204 | } |
205 | |
206 | void |
207 | cmdline_parser_init (struct gengetopt_args_info *args_info) |
208 | { |
209 | clear_given (args_info); |
210 | clear_args (args_info); |
211 | init_args_info (args_info); |
212 | |
213 | args_info->inputs = 0; |
214 | args_info->inputs_num = 0; |
215 | } |
216 | |
217 | void |
218 | cmdline_parser_params_init(struct cmdline_parser_params *params) |
219 | { |
220 | if (params) |
221 | { |
222 | params->override = 0; |
223 | params->initialize = 1; |
224 | params->check_required = 1; |
225 | params->check_ambiguity = 0; |
226 | params->print_errors = 1; |
227 | } |
228 | } |
229 | |
230 | struct cmdline_parser_params * |
231 | cmdline_parser_params_create(void) |
232 | { |
233 | struct cmdline_parser_params *params = |
234 | (struct cmdline_parser_params *)malloc(sizeof(struct cmdline_parser_params)); |
235 | cmdline_parser_params_init(params); |
236 | return params; |
237 | } |
238 | |
239 | static void |
240 | free_string_field (char **s) |
241 | { |
242 | if (*s) |
243 | { |
244 | free (*s); |
245 | *s = 0; |
246 | } |
247 | } |
248 | |
249 | |
250 | static void |
251 | cmdline_parser_release (struct gengetopt_args_info *args_info) |
252 | { |
253 | unsigned int i; |
254 | free_string_field (&(args_info->profile_arg)); |
255 | free_string_field (&(args_info->profile_orig)); |
256 | |
257 | |
258 | for (i = 0; i < args_info->inputs_num; ++i) |
259 | free (args_info->inputs [i]); |
260 | |
261 | if (args_info->inputs_num) |
262 | free (args_info->inputs); |
263 | |
264 | clear_given (args_info); |
265 | } |
266 | |
267 | |
268 | static void |
269 | write_into_file(FILE *outfile, const char *opt, const char *arg, const char *values[]) |
270 | { |
271 | FIX_UNUSED (values)(void) (values); |
272 | if (arg) { |
273 | fprintf(outfile, "%s=\"%s\"\n", opt, arg); |
274 | } else { |
275 | fprintf(outfile, "%s\n", opt); |
276 | } |
277 | } |
278 | |
279 | |
280 | int |
281 | cmdline_parser_dump(FILE *outfile, struct gengetopt_args_info *args_info) |
282 | { |
283 | int i = 0; |
284 | |
285 | if (!outfile) |
286 | { |
287 | fprintf (stderrstderr, "%s: cannot dump options to stream\n", CMDLINE_PARSER_PACKAGE"idn"); |
288 | return EXIT_FAILURE1; |
289 | } |
290 | |
291 | if (args_info->help_given) |
292 | write_into_file(outfile, "help", 0, 0 ); |
293 | if (args_info->full_help_given) |
294 | write_into_file(outfile, "full-help", 0, 0 ); |
295 | if (args_info->version_given) |
296 | write_into_file(outfile, "version", 0, 0 ); |
297 | if (args_info->stringprep_given) |
298 | write_into_file(outfile, "stringprep", 0, 0 ); |
299 | if (args_info->punycode_decode_given) |
300 | write_into_file(outfile, "punycode-decode", 0, 0 ); |
301 | if (args_info->punycode_encode_given) |
302 | write_into_file(outfile, "punycode-encode", 0, 0 ); |
303 | if (args_info->idna_to_ascii_given) |
304 | write_into_file(outfile, "idna-to-ascii", 0, 0 ); |
305 | if (args_info->idna_to_unicode_given) |
306 | write_into_file(outfile, "idna-to-unicode", 0, 0 ); |
307 | if (args_info->allow_unassigned_given) |
308 | write_into_file(outfile, "allow-unassigned", 0, 0 ); |
309 | if (args_info->usestd3asciirules_given) |
310 | write_into_file(outfile, "usestd3asciirules", 0, 0 ); |
311 | if (args_info->tld_given) |
312 | write_into_file(outfile, "tld", 0, 0 ); |
313 | if (args_info->no_tld_given) |
314 | write_into_file(outfile, "no-tld", 0, 0 ); |
315 | if (args_info->nfkc_given) |
316 | write_into_file(outfile, "nfkc", 0, 0 ); |
317 | if (args_info->hidden_nfkc_given) |
318 | write_into_file(outfile, "hidden-nfkc", 0, 0 ); |
319 | if (args_info->profile_given) |
320 | write_into_file(outfile, "profile", args_info->profile_orig, 0); |
321 | if (args_info->debug_given) |
322 | write_into_file(outfile, "debug", 0, 0 ); |
323 | if (args_info->quiet_given) |
324 | write_into_file(outfile, "quiet", 0, 0 ); |
325 | |
326 | |
327 | i = EXIT_SUCCESS0; |
328 | return i; |
329 | } |
330 | |
331 | int |
332 | cmdline_parser_file_save(const char *filename, struct gengetopt_args_info *args_info) |
333 | { |
334 | FILE *outfile; |
335 | int i = 0; |
336 | |
337 | outfile = fopen(filename, "w"); |
338 | |
339 | if (!outfile) |
340 | { |
341 | fprintf (stderrstderr, "%s: cannot open file for writing: %s\n", CMDLINE_PARSER_PACKAGE"idn", filename); |
342 | return EXIT_FAILURE1; |
343 | } |
344 | |
345 | i = cmdline_parser_dump(outfile, args_info); |
346 | fclose (outfile); |
347 | |
348 | return i; |
349 | } |
350 | |
351 | void |
352 | cmdline_parser_free (struct gengetopt_args_info *args_info) |
353 | { |
354 | cmdline_parser_release (args_info); |
355 | } |
356 | |
357 | /** @brief replacement of strdup, which is not standard */ |
358 | char * |
359 | gengetopt_strdup (const char *s) |
360 | { |
361 | char *result = 0; |
362 | if (!s) |
363 | return result; |
364 | |
365 | result = (char*)malloc(strlen(s) + 1); |
366 | if (result == (char*)0) |
367 | return (char*)0; |
368 | strcpy(result, s); |
369 | return result; |
370 | } |
371 | |
372 | int |
373 | cmdline_parser (int argc, char **argv, struct gengetopt_args_info *args_info) |
374 | { |
375 | return cmdline_parser2 (argc, argv, args_info, 0, 1, 1); |
376 | } |
377 | |
378 | int |
379 | cmdline_parser_ext (int argc, char **argv, struct gengetopt_args_info *args_info, |
380 | struct cmdline_parser_params *params) |
381 | { |
382 | int result; |
383 | result = cmdline_parser_internal (argc, argv, args_info, params, 0); |
384 | |
385 | if (result == EXIT_FAILURE1) |
386 | { |
387 | cmdline_parser_free (args_info); |
388 | exit (EXIT_FAILURE1); |
389 | } |
390 | |
391 | return result; |
392 | } |
393 | |
394 | int |
395 | cmdline_parser2 (int argc, char **argv, struct gengetopt_args_info *args_info, int override, int initialize, int check_required) |
396 | { |
397 | int result; |
398 | struct cmdline_parser_params params; |
399 | |
400 | params.override = override; |
401 | params.initialize = initialize; |
402 | params.check_required = check_required; |
403 | params.check_ambiguity = 0; |
404 | params.print_errors = 1; |
405 | |
406 | result = cmdline_parser_internal (argc, argv, args_info, ¶ms, 0); |
407 | |
408 | if (result == EXIT_FAILURE1) |
409 | { |
410 | cmdline_parser_free (args_info); |
411 | exit (EXIT_FAILURE1); |
412 | } |
413 | |
414 | return result; |
415 | } |
416 | |
417 | int |
418 | cmdline_parser_required (struct gengetopt_args_info *args_info, const char *prog_name) |
419 | { |
420 | FIX_UNUSED (args_info)(void) (args_info); |
421 | FIX_UNUSED (prog_name)(void) (prog_name); |
422 | return EXIT_SUCCESS0; |
423 | } |
424 | |
425 | |
426 | static char *package_name = 0; |
427 | |
428 | /** |
429 | * @brief updates an option |
430 | * @param field the generic pointer to the field to update |
431 | * @param orig_field the pointer to the orig field |
432 | * @param field_given the pointer to the number of occurrence of this option |
433 | * @param prev_given the pointer to the number of occurrence already seen |
434 | * @param value the argument for this option (if null no arg was specified) |
435 | * @param possible_values the possible values for this option (if specified) |
436 | * @param default_value the default value (in case the option only accepts fixed values) |
437 | * @param arg_type the type of this option |
438 | * @param check_ambiguity @see cmdline_parser_params.check_ambiguity |
439 | * @param override @see cmdline_parser_params.override |
440 | * @param no_free whether to free a possible previous value |
441 | * @param multiple_option whether this is a multiple option |
442 | * @param long_opt the corresponding long option |
443 | * @param short_opt the corresponding short option (or '-' if none) |
444 | * @param additional_error possible further error specification |
445 | */ |
446 | static |
447 | int update_arg(void *field, char **orig_field, |
448 | unsigned int *field_given, unsigned int *prev_given, |
449 | char *value, const char *possible_values[], |
450 | const char *default_value, |
451 | cmdline_parser_arg_type arg_type, |
452 | int check_ambiguity, int override, |
453 | int no_free, int multiple_option, |
454 | const char *long_opt, char short_opt, |
455 | const char *additional_error) |
456 | { |
457 | char *stop_char = 0; |
458 | const char *val = value; |
459 | int found; |
460 | char **string_field; |
461 | FIX_UNUSED (field)(void) (field); |
462 | |
463 | stop_char = 0; |
464 | found = 0; |
465 | |
466 | if (!multiple_option && prev_given && (*prev_given || (check_ambiguity && *field_given))) |
467 | { |
468 | if (short_opt != '-') |
469 | fprintf (stderrstderr, "%s: `--%s' (`-%c') option given more than once%s\n", |
470 | package_name, long_opt, short_opt, |
471 | (additional_error ? additional_error : "")); |
472 | else |
473 | fprintf (stderrstderr, "%s: `--%s' option given more than once%s\n", |
474 | package_name, long_opt, |
475 | (additional_error ? additional_error : "")); |
476 | return 1; /* failure */ |
477 | } |
478 | |
479 | FIX_UNUSED (default_value)(void) (default_value); |
480 | |
481 | if (field_given && *field_given && ! override) |
482 | return 0; |
483 | if (prev_given) |
484 | (*prev_given)++; |
485 | if (field_given) |
486 | (*field_given)++; |
487 | if (possible_values) |
488 | val = possible_values[found]; |
489 | |
490 | switch(arg_type) { |
491 | case ARG_FLAG: |
492 | *((int *)field) = !*((int *)field); |
493 | break; |
494 | case ARG_STRING: |
495 | if (val) { |
496 | string_field = (char **)field; |
497 | if (!no_free && *string_field) |
498 | free (*string_field); /* free previous string */ |
499 | *string_field = gengetopt_strdup (val); |
500 | } |
501 | break; |
502 | default: |
503 | break; |
504 | }; |
505 | |
506 | |
507 | /* store the original value */ |
508 | switch(arg_type) { |
509 | case ARG_NO: |
510 | case ARG_FLAG: |
511 | break; |
512 | default: |
513 | if (value && orig_field) { |
514 | if (no_free) { |
515 | *orig_field = value; |
516 | } else { |
517 | if (*orig_field) |
518 | free (*orig_field); /* free previous string */ |
519 | *orig_field = gengetopt_strdup (value); |
520 | } |
521 | } |
522 | }; |
523 | |
524 | return 0; /* OK */ |
525 | } |
526 | |
527 | |
528 | int |
529 | cmdline_parser_internal ( |
530 | int argc, char **argv, struct gengetopt_args_info *args_info, |
531 | struct cmdline_parser_params *params, const char *additional_error) |
532 | { |
533 | int c; /* Character of the parsed option. */ |
534 | |
535 | int error_occurred = 0; |
536 | struct gengetopt_args_info local_args_info; |
537 | |
538 | int override; |
539 | int initialize; |
540 | int check_required; |
541 | int check_ambiguity; |
542 | |
543 | package_name = argv[0]; |
544 | |
545 | override = params->override; |
546 | initialize = params->initialize; |
547 | check_required = params->check_required; |
Value stored to 'check_required' is never read | |
548 | check_ambiguity = params->check_ambiguity; |
549 | |
550 | if (initialize) |
551 | cmdline_parser_init (args_info); |
552 | |
553 | cmdline_parser_init (&local_args_info); |
554 | |
555 | optarg = 0; |
556 | optind = 0; |
557 | opterr = params->print_errors; |
558 | optopt = '?'; |
559 | |
560 | while (1) |
561 | { |
562 | int option_index = 0; |
563 | |
564 | static struct option long_options[] = { |
565 | { "help", 0, NULL((void*)0), 'h' }, |
566 | { "full-help", 0, NULL((void*)0), 0 }, |
567 | { "version", 0, NULL((void*)0), 'V' }, |
568 | { "stringprep", 0, NULL((void*)0), 's' }, |
569 | { "punycode-decode", 0, NULL((void*)0), 'd' }, |
570 | { "punycode-encode", 0, NULL((void*)0), 'e' }, |
571 | { "idna-to-ascii", 0, NULL((void*)0), 'a' }, |
572 | { "idna-to-unicode", 0, NULL((void*)0), 'u' }, |
573 | { "allow-unassigned", 0, NULL((void*)0), 0 }, |
574 | { "usestd3asciirules", 0, NULL((void*)0), 0 }, |
575 | { "tld", 0, NULL((void*)0), 't' }, |
576 | { "no-tld", 0, NULL((void*)0), 0 }, |
577 | { "nfkc", 0, NULL((void*)0), 'n' }, |
578 | { "hidden-nfkc", 0, NULL((void*)0), 'k' }, |
579 | { "profile", 1, NULL((void*)0), 'p' }, |
580 | { "debug", 0, NULL((void*)0), 0 }, |
581 | { "quiet", 0, NULL((void*)0), 0 }, |
582 | { 0, 0, 0, 0 } |
583 | }; |
584 | |
585 | c = getopt_long (argc, argv, "hVsdeautnkp:", long_options, &option_index); |
586 | |
587 | if (c == -1) break; /* Exit from `while (1)' loop. */ |
588 | |
589 | switch (c) |
590 | { |
591 | case 'h': /* Print help and exit. */ |
592 | |
593 | |
594 | if (update_arg( 0 , |
595 | 0 , &(args_info->help_given), |
596 | &(local_args_info.help_given), optarg, 0, 0, ARG_NO, |
597 | check_ambiguity, override, 0, 0, |
598 | "help", 'h', |
599 | additional_error)) |
600 | goto failure; |
601 | cmdline_parser_free (&local_args_info); |
602 | return 0; |
603 | |
604 | break; |
605 | case 'V': /* Print version and exit. */ |
606 | |
607 | |
608 | if (update_arg( 0 , |
609 | 0 , &(args_info->version_given), |
610 | &(local_args_info.version_given), optarg, 0, 0, ARG_NO, |
611 | check_ambiguity, override, 0, 0, |
612 | "version", 'V', |
613 | additional_error)) |
614 | goto failure; |
615 | cmdline_parser_free (&local_args_info); |
616 | return 0; |
617 | |
618 | break; |
619 | case 's': /* Prepare string according to nameprep profile. */ |
620 | |
621 | |
622 | if (update_arg( 0 , |
623 | 0 , &(args_info->stringprep_given), |
624 | &(local_args_info.stringprep_given), optarg, 0, 0, ARG_NO, |
625 | check_ambiguity, override, 0, 0, |
626 | "stringprep", 's', |
627 | additional_error)) |
628 | goto failure; |
629 | |
630 | break; |
631 | case 'd': /* Decode Punycode. */ |
632 | |
633 | |
634 | if (update_arg( 0 , |
635 | 0 , &(args_info->punycode_decode_given), |
636 | &(local_args_info.punycode_decode_given), optarg, 0, 0, ARG_NO, |
637 | check_ambiguity, override, 0, 0, |
638 | "punycode-decode", 'd', |
639 | additional_error)) |
640 | goto failure; |
641 | |
642 | break; |
643 | case 'e': /* Encode Punycode. */ |
644 | |
645 | |
646 | if (update_arg( 0 , |
647 | 0 , &(args_info->punycode_encode_given), |
648 | &(local_args_info.punycode_encode_given), optarg, 0, 0, ARG_NO, |
649 | check_ambiguity, override, 0, 0, |
650 | "punycode-encode", 'e', |
651 | additional_error)) |
652 | goto failure; |
653 | |
654 | break; |
655 | case 'a': /* Convert to ACE according to IDNA (default). */ |
656 | |
657 | |
658 | if (update_arg( 0 , |
659 | 0 , &(args_info->idna_to_ascii_given), |
660 | &(local_args_info.idna_to_ascii_given), optarg, 0, 0, ARG_NO, |
661 | check_ambiguity, override, 0, 0, |
662 | "idna-to-ascii", 'a', |
663 | additional_error)) |
664 | goto failure; |
665 | |
666 | break; |
667 | case 'u': /* Convert from ACE according to IDNA. */ |
668 | |
669 | |
670 | if (update_arg( 0 , |
671 | 0 , &(args_info->idna_to_unicode_given), |
672 | &(local_args_info.idna_to_unicode_given), optarg, 0, 0, ARG_NO, |
673 | check_ambiguity, override, 0, 0, |
674 | "idna-to-unicode", 'u', |
675 | additional_error)) |
676 | goto failure; |
677 | |
678 | break; |
679 | case 't': /* Check string for TLD specific rules |
680 | Only for --idna-to-ascii and --idna-to-unicode. */ |
681 | |
682 | |
683 | if (update_arg((void *)&(args_info->tld_flag), 0, &(args_info->tld_given), |
684 | &(local_args_info.tld_given), optarg, 0, 0, ARG_FLAG, |
685 | check_ambiguity, override, 1, 0, "tld", 't', |
686 | additional_error)) |
687 | goto failure; |
688 | |
689 | break; |
690 | case 'n': /* Normalize string according to Unicode v3.2 NFKC. */ |
691 | |
692 | |
693 | if (update_arg( 0 , |
694 | 0 , &(args_info->nfkc_given), |
695 | &(local_args_info.nfkc_given), optarg, 0, 0, ARG_NO, |
696 | check_ambiguity, override, 0, 0, |
697 | "nfkc", 'n', |
698 | additional_error)) |
699 | goto failure; |
700 | |
701 | break; |
702 | case 'k': /* Hidden parameter for backwards compatibility. */ |
703 | |
704 | |
705 | if (update_arg( 0 , |
706 | 0 , &(args_info->hidden_nfkc_given), |
707 | &(local_args_info.hidden_nfkc_given), optarg, 0, 0, ARG_NO, |
708 | check_ambiguity, override, 0, 0, |
709 | "hidden-nfkc", 'k', |
710 | additional_error)) |
711 | goto failure; |
712 | |
713 | break; |
714 | case 'p': /* Use specified stringprep profile instead |
715 | Valid stringprep profiles are `Nameprep', `iSCSI', `Nodeprep', `Resourceprep', `trace', and `SASLprep'.. */ |
716 | |
717 | |
718 | if (update_arg( (void *)&(args_info->profile_arg), |
719 | &(args_info->profile_orig), &(args_info->profile_given), |
720 | &(local_args_info.profile_given), optarg, 0, 0, ARG_STRING, |
721 | check_ambiguity, override, 0, 0, |
722 | "profile", 'p', |
723 | additional_error)) |
724 | goto failure; |
725 | |
726 | break; |
727 | |
728 | case 0: /* Long option with no short option */ |
729 | /* Print help, including hidden options, and exit. */ |
730 | if (strcmp (long_options[option_index].name, "full-help")__extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (long_options[option_index].name) && __builtin_constant_p ("full-help") && (__s1_len = __builtin_strlen (long_options [option_index].name), __s2_len = __builtin_strlen ("full-help" ), (!((size_t)(const void *)((long_options[option_index].name ) + 1) - (size_t)(const void *)(long_options[option_index].name ) == 1) || __s1_len >= 4) && (!((size_t)(const void *)(("full-help") + 1) - (size_t)(const void *)("full-help") == 1) || __s2_len >= 4)) ? __builtin_strcmp (long_options[option_index ].name, "full-help") : (__builtin_constant_p (long_options[option_index ].name) && ((size_t)(const void *)((long_options[option_index ].name) + 1) - (size_t)(const void *)(long_options[option_index ].name) == 1) && (__s1_len = __builtin_strlen (long_options [option_index].name), __s1_len < 4) ? (__builtin_constant_p ("full-help") && ((size_t)(const void *)(("full-help" ) + 1) - (size_t)(const void *)("full-help") == 1) ? __builtin_strcmp (long_options[option_index].name, "full-help") : (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) ("full-help"); int __result = (((const unsigned char *) (const char *) (long_options[option_index].name))[0] - __s2 [0]); if (__s1_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) (long_options[option_index ].name))[1] - __s2[1]); if (__s1_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) ( long_options[option_index].name))[2] - __s2[2]); if (__s1_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) (long_options[option_index].name))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p ("full-help" ) && ((size_t)(const void *)(("full-help") + 1) - (size_t )(const void *)("full-help") == 1) && (__s2_len = __builtin_strlen ("full-help"), __s2_len < 4) ? (__builtin_constant_p (long_options [option_index].name) && ((size_t)(const void *)((long_options [option_index].name) + 1) - (size_t)(const void *)(long_options [option_index].name) == 1) ? __builtin_strcmp (long_options[option_index ].name, "full-help") : (- (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (long_options [option_index].name); int __result = (((const unsigned char * ) (const char *) ("full-help"))[0] - __s2[0]); if (__s2_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) ("full-help"))[1] - __s2[1]); if (__s2_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) ("full-help"))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ("full-help"))[3] - __s2[3]); } } __result ; })))) : __builtin_strcmp (long_options[option_index].name, "full-help" )))); }) == 0) |
731 | { |
732 | |
733 | |
734 | if (update_arg( 0 , |
735 | 0 , &(args_info->full_help_given), |
736 | &(local_args_info.full_help_given), optarg, 0, 0, ARG_NO, |
737 | check_ambiguity, override, 0, 0, |
738 | "full-help", '-', |
739 | additional_error)) |
740 | goto failure; |
741 | cmdline_parser_free (&local_args_info); |
742 | return 0; |
743 | |
744 | } |
745 | /* Toggle IDNA AllowUnassigned flag. */ |
746 | else if (strcmp (long_options[option_index].name, "allow-unassigned")__extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (long_options[option_index].name) && __builtin_constant_p ("allow-unassigned") && (__s1_len = __builtin_strlen (long_options[option_index].name), __s2_len = __builtin_strlen ("allow-unassigned"), (!((size_t)(const void *)((long_options [option_index].name) + 1) - (size_t)(const void *)(long_options [option_index].name) == 1) || __s1_len >= 4) && (! ((size_t)(const void *)(("allow-unassigned") + 1) - (size_t)( const void *)("allow-unassigned") == 1) || __s2_len >= 4)) ? __builtin_strcmp (long_options[option_index].name, "allow-unassigned" ) : (__builtin_constant_p (long_options[option_index].name) && ((size_t)(const void *)((long_options[option_index].name) + 1 ) - (size_t)(const void *)(long_options[option_index].name) == 1) && (__s1_len = __builtin_strlen (long_options[option_index ].name), __s1_len < 4) ? (__builtin_constant_p ("allow-unassigned" ) && ((size_t)(const void *)(("allow-unassigned") + 1 ) - (size_t)(const void *)("allow-unassigned") == 1) ? __builtin_strcmp (long_options[option_index].name, "allow-unassigned") : (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) ("allow-unassigned"); int __result = (((const unsigned char *) (const char *) (long_options[option_index].name))[0] - __s2[0]); if (__s1_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) (long_options[option_index ].name))[1] - __s2[1]); if (__s1_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) ( long_options[option_index].name))[2] - __s2[2]); if (__s1_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) (long_options[option_index].name))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p ("allow-unassigned" ) && ((size_t)(const void *)(("allow-unassigned") + 1 ) - (size_t)(const void *)("allow-unassigned") == 1) && (__s2_len = __builtin_strlen ("allow-unassigned"), __s2_len < 4) ? (__builtin_constant_p (long_options[option_index].name) && ((size_t)(const void *)((long_options[option_index ].name) + 1) - (size_t)(const void *)(long_options[option_index ].name) == 1) ? __builtin_strcmp (long_options[option_index]. name, "allow-unassigned") : (- (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (long_options [option_index].name); int __result = (((const unsigned char * ) (const char *) ("allow-unassigned"))[0] - __s2[0]); if (__s2_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) ("allow-unassigned"))[1] - __s2[1]); if (__s2_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) ("allow-unassigned"))[2] - __s2 [2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ("allow-unassigned" ))[3] - __s2[3]); } } __result; })))) : __builtin_strcmp (long_options [option_index].name, "allow-unassigned")))); }) == 0) |
747 | { |
748 | |
749 | |
750 | if (update_arg((void *)&(args_info->allow_unassigned_flag), 0, &(args_info->allow_unassigned_given), |
751 | &(local_args_info.allow_unassigned_given), optarg, 0, 0, ARG_FLAG, |
752 | check_ambiguity, override, 1, 0, "allow-unassigned", '-', |
753 | additional_error)) |
754 | goto failure; |
755 | |
756 | } |
757 | /* Toggle IDNA UseSTD3ASCIIRules flag. */ |
758 | else if (strcmp (long_options[option_index].name, "usestd3asciirules")__extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (long_options[option_index].name) && __builtin_constant_p ("usestd3asciirules") && (__s1_len = __builtin_strlen (long_options[option_index].name), __s2_len = __builtin_strlen ("usestd3asciirules"), (!((size_t)(const void *)((long_options [option_index].name) + 1) - (size_t)(const void *)(long_options [option_index].name) == 1) || __s1_len >= 4) && (! ((size_t)(const void *)(("usestd3asciirules") + 1) - (size_t) (const void *)("usestd3asciirules") == 1) || __s2_len >= 4 )) ? __builtin_strcmp (long_options[option_index].name, "usestd3asciirules" ) : (__builtin_constant_p (long_options[option_index].name) && ((size_t)(const void *)((long_options[option_index].name) + 1 ) - (size_t)(const void *)(long_options[option_index].name) == 1) && (__s1_len = __builtin_strlen (long_options[option_index ].name), __s1_len < 4) ? (__builtin_constant_p ("usestd3asciirules" ) && ((size_t)(const void *)(("usestd3asciirules") + 1 ) - (size_t)(const void *)("usestd3asciirules") == 1) ? __builtin_strcmp (long_options[option_index].name, "usestd3asciirules") : (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) ("usestd3asciirules"); int __result = (((const unsigned char *) (const char *) (long_options[option_index].name))[0] - __s2[0]); if (__s1_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) (long_options[option_index ].name))[1] - __s2[1]); if (__s1_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) ( long_options[option_index].name))[2] - __s2[2]); if (__s1_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) (long_options[option_index].name))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p ("usestd3asciirules" ) && ((size_t)(const void *)(("usestd3asciirules") + 1 ) - (size_t)(const void *)("usestd3asciirules") == 1) && (__s2_len = __builtin_strlen ("usestd3asciirules"), __s2_len < 4) ? (__builtin_constant_p (long_options[option_index]. name) && ((size_t)(const void *)((long_options[option_index ].name) + 1) - (size_t)(const void *)(long_options[option_index ].name) == 1) ? __builtin_strcmp (long_options[option_index]. name, "usestd3asciirules") : (- (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (long_options [option_index].name); int __result = (((const unsigned char * ) (const char *) ("usestd3asciirules"))[0] - __s2[0]); if (__s2_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) ("usestd3asciirules"))[1] - __s2[1]); if (__s2_len > 1 && __result == 0) { __result = ( ((const unsigned char *) (const char *) ("usestd3asciirules") )[2] - __s2[2]); if (__s2_len > 2 && __result == 0 ) __result = (((const unsigned char *) (const char *) ("usestd3asciirules" ))[3] - __s2[3]); } } __result; })))) : __builtin_strcmp (long_options [option_index].name, "usestd3asciirules")))); }) == 0) |
759 | { |
760 | |
761 | |
762 | if (update_arg((void *)&(args_info->usestd3asciirules_flag), 0, &(args_info->usestd3asciirules_given), |
763 | &(local_args_info.usestd3asciirules_given), optarg, 0, 0, ARG_FLAG, |
764 | check_ambiguity, override, 1, 0, "usestd3asciirules", '-', |
765 | additional_error)) |
766 | goto failure; |
767 | |
768 | } |
769 | /* Don't check string for TLD specific rules |
770 | Only for --idna-to-ascii and --idna-to-unicode. */ |
771 | else if (strcmp (long_options[option_index].name, "no-tld")__extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (long_options[option_index].name) && __builtin_constant_p ("no-tld") && (__s1_len = __builtin_strlen (long_options [option_index].name), __s2_len = __builtin_strlen ("no-tld"), (!((size_t)(const void *)((long_options[option_index].name) + 1) - (size_t)(const void *)(long_options[option_index].name) == 1) || __s1_len >= 4) && (!((size_t)(const void *)(("no-tld") + 1) - (size_t)(const void *)("no-tld") == 1) || __s2_len >= 4)) ? __builtin_strcmp (long_options[option_index ].name, "no-tld") : (__builtin_constant_p (long_options[option_index ].name) && ((size_t)(const void *)((long_options[option_index ].name) + 1) - (size_t)(const void *)(long_options[option_index ].name) == 1) && (__s1_len = __builtin_strlen (long_options [option_index].name), __s1_len < 4) ? (__builtin_constant_p ("no-tld") && ((size_t)(const void *)(("no-tld") + 1 ) - (size_t)(const void *)("no-tld") == 1) ? __builtin_strcmp (long_options[option_index].name, "no-tld") : (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) ("no-tld"); int __result = (((const unsigned char *) (const char *) (long_options[option_index].name))[0] - __s2[ 0]); if (__s1_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) (long_options[option_index ].name))[1] - __s2[1]); if (__s1_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) ( long_options[option_index].name))[2] - __s2[2]); if (__s1_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) (long_options[option_index].name))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p ("no-tld" ) && ((size_t)(const void *)(("no-tld") + 1) - (size_t )(const void *)("no-tld") == 1) && (__s2_len = __builtin_strlen ("no-tld"), __s2_len < 4) ? (__builtin_constant_p (long_options [option_index].name) && ((size_t)(const void *)((long_options [option_index].name) + 1) - (size_t)(const void *)(long_options [option_index].name) == 1) ? __builtin_strcmp (long_options[option_index ].name, "no-tld") : (- (__extension__ ({ const unsigned char * __s2 = (const unsigned char *) (const char *) (long_options[option_index ].name); int __result = (((const unsigned char *) (const char *) ("no-tld"))[0] - __s2[0]); if (__s2_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) ("no-tld"))[1] - __s2[1]); if (__s2_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) ("no-tld"))[2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ("no-tld"))[3] - __s2[3]); } } __result; })))) : __builtin_strcmp (long_options[option_index].name, "no-tld")))); }) == 0) |
772 | { |
773 | |
774 | |
775 | if (update_arg((void *)&(args_info->no_tld_flag), 0, &(args_info->no_tld_given), |
776 | &(local_args_info.no_tld_given), optarg, 0, 0, ARG_FLAG, |
777 | check_ambiguity, override, 1, 0, "no-tld", '-', |
778 | additional_error)) |
779 | goto failure; |
780 | |
781 | } |
782 | /* Print debugging information. */ |
783 | else if (strcmp (long_options[option_index].name, "debug")__extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (long_options[option_index].name) && __builtin_constant_p ("debug") && (__s1_len = __builtin_strlen (long_options [option_index].name), __s2_len = __builtin_strlen ("debug"), ( !((size_t)(const void *)((long_options[option_index].name) + 1 ) - (size_t)(const void *)(long_options[option_index].name) == 1) || __s1_len >= 4) && (!((size_t)(const void *) (("debug") + 1) - (size_t)(const void *)("debug") == 1) || __s2_len >= 4)) ? __builtin_strcmp (long_options[option_index].name , "debug") : (__builtin_constant_p (long_options[option_index ].name) && ((size_t)(const void *)((long_options[option_index ].name) + 1) - (size_t)(const void *)(long_options[option_index ].name) == 1) && (__s1_len = __builtin_strlen (long_options [option_index].name), __s1_len < 4) ? (__builtin_constant_p ("debug") && ((size_t)(const void *)(("debug") + 1) - (size_t)(const void *)("debug") == 1) ? __builtin_strcmp (long_options [option_index].name, "debug") : (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) ("debug" ); int __result = (((const unsigned char *) (const char *) (long_options [option_index].name))[0] - __s2[0]); if (__s1_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) (long_options[option_index].name))[1] - __s2[1]); if (__s1_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) (long_options[option_index]. name))[2] - __s2[2]); if (__s1_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) (long_options [option_index].name))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p ("debug") && ((size_t)(const void *)(("debug") + 1) - (size_t)(const void *)("debug") == 1) && (__s2_len = __builtin_strlen ("debug"), __s2_len < 4) ? (__builtin_constant_p (long_options[option_index].name) && ((size_t)(const void *)((long_options[option_index].name) + 1) - (size_t)(const void *)(long_options[option_index].name) == 1) ? __builtin_strcmp (long_options[option_index].name, "debug") : (- (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (long_options[option_index].name); int __result = (( (const unsigned char *) (const char *) ("debug"))[0] - __s2[0 ]); if (__s2_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) ("debug"))[1] - __s2 [1]); if (__s2_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) ("debug"))[2] - __s2 [2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ("debug"))[3] - __s2 [3]); } } __result; })))) : __builtin_strcmp (long_options[option_index ].name, "debug")))); }) == 0) |
784 | { |
785 | |
786 | |
787 | if (update_arg((void *)&(args_info->debug_flag), 0, &(args_info->debug_given), |
788 | &(local_args_info.debug_given), optarg, 0, 0, ARG_FLAG, |
789 | check_ambiguity, override, 1, 0, "debug", '-', |
790 | additional_error)) |
791 | goto failure; |
792 | |
793 | } |
794 | /* Silent operation. */ |
795 | else if (strcmp (long_options[option_index].name, "quiet")__extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (long_options[option_index].name) && __builtin_constant_p ("quiet") && (__s1_len = __builtin_strlen (long_options [option_index].name), __s2_len = __builtin_strlen ("quiet"), ( !((size_t)(const void *)((long_options[option_index].name) + 1 ) - (size_t)(const void *)(long_options[option_index].name) == 1) || __s1_len >= 4) && (!((size_t)(const void *) (("quiet") + 1) - (size_t)(const void *)("quiet") == 1) || __s2_len >= 4)) ? __builtin_strcmp (long_options[option_index].name , "quiet") : (__builtin_constant_p (long_options[option_index ].name) && ((size_t)(const void *)((long_options[option_index ].name) + 1) - (size_t)(const void *)(long_options[option_index ].name) == 1) && (__s1_len = __builtin_strlen (long_options [option_index].name), __s1_len < 4) ? (__builtin_constant_p ("quiet") && ((size_t)(const void *)(("quiet") + 1) - (size_t)(const void *)("quiet") == 1) ? __builtin_strcmp (long_options [option_index].name, "quiet") : (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) ("quiet" ); int __result = (((const unsigned char *) (const char *) (long_options [option_index].name))[0] - __s2[0]); if (__s1_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) (long_options[option_index].name))[1] - __s2[1]); if (__s1_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) (long_options[option_index]. name))[2] - __s2[2]); if (__s1_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) (long_options [option_index].name))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p ("quiet") && ((size_t)(const void *)(("quiet") + 1) - (size_t)(const void *)("quiet") == 1) && (__s2_len = __builtin_strlen ("quiet"), __s2_len < 4) ? (__builtin_constant_p (long_options[option_index].name) && ((size_t)(const void *)((long_options[option_index].name) + 1) - (size_t)(const void *)(long_options[option_index].name) == 1) ? __builtin_strcmp (long_options[option_index].name, "quiet") : (- (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (long_options[option_index].name); int __result = (( (const unsigned char *) (const char *) ("quiet"))[0] - __s2[0 ]); if (__s2_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) ("quiet"))[1] - __s2 [1]); if (__s2_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) ("quiet"))[2] - __s2 [2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) ("quiet"))[3] - __s2 [3]); } } __result; })))) : __builtin_strcmp (long_options[option_index ].name, "quiet")))); }) == 0) |
796 | { |
797 | |
798 | |
799 | if (update_arg((void *)&(args_info->quiet_flag), 0, &(args_info->quiet_given), |
800 | &(local_args_info.quiet_given), optarg, 0, 0, ARG_FLAG, |
801 | check_ambiguity, override, 1, 0, "quiet", '-', |
802 | additional_error)) |
803 | goto failure; |
804 | |
805 | } |
806 | |
807 | break; |
808 | case '?': /* Invalid option. */ |
809 | /* `getopt_long' already printed an error message. */ |
810 | goto failure; |
811 | |
812 | default: /* bug: option not considered. */ |
813 | fprintf (stderrstderr, "%s: option unknown: %c%s\n", CMDLINE_PARSER_PACKAGE"idn", c, (additional_error ? additional_error : "")); |
814 | abort (); |
815 | } /* switch */ |
816 | } /* while */ |
817 | |
818 | |
819 | |
820 | |
821 | cmdline_parser_release (&local_args_info); |
822 | |
823 | if ( error_occurred ) |
824 | return (EXIT_FAILURE1); |
825 | |
826 | if (optind < argc) |
827 | { |
828 | int i = 0 ; |
829 | int found_prog_name = 0; |
830 | /* whether program name, i.e., argv[0], is in the remaining args |
831 | (this may happen with some implementations of getopt, |
832 | but surely not with the one included by gengetopt) */ |
833 | |
834 | i = optind; |
835 | while (i < argc) |
836 | if (argv[i++] == argv[0]) { |
837 | found_prog_name = 1; |
838 | break; |
839 | } |
840 | i = 0; |
841 | |
842 | args_info->inputs_num = argc - optind - found_prog_name; |
843 | args_info->inputs = |
844 | (char **)(malloc ((args_info->inputs_num)*sizeof(char *))) ; |
845 | while (optind < argc) |
846 | if (argv[optind++] != argv[0]) |
847 | args_info->inputs[ i++ ] = gengetopt_strdup (argv[optind-1]) ; |
848 | } |
849 | |
850 | return 0; |
851 | |
852 | failure: |
853 | |
854 | cmdline_parser_release (&local_args_info); |
855 | return (EXIT_FAILURE1); |
856 | } |