This is the mail archive of the cygwin-apps mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH setup 10/11] Use stored action in packagemeta::action_caption()


Use the stored action in packagemeta::action_caption(), rather than
working backwards from desired/installed/picked.
---
 package_meta.cc | 30 +++++++++++++++++-------------
 1 file changed, 17 insertions(+), 13 deletions(-)

diff --git a/package_meta.cc b/package_meta.cc
index 8fad50d..b417fb0 100644
--- a/package_meta.cc
+++ b/package_meta.cc
@@ -426,19 +426,23 @@ packagemeta::LDesc () const
 std::string
 packagemeta::action_caption () const
 {
-  if (!desired && installed)
-    return "Uninstall";
-  else if (!desired)
-    return "Skip";
-  else if (desired == installed && picked())
-    return packagedb::task == PackageDB_Install ? "Reinstall" : "Retrieve";
-  else if (desired == installed && desired.sourcePackage() && srcpicked())
-    /* FIXME: Redo source should come up if the tarball is already present locally */
-    return "Source";
-  else if (desired == installed)	/* and neither src nor bin */
-    return "Keep";
-  else
-    return desired.Canonical_version ();
+  switch (_action)
+    {
+    case Uninstall_action:
+      return "Uninstall";
+    case NoChange_action:
+      if (!desired)
+        return "Skip";
+      if (desired.sourcePackage() && srcpicked())
+        /* FIXME: Redo source should come up if the tarball is already present locally */
+        return "Source";
+      return "Keep";
+    case Reinstall_action:
+      return packagedb::task == PackageDB_Install ? "Reinstall" : "Retrieve";
+    case Install_action:
+      return desired.Canonical_version ();
+    }
+  return "Unknown";
 }
 
 void
-- 
2.21.0


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]