use safer p_clear when possible.
[apps/madmutt.git] / imap / message.c
index 949f5d9..7bc797f 100644 (file)
 #include <stdlib.h>
 #include <ctype.h>
 
+#include <lib-lib/mem.h>
+#include <lib-lib/ascii.h>
+#include <lib-lib/str.h>
+
 #include "mutt.h"
-#include "ascii.h"
 #include "buffer.h"
 #include "mutt_curses.h"
 #include "imap_private.h"
@@ -30,9 +33,7 @@
 #include "pgp.h"
 #endif
 
-#include "lib/mem.h"
-#include "lib/intl.h"
-#include "lib/str.h"
+#include <lib-lib/macros.h>
 #include "lib/debug.h"
 
 #if HAVE_STDINT_H
@@ -130,8 +131,8 @@ int imap_read_headers (IMAP_DATA * idata, int msgbegin, int msgend)
         mutt_message (_("Evaluating cache... [%d/%d]"), msgno + 1, msgend + 1);
 
       rewind (fp);
-      memset (&h, 0, sizeof (h));
-      h.data = mem_calloc (1, sizeof (IMAP_HEADER_DATA));
+      p_clear(&h, 1);
+      h.data = p_new(IMAP_HEADER_DATA, 1);
       do {
         mfhrc = 0;
 
@@ -174,7 +175,7 @@ int imap_read_headers (IMAP_DATA * idata, int msgbegin, int msgend)
 
         rewind (fp);
 
-        mem_free (&uid_validity);
+        p_delete(&uid_validity);
 
       }
       while ((rc != IMAP_CMD_OK) && ((mfhrc == -1) ||
@@ -221,8 +222,8 @@ int imap_read_headers (IMAP_DATA * idata, int msgbegin, int msgend)
 
     /* freshen fp, h */
     rewind (fp);
-    memset (&h, 0, sizeof (h));
-    h.data = mem_calloc (1, sizeof (IMAP_HEADER_DATA));
+    p_clear(&h, 1);
+    h.data = p_new(IMAP_HEADER_DATA, 1);
 
     /* this DO loop does two things:
      * 1. handles untagged messages, so we can try again on the same msg
@@ -345,7 +346,7 @@ int imap_fetch_message (MESSAGE * msg, CONTEXT * ctx, int msgno)
       return 0;
     else {
       unlink (cache->path);
-      mem_free (&cache->path);
+      p_delete(&cache->path);
     }
   }
 
@@ -354,9 +355,9 @@ int imap_fetch_message (MESSAGE * msg, CONTEXT * ctx, int msgno)
 
   cache->uid = HEADER_DATA (h)->uid;
   mutt_mktemp (path);
-  cache->path = str_dup (path);
+  cache->path = m_strdup(path);
   if (!(msg->fp = safe_fopen (path, "w+"))) {
-    mem_free (&cache->path);
+    p_delete(&cache->path);
     return -1;
   }
 
@@ -480,7 +481,7 @@ bail:
   safe_fclose (&msg->fp);
   if (cache->path) {
     unlink (cache->path);
-    mem_free (&cache->path);
+    p_delete(&cache->path);
   }
 
   return -1;
@@ -594,11 +595,11 @@ int imap_append_message (CONTEXT * ctx, MESSAGE * msg)
     goto fail;
   }
 
-  mem_free (&mx.mbox);
+  p_delete(&mx.mbox);
   return 0;
 
 fail:
-  mem_free (&mx.mbox);
+  p_delete(&mx.mbox);
   return -1;
 }
 
@@ -640,8 +641,8 @@ int imap_copy_messages (CONTEXT * ctx, HEADER * h, char *dest, int delete)
 
   imap_fix_path (idata, mx.mbox, mbox, sizeof (mbox));
 
-  memset (&sync_cmd, 0, sizeof (sync_cmd));
-  memset (&cmd, 0, sizeof (cmd));
+  p_clear(&sync_cmd, 1);
+  p_clear(&cmd, 1);
   mutt_buffer_addstr (&cmd, "UID COPY ");
 
   /* Null HEADER* means copy tagged messages */
@@ -740,18 +741,18 @@ int imap_copy_messages (CONTEXT * ctx, HEADER * h, char *dest, int delete)
   }
 
   if (cmd.data)
-    mem_free (&cmd.data);
+    p_delete(&cmd.data);
   if (sync_cmd.data)
-    mem_free (&sync_cmd.data);
-  mem_free (&mx.mbox);
+    p_delete(&sync_cmd.data);
+  p_delete(&mx.mbox);
   return 0;
 
 fail:
   if (cmd.data)
-    mem_free (&cmd.data);
+    p_delete(&cmd.data);
   if (sync_cmd.data)
-    mem_free (&sync_cmd.data);
-  mem_free (&mx.mbox);
+    p_delete(&sync_cmd.data);
+  p_delete(&mx.mbox);
   return -1;
 }
 
@@ -782,7 +783,7 @@ void imap_free_header_data (void **data)
   /* this should be safe even if the list wasn't used */
   mutt_free_list (&(((IMAP_HEADER_DATA *) * data)->keywords));
 
-  mem_free (data);
+  p_delete(data);
 }
 
 /* imap_set_flags: fill out the message header according to the flags from
@@ -793,12 +794,12 @@ char *imap_set_flags (IMAP_DATA * idata, HEADER * h, char *s)
   IMAP_HEADER newh;
   unsigned char readonly;
 
-  memset (&newh, 0, sizeof (newh));
-  newh.data = mem_calloc (1, sizeof (IMAP_HEADER_DATA));
+  p_clear(&newh, 1);
+  newh.data = p_new(IMAP_HEADER_DATA, 1);
 
   debug_print (2, ("parsing FLAGS\n"));
   if ((s = msg_parse_flags (&newh, s)) == NULL) {
-    mem_free (&newh.data);
+    p_delete(&newh.data);
     return NULL;
   }
 
@@ -824,7 +825,7 @@ char *imap_set_flags (IMAP_DATA * idata, HEADER * h, char *s)
 
   mutt_free_list (&(HEADER_DATA (h)->keywords));
   HEADER_DATA (h)->keywords = newh.data->keywords;
-  mem_free (&newh.data);
+  p_delete(&newh.data);
 
   return s;
 }
@@ -893,7 +894,7 @@ static int msg_fetch_header (CONTEXT * ctx, IMAP_HEADER * h, char *buf,
 #ifdef USE_HCACHE
 static size_t imap_hcache_keylen (const char *fn)
 {
-  return str_len (fn);
+  return m_strlen(fn);
 }
 
 /* msg_fetch_header: import IMAP FETCH response into an IMAP_HEADER.
@@ -949,7 +950,7 @@ static int msg_has_flag (LIST * flag_list, const char *flag)
 
   flag_list = flag_list->next;
   while (flag_list) {
-    if (!ascii_strncasecmp (flag_list->data, flag, str_len (flag_list->data)))
+    if (!ascii_strncasecmp (flag_list->data, flag, m_strlen(flag_list->data)))
       return 1;
 
     flag_list = flag_list->next;