--- a/tool/Command.cpp Mon Jul 28 09:12:21 2008 +0000
+++ b/tool/Command.cpp Mon Jul 28 11:29:28 2008 +0000
@@ -175,7 +175,6 @@
Command::ConfigList Command::selectedConfigs(MasterDevice &m)
{
unsigned int i;
- int effAlias;
ec_ioctl_master_t master;
ec_ioctl_config_t config;
ConfigList list;
@@ -183,34 +182,35 @@
m.getMaster(&master);
- // Assume alias 0 if only position is given.
- if (alias == -1 && position != -1) {
- effAlias = 0;
- } else {
- effAlias = alias;
- }
-
- if (effAlias == -1) { // no alias given
+ if (alias == -1) { // no alias given
if (position == -1) { // no alias and position given
// all items
for (i = 0; i < master.config_count; i++) {
m.getConfig(&config, i);
list.push_back(config);
}
+ } else { // no alias, but position given
+ for (i = 0; i < master.config_count; i++) {
+ m.getConfig(&config, i);
+ if (!config.alias && config.position == position) {
+ list.push_back(config);
+ break; // there can be at most one matching
+ }
+ }
}
} else { // alias given
if (position == -1) { // alias, but no position given
// take all items with a given alias
for (i = 0; i < master.config_count; i++) {
m.getConfig(&config, i);
- if (config.alias == effAlias) {
+ if (config.alias == alias) {
list.push_back(config);
}
}
} else { // alias and position given
for (i = 0; i < master.config_count; i++) {
m.getConfig(&config, i);
- if (config.alias == effAlias && config.position == position) {
+ if (config.alias == alias && config.position == position) {
list.push_back(config);
break; // there can be at most one matching
}