201 |
if( field == 2 ) { |
if( field == 2 ) { |
202 |
if (card->url) |
if (card->url) |
203 |
free (card->url); |
free (card->url); |
204 |
/* |
card->url = (char*)calloc (1, strlen (p) + 1); |
|
card->url = calloc( 1, strlen( p ) + 1 ); |
|
205 |
if( !card->url ) { |
if( !card->url ) { |
206 |
return; // XXX |
return gpg_error (GPG_ERR_ENOMEM); |
207 |
} |
} |
208 |
_gpgme_decode_c_string (p, &card->url, strlen (p) + 1); |
gpg_decode_c_string (p, &card->url, strlen (p) + 1); |
|
*/ |
|
|
card->url = strdup (p); /* XXX */ |
|
209 |
if (!card->url) |
if (!card->url) |
210 |
return gpg_error (GPG_ERR_ENOMEM); |
return gpg_error (GPG_ERR_ENOMEM); |
211 |
} |
} |
238 |
static gpgme_error_t |
static gpgme_error_t |
239 |
list_handler (void *opaque, gpgme_status_code_t code, const char *key, int fd) |
list_handler (void *opaque, gpgme_status_code_t code, const char *key, int fd) |
240 |
{ |
{ |
241 |
const char *s = "quit\n"; |
static int step=0; |
242 |
write (fd, s, strlen (s)); |
const char *s=""; |
243 |
|
DWORD n; |
244 |
|
|
245 |
|
if (!strcmp (key, "keyedit.prompt") && step == 0) { |
246 |
|
step = 1; |
247 |
|
s = "list\n"; |
248 |
|
WriteFile ((HANDLE)fd, s, strlen (s), &n, NULL); |
249 |
|
} |
250 |
|
else if (!strcmp (key, "keyedit.prompt") && step == 1) { |
251 |
|
step = 0; |
252 |
|
s = "quit\n"; |
253 |
|
WriteFile ((HANDLE)fd, s, strlen (s), &n, NULL); |
254 |
|
} |
255 |
return 0; |
return 0; |
256 |
} |
} |
257 |
|
|