So,
I was poking around in the test cases, and I run across this in
cmdline_test.cpp:
void
test_long_options()
{
...
test_case test_cases2[] = {
{"--bar 10", s_success, "bar:10"},
{"--bar", s_missing_parameter, ""},
******
// Since --bar accepts a parameter, --foo is
// considered a value, even though it looks like
// an option.
{"--bar --foo", s_success, "bar:--foo"},
******
{0, 0, 0}
};
test_cmdline("foo bar=", style, test_cases2);
style = cmdline::style_t(
allow_long | long_allow_adjacent
| long_allow_next);
...
}
And
further down:
void
test_short_options()
{
...
test_case test_cases2[] = {
{"-f
13", s_success, "-f:13"},
{"-f
-13", s_success, "-f:-13"},
{"-f",
s_missing_parameter, ""},
{"-f
/foo", s_success, "-f:/foo"},
******
{"-f
-d", s_missing_parameter, ""},
******
{0, 0, 0}
};
test_cmdline(",d ,f=", style,
test_cases2);
...
}
So,
it would appear that if both arguments are “long-form” then my problem would go
away. But since I’m passing in the short-form arguments (xterm’s –e option has
no long-form), I am boned. I think I tried to pass the short-form in as a long
form (i.e.: ‘--arg=-e’ and ‘--arg –e’), but I think that these failed as well.
Time
for some more playing around.........