ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/trunk/OOPSE-4/src/applications/dynamicProps/DynamicPropsCmd.c
Revision: 3110
Committed: Wed Jan 3 20:47:00 2007 UTC (17 years, 8 months ago) by chuckv
Content type: text/plain
File size: 20661 byte(s)
Log Message:
Changes to add thetacorr to dynamic props and fixes to radial rcorr.

File Contents

# User Rev Content
1 tim 2004 /*
2 chuckv 3084 File autogenerated by gengetopt version 2.15
3 tim 2004 generated with the following command:
4 chuckv 3110 gengetopt -u -i DynamicProps.ggo -F DynamicPropsCmd
5 tim 2004
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 chuckv 3084 /* If we use autoconf. */
12     #ifdef HAVE_CONFIG_H
13     #include "config.h"
14     #endif
15 tim 2004
16     #include <stdio.h>
17     #include <stdlib.h>
18     #include <string.h>
19    
20     #include "getopt.h"
21    
22     #include "DynamicPropsCmd.h"
23    
24 chuckv 3084 static
25     void clear_given (struct gengetopt_args_info *args_info);
26     static
27     void clear_args (struct gengetopt_args_info *args_info);
28    
29     static int
30     cmdline_parser_internal (int argc, char * const *argv, struct gengetopt_args_info *args_info, int override, int initialize, int check_required, const char *additional_error);
31    
32     static int
33     cmdline_parser_required2 (struct gengetopt_args_info *args_info, const char *prog_name, const char *additional_error);
34    
35     static char *
36     gengetopt_strdup (const char *s);
37    
38     static
39     void clear_given (struct gengetopt_args_info *args_info)
40     {
41     args_info->help_given = 0 ;
42     args_info->version_given = 0 ;
43     args_info->input_given = 0 ;
44     args_info->output_given = 0 ;
45     args_info->sele1_given = 0 ;
46     args_info->sele2_given = 0 ;
47     args_info->order_given = 0 ;
48     args_info->rcorr_given = 0 ;
49     args_info->vcorr_given = 0 ;
50     args_info->dcorr_given = 0 ;
51     args_info->lcorr_given = 0 ;
52     args_info->r_rcorr_given = 0 ;
53 chuckv 3110 args_info->thetacorr_given = 0 ;
54 chuckv 3084 args_info->dynamicProps_group_counter = 0 ;
55     }
56    
57     static
58     void clear_args (struct gengetopt_args_info *args_info)
59     {
60     args_info->input_arg = NULL;
61     args_info->input_orig = NULL;
62     args_info->output_arg = NULL;
63     args_info->output_orig = NULL;
64     args_info->sele1_arg = NULL;
65     args_info->sele1_orig = NULL;
66     args_info->sele2_arg = NULL;
67     args_info->sele2_orig = NULL;
68     args_info->order_orig = NULL;
69    
70     }
71    
72 tim 2004 void
73     cmdline_parser_print_version (void)
74     {
75     printf ("%s %s\n", CMDLINE_PARSER_PACKAGE, CMDLINE_PARSER_VERSION);
76     }
77    
78     void
79     cmdline_parser_print_help (void)
80     {
81     cmdline_parser_print_version ();
82 chuckv 3110 printf("\nUsage: DynamicProps [OPTIONS]... [FILES]...\n\n");
83 chuckv 3084 printf("%s\n"," -h, --help Print help and exit");
84     printf("%s\n"," -V, --version Print version and exit");
85     printf("%s\n"," -i, --input=filename input dump file");
86     printf("%s\n"," -o, --output=filename output file name");
87     printf("%s\n"," --sele1=selection script select first stuntdouble set");
88     printf("%s\n"," --sele2=selection script select second stuntdouble set (if sele2 is not \n set, use script from sele1)");
89     printf("%s\n"," --order=INT Lengendre Polynomial Order");
90     printf("%s\n","\n Group: dynamicProps\n an option of this group is required");
91     printf("%s\n"," -r, --rcorr rmsd");
92     printf("%s\n"," -v, --vcorr velocity correlation function");
93     printf("%s\n"," -d, --dcorr dipole correlation function");
94     printf("%s\n"," -l, --lcorr Lengendre correlation function");
95     printf("%s\n"," --r_rcorr Radial rmsd");
96 chuckv 3110 printf("%s\n"," --thetacorr Angular rmsd");
97 chuckv 3084
98 tim 2004 }
99    
100 chuckv 3084 void
101     cmdline_parser_init (struct gengetopt_args_info *args_info)
102     {
103     clear_given (args_info);
104     clear_args (args_info);
105 chuckv 3110
106     args_info->inputs = NULL;
107     args_info->inputs_num = 0;
108 chuckv 3084 }
109 tim 2004
110 chuckv 3084 static void
111     cmdline_parser_release (struct gengetopt_args_info *args_info)
112     {
113    
114 chuckv 3110 unsigned int i;
115 chuckv 3084 if (args_info->input_arg)
116     {
117     free (args_info->input_arg); /* free previous argument */
118     args_info->input_arg = 0;
119     }
120     if (args_info->input_orig)
121     {
122     free (args_info->input_orig); /* free previous argument */
123     args_info->input_orig = 0;
124     }
125     if (args_info->output_arg)
126     {
127     free (args_info->output_arg); /* free previous argument */
128     args_info->output_arg = 0;
129     }
130     if (args_info->output_orig)
131     {
132     free (args_info->output_orig); /* free previous argument */
133     args_info->output_orig = 0;
134     }
135     if (args_info->sele1_arg)
136     {
137     free (args_info->sele1_arg); /* free previous argument */
138     args_info->sele1_arg = 0;
139     }
140     if (args_info->sele1_orig)
141     {
142     free (args_info->sele1_orig); /* free previous argument */
143     args_info->sele1_orig = 0;
144     }
145     if (args_info->sele2_arg)
146     {
147     free (args_info->sele2_arg); /* free previous argument */
148     args_info->sele2_arg = 0;
149     }
150     if (args_info->sele2_orig)
151     {
152     free (args_info->sele2_orig); /* free previous argument */
153     args_info->sele2_orig = 0;
154     }
155     if (args_info->order_orig)
156     {
157     free (args_info->order_orig); /* free previous argument */
158     args_info->order_orig = 0;
159     }
160    
161 chuckv 3110 for (i = 0; i < args_info->inputs_num; ++i)
162     free (args_info->inputs [i]);
163    
164     if (args_info->inputs_num)
165     free (args_info->inputs);
166    
167 chuckv 3084 clear_given (args_info);
168     }
169 tim 2004
170 chuckv 3084 int
171     cmdline_parser_file_save(const char *filename, struct gengetopt_args_info *args_info)
172     {
173     FILE *outfile;
174     int i = 0;
175    
176     outfile = fopen(filename, "w");
177    
178     if (!outfile)
179     {
180     fprintf (stderr, "%s: cannot open file for writing: %s\n", CMDLINE_PARSER_PACKAGE, filename);
181     return EXIT_FAILURE;
182     }
183    
184     if (args_info->help_given) {
185     fprintf(outfile, "%s\n", "help");
186     }
187     if (args_info->version_given) {
188     fprintf(outfile, "%s\n", "version");
189     }
190     if (args_info->input_given) {
191     if (args_info->input_orig) {
192     fprintf(outfile, "%s=\"%s\"\n", "input", args_info->input_orig);
193     } else {
194     fprintf(outfile, "%s\n", "input");
195     }
196     }
197     if (args_info->output_given) {
198     if (args_info->output_orig) {
199     fprintf(outfile, "%s=\"%s\"\n", "output", args_info->output_orig);
200     } else {
201     fprintf(outfile, "%s\n", "output");
202     }
203     }
204     if (args_info->sele1_given) {
205     if (args_info->sele1_orig) {
206     fprintf(outfile, "%s=\"%s\"\n", "sele1", args_info->sele1_orig);
207     } else {
208     fprintf(outfile, "%s\n", "sele1");
209     }
210     }
211     if (args_info->sele2_given) {
212     if (args_info->sele2_orig) {
213     fprintf(outfile, "%s=\"%s\"\n", "sele2", args_info->sele2_orig);
214     } else {
215     fprintf(outfile, "%s\n", "sele2");
216     }
217     }
218     if (args_info->order_given) {
219     if (args_info->order_orig) {
220     fprintf(outfile, "%s=\"%s\"\n", "order", args_info->order_orig);
221     } else {
222     fprintf(outfile, "%s\n", "order");
223     }
224     }
225     if (args_info->rcorr_given) {
226     fprintf(outfile, "%s\n", "rcorr");
227     }
228     if (args_info->vcorr_given) {
229     fprintf(outfile, "%s\n", "vcorr");
230     }
231     if (args_info->dcorr_given) {
232     fprintf(outfile, "%s\n", "dcorr");
233     }
234     if (args_info->lcorr_given) {
235     fprintf(outfile, "%s\n", "lcorr");
236     }
237     if (args_info->r_rcorr_given) {
238     fprintf(outfile, "%s\n", "r_rcorr");
239     }
240 chuckv 3110 if (args_info->thetacorr_given) {
241     fprintf(outfile, "%s\n", "thetacorr");
242     }
243 chuckv 3084
244     fclose (outfile);
245    
246     i = EXIT_SUCCESS;
247     return i;
248     }
249    
250     void
251     cmdline_parser_free (struct gengetopt_args_info *args_info)
252     {
253     cmdline_parser_release (args_info);
254     }
255    
256    
257 tim 2004 /* gengetopt_strdup() */
258     /* strdup.c replacement of strdup, which is not standard */
259     char *
260     gengetopt_strdup (const char *s)
261     {
262 chuckv 3084 char *result = NULL;
263     if (!s)
264     return result;
265    
266     result = (char*)malloc(strlen(s) + 1);
267 tim 2004 if (result == (char*)0)
268     return (char*)0;
269     strcpy(result, s);
270     return result;
271     }
272    
273 chuckv 3084 static void
274     reset_group_dynamicProps(struct gengetopt_args_info *args_info);
275    
276     static void
277     reset_group_dynamicProps(struct gengetopt_args_info *args_info)
278 tim 2004 {
279 chuckv 3084 if (! args_info->dynamicProps_group_counter)
280     return;
281 tim 2004
282     args_info->rcorr_given = 0 ;
283     args_info->vcorr_given = 0 ;
284     args_info->dcorr_given = 0 ;
285 tim 2576 args_info->lcorr_given = 0 ;
286 chuckv 3084 args_info->r_rcorr_given = 0 ;
287 chuckv 3110 args_info->thetacorr_given = 0 ;
288 chuckv 3084
289     args_info->dynamicProps_group_counter = 0;
290 tim 2576 }
291 tim 2004
292 chuckv 3084 int
293     cmdline_parser (int argc, char * const *argv, struct gengetopt_args_info *args_info)
294     {
295     return cmdline_parser2 (argc, argv, args_info, 0, 1, 1);
296     }
297 tim 2004
298 chuckv 3084 int
299     cmdline_parser2 (int argc, char * const *argv, struct gengetopt_args_info *args_info, int override, int initialize, int check_required)
300     {
301     int result;
302    
303     result = cmdline_parser_internal (argc, argv, args_info, override, initialize, check_required, NULL);
304    
305     if (result == EXIT_FAILURE)
306     {
307     cmdline_parser_free (args_info);
308     exit (EXIT_FAILURE);
309     }
310    
311     return result;
312     }
313    
314     int
315     cmdline_parser_required (struct gengetopt_args_info *args_info, const char *prog_name)
316     {
317     int result = EXIT_SUCCESS;
318    
319     if (cmdline_parser_required2(args_info, prog_name, NULL) > 0)
320     result = EXIT_FAILURE;
321    
322     if (result == EXIT_FAILURE)
323     {
324     cmdline_parser_free (args_info);
325     exit (EXIT_FAILURE);
326     }
327    
328     return result;
329     }
330    
331     int
332     cmdline_parser_required2 (struct gengetopt_args_info *args_info, const char *prog_name, const char *additional_error)
333     {
334     int error = 0;
335    
336     if (! args_info->input_given)
337     {
338     fprintf (stderr, "%s: '--input' ('-i') option required%s\n", prog_name, (additional_error ? additional_error : ""));
339     error = 1;
340     }
341     if (args_info->dynamicProps_group_counter == 0)
342     {
343     fprintf (stderr, "%s: %d options of group dynamicProps were given. One is required.%s\n", prog_name, args_info->dynamicProps_group_counter, (additional_error ? additional_error : ""));
344     error = 1;
345     }
346    
347    
348     return error;
349     }
350    
351     int
352     cmdline_parser_internal (int argc, char * const *argv, struct gengetopt_args_info *args_info, int override, int initialize, int check_required, const char *additional_error)
353     {
354     int c; /* Character of the parsed option. */
355    
356     int error = 0;
357     struct gengetopt_args_info local_args_info;
358    
359     if (initialize)
360     cmdline_parser_init (args_info);
361    
362     cmdline_parser_init (&local_args_info);
363    
364 tim 2004 optarg = 0;
365     optind = 1;
366     opterr = 1;
367     optopt = '?';
368    
369     while (1)
370     {
371     int option_index = 0;
372     char *stop_char;
373    
374     static struct option long_options[] = {
375     { "help", 0, NULL, 'h' },
376     { "version", 0, NULL, 'V' },
377     { "input", 1, NULL, 'i' },
378     { "output", 1, NULL, 'o' },
379     { "sele1", 1, NULL, 0 },
380     { "sele2", 1, NULL, 0 },
381 tim 2576 { "order", 1, NULL, 0 },
382 tim 2004 { "rcorr", 0, NULL, 'r' },
383     { "vcorr", 0, NULL, 'v' },
384     { "dcorr", 0, NULL, 'd' },
385 tim 2576 { "lcorr", 0, NULL, 'l' },
386 chuckv 3084 { "r_rcorr", 0, NULL, 0 },
387 chuckv 3110 { "thetacorr", 0, NULL, 0 },
388 tim 2004 { NULL, 0, NULL, 0 }
389     };
390    
391     stop_char = 0;
392 tim 2671 c = getopt_long (argc, argv, "hVi:o:rvdl", long_options, &option_index);
393 tim 2004
394     if (c == -1) break; /* Exit from `while (1)' loop. */
395    
396     switch (c)
397     {
398     case 'h': /* Print help and exit. */
399     cmdline_parser_print_help ();
400 chuckv 3084 cmdline_parser_free (&local_args_info);
401 tim 2004 exit (EXIT_SUCCESS);
402    
403     case 'V': /* Print version and exit. */
404     cmdline_parser_print_version ();
405 chuckv 3084 cmdline_parser_free (&local_args_info);
406 tim 2004 exit (EXIT_SUCCESS);
407    
408     case 'i': /* input dump file. */
409 chuckv 3084 if (local_args_info.input_given)
410 tim 2004 {
411 chuckv 3084 fprintf (stderr, "%s: `--input' (`-i') option given more than once%s\n", argv[0], (additional_error ? additional_error : ""));
412     goto failure;
413 tim 2004 }
414 chuckv 3084 if (args_info->input_given && ! override)
415     continue;
416     local_args_info.input_given = 1;
417 tim 2004 args_info->input_given = 1;
418 chuckv 3084 if (args_info->input_arg)
419     free (args_info->input_arg); /* free previous string */
420 tim 2004 args_info->input_arg = gengetopt_strdup (optarg);
421 chuckv 3084 if (args_info->input_orig)
422     free (args_info->input_orig); /* free previous string */
423     args_info->input_orig = gengetopt_strdup (optarg);
424 tim 2004 break;
425    
426     case 'o': /* output file name. */
427 chuckv 3084 if (local_args_info.output_given)
428 tim 2004 {
429 chuckv 3084 fprintf (stderr, "%s: `--output' (`-o') option given more than once%s\n", argv[0], (additional_error ? additional_error : ""));
430     goto failure;
431 tim 2004 }
432 chuckv 3084 if (args_info->output_given && ! override)
433     continue;
434     local_args_info.output_given = 1;
435 tim 2004 args_info->output_given = 1;
436 chuckv 3084 if (args_info->output_arg)
437     free (args_info->output_arg); /* free previous string */
438 tim 2004 args_info->output_arg = gengetopt_strdup (optarg);
439 chuckv 3084 if (args_info->output_orig)
440     free (args_info->output_orig); /* free previous string */
441     args_info->output_orig = gengetopt_strdup (optarg);
442 tim 2004 break;
443    
444 tim 2671 case 'r': /* rmsd. */
445 chuckv 3084 if (local_args_info.rcorr_given)
446 tim 2004 {
447 chuckv 3084 fprintf (stderr, "%s: `--rcorr' (`-r') option given more than once%s\n", argv[0], (additional_error ? additional_error : ""));
448     goto failure;
449 tim 2004 }
450 chuckv 3084 if (args_info->rcorr_given && ! override)
451     continue;
452     local_args_info.rcorr_given = 1;
453 tim 2004 args_info->rcorr_given = 1;
454 chuckv 3084 if (args_info->dynamicProps_group_counter && override)
455     reset_group_dynamicProps (args_info);
456     args_info->dynamicProps_group_counter += 1;
457     break;
458 tim 2004
459     case 'v': /* velocity correlation function. */
460 chuckv 3084 if (local_args_info.vcorr_given)
461 tim 2004 {
462 chuckv 3084 fprintf (stderr, "%s: `--vcorr' (`-v') option given more than once%s\n", argv[0], (additional_error ? additional_error : ""));
463     goto failure;
464 tim 2004 }
465 chuckv 3084 if (args_info->vcorr_given && ! override)
466     continue;
467     local_args_info.vcorr_given = 1;
468 tim 2004 args_info->vcorr_given = 1;
469 chuckv 3084 if (args_info->dynamicProps_group_counter && override)
470     reset_group_dynamicProps (args_info);
471     args_info->dynamicProps_group_counter += 1;
472     break;
473 tim 2004
474     case 'd': /* dipole correlation function. */
475 chuckv 3084 if (local_args_info.dcorr_given)
476 tim 2004 {
477 chuckv 3084 fprintf (stderr, "%s: `--dcorr' (`-d') option given more than once%s\n", argv[0], (additional_error ? additional_error : ""));
478     goto failure;
479 tim 2004 }
480 chuckv 3084 if (args_info->dcorr_given && ! override)
481     continue;
482     local_args_info.dcorr_given = 1;
483 tim 2004 args_info->dcorr_given = 1;
484 chuckv 3084 if (args_info->dynamicProps_group_counter && override)
485     reset_group_dynamicProps (args_info);
486     args_info->dynamicProps_group_counter += 1;
487     break;
488 tim 2004
489 tim 2576 case 'l': /* Lengendre correlation function. */
490 chuckv 3084 if (local_args_info.lcorr_given)
491 tim 2576 {
492 chuckv 3084 fprintf (stderr, "%s: `--lcorr' (`-l') option given more than once%s\n", argv[0], (additional_error ? additional_error : ""));
493     goto failure;
494 tim 2576 }
495 chuckv 3084 if (args_info->lcorr_given && ! override)
496     continue;
497     local_args_info.lcorr_given = 1;
498 tim 2576 args_info->lcorr_given = 1;
499 chuckv 3084 if (args_info->dynamicProps_group_counter && override)
500     reset_group_dynamicProps (args_info);
501     args_info->dynamicProps_group_counter += 1;
502     break;
503 tim 2004
504 tim 2576
505 tim 2004 case 0: /* Long option with no short option */
506     /* select first stuntdouble set. */
507     if (strcmp (long_options[option_index].name, "sele1") == 0)
508 tim 2576 {
509 chuckv 3084 if (local_args_info.sele1_given)
510 tim 2576 {
511 chuckv 3084 fprintf (stderr, "%s: `--sele1' option given more than once%s\n", argv[0], (additional_error ? additional_error : ""));
512     goto failure;
513 tim 2576 }
514 chuckv 3084 if (args_info->sele1_given && ! override)
515     continue;
516     local_args_info.sele1_given = 1;
517 tim 2576 args_info->sele1_given = 1;
518 chuckv 3084 if (args_info->sele1_arg)
519     free (args_info->sele1_arg); /* free previous string */
520 tim 2576 args_info->sele1_arg = gengetopt_strdup (optarg);
521 chuckv 3084 if (args_info->sele1_orig)
522     free (args_info->sele1_orig); /* free previous string */
523     args_info->sele1_orig = gengetopt_strdup (optarg);
524 tim 2576 }
525 tim 2004 /* select second stuntdouble set (if sele2 is not set, use script from sele1). */
526     else if (strcmp (long_options[option_index].name, "sele2") == 0)
527 tim 2576 {
528 chuckv 3084 if (local_args_info.sele2_given)
529 tim 2576 {
530 chuckv 3084 fprintf (stderr, "%s: `--sele2' option given more than once%s\n", argv[0], (additional_error ? additional_error : ""));
531     goto failure;
532 tim 2576 }
533 chuckv 3084 if (args_info->sele2_given && ! override)
534     continue;
535     local_args_info.sele2_given = 1;
536 tim 2576 args_info->sele2_given = 1;
537 chuckv 3084 if (args_info->sele2_arg)
538     free (args_info->sele2_arg); /* free previous string */
539 tim 2576 args_info->sele2_arg = gengetopt_strdup (optarg);
540 chuckv 3084 if (args_info->sele2_orig)
541     free (args_info->sele2_orig); /* free previous string */
542     args_info->sele2_orig = gengetopt_strdup (optarg);
543 tim 2576 }
544     /* Lengendre Polynomial Order. */
545     else if (strcmp (long_options[option_index].name, "order") == 0)
546     {
547 chuckv 3084 if (local_args_info.order_given)
548 tim 2576 {
549 chuckv 3084 fprintf (stderr, "%s: `--order' option given more than once%s\n", argv[0], (additional_error ? additional_error : ""));
550     goto failure;
551 tim 2576 }
552 chuckv 3084 if (args_info->order_given && ! override)
553     continue;
554     local_args_info.order_given = 1;
555 tim 2576 args_info->order_given = 1;
556 chuckv 3084 args_info->order_arg = strtol (optarg, &stop_char, 0);
557     if (!(stop_char && *stop_char == '\0')) {
558     fprintf(stderr, "%s: invalid numeric value: %s\n", argv[0], optarg);
559     goto failure;
560     }
561     if (args_info->order_orig)
562     free (args_info->order_orig); /* free previous string */
563     args_info->order_orig = gengetopt_strdup (optarg);
564     }
565     /* Radial rmsd. */
566     else if (strcmp (long_options[option_index].name, "r_rcorr") == 0)
567     {
568     if (local_args_info.r_rcorr_given)
569     {
570     fprintf (stderr, "%s: `--r_rcorr' option given more than once%s\n", argv[0], (additional_error ? additional_error : ""));
571     goto failure;
572     }
573     if (args_info->r_rcorr_given && ! override)
574     continue;
575     local_args_info.r_rcorr_given = 1;
576     args_info->r_rcorr_given = 1;
577     if (args_info->dynamicProps_group_counter && override)
578     reset_group_dynamicProps (args_info);
579     args_info->dynamicProps_group_counter += 1;
580 tim 2576 break;
581     }
582 chuckv 3110 /* Angular rmsd. */
583     else if (strcmp (long_options[option_index].name, "thetacorr") == 0)
584     {
585     if (local_args_info.thetacorr_given)
586     {
587     fprintf (stderr, "%s: `--thetacorr' option given more than once%s\n", argv[0], (additional_error ? additional_error : ""));
588     goto failure;
589     }
590     if (args_info->thetacorr_given && ! override)
591     continue;
592     local_args_info.thetacorr_given = 1;
593     args_info->thetacorr_given = 1;
594     if (args_info->dynamicProps_group_counter && override)
595     reset_group_dynamicProps (args_info);
596     args_info->dynamicProps_group_counter += 1;
597     break;
598     }
599 tim 2576
600 chuckv 3084 break;
601 tim 2004 case '?': /* Invalid option. */
602     /* `getopt_long' already printed an error message. */
603 chuckv 3084 goto failure;
604 tim 2004
605     default: /* bug: option not considered. */
606 chuckv 3084 fprintf (stderr, "%s: option unknown: %c%s\n", CMDLINE_PARSER_PACKAGE, c, (additional_error ? additional_error : ""));
607 tim 2004 abort ();
608     } /* switch */
609     } /* while */
610    
611 chuckv 3084 if (args_info->dynamicProps_group_counter > 1)
612 tim 2004 {
613 chuckv 3084 fprintf (stderr, "%s: %d options of group dynamicProps were given. One is required.%s\n", argv[0], args_info->dynamicProps_group_counter, (additional_error ? additional_error : ""));
614     error = 1;
615 tim 2004 }
616    
617    
618 chuckv 3084
619     if (check_required)
620 tim 2004 {
621 chuckv 3084 error += cmdline_parser_required2 (args_info, argv[0], additional_error);
622 tim 2004 }
623    
624 chuckv 3084 cmdline_parser_release (&local_args_info);
625    
626     if ( error )
627     return (EXIT_FAILURE);
628    
629 chuckv 3110 if (optind < argc)
630     {
631     int i = 0 ;
632    
633     args_info->inputs_num = argc - optind ;
634     args_info->inputs =
635     (char **)(malloc ((args_info->inputs_num)*sizeof(char *))) ;
636     while (optind < argc)
637     args_info->inputs[ i++ ] = gengetopt_strdup (argv[optind++]) ;
638     }
639    
640 tim 2004 return 0;
641 chuckv 3084
642     failure:
643    
644     cmdline_parser_release (&local_args_info);
645     return (EXIT_FAILURE);
646 tim 2004 }