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.
This commit is contained in:
parent
3b6e9a3d0a
commit
67d7f7a938
32
src/delete.c
32
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;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user