tool/Command.cpp
changeset 1157 04d1c950cf9d
parent 1156 ecaf2a896ea3
child 1159 25cc77cf3993
--- 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
                 }