[setup - the official Cygwin setup program] branch master, updated. release_2.899

jturney-9JcytcrH/[email protected]
Newsgroups gmane.os.cygwin.cvs.apps
Message-ID <[email protected]>


https://sourceware.org/git/gitweb.cgi?p=cygwin-apps/setup.git;h=e435a212a6e85169616a67c08eab1d9a387c6cfc

commit e435a212a6e85169616a67c08eab1d9a387c6cfc
Author: Jon Turney <[email protected]>
Date:   Wed Jan 1 14:38:45 2020 +0000

    Fix cases where incorrect action is stored by set_action()
    
    set_action() with action = Install_action and desired = empty version
    when curr = empty version is equivalent to action = NoChange_Action.
    
    (This can occur if we are selecting a category for install on the
    command line, and that category happens to include a package which only
    has a test version, but no current version)
    
    (For completeness, also address the case of action = Install_action,
    desired = empty_version, where curr = some version is equivalent to
    action = Uninstall_action)


Diff:
---
 package_meta.cc |   49 +++++++++++++++++++++++++------------------------
 1 files changed, 25 insertions(+), 24 deletions(-)

diff --git a/package_meta.cc b/package_meta.cc
index 940f69a..1f6ab16 100644
--- a/package_meta.cc
+++ b/package_meta.cc
@@ -549,30 +549,31 @@ packagemeta::set_action (_actions action, packageversion const &default_version,
   else if (action == Install_action)
     {
       desired = default_version;
-      if (desired)
-	{
-	  if (desired != installed)
-	    if (desired.accessible ())
-	      {
-		/* Memorize the fact that the user picked to install this package at least once. */
-		if (useraction)
-		  user_picked = true;
-
-		pick (true);
-		srcpick (false);
-	      }
-	    else
-	      {
-		pick (false);
-		srcpick (true);
-	      }
-	  else
-	    {
-	      action = NoChange_action;
-	      pick (false);
-	      srcpick (false);
-	    }
-	}
+      if (desired != installed)
+        if (desired.accessible ())
+          {
+            /* Memorize the fact that the user picked to install this package at least once. */
+            if (useraction)
+              user_picked = true;
+
+            pick (true);
+            srcpick (false);
+
+            /* Install no version is Uninstall */
+            if (!desired)
+              action = Uninstall_action;
+          }
+        else
+          {
+            pick (false);
+            srcpick (true);
+          }
+      else
+        {
+          action = NoChange_action;
+          pick (false);
+          srcpick (false);
+        }
     }
   else if (action == Reinstall_action)
     {
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.