ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/trunk/OOPSE-4/src/applications/dump2Xyz/Dump2XYZCmd.c
Revision: 3115
Committed: Tue Jan 16 22:17:27 2007 UTC (17 years, 6 months ago) by chuckv
Content type: text/plain
File size: 27986 byte(s)
Log Message:
Added printPosOnly to Dump2XYZ as a userbase(BETH) request.

File Contents

# User Rev Content
1 tim 1501 /*
2 chuckv 3115 File autogenerated by gengetopt version 2.15
3 tim 1501 generated with the following command:
4 chuckv 3115 gengetopt -i Dump2XYZ.ggo -F Dump2XYZCmd
5 tim 1501
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 3115 /* If we use autoconf. */
12     #ifdef HAVE_CONFIG_H
13     #include "config.h"
14     #endif
15 tim 1501
16     #include <stdio.h>
17     #include <stdlib.h>
18     #include <string.h>
19    
20     #include "getopt.h"
21    
22 tim 1975 #include "Dump2XYZCmd.h"
23 tim 1501
24 chuckv 3115 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->frame_given = 0 ;
46     args_info->water_given = 0 ;
47     args_info->periodicBox_given = 0 ;
48     args_info->zconstraint_given = 0 ;
49     args_info->rigidbody_given = 0 ;
50     args_info->watertype_given = 0 ;
51     args_info->selection_given = 0 ;
52     args_info->originsele_given = 0 ;
53     args_info->refsele_given = 0 ;
54     args_info->repeatX_given = 0 ;
55     args_info->repeatY_given = 0 ;
56     args_info->repeatZ_given = 0 ;
57     args_info->gb_given = 0 ;
58     args_info->basetype_given = 0 ;
59     args_info->printPosOnly_given = 0 ;
60     }
61    
62     static
63     void clear_args (struct gengetopt_args_info *args_info)
64     {
65     args_info->input_arg = NULL;
66     args_info->input_orig = NULL;
67     args_info->output_arg = NULL;
68     args_info->output_orig = NULL;
69     args_info->frame_arg = 1;
70     args_info->frame_orig = NULL;
71     args_info->water_flag = 0;
72     args_info->periodicBox_flag = 0;
73     args_info->zconstraint_flag = 0;
74     args_info->rigidbody_flag = 0;
75     args_info->watertype_flag = 1;
76     args_info->selection_arg = NULL;
77     args_info->selection_orig = NULL;
78     args_info->originsele_arg = NULL;
79     args_info->originsele_orig = NULL;
80     args_info->refsele_arg = NULL;
81     args_info->refsele_orig = NULL;
82     args_info->repeatX_arg = 0;
83     args_info->repeatX_orig = NULL;
84     args_info->repeatY_arg = 0;
85     args_info->repeatY_orig = NULL;
86     args_info->repeatZ_arg = 0;
87     args_info->repeatZ_orig = NULL;
88     args_info->gb_arg = NULL;
89     args_info->gb_orig = NULL;
90     args_info->basetype_flag = 0;
91     args_info->printPosOnly_flag = 0;
92    
93     }
94    
95 tim 1501 void
96     cmdline_parser_print_version (void)
97     {
98     printf ("%s %s\n", CMDLINE_PARSER_PACKAGE, CMDLINE_PARSER_VERSION);
99     }
100    
101     void
102     cmdline_parser_print_help (void)
103     {
104     cmdline_parser_print_version ();
105 chuckv 3115 printf("\nUsage: Dump2XYZ [OPTIONS]...\n\n");
106     printf("%s\n"," -h, --help Print help and exit");
107     printf("%s\n"," -V, --version Print version and exit");
108     printf("%s\n"," -i, --input=filename input dump file");
109     printf("%s\n"," -o, --output=filename output file name");
110     printf("%s\n"," -n, --frame=INT print every n frame (default=`1')");
111     printf("%s\n"," -w, --water skip the the waters (default=off)");
112     printf("%s\n"," -m, --periodicBox map to the periodic box (default=off)");
113     printf("%s\n"," -z, --zconstraint replace the atom types of zconstraint molecules \n (default=off)");
114     printf("%s\n"," -r, --rigidbody add a pseudo COM atom to rigidbody \n (default=off)");
115     printf("%s\n"," -t, --watertype replace the atom type of water model \n (default=on)");
116     printf("%s\n"," -s, --selection=selection script\n general selection syntax");
117     printf("%s\n"," --originsele=selection script\n select origin");
118     printf("%s\n"," --refsele=selection script\n select reference");
119     printf("%s\n"," --repeatX=INT The number of images to repeat in the x \n direction (default=`0')");
120     printf("%s\n"," --repeatY=INT The number of images to repeat in the y \n direction (default=`0')");
121     printf("%s\n"," --repeatZ=INT The number of images to repeat in the z \n direction (default=`0')");
122     printf("%s\n"," --gb=atomtype Replace the Gay-Berne atom with four linear \n atoms");
123     printf("%s\n"," -b, --basetype Convert to base atom type (default=off)");
124     printf("%s\n"," --printPosOnly Print only positions in xyz file (default=off)");
125    
126 tim 1501 }
127    
128 chuckv 3115 void
129     cmdline_parser_init (struct gengetopt_args_info *args_info)
130     {
131     clear_given (args_info);
132     clear_args (args_info);
133     }
134 tim 1501
135 chuckv 3115 static void
136     cmdline_parser_release (struct gengetopt_args_info *args_info)
137     {
138    
139     if (args_info->input_arg)
140     {
141     free (args_info->input_arg); /* free previous argument */
142     args_info->input_arg = 0;
143     }
144     if (args_info->input_orig)
145     {
146     free (args_info->input_orig); /* free previous argument */
147     args_info->input_orig = 0;
148     }
149     if (args_info->output_arg)
150     {
151     free (args_info->output_arg); /* free previous argument */
152     args_info->output_arg = 0;
153     }
154     if (args_info->output_orig)
155     {
156     free (args_info->output_orig); /* free previous argument */
157     args_info->output_orig = 0;
158     }
159     if (args_info->frame_orig)
160     {
161     free (args_info->frame_orig); /* free previous argument */
162     args_info->frame_orig = 0;
163     }
164     if (args_info->selection_arg)
165     {
166     free (args_info->selection_arg); /* free previous argument */
167     args_info->selection_arg = 0;
168     }
169     if (args_info->selection_orig)
170     {
171     free (args_info->selection_orig); /* free previous argument */
172     args_info->selection_orig = 0;
173     }
174     if (args_info->originsele_arg)
175     {
176     free (args_info->originsele_arg); /* free previous argument */
177     args_info->originsele_arg = 0;
178     }
179     if (args_info->originsele_orig)
180     {
181     free (args_info->originsele_orig); /* free previous argument */
182     args_info->originsele_orig = 0;
183     }
184     if (args_info->refsele_arg)
185     {
186     free (args_info->refsele_arg); /* free previous argument */
187     args_info->refsele_arg = 0;
188     }
189     if (args_info->refsele_orig)
190     {
191     free (args_info->refsele_orig); /* free previous argument */
192     args_info->refsele_orig = 0;
193     }
194     if (args_info->repeatX_orig)
195     {
196     free (args_info->repeatX_orig); /* free previous argument */
197     args_info->repeatX_orig = 0;
198     }
199     if (args_info->repeatY_orig)
200     {
201     free (args_info->repeatY_orig); /* free previous argument */
202     args_info->repeatY_orig = 0;
203     }
204     if (args_info->repeatZ_orig)
205     {
206     free (args_info->repeatZ_orig); /* free previous argument */
207     args_info->repeatZ_orig = 0;
208     }
209     if (args_info->gb_arg)
210     {
211     free (args_info->gb_arg); /* free previous argument */
212     args_info->gb_arg = 0;
213     }
214     if (args_info->gb_orig)
215     {
216     free (args_info->gb_orig); /* free previous argument */
217     args_info->gb_orig = 0;
218     }
219    
220     clear_given (args_info);
221     }
222 tim 1501
223 chuckv 3115 int
224     cmdline_parser_file_save(const char *filename, struct gengetopt_args_info *args_info)
225     {
226     FILE *outfile;
227     int i = 0;
228    
229     outfile = fopen(filename, "w");
230    
231     if (!outfile)
232     {
233     fprintf (stderr, "%s: cannot open file for writing: %s\n", CMDLINE_PARSER_PACKAGE, filename);
234     return EXIT_FAILURE;
235     }
236    
237     if (args_info->help_given) {
238     fprintf(outfile, "%s\n", "help");
239     }
240     if (args_info->version_given) {
241     fprintf(outfile, "%s\n", "version");
242     }
243     if (args_info->input_given) {
244     if (args_info->input_orig) {
245     fprintf(outfile, "%s=\"%s\"\n", "input", args_info->input_orig);
246     } else {
247     fprintf(outfile, "%s\n", "input");
248     }
249     }
250     if (args_info->output_given) {
251     if (args_info->output_orig) {
252     fprintf(outfile, "%s=\"%s\"\n", "output", args_info->output_orig);
253     } else {
254     fprintf(outfile, "%s\n", "output");
255     }
256     }
257     if (args_info->frame_given) {
258     if (args_info->frame_orig) {
259     fprintf(outfile, "%s=\"%s\"\n", "frame", args_info->frame_orig);
260     } else {
261     fprintf(outfile, "%s\n", "frame");
262     }
263     }
264     if (args_info->water_given) {
265     fprintf(outfile, "%s\n", "water");
266     }
267     if (args_info->periodicBox_given) {
268     fprintf(outfile, "%s\n", "periodicBox");
269     }
270     if (args_info->zconstraint_given) {
271     fprintf(outfile, "%s\n", "zconstraint");
272     }
273     if (args_info->rigidbody_given) {
274     fprintf(outfile, "%s\n", "rigidbody");
275     }
276     if (args_info->watertype_given) {
277     fprintf(outfile, "%s\n", "watertype");
278     }
279     if (args_info->selection_given) {
280     if (args_info->selection_orig) {
281     fprintf(outfile, "%s=\"%s\"\n", "selection", args_info->selection_orig);
282     } else {
283     fprintf(outfile, "%s\n", "selection");
284     }
285     }
286     if (args_info->originsele_given) {
287     if (args_info->originsele_orig) {
288     fprintf(outfile, "%s=\"%s\"\n", "originsele", args_info->originsele_orig);
289     } else {
290     fprintf(outfile, "%s\n", "originsele");
291     }
292     }
293     if (args_info->refsele_given) {
294     if (args_info->refsele_orig) {
295     fprintf(outfile, "%s=\"%s\"\n", "refsele", args_info->refsele_orig);
296     } else {
297     fprintf(outfile, "%s\n", "refsele");
298     }
299     }
300     if (args_info->repeatX_given) {
301     if (args_info->repeatX_orig) {
302     fprintf(outfile, "%s=\"%s\"\n", "repeatX", args_info->repeatX_orig);
303     } else {
304     fprintf(outfile, "%s\n", "repeatX");
305     }
306     }
307     if (args_info->repeatY_given) {
308     if (args_info->repeatY_orig) {
309     fprintf(outfile, "%s=\"%s\"\n", "repeatY", args_info->repeatY_orig);
310     } else {
311     fprintf(outfile, "%s\n", "repeatY");
312     }
313     }
314     if (args_info->repeatZ_given) {
315     if (args_info->repeatZ_orig) {
316     fprintf(outfile, "%s=\"%s\"\n", "repeatZ", args_info->repeatZ_orig);
317     } else {
318     fprintf(outfile, "%s\n", "repeatZ");
319     }
320     }
321     if (args_info->gb_given) {
322     if (args_info->gb_orig) {
323     fprintf(outfile, "%s=\"%s\"\n", "gb", args_info->gb_orig);
324     } else {
325     fprintf(outfile, "%s\n", "gb");
326     }
327     }
328     if (args_info->basetype_given) {
329     fprintf(outfile, "%s\n", "basetype");
330     }
331     if (args_info->printPosOnly_given) {
332     fprintf(outfile, "%s\n", "printPosOnly");
333     }
334    
335     fclose (outfile);
336    
337     i = EXIT_SUCCESS;
338     return i;
339     }
340    
341     void
342     cmdline_parser_free (struct gengetopt_args_info *args_info)
343     {
344     cmdline_parser_release (args_info);
345     }
346    
347    
348 tim 1501 /* gengetopt_strdup() */
349     /* strdup.c replacement of strdup, which is not standard */
350     char *
351     gengetopt_strdup (const char *s)
352     {
353 chuckv 3115 char *result = NULL;
354     if (!s)
355     return result;
356    
357     result = (char*)malloc(strlen(s) + 1);
358 tim 1501 if (result == (char*)0)
359     return (char*)0;
360     strcpy(result, s);
361     return result;
362     }
363    
364     int
365     cmdline_parser (int argc, char * const *argv, struct gengetopt_args_info *args_info)
366     {
367 chuckv 3115 return cmdline_parser2 (argc, argv, args_info, 0, 1, 1);
368     }
369 tim 1501
370 chuckv 3115 int
371     cmdline_parser2 (int argc, char * const *argv, struct gengetopt_args_info *args_info, int override, int initialize, int check_required)
372     {
373     int result;
374    
375     result = cmdline_parser_internal (argc, argv, args_info, override, initialize, check_required, NULL);
376    
377     if (result == EXIT_FAILURE)
378     {
379     cmdline_parser_free (args_info);
380     exit (EXIT_FAILURE);
381     }
382    
383     return result;
384 tim 2240 }
385 tim 1501
386 chuckv 3115 int
387     cmdline_parser_required (struct gengetopt_args_info *args_info, const char *prog_name)
388     {
389     int result = EXIT_SUCCESS;
390 tim 1501
391 chuckv 3115 if (cmdline_parser_required2(args_info, prog_name, NULL) > 0)
392     result = EXIT_FAILURE;
393    
394     if (result == EXIT_FAILURE)
395     {
396     cmdline_parser_free (args_info);
397     exit (EXIT_FAILURE);
398     }
399    
400     return result;
401     }
402    
403     int
404     cmdline_parser_required2 (struct gengetopt_args_info *args_info, const char *prog_name, const char *additional_error)
405     {
406     int error = 0;
407    
408     if (! args_info->input_given)
409     {
410     fprintf (stderr, "%s: '--input' ('-i') option required%s\n", prog_name, (additional_error ? additional_error : ""));
411     error = 1;
412     }
413    
414     return error;
415     }
416    
417     int
418     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)
419     {
420     int c; /* Character of the parsed option. */
421    
422     int error = 0;
423     struct gengetopt_args_info local_args_info;
424    
425     if (initialize)
426     cmdline_parser_init (args_info);
427    
428     cmdline_parser_init (&local_args_info);
429    
430 tim 1501 optarg = 0;
431     optind = 1;
432     opterr = 1;
433     optopt = '?';
434    
435     while (1)
436     {
437     int option_index = 0;
438     char *stop_char;
439    
440     static struct option long_options[] = {
441     { "help", 0, NULL, 'h' },
442     { "version", 0, NULL, 'V' },
443     { "input", 1, NULL, 'i' },
444     { "output", 1, NULL, 'o' },
445     { "frame", 1, NULL, 'n' },
446     { "water", 0, NULL, 'w' },
447     { "periodicBox", 0, NULL, 'm' },
448     { "zconstraint", 0, NULL, 'z' },
449     { "rigidbody", 0, NULL, 'r' },
450     { "watertype", 0, NULL, 't' },
451 tim 1975 { "selection", 1, NULL, 's' },
452 tim 2053 { "originsele", 1, NULL, 0 },
453     { "refsele", 1, NULL, 0 },
454 tim 1501 { "repeatX", 1, NULL, 0 },
455     { "repeatY", 1, NULL, 0 },
456     { "repeatZ", 1, NULL, 0 },
457 tim 2749 { "gb", 1, NULL, 0 },
458     { "basetype", 0, NULL, 'b' },
459 chuckv 3115 { "printPosOnly", 0, NULL, 0 },
460 tim 1501 { NULL, 0, NULL, 0 }
461     };
462    
463     stop_char = 0;
464 tim 2749 c = getopt_long (argc, argv, "hVi:o:n:wmzrts:b", long_options, &option_index);
465 tim 1501
466     if (c == -1) break; /* Exit from `while (1)' loop. */
467    
468     switch (c)
469     {
470     case 'h': /* Print help and exit. */
471     cmdline_parser_print_help ();
472 chuckv 3115 cmdline_parser_free (&local_args_info);
473 tim 1501 exit (EXIT_SUCCESS);
474    
475     case 'V': /* Print version and exit. */
476     cmdline_parser_print_version ();
477 chuckv 3115 cmdline_parser_free (&local_args_info);
478 tim 1501 exit (EXIT_SUCCESS);
479    
480     case 'i': /* input dump file. */
481 chuckv 3115 if (local_args_info.input_given)
482 tim 1501 {
483 chuckv 3115 fprintf (stderr, "%s: `--input' (`-i') option given more than once%s\n", argv[0], (additional_error ? additional_error : ""));
484     goto failure;
485 tim 1501 }
486 chuckv 3115 if (args_info->input_given && ! override)
487     continue;
488     local_args_info.input_given = 1;
489 tim 1501 args_info->input_given = 1;
490 chuckv 3115 if (args_info->input_arg)
491     free (args_info->input_arg); /* free previous string */
492 tim 1501 args_info->input_arg = gengetopt_strdup (optarg);
493 chuckv 3115 if (args_info->input_orig)
494     free (args_info->input_orig); /* free previous string */
495     args_info->input_orig = gengetopt_strdup (optarg);
496 tim 1501 break;
497    
498     case 'o': /* output file name. */
499 chuckv 3115 if (local_args_info.output_given)
500 tim 1501 {
501 chuckv 3115 fprintf (stderr, "%s: `--output' (`-o') option given more than once%s\n", argv[0], (additional_error ? additional_error : ""));
502     goto failure;
503 tim 1501 }
504 chuckv 3115 if (args_info->output_given && ! override)
505     continue;
506     local_args_info.output_given = 1;
507 tim 1501 args_info->output_given = 1;
508 chuckv 3115 if (args_info->output_arg)
509     free (args_info->output_arg); /* free previous string */
510 tim 1501 args_info->output_arg = gengetopt_strdup (optarg);
511 chuckv 3115 if (args_info->output_orig)
512     free (args_info->output_orig); /* free previous string */
513     args_info->output_orig = gengetopt_strdup (optarg);
514 tim 1501 break;
515    
516     case 'n': /* print every n frame. */
517 chuckv 3115 if (local_args_info.frame_given)
518 tim 1501 {
519 chuckv 3115 fprintf (stderr, "%s: `--frame' (`-n') option given more than once%s\n", argv[0], (additional_error ? additional_error : ""));
520     goto failure;
521 tim 1501 }
522 chuckv 3115 if (args_info->frame_given && ! override)
523     continue;
524     local_args_info.frame_given = 1;
525 tim 1501 args_info->frame_given = 1;
526 chuckv 3115 args_info->frame_arg = strtol (optarg, &stop_char, 0);
527     if (!(stop_char && *stop_char == '\0')) {
528     fprintf(stderr, "%s: invalid numeric value: %s\n", argv[0], optarg);
529     goto failure;
530     }
531     if (args_info->frame_orig)
532     free (args_info->frame_orig); /* free previous string */
533     args_info->frame_orig = gengetopt_strdup (optarg);
534 tim 1501 break;
535    
536     case 'w': /* skip the the waters. */
537 chuckv 3115 if (local_args_info.water_given)
538 tim 1501 {
539 chuckv 3115 fprintf (stderr, "%s: `--water' (`-w') option given more than once%s\n", argv[0], (additional_error ? additional_error : ""));
540     goto failure;
541 tim 1501 }
542 chuckv 3115 if (args_info->water_given && ! override)
543     continue;
544     local_args_info.water_given = 1;
545 tim 1501 args_info->water_given = 1;
546     args_info->water_flag = !(args_info->water_flag);
547     break;
548    
549     case 'm': /* map to the periodic box. */
550 chuckv 3115 if (local_args_info.periodicBox_given)
551 tim 1501 {
552 chuckv 3115 fprintf (stderr, "%s: `--periodicBox' (`-m') option given more than once%s\n", argv[0], (additional_error ? additional_error : ""));
553     goto failure;
554 tim 1501 }
555 chuckv 3115 if (args_info->periodicBox_given && ! override)
556     continue;
557     local_args_info.periodicBox_given = 1;
558 tim 1501 args_info->periodicBox_given = 1;
559     args_info->periodicBox_flag = !(args_info->periodicBox_flag);
560     break;
561    
562     case 'z': /* replace the atom types of zconstraint molecules. */
563 chuckv 3115 if (local_args_info.zconstraint_given)
564 tim 1501 {
565 chuckv 3115 fprintf (stderr, "%s: `--zconstraint' (`-z') option given more than once%s\n", argv[0], (additional_error ? additional_error : ""));
566     goto failure;
567 tim 1501 }
568 chuckv 3115 if (args_info->zconstraint_given && ! override)
569     continue;
570     local_args_info.zconstraint_given = 1;
571 tim 1501 args_info->zconstraint_given = 1;
572     args_info->zconstraint_flag = !(args_info->zconstraint_flag);
573     break;
574    
575     case 'r': /* add a pseudo COM atom to rigidbody. */
576 chuckv 3115 if (local_args_info.rigidbody_given)
577 tim 1501 {
578 chuckv 3115 fprintf (stderr, "%s: `--rigidbody' (`-r') option given more than once%s\n", argv[0], (additional_error ? additional_error : ""));
579     goto failure;
580 tim 1501 }
581 chuckv 3115 if (args_info->rigidbody_given && ! override)
582     continue;
583     local_args_info.rigidbody_given = 1;
584 tim 1501 args_info->rigidbody_given = 1;
585     args_info->rigidbody_flag = !(args_info->rigidbody_flag);
586     break;
587    
588     case 't': /* replace the atom type of water model. */
589 chuckv 3115 if (local_args_info.watertype_given)
590 tim 1501 {
591 chuckv 3115 fprintf (stderr, "%s: `--watertype' (`-t') option given more than once%s\n", argv[0], (additional_error ? additional_error : ""));
592     goto failure;
593 tim 1501 }
594 chuckv 3115 if (args_info->watertype_given && ! override)
595     continue;
596     local_args_info.watertype_given = 1;
597 tim 1501 args_info->watertype_given = 1;
598     args_info->watertype_flag = !(args_info->watertype_flag);
599     break;
600    
601 tim 2749 case 's': /* general selection syntax. */
602 chuckv 3115 if (local_args_info.selection_given)
603 tim 2240 {
604 chuckv 3115 fprintf (stderr, "%s: `--selection' (`-s') option given more than once%s\n", argv[0], (additional_error ? additional_error : ""));
605     goto failure;
606 tim 2240 }
607 chuckv 3115 if (args_info->selection_given && ! override)
608     continue;
609     local_args_info.selection_given = 1;
610 tim 2749 args_info->selection_given = 1;
611 chuckv 3115 if (args_info->selection_arg)
612     free (args_info->selection_arg); /* free previous string */
613 tim 2749 args_info->selection_arg = gengetopt_strdup (optarg);
614 chuckv 3115 if (args_info->selection_orig)
615     free (args_info->selection_orig); /* free previous string */
616     args_info->selection_orig = gengetopt_strdup (optarg);
617 tim 2240 break;
618    
619 tim 2749 case 'b': /* Convert to base atom type. */
620 chuckv 3115 if (local_args_info.basetype_given)
621 tim 1975 {
622 chuckv 3115 fprintf (stderr, "%s: `--basetype' (`-b') option given more than once%s\n", argv[0], (additional_error ? additional_error : ""));
623     goto failure;
624 tim 1975 }
625 chuckv 3115 if (args_info->basetype_given && ! override)
626     continue;
627     local_args_info.basetype_given = 1;
628 tim 2749 args_info->basetype_given = 1;
629     args_info->basetype_flag = !(args_info->basetype_flag);
630 tim 1975 break;
631 tim 1501
632 tim 1975
633 tim 1501 case 0: /* Long option with no short option */
634 tim 2053 /* select origin. */
635     if (strcmp (long_options[option_index].name, "originsele") == 0)
636 tim 2240 {
637 chuckv 3115 if (local_args_info.originsele_given)
638 tim 2240 {
639 chuckv 3115 fprintf (stderr, "%s: `--originsele' option given more than once%s\n", argv[0], (additional_error ? additional_error : ""));
640     goto failure;
641 tim 2240 }
642 chuckv 3115 if (args_info->originsele_given && ! override)
643     continue;
644     local_args_info.originsele_given = 1;
645 tim 2240 args_info->originsele_given = 1;
646 chuckv 3115 if (args_info->originsele_arg)
647     free (args_info->originsele_arg); /* free previous string */
648 tim 2240 args_info->originsele_arg = gengetopt_strdup (optarg);
649 chuckv 3115 if (args_info->originsele_orig)
650     free (args_info->originsele_orig); /* free previous string */
651     args_info->originsele_orig = gengetopt_strdup (optarg);
652 tim 2240 }
653 tim 2053 /* select reference. */
654     else if (strcmp (long_options[option_index].name, "refsele") == 0)
655 tim 2240 {
656 chuckv 3115 if (local_args_info.refsele_given)
657 tim 2240 {
658 chuckv 3115 fprintf (stderr, "%s: `--refsele' option given more than once%s\n", argv[0], (additional_error ? additional_error : ""));
659     goto failure;
660 tim 2240 }
661 chuckv 3115 if (args_info->refsele_given && ! override)
662     continue;
663     local_args_info.refsele_given = 1;
664 tim 2240 args_info->refsele_given = 1;
665 chuckv 3115 if (args_info->refsele_arg)
666     free (args_info->refsele_arg); /* free previous string */
667 tim 2240 args_info->refsele_arg = gengetopt_strdup (optarg);
668 chuckv 3115 if (args_info->refsele_orig)
669     free (args_info->refsele_orig); /* free previous string */
670     args_info->refsele_orig = gengetopt_strdup (optarg);
671 tim 2240 }
672 tim 1501 /* The number of images to repeat in the x direction. */
673 tim 2053 else if (strcmp (long_options[option_index].name, "repeatX") == 0)
674 tim 2240 {
675 chuckv 3115 if (local_args_info.repeatX_given)
676 tim 2240 {
677 chuckv 3115 fprintf (stderr, "%s: `--repeatX' option given more than once%s\n", argv[0], (additional_error ? additional_error : ""));
678     goto failure;
679 tim 2240 }
680 chuckv 3115 if (args_info->repeatX_given && ! override)
681     continue;
682     local_args_info.repeatX_given = 1;
683 tim 2240 args_info->repeatX_given = 1;
684 chuckv 3115 args_info->repeatX_arg = strtol (optarg, &stop_char, 0);
685     if (!(stop_char && *stop_char == '\0')) {
686     fprintf(stderr, "%s: invalid numeric value: %s\n", argv[0], optarg);
687     goto failure;
688     }
689     if (args_info->repeatX_orig)
690     free (args_info->repeatX_orig); /* free previous string */
691     args_info->repeatX_orig = gengetopt_strdup (optarg);
692 tim 2240 }
693 tim 1501 /* The number of images to repeat in the y direction. */
694     else if (strcmp (long_options[option_index].name, "repeatY") == 0)
695 tim 2240 {
696 chuckv 3115 if (local_args_info.repeatY_given)
697 tim 2240 {
698 chuckv 3115 fprintf (stderr, "%s: `--repeatY' option given more than once%s\n", argv[0], (additional_error ? additional_error : ""));
699     goto failure;
700 tim 2240 }
701 chuckv 3115 if (args_info->repeatY_given && ! override)
702     continue;
703     local_args_info.repeatY_given = 1;
704 tim 2240 args_info->repeatY_given = 1;
705 chuckv 3115 args_info->repeatY_arg = strtol (optarg, &stop_char, 0);
706     if (!(stop_char && *stop_char == '\0')) {
707     fprintf(stderr, "%s: invalid numeric value: %s\n", argv[0], optarg);
708     goto failure;
709     }
710     if (args_info->repeatY_orig)
711     free (args_info->repeatY_orig); /* free previous string */
712     args_info->repeatY_orig = gengetopt_strdup (optarg);
713 tim 2240 }
714 tim 1501 /* The number of images to repeat in the z direction. */
715     else if (strcmp (long_options[option_index].name, "repeatZ") == 0)
716 tim 2240 {
717 chuckv 3115 if (local_args_info.repeatZ_given)
718 tim 2240 {
719 chuckv 3115 fprintf (stderr, "%s: `--repeatZ' option given more than once%s\n", argv[0], (additional_error ? additional_error : ""));
720     goto failure;
721 tim 2240 }
722 chuckv 3115 if (args_info->repeatZ_given && ! override)
723     continue;
724     local_args_info.repeatZ_given = 1;
725 tim 2240 args_info->repeatZ_given = 1;
726 chuckv 3115 args_info->repeatZ_arg = strtol (optarg, &stop_char, 0);
727     if (!(stop_char && *stop_char == '\0')) {
728     fprintf(stderr, "%s: invalid numeric value: %s\n", argv[0], optarg);
729     goto failure;
730     }
731     if (args_info->repeatZ_orig)
732     free (args_info->repeatZ_orig); /* free previous string */
733     args_info->repeatZ_orig = gengetopt_strdup (optarg);
734 tim 2240 }
735 tim 2749 /* Replace the Gay-Berne atom with four linear atoms. */
736     else if (strcmp (long_options[option_index].name, "gb") == 0)
737     {
738 chuckv 3115 if (local_args_info.gb_given)
739 tim 2749 {
740 chuckv 3115 fprintf (stderr, "%s: `--gb' option given more than once%s\n", argv[0], (additional_error ? additional_error : ""));
741     goto failure;
742 tim 2749 }
743 chuckv 3115 if (args_info->gb_given && ! override)
744     continue;
745     local_args_info.gb_given = 1;
746 tim 2749 args_info->gb_given = 1;
747 chuckv 3115 if (args_info->gb_arg)
748     free (args_info->gb_arg); /* free previous string */
749 tim 2749 args_info->gb_arg = gengetopt_strdup (optarg);
750 chuckv 3115 if (args_info->gb_orig)
751     free (args_info->gb_orig); /* free previous string */
752     args_info->gb_orig = gengetopt_strdup (optarg);
753 tim 2749 }
754 chuckv 3115 /* Print only positions in xyz file. */
755     else if (strcmp (long_options[option_index].name, "printPosOnly") == 0)
756     {
757     if (local_args_info.printPosOnly_given)
758     {
759     fprintf (stderr, "%s: `--printPosOnly' option given more than once%s\n", argv[0], (additional_error ? additional_error : ""));
760     goto failure;
761     }
762     if (args_info->printPosOnly_given && ! override)
763     continue;
764     local_args_info.printPosOnly_given = 1;
765     args_info->printPosOnly_given = 1;
766     args_info->printPosOnly_flag = !(args_info->printPosOnly_flag);
767     }
768 tim 2749
769 chuckv 3115 break;
770 tim 1501 case '?': /* Invalid option. */
771     /* `getopt_long' already printed an error message. */
772 chuckv 3115 goto failure;
773 tim 1501
774     default: /* bug: option not considered. */
775 chuckv 3115 fprintf (stderr, "%s: option unknown: %c%s\n", CMDLINE_PARSER_PACKAGE, c, (additional_error ? additional_error : ""));
776 tim 1501 abort ();
777     } /* switch */
778     } /* while */
779    
780    
781 chuckv 3115
782     if (check_required)
783 tim 1501 {
784 chuckv 3115 error += cmdline_parser_required2 (args_info, argv[0], additional_error);
785 tim 1501 }
786    
787 chuckv 3115 cmdline_parser_release (&local_args_info);
788    
789     if ( error )
790     return (EXIT_FAILURE);
791    
792 tim 1501 return 0;
793 chuckv 3115
794     failure:
795    
796     cmdline_parser_release (&local_args_info);
797     return (EXIT_FAILURE);
798 tim 1501 }