Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 5 additions & 5 deletions OptionParser.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -195,7 +195,7 @@ OptionParser& OptionParser::add_option_group(const OptionGroup& group) {
for (set<string>::const_iterator it = option._long_opts.begin(); it != option._long_opts.end(); ++it)
_optmap_l[*it] = &option;
}
_groups.push_back(&group);
_groups.push_back(group);
return *this;
}

Expand Down Expand Up @@ -322,8 +322,8 @@ Values& OptionParser::parse_args(const vector<string>& v) {
_values[it->dest()] = it->get_default();
}

for (list<OptionGroup const*>::iterator group_it = _groups.begin(); group_it != _groups.end(); ++group_it) {
for (list<Option>::const_iterator it = (*group_it)->_opts.begin(); it != (*group_it)->_opts.end(); ++it) {
for (list<OptionGroup>::iterator group_it = _groups.begin(); group_it != _groups.end(); ++group_it) {
for (list<Option>::const_iterator it = group_it->_opts.begin(); it != group_it->_opts.end(); ++it) {
if (it->get_default() != "" and not _values.is_set(it->dest()))
_values[it->dest()] = it->get_default();
}
Expand Down Expand Up @@ -397,8 +397,8 @@ string OptionParser::format_help() const {
ss << _("Options") << ":" << endl;
ss << format_option_help();

for (list<OptionGroup const*>::const_iterator it = _groups.begin(); it != _groups.end(); ++it) {
const OptionGroup& group = **it;
for (list<OptionGroup>::const_iterator it = _groups.begin(); it != _groups.end(); ++it) {
const OptionGroup& group = *it;
ss << endl << " " << group.title() << ":" << endl;
if (group.description() != "") {
unsigned int malus = 4; // Python seems to not use full length
Expand Down
2 changes: 1 addition & 1 deletion OptionParser.h
Original file line number Diff line number Diff line change
Expand Up @@ -179,7 +179,7 @@ class OptionParser : public OptionContainer {
Values _values;

strMap _defaults;
std::list<OptionGroup const*> _groups;
std::list<OptionGroup> _groups;

std::list<std::string> _remaining;
std::list<std::string> _leftover;
Expand Down
24 changes: 13 additions & 11 deletions testprog.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -120,17 +120,19 @@ int main(int argc, char *argv[])
parser.add_option("-K", "--callback") .action("callback") .callback(mc) .help("callback test");
parser.add_option("--string-callback") .action("callback") .callback(mc) .type("string") .help("callback test");

OptionGroup group1 = OptionGroup(parser, "Dangerous Options",
"Caution: use these options at your own risk. "
"It is believed that some of them\nbite.");
group1.add_option("-g") .action("store_true") .help("Group option.") .set_default("0");
parser.add_option_group(group1);

OptionGroup group2 = OptionGroup(parser, "Size Options", "Image Size Options.");
group2.add_option("-w", "--width") .action("store") .type("int") .set_default(640) .help("default: %default");
group2.add_option("--height") .action("store") .type("int") .help("default: %default");
parser.set_defaults("height", 480);
parser.add_option_group(group2);
{
OptionGroup group1 = OptionGroup(parser, "Dangerous Options",
"Caution: use these options at your own risk. "
"It is believed that some of them\nbite.");
group1.add_option("-g") .action("store_true") .help("Group option.") .set_default("0");
parser.add_option_group(group1);

OptionGroup group2 = OptionGroup(parser, "Size Options", "Image Size Options.");
group2.add_option("-w", "--width") .action("store") .type("int") .set_default(640) .help("default: %default");
group2.add_option("--height") .action("store") .type("int") .help("default: %default");
parser.set_defaults("height", 480);
parser.add_option_group(group2);
}

Values& options = parser.parse_args(argc, argv);
vector<string> args = parser.args();
Expand Down