(parse_error): Compare only the last part of the where
authorWerner Koch <wk@gnupg.org>
Mon, 5 Apr 2004 13:49:29 +0000 (13:49 +0000)
committerWerner Koch <wk@gnupg.org>
Mon, 5 Apr 2004 13:49:29 +0000 (13:49 +0000)
token.

gpgme/ChangeLog
gpgme/conversion.c
gpgme/verify.c

index 16b2d87aedf548d3c4ef1703919e2541e418c315..5eb476635d75113a3aa3f6bb529339adc7ecfc6a 100644 (file)
@@ -1,5 +1,8 @@
 2004-04-05  Werner Koch  <wk@gnupg.org>
 
+       * verify.c (parse_error): Compare only the last part of the where
+       token.
+
        * engine-gpgsm.c (gpgsm_keylist_ext): Send with-validation
        option.  Fixed pattern construction.
 
index 8faf8522041ddbba877618096dbfea14c949364c..12a58229a3153253b16485d14ad9e858aeef36ed 100644 (file)
@@ -396,7 +396,7 @@ _gpgme_map_gnupg_error (char *err)
   /* Future version of GnuPG might return the error code directly, so
      we first test for a a numerical value and use that verbatim.
      Note that this numerical value might be followed by an
-     udnerschore and the textual representation of the error code. */
+     underschore and the textual representation of the error code. */
   if (*err >= '0' && *err <= '9')
     return strtoul (err, NULL, 10);
 
index b3287bdae1a43554701a5fd4ee583d40503cb2ec..05ea5209c8c5249a49489752cd1c190984feb4a6 100644 (file)
@@ -430,6 +430,7 @@ parse_error (gpgme_signature_t sig, char *args)
   gpgme_error_t err;
   char *where = strchr (args, ' ');
   char *which;
+  char *where_last;
 
   if (where)
     {
@@ -445,11 +446,16 @@ parse_error (gpgme_signature_t sig, char *args)
   else
     return gpg_error (GPG_ERR_INV_ENGINE);
 
+  /* It is often useful to compare only the last part of the where token. */
+  where_last = strrchr (where, '.');
+  if (!where_last)
+    where_last = where;
+
   err = _gpgme_map_gnupg_error (which);
 
-  if (!strcmp (where, "verify.findkey"))
+  if (!strcmp (where_last, ".findkey"))
     sig->status = err;
-  else if (!strcmp (where, "verify.keyusage")
+  else if (!strcmp (where_last, ".keyusage")
           && gpg_err_code (err) == GPG_ERR_WRONG_KEY_USAGE)
     sig->wrong_key_usage = 1;