Removed parameter values 'all'.

This commit is contained in:
Florian Pose 2008-07-28 11:43:08 +00:00
parent 5685eae806
commit 6429bc5f26
2 changed files with 37 additions and 40 deletions

1
TODO
View File

@ -23,7 +23,6 @@ Version 1.4.0:
- Remove MasterDevice::slaveCount().
- Alias index?
- Add 'etherlab version'.
- Remove 'all' parameter values.
Future issues:

View File

@ -95,8 +95,8 @@ string usage()
void getOptions(int argc, char **argv)
{
int c, argCount, optionIndex, number;
char *remainder;
int c, argCount;
stringstream str;
static struct option longOptions[] = {
//name, has_arg, flag, val
@ -113,61 +113,59 @@ void getOptions(int argc, char **argv)
};
do {
c = getopt_long(argc, argv, "m:a:p:d:t:fqvh",
longOptions, &optionIndex);
c = getopt_long(argc, argv, "m:a:p:d:t:fqvh", longOptions, NULL);
switch (c) {
case 'm':
number = strtoul(optarg, &remainder, 0);
if (remainder == optarg || *remainder || number < 0) {
str.clear();
str.str("");
str << optarg;
str >> resetiosflags(ios::basefield) // guess base from prefix
>> masterIndex;
if (str.fail() || masterIndex < 0) {
cerr << "Invalid master number " << optarg << "!" << endl
<< endl << usage();
exit(1);
}
masterIndex = number;
break;
case 'a':
if (!strcmp(optarg, "all")) {
slaveAlias = -1;
} else {
number = strtoul(optarg, &remainder, 0);
if (remainder == optarg || *remainder
|| number < 0 || number > 0xFFFF) {
cerr << "Invalid slave alias " << optarg << "!"
<< endl << endl << usage();
exit(1);
}
slaveAlias = number;
str.clear();
str.str("");
str << optarg;
str >> resetiosflags(ios::basefield) // guess base from prefix
>> slaveAlias;
if (str.fail() || slaveAlias < 0 || slaveAlias > 0xFFFF) {
cerr << "Invalid slave alias " << optarg << "!" << endl
<< endl << usage();
exit(1);
}
break;
case 'p':
if (!strcmp(optarg, "all")) {
slavePosition = -1;
} else {
number = strtoul(optarg, &remainder, 0);
if (remainder == optarg || *remainder
|| number < 0 || number > 0xFFFF) {
cerr << "Invalid slave position " << optarg << "!"
<< endl << endl << usage();
exit(1);
}
slavePosition = number;
str.clear();
str.str("");
str << optarg;
str >> resetiosflags(ios::basefield) // guess base from prefix
>> slavePosition;
if (str.fail()
|| slavePosition < 0 || slavePosition > 0xFFFF) {
cerr << "Invalid slave position " << optarg << "!" << endl
<< endl << usage();
exit(1);
}
break;
case 'd':
if (!strcmp(optarg, "all")) {
domainIndex = -1;
} else {
number = strtoul(optarg, &remainder, 0);
if (remainder == optarg || *remainder || number < 0) {
cerr << "Invalid domain index "
<< optarg << "!" << endl << endl << usage();
exit(1);
}
domainIndex = number;
str.clear();
str.str("");
str << optarg;
str >> resetiosflags(ios::basefield) // guess base from prefix
>> domainIndex;
if (str.fail() || domainIndex < 0) {
cerr << "Invalid domain index " << optarg << "!" << endl
<< endl << usage();
exit(1);
}
break;