869
876
if (opt_help || opt_help_extended)
879
po::parsed_options parsed= po::command_line_parser(defaults_argc,
881
options(long_options).allow_unregistered().run();
883
vector<string> unknown_options=
884
po::collect_unrecognized(parsed.options, po::include_positional);
872
886
/* we do want to exit if there are any other unknown options */
873
if (defaults_argc > 1)
887
/** @TODO: We should perhaps remove allowed_unregistered() and catch the
889
if (unknown_options.size() > 0)
876
char **tmp_argv= defaults_argv;
877
struct option no_opts[]=
879
{0, 0, 0, 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0}
882
We need to eat any 'loose' arguments first before we conclude
883
that there are unprocessed options.
884
But we need to preserve defaults_argv pointer intact for
885
internal::free_defaults() to work. Thus we use a copy here.
887
my_getopt_skip_unknown= 0;
889
if ((ho_error= handle_options(&defaults_argc, &tmp_argv, no_opts,
890
drizzled_get_one_option)))
891
unireg_abort(ho_error);
896
_("%s: Too many arguments (first extra is '%s').\n"
897
"Use --verbose --help to get a list of available options\n"),
898
internal::my_progname, *tmp_argv);
892
_("%s: Too many arguments (first extra is '%s').\n"
893
"Use --verbose --help to get a list of available options\n"),
894
internal::my_progname, unknown_options[0].c_str());
898
po::store(parsed, vm);
903
901
string scheduler_name;
904
902
if (opt_scheduler)