gpa: Add patches to fix card key generation.
[gpg4win.git] / patches / gpa-0.9.4 / 05-event-done.patch
1 #! /bin/sh
2 patch -p1 -l -f $* < $0
3 exit $?
4
5 From 45eb36a00e0bb39fd02cb065e79cbc53945e7103 Mon Sep 17 00:00:00 2001
6 From: Werner Koch <wk@gnupg.org>
7 Date: Mon, 19 Aug 2013 20:29:25 +0200
8 Subject: [PATCH] Fix wrong use of GPGME_EVENT_DONE.
9
10 * src/gpacontext.c (gpa_context_event_cb): Fix use of TYPE_DATA.  Add
11 debug output.
12 --
13
14 With GPGME commit c8e934b2 (2009-10-26) gpgme_io_event_done_data_t was
15 introduced to replace the use of gpg_error_t with GPGME_EVENT_DONE.
16 Unfortunately this was not documented.  Maybe at that time the event
17 code was considered internal and its use in GPA was not known.  Too
18 bad.
19 ---
20  src/gpacontext.c |   13 +++++++++----
21  1 files changed, 9 insertions(+), 4 deletions(-)
22
23 diff --git a/src/gpacontext.c b/src/gpacontext.c
24 index e021d5f..b049f84 100644
25 --- a/src/gpacontext.c
26 +++ b/src/gpacontext.c
27 @@ -405,16 +405,21 @@ static void
28  gpa_context_event_cb (void *data, gpgme_event_io_t type, void *type_data)
29  {
30    GpaContext *context = data;
31 -  gpg_error_t *err;
32 -
33 +  gpg_error_t err, op_err;
34 +
35    switch (type)
36      {
37      case GPGME_EVENT_START:
38        g_signal_emit (context, signals[START], 0);
39        break;
40      case GPGME_EVENT_DONE:
41 -      err = type_data;
42 -      g_signal_emit (context, signals[DONE], 0, *err);
43 +      err = ((gpgme_io_event_done_data_t)type_data)->err;
44 +      op_err = ((gpgme_io_event_done_data_t)type_data)->op_err;
45 +      g_debug ("EVENT_DONE: err=%s op_err=%s",
46 +               gpg_strerror (err), gpg_strerror (op_err));
47 +      if (!err)
48 +        err = op_err;
49 +      g_signal_emit (context, signals[DONE], 0, err);
50        break;
51      case GPGME_EVENT_NEXT_KEY:
52        g_signal_emit (context, signals[NEXT_KEY], 0, type_data);
53 --
54 1.7.7.1