always build POP support, we do a /mail/ client, right ?
[apps/madmutt.git] / hcache.c
index fd706db..308ac68 100644 (file)
--- a/hcache.c
+++ b/hcache.c
 #endif
 
 #include <lib-lib/mem.h>
+#include <lib-hash/hash.h>
+
+#include <lib-mime/mime.h>
 
 #include "mutt.h"
 #ifdef USE_IMAP
 #include "message.h"
 #endif
-#include "mime.h"
 #include "mx.h"
 #include "lib.h"
-#include "md5.h"
 
 #include "lib/debug.h"
 
@@ -128,7 +129,7 @@ static unsigned char *dump_char (char *c, unsigned char *d, int *off)
     return d;
   }
 
-  size = str_len (c) + 1;
+  size = m_strlen(c) + 1;
   d = dump_int (size, d, off);
   lazy_realloc (&d, *off + size);
   memcpy (d + *off, c, size);
@@ -171,7 +172,7 @@ static void restore_char (char **c, const unsigned char *d, int *off)
   *off += size;
 }
 
-static unsigned char *dump_address (ADDRESS * a, unsigned char *d, int *off)
+static unsigned char *dump_address (address_t * a, unsigned char *d, int *off)
 {
   unsigned int counter = 0;
   unsigned int start_off = *off;
@@ -191,14 +192,14 @@ static unsigned char *dump_address (ADDRESS * a, unsigned char *d, int *off)
   return d;
 }
 
-static void restore_address (ADDRESS ** a, const unsigned char *d, int *off)
+static void restore_address (address_t ** a, const unsigned char *d, int *off)
 {
   unsigned int counter;
 
   restore_int (&counter, d, off);
 
   while (counter) {
-    *a = p_new(ADDRESS, 1);
+    *a = p_new(address_t, 1);
     restore_char (&(*a)->personal, d, off);
     restore_char (&(*a)->mailbox, d, off);
     restore_int ((unsigned int *) &(*a)->group, d, off);
@@ -451,35 +452,31 @@ static int generate_crc32 ()
 
   crc = crc32 (crc, (unsigned char const *)
                MUTTNG_HCACHE_ID "sithglan@stud.uni-erlangen.de[sithglan]|hcache.c|20041108231548|29613",
-               str_len
+               m_strlen
                (MUTTNG_HCACHE_ID "sithglan@stud.uni-erlangen.de[sithglan]|hcache.c|20041108231548|29613"));
 
 #if HAVE_LANGINFO_CODESET
-  crc = crc32 (crc, (unsigned char const *) Charset, str_len (Charset));
-  crc =
-    crc32 (crc, (unsigned char const *) "HAVE_LANGINFO_CODESET",
-           str_len ("HAVE_LANGINFO_CODESET"));
+  crc = crc32 (crc, (unsigned char const *) Charset, m_strlen(Charset));
+  crc = crc32 (crc, (unsigned char const *) "HAVE_LANGINFO_CODESET",
+               m_strlen("HAVE_LANGINFO_CODESET"));
 #endif
 
-#ifdef USE_POP
-  crc =
-    crc32 (crc, (unsigned char const *) "USE_POP", str_len ("USE_POP"));
-#endif
+  crc = crc32(crc, (unsigned char const *) "USE_POP", m_strlen("USE_POP"));
 
 #ifdef MIXMASTER
   crc =
     crc32 (crc, (unsigned char const *) "MIXMASTER",
-           str_len ("MIXMASTER"));
+           m_strlen("MIXMASTER"));
 #endif
 
 #ifdef USE_IMAP
   crc =
-    crc32 (crc, (unsigned char const *) "USE_IMAP", str_len ("USE_IMAP"));
+    crc32 (crc, (unsigned char const *) "USE_IMAP", m_strlen("USE_IMAP"));
 #endif
 
 #ifdef USE_NNTP
   crc =
-    crc32 (crc, (unsigned char const *) "USE_NNTP", str_len ("USE_NNTP"));
+    crc32 (crc, (unsigned char const *) "USE_NNTP", m_strlen("USE_NNTP"));
 #endif
   return crc;
 }
@@ -518,7 +515,7 @@ static const char *mutt_hcache_per_folder (const char *path,
   }
 
   MD5Init (&md5);
-  MD5Update (&md5, (unsigned char *) folder, str_len (folder));
+  MD5Update (&md5, (unsigned char *) folder, m_strlen(folder));
   MD5Final (md5sum, &md5);
 
   ret = snprintf (mutt_hcache_per_folder_path, _POSIX_PATH_MAX,
@@ -597,7 +594,7 @@ HEADER *mutt_hcache_restore (const unsigned char *d, HEADER ** oh)
   /* this is needed for maildir style mailboxes */
   if (oh) {
     h->old = (*oh)->old;
-    h->path = str_dup ((*oh)->path);
+    h->path = m_strdup((*oh)->path);
     mutt_free_header (oh);
   }
 
@@ -611,7 +608,7 @@ mutt_hcache_open(const char *path, const char *folder)
   struct header_cache *h = p_new(HEADER_CACHE, 1);
   int    flags = VL_OWRITER | VL_OCREAT;
   h->db = NULL;
-  h->folder = str_dup(folder);
+  h->folder = m_strdup(folder);
   h->crc = generate_crc32();
 
   if (!path || path[0] == '\0')
@@ -657,20 +654,20 @@ mutt_hcache_fetch(void *db, const char *filename,
 {
   struct header_cache *h = db;
   char path[_POSIX_PATH_MAX];
-  int ksize;
+  int ksize, len;
   char *data = NULL;
 
   if (!h)
     return NULL;
 
-  strncpy(path, h->folder, sizeof (path));
-  str_cat(path, sizeof (path), filename);
+  m_strcpy(path, sizeof(path), h->folder);
+  m_strcat(path, sizeof(path), filename);
 
   ksize = strlen(h->folder) + keylen(path + strlen(h->folder));
 
   data = vlget(h->db, path, ksize, NULL);
 
-  if (! crc32_matches(data, h->crc))
+  if (!crc32_matches(data, h->crc))
   {
     p_delete(&data);
     return NULL;
@@ -693,8 +690,8 @@ mutt_hcache_store(void *db, const char *filename, HEADER * header,
   if (!h)
     return -1;
 
-  strncpy(path, h->folder, sizeof (path));
-  str_cat(path, sizeof (path), filename);
+  m_strcpy(path, sizeof(path), h->folder);
+  m_strcat(path, sizeof(path), filename);
 
   ksize = strlen(h->folder) + keylen(path + strlen(h->folder));
 
@@ -718,8 +715,8 @@ mutt_hcache_delete(void *db, const char *filename,
   if (!h)
     return -1;
 
-  strncpy(path, h->folder, sizeof (path));
-  str_cat(path, sizeof (path), filename);
+  m_strcpy(path, sizeof(path), h->folder);
+  m_strcat(path, sizeof(path), filename);
 
   ksize = strlen(h->folder) + keylen(path + strlen(h->folder));
 
@@ -734,7 +731,7 @@ void *mutt_hcache_open (const char *path, const char *folder)
   int pagesize =
     atoi (HeaderCachePageSize) ? atoi (HeaderCachePageSize) : 16384;
   h->db = NULL;
-  h->folder = str_dup (folder);
+  h->folder = m_strdup(folder);
   h->crc = generate_crc32 ();
 
   if (!path || path[0] == '\0') {
@@ -788,8 +785,8 @@ void *mutt_hcache_fetch (void *db, const char *filename,
     return NULL;
   }
 
-  strncpy (path, h->folder, sizeof (path));
-  strncat (path, filename, sizeof (path) - str_len (path));
+  m_strcpy(path, sizeof(path), h->folder);
+  strncat (path, filename, sizeof (path) - m_strlen(path));
 
   key.dptr = path;
   key.dsize = keylen (path);
@@ -818,8 +815,8 @@ mutt_hcache_store (void *db, const char *filename, HEADER * header,
     return -1;
   }
 
-  strncpy (path, h->folder, sizeof (path));
-  strncat (path, filename, sizeof (path) - str_len (path));
+  m_strcpy(path, sizeof(path), h->folder);
+  strncat (path, filename, sizeof (path) - m_strlen(path));
 
   key.dptr = path;
   key.dsize = keylen (path);
@@ -845,8 +842,8 @@ mutt_hcache_delete (void *db, const char *filename,
     return -1;
   }
 
-  strncpy (path, h->folder, sizeof (path));
-  strncat (path, filename, sizeof (path) - str_len (path));
+  m_strcpy(path, sizeof(path), h->folder);
+  strncat (path, filename, sizeof (path) - m_strlen(path));
 
   key.dptr = path;
   key.dsize = keylen (path);