diff --git a/doc/gpgme.texi b/doc/gpgme.texi index 4d7a8746..8d666c3d 100644 --- a/doc/gpgme.texi +++ b/doc/gpgme.texi @@ -2752,6 +2752,12 @@ gpgme_set_status_cb returns all status lines with the exception of PROGRESS lines. With the default of "0" the status callback is only called in certain situations. +@item "raw-description" +Setting the @var{value} to "1" returns human readable strings in a raw +format. For example the non breaking space characters ("~") will not +be removed from the @code{description} field of the +@code{gpgme_tofu_info_t} object. + @end table This function returns @code{0} on success. diff --git a/src/context.h b/src/context.h index 078f0cbd..de69a7a6 100644 --- a/src/context.h +++ b/src/context.h @@ -105,6 +105,11 @@ struct gpgme_context * lines. */ unsigned int full_status : 1; + /* The Tofu info has a human readable string which is presented to + * the user in a directly usable format. By enabling this flag the + * unmodified string, as received form gpg, will be returned. */ + unsigned int raw_description : 1; + /* Flags for keylist mode. */ gpgme_keylist_mode_t keylist_mode; diff --git a/src/gpgme.c b/src/gpgme.c index 3289be9d..e0cd9b05 100644 --- a/src/gpgme.c +++ b/src/gpgme.c @@ -93,11 +93,20 @@ gpgme_set_global_flag (const char *name, const char *value) gpgme_error_t gpgme_set_ctx_flag (gpgme_ctx_t ctx, const char *name, const char *value) { + int abool; + if (!ctx || !name || !value) return gpg_error (GPG_ERR_INV_VALUE); - else if (!strcmp (name, "full-status")) + + abool = *value? !!atoi (value) : 0; + + if (!strcmp (name, "full-status")) { - ctx->full_status = *value? !!atoi (value) : 0; + ctx->full_status = abool; + } + else if (!strcmp (name, "raw-description")) + { + ctx->raw_description = abool; } else return gpg_error (GPG_ERR_UNKNOWN_NAME);