api: Add new context flag "raw-description".
authorWerner Koch <wk@gnupg.org>
Sat, 21 May 2016 08:22:57 +0000 (10:22 +0200)
committerWerner Koch <wk@gnupg.org>
Sat, 21 May 2016 08:31:20 +0000 (10:31 +0200)
* src/context.h (struct gpgme_context): Add field raw_description.
* src/gpgme.c (gpgme_set_ctx_flag): New flag.

Signed-off-by: Werner Koch <wk@gnupg.org>
doc/gpgme.texi
src/context.h
src/gpgme.c

index 4d7a874..8d666c3 100644 (file)
@@ -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.
index 078f0cb..de69a7a 100644 (file)
@@ -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;
 
index 3289be9..e0cd9b0 100644 (file)
@@ -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 = abool;
+    }
+  else if (!strcmp (name, "raw-description"))
     {
-      ctx->full_status = *value? !!atoi (value) : 0;
+      ctx->raw_description = abool;
     }
   else
     return gpg_error (GPG_ERR_UNKNOWN_NAME);