Shell would try to repeat the install command over and over,
authorMartin Vidner <mvidner@suse.cz>
Thu, 2 Nov 2006 17:25:26 +0000 (17:25 +0000)
committerMartin Vidner <mvidner@suse.cz>
Thu, 2 Nov 2006 17:25:26 +0000 (17:25 +0000)
fixed.

package/zypper.changes
src/zypper.cc

index 09a7182..d66bb6c 100644 (file)
@@ -1,10 +1,12 @@
 -------------------------------------------------------------------
-Thu Nov  2 17:29:13 CET 2006 - mvidner@suse.cz
+Thu Nov  2 18:24:09 CET 2006 - mvidner@suse.cz
 
 - Automatically retry installing with nodeps or force, nicer problem
   display, no more "3, 0 Invalid object" (#216042).
 - Do not parse metadata of disabled sources *blush* (#217297).
 - Display all "Parsing patch..." on one line.
+- Shell would try to repeat the install command over and over,
+  fixed.
 
 -------------------------------------------------------------------
 Wed Nov  1 19:54:55 CET 2006 - mvidner@suse.cz
index 12ea5bb..d52632c 100644 (file)
@@ -555,7 +555,8 @@ int one_command(const string& command, int argc, char **argv)
     gData.packages_to_uninstall = arguments;
   }
 
-  if (!gData.packages_to_install.empty() || !gData.packages_to_uninstall.empty()) {
+  if (command == "install" || command == "in" ||
+      command == "remove" || command == "rm") {
     string skind = copts.count("type")?  copts["type"].front() : "package";
     kind = string_to_kind (skind);
     if (kind == ResObject::Kind ()) {
@@ -576,18 +577,17 @@ int one_command(const string& command, int argc, char **argv)
       } 
 
     cond_init_target ();
-    if (true) {
-       cond_load_resolvables ();
+    cond_load_resolvables ();
 
-       for ( vector<string>::const_iterator it = gData.packages_to_install.begin(); it != gData.packages_to_install.end(); ++it ) {
-         mark_for_install(kind, *it);
-       }
-    
-       for ( vector<string>::const_iterator it = gData.packages_to_uninstall.begin(); it != gData.packages_to_uninstall.end(); ++it ) {
-         mark_for_uninstall(kind, *it);
-       }
+    for ( vector<string>::const_iterator it = arguments.begin(); it != arguments.end(); ++it ) {
+      if (command == "install" || command == "in") {
+       mark_for_install(kind, *it);
+      }
+      else {
+       mark_for_uninstall(kind, *it);
+      }
 
-       solve_and_commit (copts.count("no-confirm"));
+      solve_and_commit (copts.count("no-confirm"));
     }
     return 0;
   }