[Pkg-gnupg-commit] [gpgme] 26/412: Return on user cancellation of delete operation

Daniel Kahn Gillmor dkg at fifthhorseman.net
Thu Sep 22 21:26:07 UTC 2016


This is an automated email from the git hooks/post-receive script.

dkg pushed a commit to branch master
in repository gpgme.

commit 67d7f7a9383763b01daf877c846bf3e32f647fa5
Author: Daiki Ueno <ueno at gnu.org>
Date:   Mon Nov 9 13:13:50 2015 +0900

    Return on user cancellation of delete operation
    
    * src/delete.c (delete_status_handler): Return on ERROR status, if the
    error location is set to "delete_key.secret" and the code is either
    CANCELED or FULLY_CANCELED, which indicates a situation that the user
    selected "No" on the confirmation dialog.
---
 src/delete.c | 32 ++++++++++++++++++++++++++++++++
 1 file changed, 32 insertions(+)

diff --git a/src/delete.c b/src/delete.c
index 37e54f8..d20a5bf 100644
--- a/src/delete.c
+++ b/src/delete.c
@@ -68,6 +68,38 @@ delete_status_handler (void *priv, gpgme_status_code_t code, char *args)
 	  return gpg_error (GPG_ERR_GENERAL);
 	}
     }
+  else if (code == GPGME_STATUS_ERROR)
+    {
+      /* Some error stati are informational, so we don't return an
+         error code if we are not ready to process this status.  */
+      gpgme_error_t err;
+      char *where = strchr (args, ' ');
+      char *which;
+
+      if (where)
+	{
+	  *where = '\0';
+	  which = where + 1;
+
+	  where = strchr (which, ' ');
+	  if (where)
+	    *where = '\0';
+
+	  where = args;
+	}
+      else
+	return trace_gpg_error (GPG_ERR_INV_ENGINE);
+
+      err = atoi (which);
+
+      if (!strcmp (where, "delete_key.secret")
+	  && (gpg_err_code (err) == GPG_ERR_CANCELED
+	      || gpg_err_code (err) == GPG_ERR_FULLY_CANCELED))
+	{
+	  /* This indicates a user cancellation on the confirmation dialog.  */
+	  return gpg_error (gpg_err_code (err));
+	}
+    }
   return 0;
 }
 

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-gnupg/gpgme.git



More information about the Pkg-gnupg-commit mailing list