2003-02-01 Marcus Brinkmann <marcus@g10code.de>

* engine-gpgsm.c (start): Handle all errors, not only most of
	them.
	(xtoi_1, xtoi_2): Remove macro.
	(status_handler): Replace use of xtoi_2 with _gpgme_hextobyte.
This commit is contained in:
Marcus Brinkmann 2003-02-04 14:57:41 +00:00
parent 90beb50551
commit 350ef9afef
2 changed files with 14 additions and 11 deletions

View File

@ -1,3 +1,10 @@
2003-02-01 Marcus Brinkmann <marcus@g10code.de>
* engine-gpgsm.c (start): Handle all errors, not only most of
them.
(xtoi_1, xtoi_2): Remove macro.
(status_handler): Replace use of xtoi_2 with _gpgme_hextobyte.
2003-02-01 Marcus Brinkmann <marcus@g10code.de>
* engine-gpgsm.c (map_assuan_error): Replace

View File

@ -43,12 +43,7 @@
#include "engine-backend.h"
#define xtoi_1(p) (*(p) <= '9'? (*(p)- '0'): \
*(p) <= 'F'? (*(p)-'A'+10):(*(p)-'a'+10))
#define xtoi_2(p) ((xtoi_1(p) * 16) + xtoi_1((p)+1))
typedef struct
{
int fd; /* FD we talk about. */
@ -120,7 +115,7 @@ gpgsm_get_req_version (void)
return NEED_GPGSM_VERSION;
}
static void
close_notify_handler (int fd, void *opaque)
{
@ -746,7 +741,7 @@ status_handler (void *opaque, int fd)
{
/* Handle escaped characters. */
++src;
*dst = xtoi_2 (src);
*dst = (unsigned char) _gpgme_hextobyte (src);
(*alinelen)++;
src += 2;
}
@ -828,10 +823,10 @@ add_io_cb (GpgsmObject gpgsm, iocb_data_t *iocbd, GpgmeIOCb handler)
static GpgmeError
start (GpgsmObject gpgsm, const char *command)
{
GpgmeError err = 0;
GpgmeError err;
err = add_io_cb (gpgsm, &gpgsm->status_cb, status_handler);
if (gpgsm->input_cb.fd != -1)
if (!err && gpgsm->input_cb.fd != -1)
err = add_io_cb (gpgsm, &gpgsm->input_cb, _gpgme_data_outbound_handler);
if (!err && gpgsm->output_cb.fd != -1)
err = add_io_cb (gpgsm, &gpgsm->output_cb, _gpgme_data_inbound_handler);
@ -841,7 +836,8 @@ start (GpgsmObject gpgsm, const char *command)
if (!err)
err = assuan_write_line (gpgsm->assuan_ctx, command);
(*gpgsm->io_cbs.event) (gpgsm->io_cbs.event_priv, GPGME_EVENT_START, NULL);
if (!err)
(*gpgsm->io_cbs.event) (gpgsm->io_cbs.event_priv, GPGME_EVENT_START, NULL);
return err;
}