doc/
authorMarcus Brinkmann <mb@g10code.com>
Fri, 21 May 2004 15:15:21 +0000 (15:15 +0000)
committerMarcus Brinkmann <mb@g10code.com>
Fri, 21 May 2004 15:15:21 +0000 (15:15 +0000)
2004-05-21  Marcus Brinkmann  <marcus@g10code.de>

* gpgme.texi (Key Management): Add note about new field
keylist_mode of gpgme_key_t.

gpgme/
2004-05-21  Marcus Brinkmann  <marcus@g10code.de>

* gpgme.h (struct _gpgme_key): New member keylist_mode.
* keylist.c (keylist_colon_handler): Set the keylist_mode of KEY.

NEWS
TODO
doc/ChangeLog
doc/gpgme.texi
gpgme/ChangeLog
gpgme/gpgme.h
gpgme/keylist.c

diff --git a/NEWS b/NEWS
index 99506700e3442430e73dbc6768fc417b4226ac2a..7fd510ceeb1a76b84a1823304ddd2be401f0d535 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,14 @@
+Noteworthy changes in version 0.9.0 (unreleased)
+------------------------------------------------
+
+ * The type gpgme_key_t has now a new field keylist_mode that contains
+   the keylist mode that was active at the time the key was retrieved.
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+gpgme_key_t                    EXTENDED: New field keylist_mode.
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
 Noteworthy changes in version 0.4.7 (2004-04-29)
 ------------------------------------------------
 
diff --git a/TODO b/TODO
index 01b4a100947d950af4d13461adddefb35f8790bd..f8ddae4f3f773b558f559a4c96eaa6d2c3b63d73 100644 (file)
--- a/TODO
+++ b/TODO
@@ -8,6 +8,10 @@ Hey Emacs, this is -*- outline -*- mode!
 * ABI's to break:
 ** I/O and User Data could be made extensible.  But this can be done
    without breaking the ABI hopefully.
+** gpgme_keylist_mode_t should not be an enum.  Maybe some other values
+   should also not be an enum.  All enums that should be enums need to
+   have a maximum value to ensure a certain minimum width for
+   extensibility.
 ** Compatibility interfaces that can be removed in future versions:
 *** ath compatibility modules.
 *** gpgme_data_new_from_filepart
index 0a76093570d06ece65df1cadbba611a74236b5b2..c472cc04e0ad4bd55707165a2d3c5d9acca84658 100644 (file)
@@ -1,3 +1,8 @@
+2004-05-21  Marcus Brinkmann  <marcus@g10code.de>
+
+       * gpgme.texi (Key Management): Add note about new field
+       keylist_mode of gpgme_key_t.
+
 2004-04-29  Marcus Brinkmann  <marcus@g10code.de>
 
        * gpgme.texi (Verify): Correct type of member wrong_key_usage.
index 86e45a7484784279f5da9acc43b25ca112628b0e..5f9501b15103dd60906371e07c0fcb185796adf2 100644 (file)
@@ -2348,6 +2348,9 @@ The @code{gpgme_key_t} type is a pointer to a key object.  It has the
 following members:
 
 @table @code
+@item unsigned int keylist_mode
+The keylist mode that was active when the key was retrieved.
+
 @item unsigned int revoked : 1
 This is true if the key is revoked.
 
index 0bb086a03f87795a8c4baa101538d00247060bc6..60eeb43af0ad531b2591e0e2f1fd67cc8b731eaa 100644 (file)
@@ -1,3 +1,8 @@
+2004-05-21  Marcus Brinkmann  <marcus@g10code.de>
+
+       * gpgme.h (struct _gpgme_key): New member keylist_mode.
+       * keylist.c (keylist_colon_handler): Set the keylist_mode of KEY.
+
 2004-04-29  Marcus Brinkmann  <marcus@g10code.de>
 
        * gpgme.h (struct _gpgme_signature): Change member WRONG_KEY_USAGE
index 71883bd7613fb5046a4e063b04730ca4e9f6a4f7..2604677d5f1f2e6df950fcd67b60cd3c637a261d 100644 (file)
@@ -304,6 +304,17 @@ typedef enum
   }
 gpgme_protocol_t;
 
+\f
+/* The available keylist mode flags.  */
+typedef enum
+  {
+    GPGME_KEYLIST_MODE_LOCAL  = 1,
+    GPGME_KEYLIST_MODE_EXTERN = 2,
+    GPGME_KEYLIST_MODE_SIGS   = 4,
+    GPGME_KEYLIST_MODE_VALIDATE = 256
+  }
+gpgme_keylist_mode_t;
+
 \f
 /* The possible stati for the edit operation.  */
 typedef enum
@@ -639,6 +650,12 @@ struct _gpgme_key
 
   /* Internal to GPGME, do not use.  */
   gpgme_user_id_t _last_uid;
+
+  /* The keylist mode that was active when listing the key.  */
+  /* Implementation note: We are using unsigned int here, and not
+     gpgme_keylist_mode_t, as the latter is currently an enum of
+     unknown size.  */
+  unsigned int keylist_mode;
 };
 typedef struct _gpgme_key *gpgme_key_t;
 
@@ -697,16 +714,6 @@ void gpgme_set_include_certs (gpgme_ctx_t ctx, int nr_of_certs);
 /* Return the number of certs to include in an S/MIME message.  */
 int gpgme_get_include_certs (gpgme_ctx_t ctx);
 
-/* The available keylist mode flags.  */
-typedef enum
-  {
-    GPGME_KEYLIST_MODE_LOCAL  = 1,
-    GPGME_KEYLIST_MODE_EXTERN = 2,
-    GPGME_KEYLIST_MODE_SIGS   = 4,
-    GPGME_KEYLIST_MODE_VALIDATE = 256
-  }
-gpgme_keylist_mode_t;
-
 /* Set keylist mode in CTX to MODE.  */
 gpgme_error_t gpgme_set_keylist_mode (gpgme_ctx_t ctx,
                                      gpgme_keylist_mode_t mode);
index e65abaeab45875a74bca42ace18096190b8f6f7b..57dda54a8f5b2bbfcdad3f1410fb1328ea7585a7 100644 (file)
@@ -430,6 +430,7 @@ keylist_colon_handler (void *priv, char *line)
       err = _gpgme_key_new (&key);
       if (err)
        return err;
+      key->keylist_mode = ctx->keylist_mode;
       err = _gpgme_key_add_subkey (key, &subkey);
       if (err)
        {