move gpg_check_traditionnal in crypt.cpkg
[apps/madmutt.git] / crypt.cpkg
index b140ddf..1387f54 100644 (file)
@@ -4042,4 +4042,44 @@ int mutt_signed_handler(BODY *a, STATE *s)
   return (rc);
 }
 
+static int _mutt_check_traditional_pgp (HEADER * h, int *redraw)
+{
+  MESSAGE *msg;
+  int rv = 0;
+
+  h->security |= PGP_TRADITIONAL_CHECKED;
+
+  mutt_parse_mime_message (Context, h);
+  if ((msg = mx_open_message (Context, h->msgno)) == NULL)
+    return 0;
+  if (crypt_pgp_check_traditional (msg->fp, h->content, 0)) {
+    h->security = crypt_query (h->content);
+    *redraw |= REDRAW_FULL;
+    rv = 1;
+  }
+
+  h->security |= PGP_TRADITIONAL_CHECKED;
+  mx_close_message (&msg);
+  return rv;
+}
+
+int mutt_check_traditional_pgp (HEADER * h, int *redraw)
+{
+  int i;
+  int rv = 0;
+
+  if (h && !(h->security & PGP_TRADITIONAL_CHECKED))
+    rv = _mutt_check_traditional_pgp (h, redraw);
+  else {
+    for (i = 0; i < Context->vcount; i++)
+      if (Context->hdrs[Context->v2r[i]]->tagged &&
+          !(Context->hdrs[Context->v2r[i]]->
+            security & PGP_TRADITIONAL_CHECKED))
+        rv =
+          _mutt_check_traditional_pgp (Context->hdrs[Context->v2r[i]], redraw)
+          || rv;
+  }
+  return rv;
+}
+
 /* vim:set ft=c: */