/****************************************************************************** get_options() Get the options. ******************************************************************************/ void get_options(int argc, char *argv[]) { arg_list_t al; // start defaults start_defaults(argc, argv); // default file arguments init_args(&al); add_arg(&al, "ignore"); read_defaults(&al); parse_args(al.argc, al.argv); free_args(&al); // command-line arguments parse_args(argc, argv); // finish defaults finish_defaults(); }
/* this is the externally visible function used by extra_opts */ np_arg_list* np_get_defaults(const char *locator, const char *default_section){ FILE *inifile=NULL; np_arg_list *defaults=NULL; np_ini_info i; parse_locator(locator, default_section, &i); /* if a file was specified or if we're using the default file */ if(i.file != NULL && strlen(i.file) > 0){ if(strcmp(i.file, "-")==0){ inifile=stdin; } else { inifile=fopen(i.file, "r"); } if(inifile==NULL) die(STATE_UNKNOWN, _("Can't read config file")); if(read_defaults(inifile, i.stanza, &defaults)==FALSE) die(STATE_UNKNOWN, _("Invalid section '%s' in config file '%s'\n"), i.stanza, i.file); free(i.file); if(inifile!=stdin) fclose(inifile); } free(i.stanza); return defaults; }