ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/trunk/OOPSE-4/src/applications/staticProps/StaticPropsCmd.c
Revision: 3022
Committed: Tue Sep 26 01:30:32 2006 UTC (17 years, 11 months ago) by gezelter
Content type: text/plain
File size: 44450 byte(s)
Log Message:
Mostly done with BondOrderParameter.  Only a few performance tweaks
remain

File Contents

# User Rev Content
1 tim 1994 /*
2 gezelter 2701 File autogenerated by gengetopt version 2.16
3 tim 1994 generated with the following command:
4 gezelter 2701 gengetopt -F StaticPropsCmd
5 tim 1994
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 gezelter 2701 /* If we use autoconf. */
12     #ifdef HAVE_CONFIG_H
13     #include "config.h"
14     #endif
15 tim 1994
16     #include <stdio.h>
17     #include <stdlib.h>
18     #include <string.h>
19    
20     #include "getopt.h"
21    
22 tim 1995 #include "StaticPropsCmd.h"
23 tim 1994
24 gezelter 2701 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->step_given = 0 ;
46 gezelter 3009 args_info->nbins_given = 0 ;
47 xsun 2751 args_info->nbins_x_given = 0 ;
48     args_info->nbins_y_given = 0 ;
49 gezelter 2701 args_info->nanglebins_given = 0 ;
50     args_info->length_given = 0 ;
51 gezelter 3007 args_info->rcut_given = 0 ;
52 gezelter 2701 args_info->zoffset_given = 0 ;
53     args_info->sele1_given = 0 ;
54     args_info->sele2_given = 0 ;
55     args_info->sele3_given = 0 ;
56     args_info->refsele_given = 0 ;
57     args_info->molname_given = 0 ;
58     args_info->begin_given = 0 ;
59     args_info->end_given = 0 ;
60 gezelter 3007 args_info->bo_given = 0 ;
61 gezelter 2701 args_info->gofr_given = 0 ;
62     args_info->r_theta_given = 0 ;
63     args_info->r_omega_given = 0 ;
64     args_info->theta_omega_given = 0 ;
65     args_info->gxyz_given = 0 ;
66     args_info->p2_given = 0 ;
67 xsun 2783 args_info->rp2_given = 0 ;
68 gezelter 2701 args_info->scd_given = 0 ;
69     args_info->density_given = 0 ;
70     args_info->slab_density_given = 0 ;
71 xsun 2751 args_info->hxy_given = 0 ;
72 gezelter 2701 args_info->staticProps_group_counter = 0 ;
73     }
74    
75     static
76     void clear_args (struct gengetopt_args_info *args_info)
77     {
78     args_info->input_arg = NULL;
79     args_info->input_orig = NULL;
80     args_info->output_arg = NULL;
81     args_info->output_orig = NULL;
82     args_info->step_arg = 1;
83     args_info->step_orig = NULL;
84 gezelter 3009 args_info->nbins_arg = 100;
85     args_info->nbins_orig = NULL;
86 xsun 2751 args_info->nbins_x_arg = 100;
87     args_info->nbins_x_orig = NULL;
88     args_info->nbins_y_arg = 100;
89     args_info->nbins_y_orig = NULL;
90 gezelter 2701 args_info->nanglebins_arg = 50;
91     args_info->nanglebins_orig = NULL;
92     args_info->length_orig = NULL;
93 gezelter 3007 args_info->rcut_orig = NULL;
94 gezelter 2701 args_info->zoffset_arg = 0;
95     args_info->zoffset_orig = NULL;
96     args_info->sele1_arg = NULL;
97     args_info->sele1_orig = NULL;
98     args_info->sele2_arg = NULL;
99     args_info->sele2_orig = NULL;
100     args_info->sele3_arg = NULL;
101     args_info->sele3_orig = NULL;
102     args_info->refsele_arg = NULL;
103     args_info->refsele_orig = NULL;
104     args_info->molname_arg = NULL;
105     args_info->molname_orig = NULL;
106     args_info->begin_orig = NULL;
107     args_info->end_orig = NULL;
108    
109     }
110    
111 tim 1994 void
112     cmdline_parser_print_version (void)
113     {
114     printf ("%s %s\n", CMDLINE_PARSER_PACKAGE, CMDLINE_PARSER_VERSION);
115     }
116    
117     void
118     cmdline_parser_print_help (void)
119     {
120     cmdline_parser_print_version ();
121 gezelter 2701 printf("\nUsage: StaticProps [OPTIONS]...\n\n");
122     printf("%s\n"," -h, --help Print help and exit");
123     printf("%s\n"," -V, --version Print version and exit");
124     printf("%s\n"," -i, --input=filename input dump file");
125     printf("%s\n"," -o, --output=filename output file name");
126     printf("%s\n"," -n, --step=INT process every n frame (default=`1')");
127 gezelter 3009 printf("%s\n"," -b, --nbins=INT number of bins (general purpose) \n (default=`100')");
128 xsun 2763 printf("%s\n"," -x, --nbins_x=INT number of bins in x axis (default=`100')");
129     printf("%s\n"," -y, --nbins_y=INT number of bins in y axis (default=`100')");
130 gezelter 2701 printf("%s\n"," -a, --nanglebins=INT number of bins for cos(angle) (default=`50')");
131 gezelter 3007 printf("%s\n"," --length=DOUBLE maximum length (Defaults to 1/2 smallest length \n of first frame)");
132     printf("%s\n"," -c, --rcut=DOUBLE cutoff radius (rcut)");
133 gezelter 2701 printf("%s\n"," -z, --zoffset=DOUBLE Where to set the zero for the slab_density \n calculation (default=`0')");
134     printf("%s\n"," --sele1=selection script select the first stuntdouble set");
135     printf("%s\n"," --sele2=selection script select the second stuntdouble set");
136     printf("%s\n"," --sele3=selection script select the third stuntdouble set");
137     printf("%s\n"," --refsele=selection script\n select reference (use and only use with --gxyz)");
138     printf("%s\n"," --molname=STRING molecule name");
139 gezelter 3007 printf("%s\n"," --begin=INT begin internal index");
140 gezelter 2701 printf("%s\n"," --end=INT end internal index");
141     printf("%s\n","\n Group: staticProps\n an option of this group is required");
142 gezelter 3022 printf("%s\n"," --bo bond order parameter (--rcut must be specified");
143 gezelter 3007 printf("%s\n"," -g, --gofr g(r)");
144 gezelter 2701 printf("%s\n"," --r_theta g(r, cos(theta))");
145     printf("%s\n"," --r_omega g(r, cos(omega))");
146     printf("%s\n"," --theta_omega g(cos(theta), cos(omega))");
147     printf("%s\n"," --gxyz g(x, y, z)");
148 gezelter 3007 printf("%s\n"," -p, --p2 p2 order parameter (--sele1 and --sele2 must be \n specified)");
149 xsun 2783 printf("%s\n"," --rp2 rp2 order parameter (--sele1 and --sele2 must \n be specified)");
150 gezelter 3007 printf("%s\n"," -s, --scd scd order parameter (either --sele1, --sele2, \n --sele3 are specified or --molname, --begin, \n --end are specified)");
151     printf("%s\n"," -d, --density density plot");
152     printf("%s\n"," --slab_density slab density");
153     printf("%s\n"," --hxy hxy");
154 gezelter 2701
155 tim 1994 }
156    
157 gezelter 2701 void
158     cmdline_parser_init (struct gengetopt_args_info *args_info)
159     {
160     clear_given (args_info);
161     clear_args (args_info);
162     }
163 tim 1994
164 gezelter 2701 static void
165     cmdline_parser_release (struct gengetopt_args_info *args_info)
166     {
167    
168     if (args_info->input_arg)
169     {
170     free (args_info->input_arg); /* free previous argument */
171     args_info->input_arg = 0;
172     }
173     if (args_info->input_orig)
174     {
175     free (args_info->input_orig); /* free previous argument */
176     args_info->input_orig = 0;
177     }
178     if (args_info->output_arg)
179     {
180     free (args_info->output_arg); /* free previous argument */
181     args_info->output_arg = 0;
182     }
183     if (args_info->output_orig)
184     {
185     free (args_info->output_orig); /* free previous argument */
186     args_info->output_orig = 0;
187     }
188     if (args_info->step_orig)
189     {
190     free (args_info->step_orig); /* free previous argument */
191     args_info->step_orig = 0;
192     }
193 gezelter 3009 if (args_info->nbins_orig)
194 gezelter 2701 {
195 gezelter 3009 free (args_info->nbins_orig); /* free previous argument */
196     args_info->nbins_orig = 0;
197 gezelter 2701 }
198 xsun 2763 if (args_info->nbins_x_orig)
199 xsun 2751 {
200     free (args_info->nbins_x_orig); /* free previous argument */
201     args_info->nbins_x_orig = 0;
202     }
203     if (args_info->nbins_y_orig)
204     {
205     free (args_info->nbins_y_orig); /* free previous argument */
206     args_info->nbins_y_orig = 0;
207     }
208 gezelter 2701 if (args_info->nanglebins_orig)
209     {
210     free (args_info->nanglebins_orig); /* free previous argument */
211     args_info->nanglebins_orig = 0;
212     }
213     if (args_info->length_orig)
214     {
215     free (args_info->length_orig); /* free previous argument */
216     args_info->length_orig = 0;
217     }
218 gezelter 3007 if (args_info->rcut_orig)
219     {
220     free (args_info->rcut_orig); /* free previous argument */
221     args_info->rcut_orig = 0;
222     }
223 gezelter 2701 if (args_info->zoffset_orig)
224     {
225     free (args_info->zoffset_orig); /* free previous argument */
226     args_info->zoffset_orig = 0;
227     }
228     if (args_info->sele1_arg)
229     {
230     free (args_info->sele1_arg); /* free previous argument */
231     args_info->sele1_arg = 0;
232     }
233     if (args_info->sele1_orig)
234     {
235     free (args_info->sele1_orig); /* free previous argument */
236     args_info->sele1_orig = 0;
237     }
238     if (args_info->sele2_arg)
239     {
240     free (args_info->sele2_arg); /* free previous argument */
241     args_info->sele2_arg = 0;
242     }
243     if (args_info->sele2_orig)
244     {
245     free (args_info->sele2_orig); /* free previous argument */
246     args_info->sele2_orig = 0;
247     }
248     if (args_info->sele3_arg)
249     {
250     free (args_info->sele3_arg); /* free previous argument */
251     args_info->sele3_arg = 0;
252     }
253     if (args_info->sele3_orig)
254     {
255     free (args_info->sele3_orig); /* free previous argument */
256     args_info->sele3_orig = 0;
257     }
258     if (args_info->refsele_arg)
259     {
260     free (args_info->refsele_arg); /* free previous argument */
261     args_info->refsele_arg = 0;
262     }
263     if (args_info->refsele_orig)
264     {
265     free (args_info->refsele_orig); /* free previous argument */
266     args_info->refsele_orig = 0;
267     }
268     if (args_info->molname_arg)
269     {
270     free (args_info->molname_arg); /* free previous argument */
271     args_info->molname_arg = 0;
272     }
273     if (args_info->molname_orig)
274     {
275     free (args_info->molname_orig); /* free previous argument */
276     args_info->molname_orig = 0;
277     }
278     if (args_info->begin_orig)
279     {
280     free (args_info->begin_orig); /* free previous argument */
281     args_info->begin_orig = 0;
282     }
283     if (args_info->end_orig)
284     {
285     free (args_info->end_orig); /* free previous argument */
286     args_info->end_orig = 0;
287     }
288    
289     clear_given (args_info);
290     }
291 tim 1994
292 gezelter 2701 int
293     cmdline_parser_file_save(const char *filename, struct gengetopt_args_info *args_info)
294     {
295     FILE *outfile;
296     int i = 0;
297    
298     outfile = fopen(filename, "w");
299    
300     if (!outfile)
301     {
302     fprintf (stderr, "%s: cannot open file for writing: %s\n", CMDLINE_PARSER_PACKAGE, filename);
303     return EXIT_FAILURE;
304     }
305    
306     if (args_info->help_given) {
307     fprintf(outfile, "%s\n", "help");
308     }
309     if (args_info->version_given) {
310     fprintf(outfile, "%s\n", "version");
311     }
312     if (args_info->input_given) {
313     if (args_info->input_orig) {
314     fprintf(outfile, "%s=\"%s\"\n", "input", args_info->input_orig);
315     } else {
316     fprintf(outfile, "%s\n", "input");
317     }
318     }
319     if (args_info->output_given) {
320     if (args_info->output_orig) {
321     fprintf(outfile, "%s=\"%s\"\n", "output", args_info->output_orig);
322     } else {
323     fprintf(outfile, "%s\n", "output");
324     }
325     }
326     if (args_info->step_given) {
327     if (args_info->step_orig) {
328     fprintf(outfile, "%s=\"%s\"\n", "step", args_info->step_orig);
329     } else {
330     fprintf(outfile, "%s\n", "step");
331     }
332     }
333 gezelter 3009 if (args_info->nbins_given) {
334     if (args_info->nbins_orig) {
335     fprintf(outfile, "%s=\"%s\"\n", "nbins", args_info->nbins_orig);
336 gezelter 2701 } else {
337 gezelter 3009 fprintf(outfile, "%s\n", "nbins");
338 gezelter 2701 }
339     }
340 xsun 2751 if (args_info->nbins_x_given) {
341     if (args_info->nbins_x_orig) {
342     fprintf(outfile, "%s=\"%s\"\n", "nbins_x", args_info->nbins_x_orig);
343     } else {
344     fprintf(outfile, "%s\n", "nbins_x");
345     }
346     }
347     if (args_info->nbins_y_given) {
348     if (args_info->nbins_y_orig) {
349     fprintf(outfile, "%s=\"%s\"\n", "nbins_y", args_info->nbins_y_orig);
350     } else {
351     fprintf(outfile, "%s\n", "nbins_y");
352     }
353     }
354 gezelter 2701 if (args_info->nanglebins_given) {
355     if (args_info->nanglebins_orig) {
356     fprintf(outfile, "%s=\"%s\"\n", "nanglebins", args_info->nanglebins_orig);
357     } else {
358     fprintf(outfile, "%s\n", "nanglebins");
359     }
360     }
361     if (args_info->length_given) {
362     if (args_info->length_orig) {
363     fprintf(outfile, "%s=\"%s\"\n", "length", args_info->length_orig);
364     } else {
365     fprintf(outfile, "%s\n", "length");
366     }
367     }
368 gezelter 3007 if (args_info->rcut_given) {
369     if (args_info->rcut_orig) {
370     fprintf(outfile, "%s=\"%s\"\n", "rcut", args_info->rcut_orig);
371     } else {
372     fprintf(outfile, "%s\n", "rcut");
373     }
374     }
375 gezelter 2701 if (args_info->zoffset_given) {
376     if (args_info->zoffset_orig) {
377     fprintf(outfile, "%s=\"%s\"\n", "zoffset", args_info->zoffset_orig);
378     } else {
379     fprintf(outfile, "%s\n", "zoffset");
380     }
381     }
382     if (args_info->sele1_given) {
383     if (args_info->sele1_orig) {
384     fprintf(outfile, "%s=\"%s\"\n", "sele1", args_info->sele1_orig);
385     } else {
386     fprintf(outfile, "%s\n", "sele1");
387     }
388     }
389     if (args_info->sele2_given) {
390     if (args_info->sele2_orig) {
391     fprintf(outfile, "%s=\"%s\"\n", "sele2", args_info->sele2_orig);
392     } else {
393     fprintf(outfile, "%s\n", "sele2");
394     }
395     }
396     if (args_info->sele3_given) {
397     if (args_info->sele3_orig) {
398     fprintf(outfile, "%s=\"%s\"\n", "sele3", args_info->sele3_orig);
399     } else {
400     fprintf(outfile, "%s\n", "sele3");
401     }
402     }
403     if (args_info->refsele_given) {
404     if (args_info->refsele_orig) {
405     fprintf(outfile, "%s=\"%s\"\n", "refsele", args_info->refsele_orig);
406     } else {
407     fprintf(outfile, "%s\n", "refsele");
408     }
409     }
410     if (args_info->molname_given) {
411     if (args_info->molname_orig) {
412     fprintf(outfile, "%s=\"%s\"\n", "molname", args_info->molname_orig);
413     } else {
414     fprintf(outfile, "%s\n", "molname");
415     }
416     }
417     if (args_info->begin_given) {
418     if (args_info->begin_orig) {
419     fprintf(outfile, "%s=\"%s\"\n", "begin", args_info->begin_orig);
420     } else {
421     fprintf(outfile, "%s\n", "begin");
422     }
423     }
424     if (args_info->end_given) {
425     if (args_info->end_orig) {
426     fprintf(outfile, "%s=\"%s\"\n", "end", args_info->end_orig);
427     } else {
428     fprintf(outfile, "%s\n", "end");
429     }
430     }
431 gezelter 3007 if (args_info->bo_given) {
432     fprintf(outfile, "%s\n", "bo");
433     }
434 gezelter 2701 if (args_info->gofr_given) {
435     fprintf(outfile, "%s\n", "gofr");
436     }
437     if (args_info->r_theta_given) {
438     fprintf(outfile, "%s\n", "r_theta");
439     }
440     if (args_info->r_omega_given) {
441     fprintf(outfile, "%s\n", "r_omega");
442     }
443     if (args_info->theta_omega_given) {
444     fprintf(outfile, "%s\n", "theta_omega");
445     }
446     if (args_info->gxyz_given) {
447     fprintf(outfile, "%s\n", "gxyz");
448     }
449     if (args_info->p2_given) {
450     fprintf(outfile, "%s\n", "p2");
451     }
452 xsun 2783 if (args_info->rp2_given) {
453     fprintf(outfile, "%s\n", "rp2");
454     }
455 gezelter 2701 if (args_info->scd_given) {
456     fprintf(outfile, "%s\n", "scd");
457     }
458     if (args_info->density_given) {
459     fprintf(outfile, "%s\n", "density");
460     }
461     if (args_info->slab_density_given) {
462     fprintf(outfile, "%s\n", "slab_density");
463     }
464 xsun 2751 if (args_info->hxy_given) {
465     fprintf(outfile, "%s\n", "hxy");
466     }
467 xsun 2763
468 gezelter 2701 fclose (outfile);
469    
470     i = EXIT_SUCCESS;
471     return i;
472     }
473    
474     void
475     cmdline_parser_free (struct gengetopt_args_info *args_info)
476     {
477     cmdline_parser_release (args_info);
478     }
479    
480    
481 tim 1994 /* gengetopt_strdup() */
482     /* strdup.c replacement of strdup, which is not standard */
483     char *
484     gengetopt_strdup (const char *s)
485     {
486 gezelter 2701 char *result = NULL;
487     if (!s)
488     return result;
489    
490     result = (char*)malloc(strlen(s) + 1);
491 tim 1994 if (result == (char*)0)
492     return (char*)0;
493     strcpy(result, s);
494     return result;
495     }
496    
497 gezelter 2701 static void
498     reset_group_staticProps(struct gengetopt_args_info *args_info);
499    
500     static void
501     reset_group_staticProps(struct gengetopt_args_info *args_info)
502 tim 1994 {
503 gezelter 2701 if (! args_info->staticProps_group_counter)
504     return;
505 tim 1994
506 gezelter 3007 args_info->bo_given = 0 ;
507 tim 1994 args_info->gofr_given = 0 ;
508     args_info->r_theta_given = 0 ;
509     args_info->r_omega_given = 0 ;
510     args_info->theta_omega_given = 0 ;
511 tim 2053 args_info->gxyz_given = 0 ;
512 tim 2240 args_info->p2_given = 0 ;
513 xsun 2783 args_info->rp2_given = 0 ;
514 tim 2241 args_info->scd_given = 0 ;
515 tim 2242 args_info->density_given = 0 ;
516 tim 2539 args_info->slab_density_given = 0 ;
517 xsun 2763 args_info->hxy_given = 0 ;
518 gezelter 2701
519     args_info->staticProps_group_counter = 0;
520 tim 2240 }
521 tim 1994
522 gezelter 2701 int
523     cmdline_parser (int argc, char * const *argv, struct gengetopt_args_info *args_info)
524     {
525     return cmdline_parser2 (argc, argv, args_info, 0, 1, 1);
526     }
527 tim 1994
528 gezelter 2701 int
529     cmdline_parser2 (int argc, char * const *argv, struct gengetopt_args_info *args_info, int override, int initialize, int check_required)
530     {
531     int result;
532    
533     result = cmdline_parser_internal (argc, argv, args_info, override, initialize, check_required, NULL);
534    
535     if (result == EXIT_FAILURE)
536     {
537     cmdline_parser_free (args_info);
538     exit (EXIT_FAILURE);
539     }
540    
541     return result;
542     }
543    
544     int
545     cmdline_parser_required (struct gengetopt_args_info *args_info, const char *prog_name)
546     {
547     int result = EXIT_SUCCESS;
548    
549     if (cmdline_parser_required2(args_info, prog_name, NULL) > 0)
550     result = EXIT_FAILURE;
551    
552     if (result == EXIT_FAILURE)
553     {
554     cmdline_parser_free (args_info);
555     exit (EXIT_FAILURE);
556     }
557    
558     return result;
559     }
560    
561     int
562     cmdline_parser_required2 (struct gengetopt_args_info *args_info, const char *prog_name, const char *additional_error)
563     {
564     int error = 0;
565    
566     if (! args_info->input_given)
567     {
568     fprintf (stderr, "%s: '--input' ('-i') option required%s\n", prog_name, (additional_error ? additional_error : ""));
569     error = 1;
570     }
571     if (args_info->staticProps_group_counter == 0)
572     {
573     fprintf (stderr, "%s: %d options of group staticProps were given. One is required.%s\n", prog_name, args_info->staticProps_group_counter, (additional_error ? additional_error : ""));
574     error = 1;
575     }
576    
577    
578     return error;
579     }
580    
581     int
582     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)
583     {
584     int c; /* Character of the parsed option. */
585    
586     int error = 0;
587     struct gengetopt_args_info local_args_info;
588    
589     if (initialize)
590     cmdline_parser_init (args_info);
591    
592     cmdline_parser_init (&local_args_info);
593    
594 tim 1994 optarg = 0;
595 gezelter 2701 optind = 0;
596 tim 1994 opterr = 1;
597     optopt = '?';
598    
599     while (1)
600     {
601     int option_index = 0;
602     char *stop_char;
603    
604     static struct option long_options[] = {
605     { "help", 0, NULL, 'h' },
606     { "version", 0, NULL, 'V' },
607     { "input", 1, NULL, 'i' },
608     { "output", 1, NULL, 'o' },
609 tim 1995 { "step", 1, NULL, 'n' },
610 gezelter 3009 { "nbins", 1, NULL, 'b' },
611 xsun 2763 { "nbins_x", 1, NULL, 'x' },
612     { "nbins_y", 1, NULL, 'y' },
613 tim 1994 { "nanglebins", 1, NULL, 'a' },
614 gezelter 3007 { "length", 1, NULL, 0 },
615     { "rcut", 1, NULL, 'c' },
616 gezelter 2701 { "zoffset", 1, NULL, 'z' },
617 tim 1994 { "sele1", 1, NULL, 0 },
618     { "sele2", 1, NULL, 0 },
619 tim 2241 { "sele3", 1, NULL, 0 },
620 tim 2053 { "refsele", 1, NULL, 0 },
621 tim 2241 { "molname", 1, NULL, 0 },
622     { "begin", 1, NULL, 0 },
623     { "end", 1, NULL, 0 },
624 gezelter 3009 { "bo", 0, NULL, 0 },
625 gezelter 3007 { "gofr", 0, NULL, 'g' },
626 tim 1994 { "r_theta", 0, NULL, 0 },
627     { "r_omega", 0, NULL, 0 },
628     { "theta_omega", 0, NULL, 0 },
629 tim 2053 { "gxyz", 0, NULL, 0 },
630 gezelter 3007 { "p2", 0, NULL, 'p' },
631 xsun 2783 { "rp2", 0, NULL, 0 },
632 gezelter 3007 { "scd", 0, NULL, 's' },
633     { "density", 0, NULL, 'd' },
634 tim 2539 { "slab_density", 0, NULL, 0 },
635 xsun 2751 { "hxy", 0, NULL, 0 },
636 tim 1994 { NULL, 0, NULL, 0 }
637     };
638    
639     stop_char = 0;
640 gezelter 3022 c = getopt_long (argc, argv, "hVi:o:n:b:x:y:a:c:z:gpsd", long_options, &option_index);
641 tim 1994
642     if (c == -1) break; /* Exit from `while (1)' loop. */
643    
644     switch (c)
645     {
646     case 'h': /* Print help and exit. */
647     cmdline_parser_print_help ();
648 gezelter 2701 cmdline_parser_free (&local_args_info);
649 tim 1994 exit (EXIT_SUCCESS);
650    
651     case 'V': /* Print version and exit. */
652     cmdline_parser_print_version ();
653 gezelter 2701 cmdline_parser_free (&local_args_info);
654 tim 1994 exit (EXIT_SUCCESS);
655    
656     case 'i': /* input dump file. */
657 gezelter 2701 if (local_args_info.input_given)
658 tim 1994 {
659 gezelter 2701 fprintf (stderr, "%s: `--input' (`-i') option given more than once%s\n", argv[0], (additional_error ? additional_error : ""));
660     goto failure;
661 tim 1994 }
662 gezelter 2701 if (args_info->input_given && ! override)
663     continue;
664     local_args_info.input_given = 1;
665 tim 1994 args_info->input_given = 1;
666 gezelter 2701 if (args_info->input_arg)
667     free (args_info->input_arg); /* free previous string */
668 tim 1994 args_info->input_arg = gengetopt_strdup (optarg);
669 gezelter 2701 if (args_info->input_orig)
670     free (args_info->input_orig); /* free previous string */
671     args_info->input_orig = gengetopt_strdup (optarg);
672 tim 1994 break;
673    
674     case 'o': /* output file name. */
675 gezelter 2701 if (local_args_info.output_given)
676 tim 1994 {
677 gezelter 2701 fprintf (stderr, "%s: `--output' (`-o') option given more than once%s\n", argv[0], (additional_error ? additional_error : ""));
678     goto failure;
679 tim 1994 }
680 gezelter 2701 if (args_info->output_given && ! override)
681     continue;
682     local_args_info.output_given = 1;
683 tim 1994 args_info->output_given = 1;
684 gezelter 2701 if (args_info->output_arg)
685     free (args_info->output_arg); /* free previous string */
686 tim 1994 args_info->output_arg = gengetopt_strdup (optarg);
687 gezelter 2701 if (args_info->output_orig)
688     free (args_info->output_orig); /* free previous string */
689     args_info->output_orig = gengetopt_strdup (optarg);
690 tim 1994 break;
691    
692 tim 1995 case 'n': /* process every n frame. */
693 gezelter 2701 if (local_args_info.step_given)
694 tim 1994 {
695 gezelter 2701 fprintf (stderr, "%s: `--step' (`-n') option given more than once%s\n", argv[0], (additional_error ? additional_error : ""));
696     goto failure;
697 tim 1994 }
698 gezelter 2701 if (args_info->step_given && ! override)
699     continue;
700     local_args_info.step_given = 1;
701 tim 1995 args_info->step_given = 1;
702 gezelter 2701 args_info->step_arg = strtol (optarg, &stop_char, 0);
703     if (!(stop_char && *stop_char == '\0')) {
704     fprintf(stderr, "%s: invalid numeric value: %s\n", argv[0], optarg);
705     goto failure;
706     }
707     if (args_info->step_orig)
708     free (args_info->step_orig); /* free previous string */
709     args_info->step_orig = gengetopt_strdup (optarg);
710 tim 1994 break;
711    
712 gezelter 3009 case 'b': /* number of bins (general purpose). */
713     if (local_args_info.nbins_given)
714 tim 1994 {
715 gezelter 3009 fprintf (stderr, "%s: `--nbins' (`-b') option given more than once%s\n", argv[0], (additional_error ? additional_error : ""));
716 gezelter 2701 goto failure;
717 tim 1994 }
718 gezelter 3009 if (args_info->nbins_given && ! override)
719 gezelter 2701 continue;
720 gezelter 3009 local_args_info.nbins_given = 1;
721     args_info->nbins_given = 1;
722     args_info->nbins_arg = strtol (optarg, &stop_char, 0);
723 gezelter 2701 if (!(stop_char && *stop_char == '\0')) {
724     fprintf(stderr, "%s: invalid numeric value: %s\n", argv[0], optarg);
725     goto failure;
726     }
727 gezelter 3009 if (args_info->nbins_orig)
728     free (args_info->nbins_orig); /* free previous string */
729     args_info->nbins_orig = gengetopt_strdup (optarg);
730 tim 1994 break;
731    
732 xsun 2751 case 'x': /* number of bins in x axis. */
733     if (local_args_info.nbins_x_given)
734     {
735 xsun 2763 fprintf (stderr, "%s: `--nbins_x' (`-x') option given more than once%s\n", argv[0], (additional_error ? additional_error : ""));
736 xsun 2751 goto failure;
737     }
738     if (args_info->nbins_x_given && ! override)
739     continue;
740     local_args_info.nbins_x_given = 1;
741     args_info->nbins_x_given = 1;
742     args_info->nbins_x_arg = strtol (optarg, &stop_char, 0);
743     if (!(stop_char && *stop_char == '\0')) {
744     fprintf(stderr, "%s: invalid numeric value: %s\n", argv[0], optarg);
745     goto failure;
746     }
747     if (args_info->nbins_x_orig)
748     free (args_info->nbins_x_orig); /* free previous string */
749     args_info->nbins_x_orig = gengetopt_strdup (optarg);
750     break;
751    
752     case 'y': /* number of bins in y axis. */
753     if (local_args_info.nbins_y_given)
754     {
755 xsun 2763 fprintf (stderr, "%s: `--nbins_y' (`-y') option given more than once%s\n", argv[0], (additional_error ? additional_error : ""));
756 xsun 2751 goto failure;
757     }
758     if (args_info->nbins_y_given && ! override)
759     continue;
760     local_args_info.nbins_y_given = 1;
761     args_info->nbins_y_given = 1;
762     args_info->nbins_y_arg = strtol (optarg, &stop_char, 0);
763     if (!(stop_char && *stop_char == '\0')) {
764     fprintf(stderr, "%s: invalid numeric value: %s\n", argv[0], optarg);
765     goto failure;
766     }
767     if (args_info->nbins_y_orig)
768     free (args_info->nbins_y_orig); /* free previous string */
769     args_info->nbins_y_orig = gengetopt_strdup (optarg);
770     break;
771    
772 tim 1994 case 'a': /* number of bins for cos(angle). */
773 gezelter 2701 if (local_args_info.nanglebins_given)
774 tim 1994 {
775 gezelter 2701 fprintf (stderr, "%s: `--nanglebins' (`-a') option given more than once%s\n", argv[0], (additional_error ? additional_error : ""));
776     goto failure;
777 tim 1994 }
778 gezelter 2701 if (args_info->nanglebins_given && ! override)
779     continue;
780     local_args_info.nanglebins_given = 1;
781 tim 1994 args_info->nanglebins_given = 1;
782 gezelter 2701 args_info->nanglebins_arg = strtol (optarg, &stop_char, 0);
783     if (!(stop_char && *stop_char == '\0')) {
784     fprintf(stderr, "%s: invalid numeric value: %s\n", argv[0], optarg);
785     goto failure;
786     }
787     if (args_info->nanglebins_orig)
788     free (args_info->nanglebins_orig); /* free previous string */
789     args_info->nanglebins_orig = gengetopt_strdup (optarg);
790 tim 1994 break;
791    
792 gezelter 3007 case 'c': /* cutoff radius (rcut). */
793     if (local_args_info.rcut_given)
794     {
795     fprintf (stderr, "%s: `--rcut' (`-c') option given more than once%s\n", argv[0], (additional_error ? additional_error : ""));
796     goto failure;
797     }
798     if (args_info->rcut_given && ! override)
799     continue;
800     local_args_info.rcut_given = 1;
801     args_info->rcut_given = 1;
802     args_info->rcut_arg = strtod (optarg, &stop_char);
803     if (!(stop_char && *stop_char == '\0')) {
804     fprintf(stderr, "%s: invalid numeric value: %s\n", argv[0], optarg);
805     goto failure;
806     }
807     if (args_info->rcut_orig)
808     free (args_info->rcut_orig); /* free previous string */
809     args_info->rcut_orig = gengetopt_strdup (optarg);
810     break;
811    
812 gezelter 2701 case 'z': /* Where to set the zero for the slab_density calculation. */
813     if (local_args_info.zoffset_given)
814     {
815     fprintf (stderr, "%s: `--zoffset' (`-z') option given more than once%s\n", argv[0], (additional_error ? additional_error : ""));
816     goto failure;
817     }
818     if (args_info->zoffset_given && ! override)
819     continue;
820     local_args_info.zoffset_given = 1;
821     args_info->zoffset_given = 1;
822     args_info->zoffset_arg = strtod (optarg, &stop_char);
823     if (!(stop_char && *stop_char == '\0')) {
824     fprintf(stderr, "%s: invalid numeric value: %s\n", argv[0], optarg);
825     goto failure;
826     }
827     if (args_info->zoffset_orig)
828     free (args_info->zoffset_orig); /* free previous string */
829     args_info->zoffset_orig = gengetopt_strdup (optarg);
830     break;
831 tim 1994
832 gezelter 3007 case 'g': /* g(r). */
833     if (local_args_info.gofr_given)
834     {
835     fprintf (stderr, "%s: `--gofr' (`-g') option given more than once%s\n", argv[0], (additional_error ? additional_error : ""));
836     goto failure;
837     }
838     if (args_info->gofr_given && ! override)
839     continue;
840     local_args_info.gofr_given = 1;
841     args_info->gofr_given = 1;
842     if (args_info->staticProps_group_counter && override)
843     reset_group_staticProps (args_info);
844     args_info->staticProps_group_counter += 1;
845     break;
846    
847     case 'p': /* p2 order parameter (--sele1 and --sele2 must be specified). */
848     if (local_args_info.p2_given)
849     {
850     fprintf (stderr, "%s: `--p2' (`-p') option given more than once%s\n", argv[0], (additional_error ? additional_error : ""));
851     goto failure;
852     }
853     if (args_info->p2_given && ! override)
854     continue;
855     local_args_info.p2_given = 1;
856     args_info->p2_given = 1;
857     if (args_info->staticProps_group_counter && override)
858     reset_group_staticProps (args_info);
859     args_info->staticProps_group_counter += 1;
860     break;
861    
862     case 's': /* scd order parameter (either --sele1, --sele2, --sele3 are specified or --molname, --begin, --end are specified). */
863     if (local_args_info.scd_given)
864     {
865     fprintf (stderr, "%s: `--scd' (`-s') option given more than once%s\n", argv[0], (additional_error ? additional_error : ""));
866     goto failure;
867     }
868     if (args_info->scd_given && ! override)
869     continue;
870     local_args_info.scd_given = 1;
871     args_info->scd_given = 1;
872     if (args_info->staticProps_group_counter && override)
873     reset_group_staticProps (args_info);
874     args_info->staticProps_group_counter += 1;
875     break;
876    
877     case 'd': /* density plot. */
878     if (local_args_info.density_given)
879     {
880     fprintf (stderr, "%s: `--density' (`-d') option given more than once%s\n", argv[0], (additional_error ? additional_error : ""));
881     goto failure;
882     }
883     if (args_info->density_given && ! override)
884     continue;
885     local_args_info.density_given = 1;
886     args_info->density_given = 1;
887     if (args_info->staticProps_group_counter && override)
888     reset_group_staticProps (args_info);
889     args_info->staticProps_group_counter += 1;
890     break;
891    
892    
893 tim 1994 case 0: /* Long option with no short option */
894 gezelter 3007 /* maximum length (Defaults to 1/2 smallest length of first frame). */
895     if (strcmp (long_options[option_index].name, "length") == 0)
896     {
897     if (local_args_info.length_given)
898     {
899     fprintf (stderr, "%s: `--length' option given more than once%s\n", argv[0], (additional_error ? additional_error : ""));
900     goto failure;
901     }
902     if (args_info->length_given && ! override)
903     continue;
904     local_args_info.length_given = 1;
905     args_info->length_given = 1;
906     args_info->length_arg = strtod (optarg, &stop_char);
907     if (!(stop_char && *stop_char == '\0')) {
908     fprintf(stderr, "%s: invalid numeric value: %s\n", argv[0], optarg);
909     goto failure;
910     }
911     if (args_info->length_orig)
912     free (args_info->length_orig); /* free previous string */
913     args_info->length_orig = gengetopt_strdup (optarg);
914     }
915 tim 2241 /* select the first stuntdouble set. */
916 gezelter 3007 else if (strcmp (long_options[option_index].name, "sele1") == 0)
917 tim 2240 {
918 gezelter 2701 if (local_args_info.sele1_given)
919 tim 2240 {
920 gezelter 2701 fprintf (stderr, "%s: `--sele1' option given more than once%s\n", argv[0], (additional_error ? additional_error : ""));
921     goto failure;
922 tim 2240 }
923 gezelter 2701 if (args_info->sele1_given && ! override)
924     continue;
925     local_args_info.sele1_given = 1;
926 tim 2240 args_info->sele1_given = 1;
927 gezelter 2701 if (args_info->sele1_arg)
928     free (args_info->sele1_arg); /* free previous string */
929 tim 2240 args_info->sele1_arg = gengetopt_strdup (optarg);
930 gezelter 2701 if (args_info->sele1_orig)
931     free (args_info->sele1_orig); /* free previous string */
932     args_info->sele1_orig = gengetopt_strdup (optarg);
933 tim 2240 }
934 tim 2241 /* select the second stuntdouble set. */
935 tim 1994 else if (strcmp (long_options[option_index].name, "sele2") == 0)
936 tim 2240 {
937 gezelter 2701 if (local_args_info.sele2_given)
938 tim 2240 {
939 gezelter 2701 fprintf (stderr, "%s: `--sele2' option given more than once%s\n", argv[0], (additional_error ? additional_error : ""));
940     goto failure;
941 tim 2240 }
942 gezelter 2701 if (args_info->sele2_given && ! override)
943     continue;
944     local_args_info.sele2_given = 1;
945 tim 2240 args_info->sele2_given = 1;
946 gezelter 2701 if (args_info->sele2_arg)
947     free (args_info->sele2_arg); /* free previous string */
948 tim 2240 args_info->sele2_arg = gengetopt_strdup (optarg);
949 gezelter 2701 if (args_info->sele2_orig)
950     free (args_info->sele2_orig); /* free previous string */
951     args_info->sele2_orig = gengetopt_strdup (optarg);
952 tim 2240 }
953 tim 2241 /* select the third stuntdouble set. */
954     else if (strcmp (long_options[option_index].name, "sele3") == 0)
955     {
956 gezelter 2701 if (local_args_info.sele3_given)
957 tim 2241 {
958 gezelter 2701 fprintf (stderr, "%s: `--sele3' option given more than once%s\n", argv[0], (additional_error ? additional_error : ""));
959     goto failure;
960 tim 2241 }
961 gezelter 2701 if (args_info->sele3_given && ! override)
962     continue;
963     local_args_info.sele3_given = 1;
964 tim 2241 args_info->sele3_given = 1;
965 gezelter 2701 if (args_info->sele3_arg)
966     free (args_info->sele3_arg); /* free previous string */
967 tim 2241 args_info->sele3_arg = gengetopt_strdup (optarg);
968 gezelter 2701 if (args_info->sele3_orig)
969     free (args_info->sele3_orig); /* free previous string */
970     args_info->sele3_orig = gengetopt_strdup (optarg);
971 tim 2241 }
972 tim 2053 /* select reference (use and only use with --gxyz). */
973     else if (strcmp (long_options[option_index].name, "refsele") == 0)
974 tim 2240 {
975 gezelter 2701 if (local_args_info.refsele_given)
976 tim 2240 {
977 gezelter 2701 fprintf (stderr, "%s: `--refsele' option given more than once%s\n", argv[0], (additional_error ? additional_error : ""));
978     goto failure;
979 tim 2240 }
980 gezelter 2701 if (args_info->refsele_given && ! override)
981     continue;
982     local_args_info.refsele_given = 1;
983 tim 2240 args_info->refsele_given = 1;
984 gezelter 2701 if (args_info->refsele_arg)
985     free (args_info->refsele_arg); /* free previous string */
986 tim 2240 args_info->refsele_arg = gengetopt_strdup (optarg);
987 gezelter 2701 if (args_info->refsele_orig)
988     free (args_info->refsele_orig); /* free previous string */
989     args_info->refsele_orig = gengetopt_strdup (optarg);
990 tim 2240 }
991 tim 2241 /* molecule name. */
992     else if (strcmp (long_options[option_index].name, "molname") == 0)
993     {
994 gezelter 2701 if (local_args_info.molname_given)
995 tim 2241 {
996 gezelter 2701 fprintf (stderr, "%s: `--molname' option given more than once%s\n", argv[0], (additional_error ? additional_error : ""));
997     goto failure;
998 tim 2241 }
999 gezelter 2701 if (args_info->molname_given && ! override)
1000     continue;
1001     local_args_info.molname_given = 1;
1002 tim 2241 args_info->molname_given = 1;
1003 gezelter 2701 if (args_info->molname_arg)
1004     free (args_info->molname_arg); /* free previous string */
1005 tim 2241 args_info->molname_arg = gengetopt_strdup (optarg);
1006 gezelter 2701 if (args_info->molname_orig)
1007     free (args_info->molname_orig); /* free previous string */
1008     args_info->molname_orig = gengetopt_strdup (optarg);
1009 tim 2241 }
1010 gezelter 3007 /* begin internal index. */
1011 tim 2241 else if (strcmp (long_options[option_index].name, "begin") == 0)
1012     {
1013 gezelter 2701 if (local_args_info.begin_given)
1014 tim 2241 {
1015 gezelter 2701 fprintf (stderr, "%s: `--begin' option given more than once%s\n", argv[0], (additional_error ? additional_error : ""));
1016     goto failure;
1017 tim 2241 }
1018 gezelter 2701 if (args_info->begin_given && ! override)
1019     continue;
1020     local_args_info.begin_given = 1;
1021 tim 2241 args_info->begin_given = 1;
1022 gezelter 2701 args_info->begin_arg = strtol (optarg, &stop_char, 0);
1023     if (!(stop_char && *stop_char == '\0')) {
1024     fprintf(stderr, "%s: invalid numeric value: %s\n", argv[0], optarg);
1025     goto failure;
1026     }
1027     if (args_info->begin_orig)
1028     free (args_info->begin_orig); /* free previous string */
1029     args_info->begin_orig = gengetopt_strdup (optarg);
1030 tim 2241 }
1031     /* end internal index. */
1032     else if (strcmp (long_options[option_index].name, "end") == 0)
1033     {
1034 gezelter 2701 if (local_args_info.end_given)
1035 tim 2241 {
1036 gezelter 2701 fprintf (stderr, "%s: `--end' option given more than once%s\n", argv[0], (additional_error ? additional_error : ""));
1037     goto failure;
1038 tim 2241 }
1039 gezelter 2701 if (args_info->end_given && ! override)
1040     continue;
1041     local_args_info.end_given = 1;
1042 tim 2241 args_info->end_given = 1;
1043 gezelter 2701 args_info->end_arg = strtol (optarg, &stop_char, 0);
1044     if (!(stop_char && *stop_char == '\0')) {
1045     fprintf(stderr, "%s: invalid numeric value: %s\n", argv[0], optarg);
1046     goto failure;
1047     }
1048     if (args_info->end_orig)
1049     free (args_info->end_orig); /* free previous string */
1050     args_info->end_orig = gengetopt_strdup (optarg);
1051 tim 2241 }
1052 gezelter 3022 /* bond order parameter (--rcut must be specified. */
1053 gezelter 3009 else if (strcmp (long_options[option_index].name, "bo") == 0)
1054     {
1055     if (local_args_info.bo_given)
1056     {
1057     fprintf (stderr, "%s: `--bo' option given more than once%s\n", argv[0], (additional_error ? additional_error : ""));
1058     goto failure;
1059     }
1060     if (args_info->bo_given && ! override)
1061     continue;
1062     local_args_info.bo_given = 1;
1063     args_info->bo_given = 1;
1064     if (args_info->staticProps_group_counter && override)
1065     reset_group_staticProps (args_info);
1066     args_info->staticProps_group_counter += 1;
1067     break;
1068     }
1069 tim 1994 /* g(r, cos(theta)). */
1070     else if (strcmp (long_options[option_index].name, "r_theta") == 0)
1071 tim 2240 {
1072 gezelter 2701 if (local_args_info.r_theta_given)
1073 tim 2240 {
1074 gezelter 2701 fprintf (stderr, "%s: `--r_theta' option given more than once%s\n", argv[0], (additional_error ? additional_error : ""));
1075     goto failure;
1076 tim 2240 }
1077 gezelter 2701 if (args_info->r_theta_given && ! override)
1078     continue;
1079     local_args_info.r_theta_given = 1;
1080     args_info->r_theta_given = 1;
1081     if (args_info->staticProps_group_counter && override)
1082     reset_group_staticProps (args_info);
1083     args_info->staticProps_group_counter += 1;
1084 tim 2240 break;
1085     }
1086 tim 1994 /* g(r, cos(omega)). */
1087     else if (strcmp (long_options[option_index].name, "r_omega") == 0)
1088 tim 2240 {
1089 gezelter 2701 if (local_args_info.r_omega_given)
1090 tim 2240 {
1091 gezelter 2701 fprintf (stderr, "%s: `--r_omega' option given more than once%s\n", argv[0], (additional_error ? additional_error : ""));
1092     goto failure;
1093 tim 2240 }
1094 gezelter 2701 if (args_info->r_omega_given && ! override)
1095     continue;
1096     local_args_info.r_omega_given = 1;
1097     args_info->r_omega_given = 1;
1098     if (args_info->staticProps_group_counter && override)
1099     reset_group_staticProps (args_info);
1100     args_info->staticProps_group_counter += 1;
1101 tim 2240 break;
1102     }
1103 tim 1994 /* g(cos(theta), cos(omega)). */
1104     else if (strcmp (long_options[option_index].name, "theta_omega") == 0)
1105 tim 2240 {
1106 gezelter 2701 if (local_args_info.theta_omega_given)
1107 tim 2240 {
1108 gezelter 2701 fprintf (stderr, "%s: `--theta_omega' option given more than once%s\n", argv[0], (additional_error ? additional_error : ""));
1109     goto failure;
1110 tim 2240 }
1111 gezelter 2701 if (args_info->theta_omega_given && ! override)
1112     continue;
1113     local_args_info.theta_omega_given = 1;
1114     args_info->theta_omega_given = 1;
1115     if (args_info->staticProps_group_counter && override)
1116     reset_group_staticProps (args_info);
1117     args_info->staticProps_group_counter += 1;
1118 tim 2240 break;
1119     }
1120 tim 1994 /* g(x, y, z). */
1121 tim 2053 else if (strcmp (long_options[option_index].name, "gxyz") == 0)
1122 tim 2240 {
1123 gezelter 2701 if (local_args_info.gxyz_given)
1124 tim 2240 {
1125 gezelter 2701 fprintf (stderr, "%s: `--gxyz' option given more than once%s\n", argv[0], (additional_error ? additional_error : ""));
1126     goto failure;
1127 tim 2240 }
1128 gezelter 2701 if (args_info->gxyz_given && ! override)
1129     continue;
1130     local_args_info.gxyz_given = 1;
1131     args_info->gxyz_given = 1;
1132     if (args_info->staticProps_group_counter && override)
1133     reset_group_staticProps (args_info);
1134     args_info->staticProps_group_counter += 1;
1135 tim 2240 break;
1136     }
1137 xsun 2783 /* rp2 order parameter (--sele1 and --sele2 must be specified). */
1138     else if (strcmp (long_options[option_index].name, "rp2") == 0)
1139     {
1140     if (local_args_info.rp2_given)
1141     {
1142     fprintf (stderr, "%s: `--rp2' option given more than once%s\n", argv[0], (additional_error ? additional_error : ""));
1143     goto failure;
1144     }
1145     if (args_info->rp2_given && ! override)
1146     continue;
1147     local_args_info.rp2_given = 1;
1148     args_info->rp2_given = 1;
1149     if (args_info->staticProps_group_counter && override)
1150     reset_group_staticProps (args_info);
1151     args_info->staticProps_group_counter += 1;
1152     break;
1153     }
1154 gezelter 3007 /* slab density. */
1155 tim 2539 else if (strcmp (long_options[option_index].name, "slab_density") == 0)
1156     {
1157 gezelter 2701 if (local_args_info.slab_density_given)
1158 tim 2539 {
1159 gezelter 2701 fprintf (stderr, "%s: `--slab_density' option given more than once%s\n", argv[0], (additional_error ? additional_error : ""));
1160     goto failure;
1161 tim 2539 }
1162 gezelter 2701 if (args_info->slab_density_given && ! override)
1163     continue;
1164     local_args_info.slab_density_given = 1;
1165     args_info->slab_density_given = 1;
1166     if (args_info->staticProps_group_counter && override)
1167     reset_group_staticProps (args_info);
1168     args_info->staticProps_group_counter += 1;
1169 tim 2539 break;
1170     }
1171 gezelter 3007 /* hxy. */
1172 xsun 2751 else if (strcmp (long_options[option_index].name, "hxy") == 0)
1173     {
1174     if (local_args_info.hxy_given)
1175     {
1176     fprintf (stderr, "%s: `--hxy' option given more than once%s\n", argv[0], (additional_error ? additional_error : ""));
1177     goto failure;
1178     }
1179     if (args_info->hxy_given && ! override)
1180     continue;
1181     local_args_info.hxy_given = 1;
1182     args_info->hxy_given = 1;
1183     if (args_info->staticProps_group_counter && override)
1184     reset_group_staticProps (args_info);
1185     args_info->staticProps_group_counter += 1;
1186     break;
1187     }
1188 tim 2539
1189 gezelter 2701 break;
1190 tim 1994 case '?': /* Invalid option. */
1191     /* `getopt_long' already printed an error message. */
1192 gezelter 2701 goto failure;
1193 tim 1994
1194     default: /* bug: option not considered. */
1195 gezelter 2701 fprintf (stderr, "%s: option unknown: %c%s\n", CMDLINE_PARSER_PACKAGE, c, (additional_error ? additional_error : ""));
1196 tim 1994 abort ();
1197     } /* switch */
1198     } /* while */
1199    
1200 gezelter 2701 if (args_info->staticProps_group_counter > 1)
1201 tim 1994 {
1202 gezelter 2701 fprintf (stderr, "%s: %d options of group staticProps were given. One is required.%s\n", argv[0], args_info->staticProps_group_counter, (additional_error ? additional_error : ""));
1203     error = 1;
1204 tim 1994 }
1205    
1206    
1207 gezelter 2701
1208     if (check_required)
1209 tim 1994 {
1210 gezelter 2701 error += cmdline_parser_required2 (args_info, argv[0], additional_error);
1211 tim 1994 }
1212    
1213 gezelter 2701 cmdline_parser_release (&local_args_info);
1214    
1215     if ( error )
1216     return (EXIT_FAILURE);
1217    
1218 tim 1994 return 0;
1219 gezelter 2701
1220     failure:
1221    
1222     cmdline_parser_release (&local_args_info);
1223     return (EXIT_FAILURE);
1224 tim 1994 }