21 #define FIX_UNUSED(X) (void) (X)     28 const char *gengetopt_args_info_purpose = 
"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.";
    30 const char *gengetopt_args_info_usage = 
"Usage: " CMDLINE_PARSER_PACKAGE 
" [OPTIONS]... [FILES]...";
    32 const char *gengetopt_args_info_versiontext = 
"";
    34 const char *gengetopt_args_info_description = 
"";
    36 const char *gengetopt_args_info_help[] = {
    37   "  -h, --help                Print help and exit",
    38   "  -V, --version             Print version and exit",
    39   "      --fipid=STRING        FI partner identifier (looks up fid, org & url from\n                              partner server)",
    40   "      --fid=STRING          FI identifier",
    41   "      --org=STRING          FI org tag",
    42   "      --bank=STRING         IBAN bank identifier",
    43   "      --broker=STRING       Broker identifier",
    44   "      --user=STRING         User name",
    45   "      --pass=STRING         Password",
    46   "      --acct=STRING         Account ID",
    47   "      --type=INT            Account Type 1=checking 2=invest 3=ccard",
    48   "      --past=LONG           How far back to look from today (in days)",
    49   "      --url=STRING          Url to POST the data to (otherwise goes to stdout)",
    50   "      --trid=INT            Transaction id",
    52   "  -s, --statement-req       Request for a statement",
    53   "  -a, --accountinfo-req     Request for a list of accounts",
    54   "  -p, --payment-req         Request to make a payment",
    55   "  -i, --paymentinquiry-req  Request to inquire about the status of a payment",
    56   "  -b, --bank-list           List all known banks",
    57   "  -f, --bank-fipid          List all fipids for a given bank",
    58   "  -v, --bank-services       List supported services for a given fipid",
    59   "      --allsupport          List all banks which support online banking",
    67 } cmdline_parser_arg_type;
    80 gengetopt_strdup (
const char *s);
   113   FIX_UNUSED (args_info);
   143   args_info->
help_help = gengetopt_args_info_help[0] ;
   145   args_info->
fipid_help = gengetopt_args_info_help[2] ;
   146   args_info->
fid_help = gengetopt_args_info_help[3] ;
   147   args_info->
org_help = gengetopt_args_info_help[4] ;
   148   args_info->
bank_help = gengetopt_args_info_help[5] ;
   149   args_info->
broker_help = gengetopt_args_info_help[6] ;
   150   args_info->
user_help = gengetopt_args_info_help[7] ;
   151   args_info->
pass_help = gengetopt_args_info_help[8] ;
   152   args_info->
acct_help = gengetopt_args_info_help[9] ;
   153   args_info->
type_help = gengetopt_args_info_help[10] ;
   154   args_info->
past_help = gengetopt_args_info_help[11] ;
   155   args_info->
url_help = gengetopt_args_info_help[12] ;
   156   args_info->
trid_help = gengetopt_args_info_help[13] ;
   169 cmdline_parser_print_version (
void)
   172      (strlen(CMDLINE_PARSER_PACKAGE_NAME) ? CMDLINE_PARSER_PACKAGE_NAME : CMDLINE_PARSER_PACKAGE),
   173      CMDLINE_PARSER_VERSION);
   175   if (strlen(gengetopt_args_info_versiontext) > 0)
   176     printf(
"\n%s\n", gengetopt_args_info_versiontext);
   179 static void print_help_common(
void) {
   180   cmdline_parser_print_version ();
   182   if (strlen(gengetopt_args_info_purpose) > 0)
   183     printf(
"\n%s\n", gengetopt_args_info_purpose);
   185   if (strlen(gengetopt_args_info_usage) > 0)
   186     printf(
"\n%s\n", gengetopt_args_info_usage);
   190   if (strlen(gengetopt_args_info_description) > 0)
   191     printf(
"%s\n\n", gengetopt_args_info_description);
   195 cmdline_parser_print_help (
void)
   199   while (gengetopt_args_info_help[i])
   200     printf(
"%s\n", gengetopt_args_info_help[i++]);
   206   clear_given (args_info);
   207   clear_args (args_info);
   208   init_args_info (args_info);
   228 cmdline_parser_params_create(
void)
   232   cmdline_parser_params_init(params);  
   237 free_string_field (
char **s)
   251   free_string_field (&(args_info->
fipid_arg));
   253   free_string_field (&(args_info->
fid_arg));
   254   free_string_field (&(args_info->
fid_orig));
   255   free_string_field (&(args_info->
org_arg));
   256   free_string_field (&(args_info->
org_orig));
   257   free_string_field (&(args_info->
bank_arg));
   258   free_string_field (&(args_info->
bank_orig));
   261   free_string_field (&(args_info->
user_arg));
   262   free_string_field (&(args_info->
user_orig));
   263   free_string_field (&(args_info->
pass_arg));
   264   free_string_field (&(args_info->
pass_orig));
   265   free_string_field (&(args_info->
acct_arg));
   266   free_string_field (&(args_info->
acct_orig));
   267   free_string_field (&(args_info->
type_orig));
   268   free_string_field (&(args_info->
past_orig));
   269   free_string_field (&(args_info->
url_arg));
   270   free_string_field (&(args_info->
url_orig));
   271   free_string_field (&(args_info->
trid_orig));
   275     free (args_info->
inputs [i]);
   280   clear_given (args_info);
   285 write_into_file(FILE *outfile, 
const char *opt, 
const char *arg, 
const char *values[])
   289     fprintf(outfile, 
"%s=\"%s\"\n", opt, arg);
   291     fprintf(outfile, 
"%s\n", opt);
   303       fprintf (stderr, 
"%s: cannot dump options to stream\n", CMDLINE_PARSER_PACKAGE);
   308     write_into_file(outfile, 
"help", 0, 0 );
   310     write_into_file(outfile, 
"version", 0, 0 );
   312     write_into_file(outfile, 
"fipid", args_info->
fipid_orig, 0);
   314     write_into_file(outfile, 
"fid", args_info->
fid_orig, 0);
   316     write_into_file(outfile, 
"org", args_info->
org_orig, 0);
   318     write_into_file(outfile, 
"bank", args_info->
bank_orig, 0);
   320     write_into_file(outfile, 
"broker", args_info->
broker_orig, 0);
   322     write_into_file(outfile, 
"user", args_info->
user_orig, 0);
   324     write_into_file(outfile, 
"pass", args_info->
pass_orig, 0);
   326     write_into_file(outfile, 
"acct", args_info->
acct_orig, 0);
   328     write_into_file(outfile, 
"type", args_info->
type_orig, 0);
   330     write_into_file(outfile, 
"past", args_info->
past_orig, 0);
   332     write_into_file(outfile, 
"url", args_info->
url_orig, 0);
   334     write_into_file(outfile, 
"trid", args_info->
trid_orig, 0);
   336     write_into_file(outfile, 
"statement-req", 0, 0 );
   338     write_into_file(outfile, 
"accountinfo-req", 0, 0 );
   340     write_into_file(outfile, 
"payment-req", 0, 0 );
   342     write_into_file(outfile, 
"paymentinquiry-req", 0, 0 );
   344     write_into_file(outfile, 
"bank-list", 0, 0 );
   346     write_into_file(outfile, 
"bank-fipid", 0, 0 );
   348     write_into_file(outfile, 
"bank-services", 0, 0 );
   350     write_into_file(outfile, 
"allsupport", 0, 0 );
   363   outfile = fopen(filename, 
"w");
   367       fprintf (stderr, 
"%s: cannot open file for writing: %s\n", CMDLINE_PARSER_PACKAGE, filename);
   371   i = cmdline_parser_dump(outfile, args_info);
   380   cmdline_parser_release (args_info);
   385 gengetopt_strdup (
const char *s)
   391   result = (
char*)malloc(strlen(s) + 1);
   392   if (result == (
char*)0)
   419   return cmdline_parser2 (argc, argv, args_info, 0, 1, 1);
   427   result = cmdline_parser_internal (argc, argv, args_info, params, 0);
   429   if (result == EXIT_FAILURE)
   431       cmdline_parser_free (args_info);
   450   result = cmdline_parser_internal (argc, argv, args_info, ¶ms, 0);
   452   if (result == EXIT_FAILURE)
   454       cmdline_parser_free (args_info);
   464   FIX_UNUSED (args_info);
   465   FIX_UNUSED (prog_name);
   470 static char *package_name = 0;
   491 int update_arg(
void *field, 
char **orig_field,
   492                unsigned int *field_given, 
unsigned int *prev_given, 
   493                char *value, 
const char *possible_values[],
   494                const char *default_value,
   495                cmdline_parser_arg_type arg_type,
   497                int no_free, 
int multiple_option,
   498                const char *long_opt, 
char short_opt,
   499                const char *additional_error)
   502   const char *val = value;
   510   if (!multiple_option && prev_given && (*prev_given || (check_ambiguity && *field_given)))
   512       if (short_opt != 
'-')
   513         fprintf (stderr, 
"%s: `--%s' (`-%c') option given more than once%s\n", 
   514                package_name, long_opt, short_opt,
   515                (additional_error ? additional_error : 
""));
   517         fprintf (stderr, 
"%s: `--%s' option given more than once%s\n", 
   518                package_name, long_opt,
   519                (additional_error ? additional_error : 
""));
   523   FIX_UNUSED (default_value);
   525   if (field_given && *field_given && ! 
override)
   532     val = possible_values[found];
   536     if (val) *((
int *)field) = strtol (val, &stop_char, 0);
   539     if (val) *((
long *)field) = (long)strtol (val, &stop_char, 0);
   543       string_field = (
char **)field;
   544       if (!no_free && *string_field)
   545         free (*string_field); 
   546       *string_field = gengetopt_strdup (val);
   557     if (val && !(stop_char && *stop_char == 
'\0')) {
   558       fprintf(stderr, 
"%s: invalid numeric value: %s\n", package_name, val);
   571     if (value && orig_field) {
   577         *orig_field = gengetopt_strdup (value);
   587 cmdline_parser_internal (
   593   int error_occurred = 0;
   601   package_name = argv[0];
   609     cmdline_parser_init (args_info);
   611   cmdline_parser_init (&local_args_info);
   620       int option_index = 0;
   622       static struct option long_options[] = {
   623         { 
"help",       0, NULL, 
'h' },
   624         { 
"version",    0, NULL, 
'V' },
   625         { 
"fipid",      1, NULL, 0 },
   626         { 
"fid",        1, NULL, 0 },
   627         { 
"org",        1, NULL, 0 },
   628         { 
"bank",       1, NULL, 0 },
   629         { 
"broker",     1, NULL, 0 },
   630         { 
"user",       1, NULL, 0 },
   631         { 
"pass",       1, NULL, 0 },
   632         { 
"acct",       1, NULL, 0 },
   633         { 
"type",       1, NULL, 0 },
   634         { 
"past",       1, NULL, 0 },
   635         { 
"url",        1, NULL, 0 },
   636         { 
"trid",       1, NULL, 0 },
   637         { 
"statement-req",      0, NULL, 
's' },
   638         { 
"accountinfo-req",    0, NULL, 
'a' },
   639         { 
"payment-req",        0, NULL, 
'p' },
   640         { 
"paymentinquiry-req", 0, NULL, 
'i' },
   641         { 
"bank-list",  0, NULL, 
'b' },
   642         { 
"bank-fipid", 0, NULL, 
'f' },
   643         { 
"bank-services",      0, NULL, 
'v' },
   644         { 
"allsupport", 0, NULL, 0 },
   648       c = getopt_long (argc, argv, 
"hVsapibfv", long_options, &option_index);
   655           cmdline_parser_print_help ();
   656           cmdline_parser_free (&local_args_info);
   660           cmdline_parser_print_version ();
   661           cmdline_parser_free (&local_args_info);
   667             reset_group_command (args_info);
   672               &(local_args_info.statement_req_given), optarg, 0, 0, ARG_NO,
   673               check_ambiguity, 
override, 0, 0,
   674               "statement-req", 
's',
   682             reset_group_command (args_info);
   687               &(local_args_info.accountinfo_req_given), optarg, 0, 0, ARG_NO,
   688               check_ambiguity, 
override, 0, 0,
   689               "accountinfo-req", 
'a',
   697             reset_group_command (args_info);
   702               &(local_args_info.payment_req_given), optarg, 0, 0, ARG_NO,
   703               check_ambiguity, 
override, 0, 0,
   712             reset_group_command (args_info);
   717               &(local_args_info.paymentinquiry_req_given), optarg, 0, 0, ARG_NO,
   718               check_ambiguity, 
override, 0, 0,
   719               "paymentinquiry-req", 
'i',
   727             reset_group_command (args_info);
   732               &(local_args_info.bank_list_given), optarg, 0, 0, ARG_NO,
   733               check_ambiguity, 
override, 0, 0,
   742             reset_group_command (args_info);
   747               &(local_args_info.bank_fipid_given), optarg, 0, 0, ARG_NO,
   748               check_ambiguity, 
override, 0, 0,
   757             reset_group_command (args_info);
   762               &(local_args_info.bank_services_given), optarg, 0, 0, ARG_NO,
   763               check_ambiguity, 
override, 0, 0,
   764               "bank-services", 
'v',
   772           if (strcmp (long_options[option_index].name, 
"fipid") == 0)
   776             if (update_arg( (
void *)&(args_info->
fipid_arg), 
   778                 &(local_args_info.fipid_given), optarg, 0, 0, ARG_STRING,
   779                 check_ambiguity, 
override, 0, 0,
   786           else if (strcmp (long_options[option_index].name, 
"fid") == 0)
   790             if (update_arg( (
void *)&(args_info->
fid_arg), 
   792                 &(local_args_info.fid_given), optarg, 0, 0, ARG_STRING,
   793                 check_ambiguity, 
override, 0, 0,
   800           else if (strcmp (long_options[option_index].name, 
"org") == 0)
   804             if (update_arg( (
void *)&(args_info->
org_arg), 
   806                 &(local_args_info.org_given), optarg, 0, 0, ARG_STRING,
   807                 check_ambiguity, 
override, 0, 0,
   814           else if (strcmp (long_options[option_index].name, 
"bank") == 0)
   818             if (update_arg( (
void *)&(args_info->
bank_arg), 
   820                 &(local_args_info.bank_given), optarg, 0, 0, ARG_STRING,
   821                 check_ambiguity, 
override, 0, 0,
   828           else if (strcmp (long_options[option_index].name, 
"broker") == 0)
   832             if (update_arg( (
void *)&(args_info->
broker_arg), 
   834                 &(local_args_info.broker_given), optarg, 0, 0, ARG_STRING,
   835                 check_ambiguity, 
override, 0, 0,
   842           else if (strcmp (long_options[option_index].name, 
"user") == 0)
   846             if (update_arg( (
void *)&(args_info->
user_arg), 
   848                 &(local_args_info.user_given), optarg, 0, 0, ARG_STRING,
   849                 check_ambiguity, 
override, 0, 0,
   856           else if (strcmp (long_options[option_index].name, 
"pass") == 0)
   860             if (update_arg( (
void *)&(args_info->
pass_arg), 
   862                 &(local_args_info.pass_given), optarg, 0, 0, ARG_STRING,
   863                 check_ambiguity, 
override, 0, 0,
   870           else if (strcmp (long_options[option_index].name, 
"acct") == 0)
   874             if (update_arg( (
void *)&(args_info->
acct_arg), 
   876                 &(local_args_info.acct_given), optarg, 0, 0, ARG_STRING,
   877                 check_ambiguity, 
override, 0, 0,
   884           else if (strcmp (long_options[option_index].name, 
"type") == 0)
   888             if (update_arg( (
void *)&(args_info->
type_arg), 
   890                 &(local_args_info.type_given), optarg, 0, 0, ARG_INT,
   891                 check_ambiguity, 
override, 0, 0,
   898           else if (strcmp (long_options[option_index].name, 
"past") == 0)
   902             if (update_arg( (
void *)&(args_info->
past_arg), 
   904                 &(local_args_info.past_given), optarg, 0, 0, ARG_LONG,
   905                 check_ambiguity, 
override, 0, 0,
   912           else if (strcmp (long_options[option_index].name, 
"url") == 0)
   916             if (update_arg( (
void *)&(args_info->
url_arg), 
   918                 &(local_args_info.url_given), optarg, 0, 0, ARG_STRING,
   919                 check_ambiguity, 
override, 0, 0,
   926           else if (strcmp (long_options[option_index].name, 
"trid") == 0)
   930             if (update_arg( (
void *)&(args_info->
trid_arg), 
   932                 &(local_args_info.trid_given), optarg, 0, 0, ARG_INT,
   933                 check_ambiguity, 
override, 0, 0,
   940           else if (strcmp (long_options[option_index].name, 
"allsupport") == 0)
   944               reset_group_command (args_info);
   949                 &(local_args_info.allsupport_given), optarg, 0, 0, ARG_NO,
   950                 check_ambiguity, 
override, 0, 0,
   963           fprintf (stderr, 
"%s: option unknown: %c%s\n", CMDLINE_PARSER_PACKAGE, c, (additional_error ? additional_error : 
""));
   970       fprintf (stderr, 
"%s: %d options of group command were given. At most one is required%s.\n", argv[0], args_info->
command_group_counter, (additional_error ? additional_error : 
""));
   977   cmdline_parser_release (&local_args_info);
   979   if ( error_occurred )
   980     return (EXIT_FAILURE);
   985       int found_prog_name = 0;
   992         if (argv[i++] == argv[0]) {
   998       args_info->
inputs_num = argc - optind - found_prog_name;
  1000         (
char **)(malloc ((args_info->
inputs_num)*
sizeof(
char *))) ;
  1001       while (optind < argc)
  1002         if (argv[optind++] != argv[0])
  1003           args_info->
inputs[ i++ ] = gengetopt_strdup (argv[optind-1]) ;
  1010   cmdline_parser_release (&local_args_info);
  1011   return (EXIT_FAILURE);
 unsigned int allsupport_given
Whether allsupport was given. 
const char * bank_list_help
List all known banks help description. 
int override
whether to override possibly already present options (default 0) 
const char * allsupport_help
List all banks which support online banking help description. 
char * past_orig
How far back to look from today (in days) original value given at command line. 
unsigned int org_given
Whether org was given. 
const char * accountinfo_req_help
Request for a list of accounts help description. 
int initialize
whether to initialize the option structure gengetopt_args_info (default 1) 
char * type_orig
Account Type 1=checking 2=invest 3=ccard original value given at command line. 
char * url_orig
Url to POST the data to (otherwise goes to stdout) original value given at command line...
long past_arg
How far back to look from today (in days). 
unsigned int payment_req_given
Whether payment-req was given. 
unsigned int fid_given
Whether fid was given. 
Where the command line options are stored. 
unsigned int help_given
Whether help was given. 
unsigned int type_given
Whether type was given. 
char * fid_arg
FI identifier. 
unsigned int bank_given
Whether bank was given. 
const char * type_help
Account Type 1=checking 2=invest 3=ccard help description. 
unsigned int bank_fipid_given
Whether bank-fipid was given. 
const char * pass_help
Password help description. 
const char * user_help
User name help description. 
The additional parameters to pass to parser functions. 
char * url_arg
Url to POST the data to (otherwise goes to stdout). 
const char * version_help
Print version and exit help description. 
const char * acct_help
Account ID help description. 
char * bank_orig
IBAN bank identifier original value given at command line. 
const char * bank_fipid_help
List all fipids for a given bank help description. 
unsigned int bank_services_given
Whether bank-services was given. 
char * fipid_arg
FI partner identifier (looks up fid, org & url from partner server). 
unsigned int url_given
Whether url was given. 
const char * fid_help
FI identifier help description. 
const char * url_help
Url to POST the data to (otherwise goes to stdout) help description. 
char * fipid_orig
FI partner identifier (looks up fid, org & url from partner server) original value given at command l...
char * acct_orig
Account ID original value given at command line. 
const char * bank_help
IBAN bank identifier help description. 
const char * help_help
Print help and exit help description. 
char * user_orig
User name original value given at command line. 
unsigned int fipid_given
Whether fipid was given. 
char * acct_arg
Account ID. 
const char * statement_req_help
Request for a statement help description. 
char * user_arg
User name. 
unsigned int bank_list_given
Whether bank-list was given. 
const char * payment_req_help
Request to make a payment help description. 
unsigned int pass_given
Whether pass was given. 
unsigned inputs_num
unamed options number 
int trid_arg
Transaction id. 
const char * past_help
How far back to look from today (in days) help description. 
unsigned int statement_req_given
Whether statement-req was given. 
const char * paymentinquiry_req_help
Request to inquire about the status of a payment help description. 
int print_errors
whether getopt_long should print an error message for a bad option (default 1) 
unsigned int trid_given
Whether trid was given. 
int check_ambiguity
whether to check for options already specified in the option structure gengetopt_args_info (default 0...
int check_required
whether to check that all required options were provided (default 1) 
int command_group_counter
Counter for group command. 
unsigned int past_given
Whether past was given. 
unsigned int acct_given
Whether acct was given. 
const char * bank_services_help
List supported services for a given fipid help description. 
const char * trid_help
Transaction id help description. 
char ** inputs
unamed options (options without names) 
const char * org_help
FI org tag help description. 
char * org_orig
FI org tag original value given at command line. 
char * fid_orig
FI identifier original value given at command line. 
unsigned int user_given
Whether user was given. 
unsigned int paymentinquiry_req_given
Whether paymentinquiry-req was given. 
const char * broker_help
Broker identifier help description. 
unsigned int accountinfo_req_given
Whether accountinfo-req was given. 
char * pass_orig
Password original value given at command line. 
char * trid_orig
Transaction id original value given at command line. 
char * broker_orig
Broker identifier original value given at command line. 
char * bank_arg
IBAN bank identifier. 
unsigned int broker_given
Whether broker was given. 
const char * fipid_help
FI partner identifier (looks up fid, org & url from partner server) help description. 
char * org_arg
FI org tag. 
char * broker_arg
Broker identifier. 
int type_arg
Account Type 1=checking 2=invest 3=ccard. 
unsigned int version_given
Whether version was given.