ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/trunk/OOPSE-3.0/src/applications/staticProps/StaticPropsCmd.c
Revision: 1994
Committed: Thu Feb 10 18:14:03 2005 UTC (19 years, 5 months ago) by tim
Content type: text/plain
File size: 11483 byte(s)
Log Message:
change the filenames

File Contents

# User Rev Content
1 tim 1994 /*
2     File autogenerated by gengetopt version 2.11
3     generated with the following command:
4     /home/maul/gezelter/tim/bin/gengetopt -F staticPropsCmd
5    
6     The developers of gengetopt consider the fixed text that goes in all
7     gengetopt output files to be in the public domain:
8     we make no copyright claims on it.
9     */
10    
11    
12     #include <stdio.h>
13     #include <stdlib.h>
14     #include <string.h>
15    
16     /* If we use autoconf. */
17     #ifdef HAVE_CONFIG_H
18     #include "config.h"
19     #endif
20    
21     #include "getopt.h"
22    
23     #include "staticPropsCmd.h"
24    
25     void
26     cmdline_parser_print_version (void)
27     {
28     printf ("%s %s\n", CMDLINE_PARSER_PACKAGE, CMDLINE_PARSER_VERSION);
29     }
30    
31     void
32     cmdline_parser_print_help (void)
33     {
34     cmdline_parser_print_version ();
35     printf("\n"
36     "Usage: %s [OPTIONS]...\n", CMDLINE_PARSER_PACKAGE);
37     printf("\n");
38     printf(" -h, --help Print help and exit\n");
39     printf(" -V, --version Print version and exit\n");
40     printf(" -i, --input=filename input dump file\n");
41     printf(" -o, --output=filename output file name\n");
42     printf(" -n, --frame=INT print every n frame (default=`1')\n");
43     printf(" -d, --ndistebins=INT number of bins for distance (default=`50')\n");
44     printf(" -a, --nanglebins=INT number of bins for cos(angle) (default=`50')\n");
45     printf(" -l, --length=DOUBLE maximum length\n");
46     printf(" --sele1=selection script select first stuntdouble set\n");
47     printf(" --sele2=selection script select second stuntdouble set\n");
48     printf("\n");
49     printf(" Group: staticProps an option of this group is required\n");
50     printf(" --gofr g(r)\n");
51     printf(" --r_theta g(r, cos(theta))\n");
52     printf(" --r_omega g(r, cos(omega))\n");
53     printf(" --theta_omega g(cos(theta), cos(omega))\n");
54     printf(" --xyz g(x, y, z)\n");
55     }
56    
57    
58     static char *gengetopt_strdup (const char *s);
59    
60     /* gengetopt_strdup() */
61     /* strdup.c replacement of strdup, which is not standard */
62     char *
63     gengetopt_strdup (const char *s)
64     {
65     char *result = (char*)malloc(strlen(s) + 1);
66     if (result == (char*)0)
67     return (char*)0;
68     strcpy(result, s);
69     return result;
70     }
71    
72     int
73     cmdline_parser (int argc, char * const *argv, struct gengetopt_args_info *args_info)
74     {
75     int c; /* Character of the parsed option. */
76     int missing_required_options = 0;
77     int staticProps_group_counter = 0;
78    
79    
80     args_info->help_given = 0 ;
81     args_info->version_given = 0 ;
82     args_info->input_given = 0 ;
83     args_info->output_given = 0 ;
84     args_info->frame_given = 0 ;
85     args_info->ndistebins_given = 0 ;
86     args_info->nanglebins_given = 0 ;
87     args_info->length_given = 0 ;
88     args_info->sele1_given = 0 ;
89     args_info->sele2_given = 0 ;
90     args_info->gofr_given = 0 ;
91     args_info->r_theta_given = 0 ;
92     args_info->r_omega_given = 0 ;
93     args_info->theta_omega_given = 0 ;
94     args_info->xyz_given = 0 ;
95     #define clear_args() { \
96     args_info->input_arg = NULL; \
97     args_info->output_arg = NULL; \
98     args_info->frame_arg = 1 ;\
99     args_info->ndistebins_arg = 50 ;\
100     args_info->nanglebins_arg = 50 ;\
101     args_info->sele1_arg = NULL; \
102     args_info->sele2_arg = NULL; \
103     }
104    
105     clear_args();
106    
107     optarg = 0;
108     optind = 1;
109     opterr = 1;
110     optopt = '?';
111    
112     while (1)
113     {
114     int option_index = 0;
115     char *stop_char;
116    
117     static struct option long_options[] = {
118     { "help", 0, NULL, 'h' },
119     { "version", 0, NULL, 'V' },
120     { "input", 1, NULL, 'i' },
121     { "output", 1, NULL, 'o' },
122     { "frame", 1, NULL, 'n' },
123     { "ndistebins", 1, NULL, 'd' },
124     { "nanglebins", 1, NULL, 'a' },
125     { "length", 1, NULL, 'l' },
126     { "sele1", 1, NULL, 0 },
127     { "sele2", 1, NULL, 0 },
128     { "gofr", 0, NULL, 0 },
129     { "r_theta", 0, NULL, 0 },
130     { "r_omega", 0, NULL, 0 },
131     { "theta_omega", 0, NULL, 0 },
132     { "xyz", 0, NULL, 0 },
133     { NULL, 0, NULL, 0 }
134     };
135    
136     stop_char = 0;
137     c = getopt_long (argc, argv, "hVi:o:n:d:a:l:", long_options, &option_index);
138    
139     if (c == -1) break; /* Exit from `while (1)' loop. */
140    
141     switch (c)
142     {
143     case 'h': /* Print help and exit. */
144     clear_args ();
145     cmdline_parser_print_help ();
146     exit (EXIT_SUCCESS);
147    
148     case 'V': /* Print version and exit. */
149     clear_args ();
150     cmdline_parser_print_version ();
151     exit (EXIT_SUCCESS);
152    
153     case 'i': /* input dump file. */
154     if (args_info->input_given)
155     {
156     fprintf (stderr, "%s: `--input' (`-i') option given more than once\n", CMDLINE_PARSER_PACKAGE);
157     clear_args ();
158     exit (EXIT_FAILURE);
159     }
160     args_info->input_given = 1;
161     args_info->input_arg = gengetopt_strdup (optarg);
162     break;
163    
164     case 'o': /* output file name. */
165     if (args_info->output_given)
166     {
167     fprintf (stderr, "%s: `--output' (`-o') option given more than once\n", CMDLINE_PARSER_PACKAGE);
168     clear_args ();
169     exit (EXIT_FAILURE);
170     }
171     args_info->output_given = 1;
172     args_info->output_arg = gengetopt_strdup (optarg);
173     break;
174    
175     case 'n': /* print every n frame. */
176     if (args_info->frame_given)
177     {
178     fprintf (stderr, "%s: `--frame' (`-n') option given more than once\n", CMDLINE_PARSER_PACKAGE);
179     clear_args ();
180     exit (EXIT_FAILURE);
181     }
182     args_info->frame_given = 1;
183     args_info->frame_arg = strtol (optarg,&stop_char,0);
184     break;
185    
186     case 'd': /* number of bins for distance. */
187     if (args_info->ndistebins_given)
188     {
189     fprintf (stderr, "%s: `--ndistebins' (`-d') option given more than once\n", CMDLINE_PARSER_PACKAGE);
190     clear_args ();
191     exit (EXIT_FAILURE);
192     }
193     args_info->ndistebins_given = 1;
194     args_info->ndistebins_arg = strtol (optarg,&stop_char,0);
195     break;
196    
197     case 'a': /* number of bins for cos(angle). */
198     if (args_info->nanglebins_given)
199     {
200     fprintf (stderr, "%s: `--nanglebins' (`-a') option given more than once\n", CMDLINE_PARSER_PACKAGE);
201     clear_args ();
202     exit (EXIT_FAILURE);
203     }
204     args_info->nanglebins_given = 1;
205     args_info->nanglebins_arg = strtol (optarg,&stop_char,0);
206     break;
207    
208     case 'l': /* maximum length. */
209     if (args_info->length_given)
210     {
211     fprintf (stderr, "%s: `--length' (`-l') option given more than once\n", CMDLINE_PARSER_PACKAGE);
212     clear_args ();
213     exit (EXIT_FAILURE);
214     }
215     args_info->length_given = 1;
216     args_info->length_arg = strtod (optarg, NULL);
217     break;
218    
219    
220     case 0: /* Long option with no short option */
221     /* select first stuntdouble set. */
222     if (strcmp (long_options[option_index].name, "sele1") == 0)
223     {
224     if (args_info->sele1_given)
225     {
226     fprintf (stderr, "%s: `--sele1' option given more than once\n", CMDLINE_PARSER_PACKAGE);
227     clear_args ();
228     exit (EXIT_FAILURE);
229     }
230     args_info->sele1_given = 1;
231     args_info->sele1_arg = gengetopt_strdup (optarg);
232     break;
233     }
234    
235     /* select second stuntdouble set. */
236     else if (strcmp (long_options[option_index].name, "sele2") == 0)
237     {
238     if (args_info->sele2_given)
239     {
240     fprintf (stderr, "%s: `--sele2' option given more than once\n", CMDLINE_PARSER_PACKAGE);
241     clear_args ();
242     exit (EXIT_FAILURE);
243     }
244     args_info->sele2_given = 1;
245     args_info->sele2_arg = gengetopt_strdup (optarg);
246     break;
247     }
248    
249     /* g(r). */
250     else if (strcmp (long_options[option_index].name, "gofr") == 0)
251     {
252     if (args_info->gofr_given)
253     {
254     fprintf (stderr, "%s: `--gofr' option given more than once\n", CMDLINE_PARSER_PACKAGE);
255     clear_args ();
256     exit (EXIT_FAILURE);
257     }
258     args_info->gofr_given = 1; staticProps_group_counter += 1;
259    
260     break;
261     }
262    
263     /* g(r, cos(theta)). */
264     else if (strcmp (long_options[option_index].name, "r_theta") == 0)
265     {
266     if (args_info->r_theta_given)
267     {
268     fprintf (stderr, "%s: `--r_theta' option given more than once\n", CMDLINE_PARSER_PACKAGE);
269     clear_args ();
270     exit (EXIT_FAILURE);
271     }
272     args_info->r_theta_given = 1; staticProps_group_counter += 1;
273    
274     break;
275     }
276    
277     /* g(r, cos(omega)). */
278     else if (strcmp (long_options[option_index].name, "r_omega") == 0)
279     {
280     if (args_info->r_omega_given)
281     {
282     fprintf (stderr, "%s: `--r_omega' option given more than once\n", CMDLINE_PARSER_PACKAGE);
283     clear_args ();
284     exit (EXIT_FAILURE);
285     }
286     args_info->r_omega_given = 1; staticProps_group_counter += 1;
287    
288     break;
289     }
290    
291     /* g(cos(theta), cos(omega)). */
292     else if (strcmp (long_options[option_index].name, "theta_omega") == 0)
293     {
294     if (args_info->theta_omega_given)
295     {
296     fprintf (stderr, "%s: `--theta_omega' option given more than once\n", CMDLINE_PARSER_PACKAGE);
297     clear_args ();
298     exit (EXIT_FAILURE);
299     }
300     args_info->theta_omega_given = 1; staticProps_group_counter += 1;
301    
302     break;
303     }
304    
305     /* g(x, y, z). */
306     else if (strcmp (long_options[option_index].name, "xyz") == 0)
307     {
308     if (args_info->xyz_given)
309     {
310     fprintf (stderr, "%s: `--xyz' option given more than once\n", CMDLINE_PARSER_PACKAGE);
311     clear_args ();
312     exit (EXIT_FAILURE);
313     }
314     args_info->xyz_given = 1; staticProps_group_counter += 1;
315    
316     break;
317     }
318    
319    
320     case '?': /* Invalid option. */
321     /* `getopt_long' already printed an error message. */
322     exit (EXIT_FAILURE);
323    
324     default: /* bug: option not considered. */
325     fprintf (stderr, "%s: option unknown: %c\n", CMDLINE_PARSER_PACKAGE, c);
326     abort ();
327     } /* switch */
328     } /* while */
329    
330     if ( staticProps_group_counter != 1)
331     {
332     fprintf (stderr, "%s: %d options of group staticProps were given. One is required\n", CMDLINE_PARSER_PACKAGE, staticProps_group_counter);
333     missing_required_options = 1;
334     }
335    
336    
337     if (! args_info->input_given)
338     {
339     fprintf (stderr, "%s: '--input' ('-i') option required\n", CMDLINE_PARSER_PACKAGE);
340     missing_required_options = 1;
341     }
342     if (! args_info->length_given)
343     {
344     fprintf (stderr, "%s: '--length' ('-l') option required\n", CMDLINE_PARSER_PACKAGE);
345     missing_required_options = 1;
346     }
347     if ( missing_required_options )
348     exit (EXIT_FAILURE);
349    
350     return 0;
351     }