doc: Fix documentation of struct data types
[gpgme.git] / src / op-support.c
index d42a247..edd317d 100644 (file)
@@ -56,7 +56,7 @@ _gpgme_op_data_lookup (gpgme_ctx_t ctx, ctx_op_data_id_t type, void **hook,
 
       data = calloc (1, sizeof (struct ctx_op_data) + size);
       if (!data)
-       return gpg_error_from_errno (errno);
+       return gpg_error_from_syserror ();
       data->magic = CTX_OP_DATA_MAGIC;
       data->next = ctx->op_data;
       data->type = type;
@@ -134,6 +134,15 @@ _gpgme_op_reset (gpgme_ctx_t ctx, int type)
 #endif
       if (gpg_err_code (err) == GPG_ERR_NOT_IMPLEMENTED)
        err = 0;
+
+      if (!err)
+        {
+          err = _gpgme_engine_set_pinentry_mode (ctx->engine,
+                                                 ctx->pinentry_mode);
+          if (gpg_err_code (err) == GPG_ERR_NOT_IMPLEMENTED)
+            err = 0;
+        }
+
       if (err)
         {
           _gpgme_engine_release (ctx->engine);
@@ -192,7 +201,7 @@ _gpgme_parse_inv_recp (char *args, gpgme_invalid_key_t *key)
 
   inv_key = malloc (sizeof (*inv_key));
   if (!inv_key)
-    return gpg_error_from_errno (errno);
+    return gpg_error_from_syserror ();
   inv_key->next = NULL;
   gpg_err_set_errno (0);
   reason = strtol (args, &tail, 0);
@@ -266,9 +275,8 @@ _gpgme_parse_inv_recp (char *args, gpgme_invalid_key_t *key)
       inv_key->fpr = strdup (tail);
       if (!inv_key->fpr)
        {
-         int saved_errno = errno;
          free (inv_key);
-         return gpg_error_from_errno (saved_errno);
+         return gpg_error_from_syserror ();
        }
     }
   else