more work in the lib-mime. begin to "rewr^H^Had" the code in rfc2231.c
[apps/madmutt.git] / gnupgparse.c
index 48a70bc..b9f00ba 100644 (file)
 #include <time.h>
 #include <ctype.h>
 
+#include <lib-lib/mem.h>
+#include <lib-lib/str.h>
+
+#include <lib-mime/mime.h>
+
 #include "mutt.h"
 #include "pgp.h"
 #include "charset.h"
 
-/* for hexval */
-#include "mime.h"
+#include "lib/debug.h"
 
 /****************
  * Read the GNUPG keys.  For now we read the complete keyring by
@@ -80,22 +84,22 @@ static void fix_uid (char *uid)
   if (_chs && (cd = mutt_iconv_open (_chs, "utf-8", 0)) != (iconv_t) - 1) {
     int n = s - uid + 1;        /* chars available in original buffer */
     char *buf;
-    ICONV_CONST char *ib;
+    const char *ib;
     char *ob;
     size_t ibl, obl;
 
-    buf = safe_malloc (n + 1);
+    buf = p_new(char, n + 1);
     ib = uid, ibl = d - uid + 1, ob = buf, obl = n;
-    iconv (cd, &ib, &ibl, &ob, &obl);
+    my_iconv(cd, &ib, &ibl, &ob, &obl);
     if (!ibl) {
       if (ob - buf < n) {
         memcpy (uid, buf, ob - buf);
         uid[ob - buf] = '\0';
       }
-      else if (ob - buf == n && (buf[n] = 0, mutt_strlen (buf) < n))
+      else if (ob - buf == n && (buf[n] = 0, m_strlen(buf) < n))
         memcpy (uid, buf, n);
     }
-    FREE (&buf);
+    p_delete(&buf);
     iconv_close (cd);
   }
 }
@@ -112,7 +116,7 @@ static pgp_key_t parse_pub_line (char *buf, int *is_subkey, pgp_key_t k)
   if (!*buf)
     return NULL;
 
-  dprint (2, (debugfile, "parse_pub_line: buf = `%s'\n", buf));
+  debug_print (2, ("buf = `%s'\n", buf));
 
   for (p = buf; p; p = pend) {
     if ((pend = strchr (p, ':')))
@@ -124,27 +128,27 @@ static pgp_key_t parse_pub_line (char *buf, int *is_subkey, pgp_key_t k)
     switch (field) {
     case 1:                    /* record type */
       {
-        dprint (2, (debugfile, "record type: %s\n", p));
+        debug_print (2, ("record type: %s\n", p));
 
-        if (!mutt_strcmp (p, "pub"));
-        else if (!mutt_strcmp (p, "sub"))
+        if (!m_strcmp(p, "pub"));
+        else if (!m_strcmp(p, "sub"))
           *is_subkey = 1;
-        else if (!mutt_strcmp (p, "sec"));
-        else if (!mutt_strcmp (p, "ssb"))
+        else if (!m_strcmp(p, "sec"));
+        else if (!m_strcmp(p, "ssb"))
           *is_subkey = 1;
-        else if (!mutt_strcmp (p, "uid"))
+        else if (!m_strcmp(p, "uid"))
           is_uid = 1;
         else
           return NULL;
 
         if (!(is_uid || (*is_subkey && option (OPTPGPIGNORESUB))))
-          k = safe_calloc (sizeof *k, 1);
+          k = pgp_new_keyinfo();
 
         break;
       }
     case 2:                    /* trust info */
       {
-        dprint (2, (debugfile, "trust info: %s\n", p));
+        debug_print (2, ("trust info: %s\n", p));
 
         switch (*p) {           /* look only at the first letter */
         case 'e':
@@ -178,7 +182,7 @@ static pgp_key_t parse_pub_line (char *buf, int *is_subkey, pgp_key_t k)
     case 3:                    /* key length  */
       {
 
-        dprint (2, (debugfile, "key len: %s\n", p));
+        debug_print (2, ("key len: %s\n", p));
 
         if (!(*is_subkey && option (OPTPGPIGNORESUB)))
           k->keylen = atoi (p); /* fixme: add validation checks */
@@ -187,7 +191,7 @@ static pgp_key_t parse_pub_line (char *buf, int *is_subkey, pgp_key_t k)
     case 4:                    /* pubkey algo */
       {
 
-        dprint (2, (debugfile, "pubkey algorithm: %s\n", p));
+        debug_print (2, ("pubkey algorithm: %s\n", p));
 
         if (!(*is_subkey && option (OPTPGPIGNORESUB))) {
           k->numalg = atoi (p);
@@ -197,10 +201,10 @@ static pgp_key_t parse_pub_line (char *buf, int *is_subkey, pgp_key_t k)
       }
     case 5:                    /* 16 hex digits with the long keyid. */
       {
-        dprint (2, (debugfile, "key id: %s\n", p));
+        debug_print (2, ("key id: %s\n", p));
 
         if (!(*is_subkey && option (OPTPGPIGNORESUB)))
-          mutt_str_replace (&k->keyid, p);
+          str_replace (&k->keyid, p);
         break;
 
       }
@@ -209,14 +213,14 @@ static pgp_key_t parse_pub_line (char *buf, int *is_subkey, pgp_key_t k)
         char tstr[11];
         struct tm time;
 
-        dprint (2, (debugfile, "time stamp: %s\n", p));
+        debug_print (2, ("time stamp: %s\n", p));
 
         if (!p)
           break;
         time.tm_sec = 0;
         time.tm_min = 0;
         time.tm_hour = 12;
-        strncpy (tstr, p, 11);
+        m_strcpy(tstr, sizeof(tstr), p);
         tstr[4] = '\0';
         time.tm_year = atoi (tstr) - 1900;
         tstr[7] = '\0';
@@ -240,11 +244,11 @@ static pgp_key_t parse_pub_line (char *buf, int *is_subkey, pgp_key_t k)
         if (!is_uid && (*is_subkey && option (OPTPGPIGNORESUB)))
           break;
 
-        dprint (2, (debugfile, "user ID: %s\n", p));
+        debug_print (2, ("user ID: %s\n", p));
 
-        uid = safe_calloc (sizeof (pgp_uid_t), 1);
+        uid = p_new(pgp_uid_t, 1);
         fix_uid (p);
-        uid->addr = safe_strdup (p);
+        uid->addr = m_strdup(p);
         uid->trust = trust;
         uid->flags |= flags;
         uid->parent = k;
@@ -261,7 +265,7 @@ static pgp_key_t parse_pub_line (char *buf, int *is_subkey, pgp_key_t k)
     case 11:                   /* signature class  */
       break;
     case 12:                   /* key capabilities */
-      dprint (2, (debugfile, "capabilities info: %s\n", p));
+      debug_print (2, ("capabilities info: %s\n", p));
 
       while (*p) {
         switch (*p++) {
@@ -306,7 +310,7 @@ pgp_key_t pgp_get_candidates (pgp_ring_t keyring, LIST * hints)
   if ((devnull = open ("/dev/null", O_RDWR)) == -1)
     return NULL;
 
-  mutt_str_replace (&_chs, Charset);
+  str_replace (&_chs, Charset);
 
   thepid = pgp_invoke_list_keys (NULL, &fp, NULL, -1, -1, devnull,
                                  keyring, hints);