From: Marcus Brinkmann Date: Tue, 20 Aug 2002 11:01:43 +0000 (+0000) Subject: 2002-08-20 Marcus Brinkmann X-Git-Tag: gpgme-0-3-9~12 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=d50bc6abc1a22999bceac61e1ef80bc571fadfff;p=gpgme.git 2002-08-20 Marcus Brinkmann * gpgme.c (_gpgme_set_op_info): Append data on subsequent calls. * encrypt-sign.c (encrypt_sign_status_handler): Remove op_info handling. --- diff --git a/gpgme/ChangeLog b/gpgme/ChangeLog index 37e90d2..0a31b5c 100644 --- a/gpgme/ChangeLog +++ b/gpgme/ChangeLog @@ -1,3 +1,9 @@ +2002-08-20 Marcus Brinkmann + + * gpgme.c (_gpgme_set_op_info): Append data on subsequent calls. + * encrypt-sign.c (encrypt_sign_status_handler): Remove op_info + handling. + 2002-08-19 Werner Koch * decrypt.c (is_token,skip_token): Duplicated from verify.c diff --git a/gpgme/encrypt-sign.c b/gpgme/encrypt-sign.c index 3ea6f28..9e49e58 100644 --- a/gpgme/encrypt-sign.c +++ b/gpgme/encrypt-sign.c @@ -40,16 +40,7 @@ encrypt_sign_status_handler (GpgmeCtx ctx, GpgmeStatusCode code, char *args) size_t encrypt_info_len; _gpgme_encrypt_status_handler (ctx, code, args); - - if (code == GPGME_STATUS_EOF) - { - encrypt_info = gpgme_data_release_and_get_mem (ctx->op_info, - &encrypt_info_len); - ctx->op_info = NULL; - } _gpgme_sign_status_handler (ctx, code, args); - if (code == GPGME_STATUS_EOF && encrypt_info) - _gpgme_data_append (ctx->op_info, encrypt_info, encrypt_info_len); } diff --git a/gpgme/gpgme.c b/gpgme/gpgme.c index f96bf5a..6ee2bb1 100644 --- a/gpgme/gpgme.c +++ b/gpgme/gpgme.c @@ -175,20 +175,23 @@ gpgme_get_op_info (GpgmeCtx ctx, int reserved) } -/* - * Store the data object with the operation info in the - * context. Caller should not use that object anymore. - */ +/* Store the data object INFO with the operation info in the context + CTX. INFO is consumed. Subsequent calls append the data. */ void _gpgme_set_op_info (GpgmeCtx ctx, GpgmeData info) { assert (ctx); - gpgme_data_release (ctx->op_info); - ctx->op_info = NULL; - - if (info) + if (!ctx->op_info) ctx->op_info = info; + else + { + char *info_mem = 0; + size_t info_len; + + info_mem = gpgme_data_release_and_get_mem (info, &info_len); + _gpgme_data_append (ctx->op_info, info_mem, info_len); + } }