use my own APIS for headers, parameters and so on
[apps/madmutt.git] / imap / message.c
index 4781a36..518718f 100644 (file)
 #include <ctype.h>
 
 #include <lib-lib/mem.h>
+#include <lib-lib/ascii.h>
+#include <lib-lib/str.h>
+#include <lib-lib/buffer.h>
 
 #include "mutt.h"
-#include "ascii.h"
-#include "buffer.h"
 #include "mutt_curses.h"
 #include "imap_private.h"
 #include "message.h"
@@ -32,9 +33,8 @@
 #include "pgp.h"
 #endif
 
-#include "lib/mem.h"
-#include "lib/intl.h"
-#include "lib/str.h"
+#include <lib-lib/macros.h>
+#include <lib-lib/file.h>
 #include "lib/debug.h"
 
 #if HAVE_STDINT_H
@@ -132,7 +132,7 @@ 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));
+      p_clear(&h, 1);
       h.data = p_new(IMAP_HEADER_DATA, 1);
       do {
         mfhrc = 0;
@@ -223,7 +223,7 @@ int imap_read_headers (IMAP_DATA * idata, int msgbegin, int msgend)
 
     /* freshen fp, h */
     rewind (fp);
-    memset (&h, 0, sizeof (h));
+    p_clear(&h, 1);
     h.data = p_new(IMAP_HEADER_DATA, 1);
 
     /* this DO loop does two things:
@@ -247,7 +247,7 @@ int imap_read_headers (IMAP_DATA * idata, int msgbegin, int msgend)
       fputs ("\n\n", fp);
 
       /* update context with message header */
-      ctx->hdrs[msgno] = mutt_new_header ();
+      ctx->hdrs[msgno] = header_new();
 
       ctx->hdrs[msgno]->index = h.sid - 1;
       if (h.sid != ctx->msgcount + 1)
@@ -356,7 +356,7 @@ 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+"))) {
     p_delete(&cache->path);
     return -1;
@@ -552,8 +552,7 @@ int imap_append_message (CONTEXT * ctx, MESSAGE * msg)
 
     debug_print (1, ("command failed: %s\n", idata->cmd.buf));
 
-    pc = idata->cmd.buf + SEQLEN;
-    SKIPWS (pc);
+    pc = vskipspaces(idata->cmd.buf + SEQLEN);
     pc = imap_next_word (pc);
     mutt_error ("%s", pc);
     mutt_sleep (1);
@@ -588,8 +587,7 @@ int imap_append_message (CONTEXT * ctx, MESSAGE * msg)
     char *pc;
 
     debug_print (1, ("command failed: %s\n", idata->cmd.buf));
-    pc = idata->cmd.buf + SEQLEN;
-    SKIPWS (pc);
+    pc = vskipspaces(idata->cmd.buf + SEQLEN);
     pc = imap_next_word (pc);
     mutt_error ("%s", pc);
     mutt_sleep (1);
@@ -642,8 +640,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 */
@@ -771,8 +769,8 @@ void imap_add_keywords (char *s, HEADER * h, LIST * mailbox_flags,
 
   while (keywords) {
     if (msg_has_flag (mailbox_flags, keywords->data)) {
-      str_cat (s, slen, keywords->data);
-      str_cat (s, slen, " ");
+      m_strcat(s, slen, keywords->data);
+      m_strcat(s, slen, " ");
     }
     keywords = keywords->next;
   }
@@ -795,7 +793,7 @@ char *imap_set_flags (IMAP_DATA * idata, HEADER * h, char *s)
   IMAP_HEADER newh;
   unsigned char readonly;
 
-  memset (&newh, 0, sizeof (newh));
+  p_clear(&newh, 1);
   newh.data = p_new(IMAP_HEADER_DATA, 1);
 
   debug_print (2, ("parsing FLAGS\n"));
@@ -895,7 +893,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.
@@ -951,7 +949,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;
@@ -970,22 +968,20 @@ static int msg_parse_fetch (IMAP_HEADER * h, char *s)
     return -1;
 
   while (*s) {
-    SKIPWS (s);
+    s = vskipspaces(s);
 
     if (ascii_strncasecmp ("FLAGS", s, 5) == 0) {
       if ((s = msg_parse_flags (h, s)) == NULL)
         return -1;
     }
     else if (ascii_strncasecmp ("UID", s, 3) == 0) {
-      s += 3;
-      SKIPWS (s);
+      s = vskipspaces(s + 3);
       h->data->uid = (unsigned int) atoi (s);
 
       s = imap_next_word (s);
     }
     else if (ascii_strncasecmp ("INTERNALDATE", s, 12) == 0) {
-      s += 12;
-      SKIPWS (s);
+      s = vskipspaces(s + 12);
       if (*s != '\"') {
         debug_print (1, ("bogus INTERNALDATE entry: %s\n", s));
         return -1;
@@ -1001,8 +997,7 @@ static int msg_parse_fetch (IMAP_HEADER * h, char *s)
       h->received = imap_parse_date (tmp);
     }
     else if (ascii_strncasecmp ("RFC822.SIZE", s, 11) == 0) {
-      s += 11;
-      SKIPWS (s);
+      s = vskipspaces(s + 11);
       ptmp = tmp;
       while (isdigit ((unsigned char) *s))
         *ptmp++ = *s++;
@@ -1036,8 +1031,7 @@ static char *msg_parse_flags (IMAP_HEADER * h, char *s)
     debug_print (1, ("not a FLAGS response: %s\n", s));
     return NULL;
   }
-  s += 5;
-  SKIPWS (s);
+  s = vskipspaces(s + 5);
   if (*s != '(') {
     debug_print (1, ("bogus FLAGS response: %s\n", s));
     return NULL;
@@ -1081,7 +1075,7 @@ static char *msg_parse_flags (IMAP_HEADER * h, char *s)
       mutt_add_list (h->data->keywords, flag_word);
       *s = ctmp;
     }
-    SKIPWS (s);
+    s = vskipspaces(s);
   }
 
   /* wrap up, or note bad flags response */