17 const std::string&
usage = std::string(),
18 const std::string& description = std::string(),
19 const std::string& longDescription = std::string())
20 : T(mman, name,
usage, description, longDescription) {}
25 return T::parse(list, begin);
36 antani = add<BoolOption>(
"antani",
'a',
"antani");
37 blinda = add<StringOption>(
"blinda",
'b',
"blinda");
39 antani->addAlias(
"an-tani");
53 help = add<BoolOption>(
"help",
'h',
"help",
"get help");
55 scramble = addEngine(
"scramble");
56 scramble_random = scramble->add<
BoolOption>(
"random",
'r',
"random");
57 scramble_yell = scramble->add<
StringOption>(
"yell", 0,
"yell");
58 scramble->aliases.push_back(
"mess");
60 fix = addEngine(
"fix");
61 fix_quick = fix->add<
BoolOption>(
"quick",
'Q',
"quick");
77 opts.push_back(
"ciaps");
79 opts.push_back(
"cippo");
80 opts.push_back(
"foobar");
86 assert_eq(
string(*opts.begin()),
string(
"ciaps"));
87 assert_eq(
string(*opts.rbegin()),
string(
"foobar"));
95 opts.push_back(
"cippo");
96 opts.push_back(
"foobar");
97 opts.push_back(
"--cabal");
100 engine.no_switches_after_first_arg =
true;
102 assert(i == opts.begin());
104 assert_eq(
string(*opts.begin()),
string(
"foobar"));
105 assert_eq(
string(*opts.rbegin()),
string(
"--cabal"));
112 opts.push_back(
"-a");
113 opts.push_back(
"foobar");
117 assert(i == opts.begin());
119 assert_eq(
string(*opts.begin()),
string(
"foobar"));
126 opts.push_back(
"-ab");
127 opts.push_back(
"cippo");
139 opts.push_back(
"--an-tani");
140 opts.push_back(
"foobar");
144 assert(i == opts.begin());
146 assert_eq(
string(*opts.begin()),
string(
"foobar"));
154 opts.push_back(
"--blinda=cippo");
155 opts.push_back(
"foobar");
156 opts.push_back(
"--antani");
160 assert(i == opts.begin());
162 assert_eq(
string(*opts.begin()),
string(
"foobar"));
169 opts.push_back(
"--yell=foo");
170 opts.push_back(
"mess");
171 opts.push_back(
"-r");
188 opts.push_back(
"--yell=foo");
189 opts.push_back(
"fix");
190 opts.push_back(
"--help");
191 opts.push_back(
"-Q");
208 opts.push_back(
"--help");
225 Public<Engine> engine(&mman,
"test",
"[options]",
"test engine",
"this is the long description of a test engine");
226 OptionGroup* group = engine.addGroup(
"test option group");
230 BoolOption* testBool1 = engine.add<
BoolOption>(
"tbool", 0,
"testbool1",
"<val>",
"a test bool switch");
231 IntOption* testInt1 = engine.add<
IntOption>(
"tint", 0,
"testint1",
"<val>",
"a test int switch");
235 opts.push_back(
"--testbool=true");
236 opts.push_back(
"--testint=3");
237 opts.push_back(
"--teststring=antani");
238 opts.push_back(
"--testbool1=true");
239 opts.push_back(
"--testint1=5");
240 opts.push_back(
"--teststring1=blinda");
247 assert_eq(testString->stringValue(),
"antani");
250 assert_eq(testString1->stringValue(),
"blinda");
Option * add(Option *o)
Definition: options.h:368
Iterator< typename I::value_type > iterator(I i)
Definition: iterator.h:123
BoolOption * antani
Definition: engine.test.h:42
Test noSwitchesAfterFirstArg()
Definition: engine.test.h:92
void Test
Definition: test.h:178
ArgList::iterator parseList(ArgList &list)
Definition: engine.test.h:22
Engine2()
Definition: engine.test.h:51
Definition: engine.test.h:46
Test longOptsWithArgs()
Definition: engine.test.h:152
void usage(ostream &out, const string &argv0)
Definition: commandline-demo.cpp:75
ListIterator< List > begin(List l)
Definition: list.h:420
Test commandWithArg()
Definition: engine.test.h:167
#define assert_eq(x, y)
Definition: test.h:33
#define assert(x)
Definition: test.h:30
StringOption * fix_yell
Definition: engine.test.h:71
Test commandsWithOverlappingArgs()
Definition: engine.test.h:186
Definition: engine.test.h:29
Test optsOnly()
Definition: engine.test.h:110
Test commandsWithoutCommand()
Definition: engine.test.h:206
bool boolValue() const
Definition: options.h:210
Definition: options.h:161
StringOption * scramble_yell
Definition: engine.test.h:68
Definition: engine.test.h:13
Parse commandline options.
Definition: engine.h:38
ArgList::iterator parse(ArgList &list, ArgList::iterator begin)
Definition: engine.test.h:23
Test optsAndArgs()
Definition: engine.test.h:75
Engine1()
Definition: engine.test.h:34
Public(MemoryManager *mman=0, const std::string &name=std::string(), const std::string &usage=std::string(), const std::string &description=std::string(), const std::string &longDescription=std::string())
Definition: engine.test.h:16
Engine * scramble
Definition: engine.test.h:66
Boolean option.
Definition: options.h:134
Keep track of various wibble::commandline components, and deallocate them at object destruction...
Definition: core.h:62
Test clusteredShortOpts()
Definition: engine.test.h:124
Group related commandline options.
Definition: options.h:359
bool boolValue() const
Definition: options.h:153
std::string stringValue() const
Definition: options.h:212
Test longOptsWithDashes()
Definition: engine.test.h:137
Test creationShortcuts()
Definition: engine.test.h:223
BoolOption * fix_quick
Definition: engine.test.h:70
StringOption * blinda
Definition: engine.test.h:43
BoolOption * scramble_random
Definition: engine.test.h:67
Engine * fix
Definition: engine.test.h:69
BoolOption * help
Definition: engine.test.h:65
Definition: engine.test.h:74