Main Page | Class Hierarchy | Data Structures | File List | Data Fields | Globals

ofxconnect/cmdline.c

00001 /*
00002   File autogenerated by gengetopt version 2.13
00003   generated with the following command:
00004   gengetopt --unamed-opts 
00005 
00006   The developers of gengetopt consider the fixed text that goes in all
00007   gengetopt output files to be in the public domain:
00008   we make no copyright claims on it.
00009 */
00010 
00011 /* If we use autoconf.  */
00012 #ifdef HAVE_CONFIG_H
00013 #include "config.h"
00014 #endif
00015 
00016 #include <stdio.h>
00017 #include <stdlib.h>
00018 #include <string.h>
00019 
00020 #include "getopt.h"
00021 
00022 #include "cmdline.h"
00023 
00024 static
00025 void clear_given (struct gengetopt_args_info *args_info);
00026 static
00027 void clear_args (struct gengetopt_args_info *args_info);
00028 
00029 static int
00030 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);
00031 
00032 
00033 static char *
00034 gengetopt_strdup (const char *s);
00035 
00036 static
00037 void clear_given (struct gengetopt_args_info *args_info)
00038 {
00039   args_info->help_given = 0 ;
00040   args_info->version_given = 0 ;
00041   args_info->statement_req_given = 0 ;
00042   args_info->accountinfo_req_given = 0 ;
00043   args_info->fid_given = 0 ;
00044   args_info->org_given = 0 ;
00045   args_info->bank_given = 0 ;
00046   args_info->broker_given = 0 ;
00047   args_info->user_given = 0 ;
00048   args_info->pass_given = 0 ;
00049   args_info->acct_given = 0 ;
00050   args_info->type_given = 0 ;
00051   args_info->past_given = 0 ;
00052   args_info->url_given = 0 ;
00053 }
00054 
00055 static
00056 void clear_args (struct gengetopt_args_info *args_info)
00057 {
00058   args_info->statement_req_flag = 0;
00059   args_info->accountinfo_req_flag = 0;
00060   args_info->fid_arg = NULL;
00061   args_info->org_arg = NULL;
00062   args_info->bank_arg = NULL;
00063   args_info->broker_arg = NULL;
00064   args_info->user_arg = NULL;
00065   args_info->pass_arg = NULL;
00066   args_info->acct_arg = NULL;
00067   args_info->url_arg = NULL;
00068 }
00069 
00070 void
00071 cmdline_parser_print_version (void)
00072 {
00073   printf ("%s %s\n", CMDLINE_PARSER_PACKAGE, CMDLINE_PARSER_VERSION);
00074 }
00075 
00076 void
00077 cmdline_parser_print_help (void)
00078 {
00079   cmdline_parser_print_version ();
00080   printf("\n%s\n", "prints to stdout the created OFX file based on the options you pass it. \ncurrently it will only create a statement request file.  you can POST this to \nan OFX server to request a statement from that financial institution for that \naccount.");
00081   printf("\nUsage: %s [OPTIONS]... [FILES]...\n\n", CMDLINE_PARSER_PACKAGE);
00082   printf("%s\n","  -h, --help             Print help and exit");
00083   printf("%s\n","  -V, --version          Print version and exit");
00084   printf("%s\n","  -s, --statement-req    Request for a statement  (default=off)");
00085   printf("%s\n","  -a, --accountinfo-req  Request for a list of accounts  (default=off)");
00086   printf("%s\n","      --fid=STRING       FI identifier");
00087   printf("%s\n","      --org=STRING       FI org tag");
00088   printf("%s\n","      --bank=STRING      IBAN bank identifier");
00089   printf("%s\n","      --broker=STRING    Broker identifier");
00090   printf("%s\n","      --user=STRING      User name");
00091   printf("%s\n","      --pass=STRING      Password");
00092   printf("%s\n","      --acct=STRING      Account ID");
00093   printf("%s\n","      --type=INT         Account Type 1=checking 2=invest 3=ccard");
00094   printf("%s\n","      --past=LONG        How far back to look from today (in days)");
00095   printf("%s\n","      --url=STRING       Url to POST the data to (otherwise goes to stdout)");
00096   
00097 }
00098 
00099 void
00100 cmdline_parser_init (struct gengetopt_args_info *args_info)
00101 {
00102   clear_given (args_info);
00103   clear_args (args_info);
00104 
00105   args_info->inputs = NULL;
00106   args_info->inputs_num = 0;
00107 }
00108 
00109 void
00110 cmdline_parser_free (struct gengetopt_args_info *args_info)
00111 {
00112   
00113   unsigned int i;
00114   if (args_info->fid_arg)
00115     {
00116       free (args_info->fid_arg); /* free previous argument */
00117       args_info->fid_arg = 0;
00118     }
00119   if (args_info->org_arg)
00120     {
00121       free (args_info->org_arg); /* free previous argument */
00122       args_info->org_arg = 0;
00123     }
00124   if (args_info->bank_arg)
00125     {
00126       free (args_info->bank_arg); /* free previous argument */
00127       args_info->bank_arg = 0;
00128     }
00129   if (args_info->broker_arg)
00130     {
00131       free (args_info->broker_arg); /* free previous argument */
00132       args_info->broker_arg = 0;
00133     }
00134   if (args_info->user_arg)
00135     {
00136       free (args_info->user_arg); /* free previous argument */
00137       args_info->user_arg = 0;
00138     }
00139   if (args_info->pass_arg)
00140     {
00141       free (args_info->pass_arg); /* free previous argument */
00142       args_info->pass_arg = 0;
00143     }
00144   if (args_info->acct_arg)
00145     {
00146       free (args_info->acct_arg); /* free previous argument */
00147       args_info->acct_arg = 0;
00148     }
00149   if (args_info->url_arg)
00150     {
00151       free (args_info->url_arg); /* free previous argument */
00152       args_info->url_arg = 0;
00153     }
00154   
00155   for (i = 0; i < args_info->inputs_num; ++i)
00156     free (args_info->inputs [i]);
00157   
00158   if (args_info->inputs_num)
00159     free (args_info->inputs);
00160   
00161   clear_given (args_info);
00162 }
00163 
00164 /* gengetopt_strdup() */
00165 /* strdup.c replacement of strdup, which is not standard */
00166 char *
00167 gengetopt_strdup (const char *s)
00168 {
00169   char *result = NULL;
00170   if (!s)
00171     return result;
00172 
00173   result = (char*)malloc(strlen(s) + 1);
00174   if (result == (char*)0)
00175     return (char*)0;
00176   strcpy(result, s);
00177   return result;
00178 }
00179 
00180 int
00181 cmdline_parser (int argc, char * const *argv, struct gengetopt_args_info *args_info)
00182 {
00183   return cmdline_parser2 (argc, argv, args_info, 0, 1, 1);
00184 }
00185 
00186 int
00187 cmdline_parser2 (int argc, char * const *argv, struct gengetopt_args_info *args_info, int override, int initialize, int check_required)
00188 {
00189   int result;
00190 
00191   result = cmdline_parser_internal (argc, argv, args_info, override, initialize, check_required, NULL);
00192 
00193   if (result == EXIT_FAILURE)
00194     {
00195       cmdline_parser_free (args_info);
00196       exit (EXIT_FAILURE);
00197     }
00198   
00199   return result;
00200 }
00201 
00202 int
00203 cmdline_parser_required (struct gengetopt_args_info *args_info, const char *prog_name)
00204 {
00205   return EXIT_SUCCESS;
00206 }
00207 
00208 int
00209 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)
00210 {
00211   int c;        /* Character of the parsed option.  */
00212 
00213   int error = 0;
00214   struct gengetopt_args_info local_args_info;
00215 
00216   if (initialize)
00217     cmdline_parser_init (args_info);
00218 
00219   cmdline_parser_init (&local_args_info);
00220 
00221   optarg = 0;
00222   optind = 1;
00223   opterr = 1;
00224   optopt = '?';
00225 
00226   while (1)
00227     {
00228       int option_index = 0;
00229       char *stop_char;
00230 
00231       static struct option long_options[] = {
00232         { "help",       0, NULL, 'h' },
00233         { "version",    0, NULL, 'V' },
00234         { "statement-req",      0, NULL, 's' },
00235         { "accountinfo-req",    0, NULL, 'a' },
00236         { "fid",        1, NULL, 0 },
00237         { "org",        1, NULL, 0 },
00238         { "bank",       1, NULL, 0 },
00239         { "broker",     1, NULL, 0 },
00240         { "user",       1, NULL, 0 },
00241         { "pass",       1, NULL, 0 },
00242         { "acct",       1, NULL, 0 },
00243         { "type",       1, NULL, 0 },
00244         { "past",       1, NULL, 0 },
00245         { "url",        1, NULL, 0 },
00246         { NULL, 0, NULL, 0 }
00247       };
00248 
00249       stop_char = 0;
00250       c = getopt_long (argc, argv, "hVsa", long_options, &option_index);
00251 
00252       if (c == -1) break;       /* Exit from `while (1)' loop.  */
00253 
00254       switch (c)
00255         {
00256         case 'h':       /* Print help and exit.  */
00257           cmdline_parser_print_help ();
00258           exit (EXIT_SUCCESS);
00259 
00260         case 'V':       /* Print version and exit.  */
00261           cmdline_parser_print_version ();
00262           exit (EXIT_SUCCESS);
00263 
00264         case 's':       /* Request for a statement.  */
00265           if (local_args_info.statement_req_given)
00266             {
00267               fprintf (stderr, "%s: `--statement-req' (`-s') option given more than once%s\n", argv[0], (additional_error ? additional_error : ""));
00268               goto failure;
00269             }
00270           if (args_info->statement_req_given && ! override)
00271             continue;
00272           local_args_info.statement_req_given = 1;
00273           args_info->statement_req_given = 1;
00274           args_info->statement_req_flag = !(args_info->statement_req_flag);
00275           break;
00276 
00277         case 'a':       /* Request for a list of accounts.  */
00278           if (local_args_info.accountinfo_req_given)
00279             {
00280               fprintf (stderr, "%s: `--accountinfo-req' (`-a') option given more than once%s\n", argv[0], (additional_error ? additional_error : ""));
00281               goto failure;
00282             }
00283           if (args_info->accountinfo_req_given && ! override)
00284             continue;
00285           local_args_info.accountinfo_req_given = 1;
00286           args_info->accountinfo_req_given = 1;
00287           args_info->accountinfo_req_flag = !(args_info->accountinfo_req_flag);
00288           break;
00289 
00290 
00291         case 0: /* Long option with no short option */
00292           /* FI identifier.  */
00293           if (strcmp (long_options[option_index].name, "fid") == 0)
00294           {
00295             if (local_args_info.fid_given)
00296               {
00297                 fprintf (stderr, "%s: `--fid' option given more than once%s\n", argv[0], (additional_error ? additional_error : ""));
00298                 goto failure;
00299               }
00300             if (args_info->fid_given && ! override)
00301               continue;
00302             local_args_info.fid_given = 1;
00303             args_info->fid_given = 1;
00304             if (args_info->fid_arg)
00305               free (args_info->fid_arg); /* free previous string */
00306             args_info->fid_arg = gengetopt_strdup (optarg);
00307           }
00308           /* FI org tag.  */
00309           else if (strcmp (long_options[option_index].name, "org") == 0)
00310           {
00311             if (local_args_info.org_given)
00312               {
00313                 fprintf (stderr, "%s: `--org' option given more than once%s\n", argv[0], (additional_error ? additional_error : ""));
00314                 goto failure;
00315               }
00316             if (args_info->org_given && ! override)
00317               continue;
00318             local_args_info.org_given = 1;
00319             args_info->org_given = 1;
00320             if (args_info->org_arg)
00321               free (args_info->org_arg); /* free previous string */
00322             args_info->org_arg = gengetopt_strdup (optarg);
00323           }
00324           /* IBAN bank identifier.  */
00325           else if (strcmp (long_options[option_index].name, "bank") == 0)
00326           {
00327             if (local_args_info.bank_given)
00328               {
00329                 fprintf (stderr, "%s: `--bank' option given more than once%s\n", argv[0], (additional_error ? additional_error : ""));
00330                 goto failure;
00331               }
00332             if (args_info->bank_given && ! override)
00333               continue;
00334             local_args_info.bank_given = 1;
00335             args_info->bank_given = 1;
00336             if (args_info->bank_arg)
00337               free (args_info->bank_arg); /* free previous string */
00338             args_info->bank_arg = gengetopt_strdup (optarg);
00339           }
00340           /* Broker identifier.  */
00341           else if (strcmp (long_options[option_index].name, "broker") == 0)
00342           {
00343             if (local_args_info.broker_given)
00344               {
00345                 fprintf (stderr, "%s: `--broker' option given more than once%s\n", argv[0], (additional_error ? additional_error : ""));
00346                 goto failure;
00347               }
00348             if (args_info->broker_given && ! override)
00349               continue;
00350             local_args_info.broker_given = 1;
00351             args_info->broker_given = 1;
00352             if (args_info->broker_arg)
00353               free (args_info->broker_arg); /* free previous string */
00354             args_info->broker_arg = gengetopt_strdup (optarg);
00355           }
00356           /* User name.  */
00357           else if (strcmp (long_options[option_index].name, "user") == 0)
00358           {
00359             if (local_args_info.user_given)
00360               {
00361                 fprintf (stderr, "%s: `--user' option given more than once%s\n", argv[0], (additional_error ? additional_error : ""));
00362                 goto failure;
00363               }
00364             if (args_info->user_given && ! override)
00365               continue;
00366             local_args_info.user_given = 1;
00367             args_info->user_given = 1;
00368             if (args_info->user_arg)
00369               free (args_info->user_arg); /* free previous string */
00370             args_info->user_arg = gengetopt_strdup (optarg);
00371           }
00372           /* Password.  */
00373           else if (strcmp (long_options[option_index].name, "pass") == 0)
00374           {
00375             if (local_args_info.pass_given)
00376               {
00377                 fprintf (stderr, "%s: `--pass' option given more than once%s\n", argv[0], (additional_error ? additional_error : ""));
00378                 goto failure;
00379               }
00380             if (args_info->pass_given && ! override)
00381               continue;
00382             local_args_info.pass_given = 1;
00383             args_info->pass_given = 1;
00384             if (args_info->pass_arg)
00385               free (args_info->pass_arg); /* free previous string */
00386             args_info->pass_arg = gengetopt_strdup (optarg);
00387           }
00388           /* Account ID.  */
00389           else if (strcmp (long_options[option_index].name, "acct") == 0)
00390           {
00391             if (local_args_info.acct_given)
00392               {
00393                 fprintf (stderr, "%s: `--acct' option given more than once%s\n", argv[0], (additional_error ? additional_error : ""));
00394                 goto failure;
00395               }
00396             if (args_info->acct_given && ! override)
00397               continue;
00398             local_args_info.acct_given = 1;
00399             args_info->acct_given = 1;
00400             if (args_info->acct_arg)
00401               free (args_info->acct_arg); /* free previous string */
00402             args_info->acct_arg = gengetopt_strdup (optarg);
00403           }
00404           /* Account Type 1=checking 2=invest 3=ccard.  */
00405           else if (strcmp (long_options[option_index].name, "type") == 0)
00406           {
00407             if (local_args_info.type_given)
00408               {
00409                 fprintf (stderr, "%s: `--type' option given more than once%s\n", argv[0], (additional_error ? additional_error : ""));
00410                 goto failure;
00411               }
00412             if (args_info->type_given && ! override)
00413               continue;
00414             local_args_info.type_given = 1;
00415             args_info->type_given = 1;
00416             args_info->type_arg = strtol (optarg,&stop_char,0);
00417           }
00418           /* How far back to look from today (in days).  */
00419           else if (strcmp (long_options[option_index].name, "past") == 0)
00420           {
00421             if (local_args_info.past_given)
00422               {
00423                 fprintf (stderr, "%s: `--past' option given more than once%s\n", argv[0], (additional_error ? additional_error : ""));
00424                 goto failure;
00425               }
00426             if (args_info->past_given && ! override)
00427               continue;
00428             local_args_info.past_given = 1;
00429             args_info->past_given = 1;
00430             args_info->past_arg = strtol (optarg,&stop_char,0);
00431           }
00432           /* Url to POST the data to (otherwise goes to stdout).  */
00433           else if (strcmp (long_options[option_index].name, "url") == 0)
00434           {
00435             if (local_args_info.url_given)
00436               {
00437                 fprintf (stderr, "%s: `--url' option given more than once%s\n", argv[0], (additional_error ? additional_error : ""));
00438                 goto failure;
00439               }
00440             if (args_info->url_given && ! override)
00441               continue;
00442             local_args_info.url_given = 1;
00443             args_info->url_given = 1;
00444             if (args_info->url_arg)
00445               free (args_info->url_arg); /* free previous string */
00446             args_info->url_arg = gengetopt_strdup (optarg);
00447           }
00448           
00449           break;
00450         case '?':       /* Invalid option.  */
00451           /* `getopt_long' already printed an error message.  */
00452           goto failure;
00453 
00454         default:        /* bug: option not considered.  */
00455           fprintf (stderr, "%s: option unknown: %c%s\n", CMDLINE_PARSER_PACKAGE, c, (additional_error ? additional_error : ""));
00456           abort ();
00457         } /* switch */
00458     } /* while */
00459 
00460 
00461 
00462 
00463   cmdline_parser_free (&local_args_info);
00464 
00465   if ( error )
00466     return (EXIT_FAILURE);
00467 
00468   if (optind < argc)
00469     {
00470       int i = 0 ;
00471 
00472       args_info->inputs_num = argc - optind ;
00473       args_info->inputs =
00474         (char **)(malloc ((args_info->inputs_num)*sizeof(char *))) ;
00475       while (optind < argc)
00476         args_info->inputs[ i++ ] = gengetopt_strdup (argv[optind++]) ;
00477     }
00478 
00479   return 0;
00480 
00481 failure:
00482   
00483   cmdline_parser_free (&local_args_info);
00484   return (EXIT_FAILURE);
00485 }

Generated on Sun Jul 31 15:38:34 2005 for LibOFX by  doxygen 1.3.9.1