ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/trunk/SHAPES/visualizerCmd.c
Revision: 1300
Committed: Thu Jun 24 19:06:47 2004 UTC (20 years ago) by gezelter
Content type: text/plain
File size: 7340 byte(s)
Log Message:
Fixes for visualizer for amira

File Contents

# Content
1 /*
2 File autogenerated by gengetopt version 2.12.1
3 generated with the following command:
4 gengetopt --file-name=visualizerCmd
5
6 The developers of gengetopt consider the fixed text that goes in all
7 gengetopt output files to be in the public domain:
8 we make no copyright claims on it.
9 */
10
11 /* If we use autoconf. */
12 #ifdef HAVE_CONFIG_H
13 #include "config.h"
14 #endif
15
16 #include <stdio.h>
17 #include <stdlib.h>
18 #include <string.h>
19
20 #include "getopt.h"
21
22 #include "visualizerCmd.h"
23
24 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 char *
33 gengetopt_strdup (const char *s);
34
35 static
36 void clear_given (struct gengetopt_args_info *args_info)
37 {
38 args_info->help_given = 0 ;
39 args_info->version_given = 0 ;
40 args_info->shape_given = 0 ;
41 args_info->output_given = 0 ;
42 args_info->grid_given = 0 ;
43 }
44
45 static
46 void clear_args (struct gengetopt_args_info *args_info)
47 {
48 args_info->shape_arg = NULL;
49 args_info->output_arg = NULL;
50 args_info->grid_arg = 101 ;
51 }
52
53 void
54 cmdline_parser_print_version (void)
55 {
56 printf ("%s %s\n", CMDLINE_PARSER_PACKAGE, CMDLINE_PARSER_VERSION);
57 }
58
59 void
60 cmdline_parser_print_help (void)
61 {
62 cmdline_parser_print_version ();
63 printf("\n"
64 "Usage: %s [OPTIONS]...\n", CMDLINE_PARSER_PACKAGE);
65 printf("\n");
66 printf("%s\n"," -h, --help Print help and exit");
67 printf("%s\n"," -V, --version Print version and exit");
68 printf("%s\n"," -s, --shape=filename shape file name");
69 printf("%s\n"," -o, --output=filename output file name");
70 printf("%s\n"," -g, --grid=INT number of grid points in each coordinate (default=\n `101')");
71 }
72
73 void
74 cmdline_parser_init (struct gengetopt_args_info *args_info)
75 {
76 clear_given (args_info);
77 clear_args (args_info);
78 }
79
80 void
81 cmdline_parser_free (struct gengetopt_args_info *args_info)
82 {
83
84 if (args_info->shape_arg)
85 {
86 free (args_info->shape_arg); /* free previous argument */
87 args_info->shape_arg = 0;
88 }
89 if (args_info->output_arg)
90 {
91 free (args_info->output_arg); /* free previous argument */
92 args_info->output_arg = 0;
93 }
94
95 clear_given (args_info);
96 }
97
98
99 /* gengetopt_strdup() */
100 /* strdup.c replacement of strdup, which is not standard */
101 char *
102 gengetopt_strdup (const char *s)
103 {
104 char *result = NULL;
105 if (!s)
106 return result;
107
108 result = (char*)malloc(strlen(s) + 1);
109 if (result == (char*)0)
110 return (char*)0;
111 strcpy(result, s);
112 return result;
113 }
114
115 int
116 cmdline_parser (int argc, char * const *argv, struct gengetopt_args_info *args_info)
117 {
118 return cmdline_parser2 (argc, argv, args_info, 0, 1, 1);
119 }
120
121 int
122 cmdline_parser2 (int argc, char * const *argv, struct gengetopt_args_info *args_info, int override, int initialize, int check_required)
123 {
124 int result;
125
126 result = cmdline_parser_internal (argc, argv, args_info, override, initialize, check_required, NULL);
127
128 if (result == EXIT_FAILURE)
129 {
130 cmdline_parser_free (args_info);
131 exit (EXIT_FAILURE);
132 }
133
134 return result;
135 }
136
137 int
138 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)
139 {
140 int c; /* Character of the parsed option. */
141 int error = 0;
142 struct gengetopt_args_info local_args_info;
143
144 if (initialize)
145 cmdline_parser_init (args_info);
146
147 cmdline_parser_init (&local_args_info);
148
149 optarg = 0;
150 optind = 1;
151 opterr = 1;
152 optopt = '?';
153
154 while (1)
155 {
156 int option_index = 0;
157 char *stop_char;
158
159 static struct option long_options[] = {
160 { "help", 0, NULL, 'h' },
161 { "version", 0, NULL, 'V' },
162 { "shape", 1, NULL, 's' },
163 { "output", 1, NULL, 'o' },
164 { "grid", 1, NULL, 'g' },
165 { NULL, 0, NULL, 0 }
166 };
167
168 stop_char = 0;
169 c = getopt_long (argc, argv, "hVs:o:g:", long_options, &option_index);
170
171 if (c == -1) break; /* Exit from `while (1)' loop. */
172
173 switch (c)
174 {
175 case 'h': /* Print help and exit. */
176 cmdline_parser_print_help ();
177 exit (EXIT_SUCCESS);
178
179 case 'V': /* Print version and exit. */
180 cmdline_parser_print_version ();
181 exit (EXIT_SUCCESS);
182
183 case 's': /* shape file name. */
184 if (local_args_info.shape_given)
185 {
186 fprintf (stderr, "%s: `--shape' (`-s') option given more than once%s\n", CMDLINE_PARSER_PACKAGE, (additional_error ? additional_error : ""));
187 goto failure;
188 }
189 if (args_info->shape_given && ! override)
190 continue;
191 local_args_info.shape_given = 1;
192 args_info->shape_given = 1;
193 if (args_info->shape_arg)
194 free (args_info->shape_arg); /* free previous string */
195 args_info->shape_arg = gengetopt_strdup (optarg);
196 break;
197
198 case 'o': /* output file name. */
199 if (local_args_info.output_given)
200 {
201 fprintf (stderr, "%s: `--output' (`-o') option given more than once%s\n", CMDLINE_PARSER_PACKAGE, (additional_error ? additional_error : ""));
202 goto failure;
203 }
204 if (args_info->output_given && ! override)
205 continue;
206 local_args_info.output_given = 1;
207 args_info->output_given = 1;
208 if (args_info->output_arg)
209 free (args_info->output_arg); /* free previous string */
210 args_info->output_arg = gengetopt_strdup (optarg);
211 break;
212
213 case 'g': /* number of grid points in each coordinate. */
214 if (local_args_info.grid_given)
215 {
216 fprintf (stderr, "%s: `--grid' (`-g') option given more than once%s\n", CMDLINE_PARSER_PACKAGE, (additional_error ? additional_error : ""));
217 goto failure;
218 }
219 if (args_info->grid_given && ! override)
220 continue;
221 local_args_info.grid_given = 1;
222 args_info->grid_given = 1;
223 args_info->grid_arg = strtol (optarg,&stop_char,0);
224 break;
225
226
227 case 0: /* Long option with no short option */
228
229 case '?': /* Invalid option. */
230 /* `getopt_long' already printed an error message. */
231 goto failure;
232
233 default: /* bug: option not considered. */
234 fprintf (stderr, "%s: option unknown: %c%s\n", CMDLINE_PARSER_PACKAGE, c, (additional_error ? additional_error : ""));
235 abort ();
236 } /* switch */
237 } /* while */
238
239
240
241 if (check_required)
242 {
243 if (! args_info->shape_given)
244 {
245 fprintf (stderr, "%s: '--shape' ('-s') option required%s\n", CMDLINE_PARSER_PACKAGE, (additional_error ? additional_error : ""));
246 error = 1;
247 }
248 if (! args_info->output_given)
249 {
250 fprintf (stderr, "%s: '--output' ('-o') option required%s\n", CMDLINE_PARSER_PACKAGE, (additional_error ? additional_error : ""));
251 error = 1;
252 }
253 }
254
255 if ( error )
256 return (EXIT_FAILURE);
257
258 return 0;
259
260 failure:
261 cmdline_parser_free (&local_args_info);
262 return (EXIT_FAILURE);
263 }