less horrible strncpy's
[apps/madmutt.git] / hcache.c
index e31aabc..e513c76 100644 (file)
--- a/hcache.c
+++ b/hcache.c
@@ -41,6 +41,7 @@
 #endif
 
 #include <lib-lib/mem.h>
+#include <lib-hash/hash.h>
 
 #include "mutt.h"
 #ifdef USE_IMAP
@@ -49,9 +50,7 @@
 #include "mime.h"
 #include "mx.h"
 #include "lib.h"
-#include "md5.h"
 
-#include "lib/mem.h"
 #include "lib/debug.h"
 
 #if HAVE_QDBM
@@ -101,7 +100,7 @@ static void lazy_realloc (void *ptr, size_t siz)
     return;
   }
 
-  mem_realloc (ptr, siz);
+  p_realloc(ptr, siz);
 }
 
 static unsigned char *dump_int (unsigned int i, unsigned char *d, int *off)
@@ -129,7 +128,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);
@@ -452,35 +451,35 @@ 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 *) Charset, m_strlen(Charset));
   crc =
     crc32 (crc, (unsigned char const *) "HAVE_LANGINFO_CODESET",
-           str_len ("HAVE_LANGINFO_CODESET"));
+           m_strlen("HAVE_LANGINFO_CODESET"));
 #endif
 
 #ifdef USE_POP
   crc =
-    crc32 (crc, (unsigned char const *) "USE_POP", str_len ("USE_POP"));
+    crc32 (crc, (unsigned char const *) "USE_POP", m_strlen("USE_POP"));
 #endif
 
 #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;
 }
@@ -519,7 +518,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,
@@ -598,7 +597,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);
   }
 
@@ -609,10 +608,10 @@ HEADER *mutt_hcache_restore (const unsigned char *d, HEADER ** oh)
 void *
 mutt_hcache_open(const char *path, const char *folder)
 {
-  struct header_cache *h = mem_calloc(1, sizeof (HEADER_CACHE));
+  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')
@@ -664,7 +663,7 @@ mutt_hcache_fetch(void *db, const char *filename,
   if (!h)
     return NULL;
 
-  strncpy(path, h->folder, sizeof (path));
+  m_strcpy(path, sizeof(path), h->folder);
   str_cat(path, sizeof (path), filename);
 
   ksize = strlen(h->folder) + keylen(path + strlen(h->folder));
@@ -694,7 +693,7 @@ mutt_hcache_store(void *db, const char *filename, HEADER * header,
   if (!h)
     return -1;
 
-  strncpy(path, h->folder, sizeof (path));
+  m_strcpy(path, sizeof(path), h->folder);
   str_cat(path, sizeof (path), filename);
 
   ksize = strlen(h->folder) + keylen(path + strlen(h->folder));
@@ -719,7 +718,7 @@ mutt_hcache_delete(void *db, const char *filename,
   if (!h)
     return -1;
 
-  strncpy(path, h->folder, sizeof (path));
+  m_strcpy(path, sizeof(path), h->folder);
   str_cat(path, sizeof (path), filename);
 
   ksize = strlen(h->folder) + keylen(path + strlen(h->folder));
@@ -731,11 +730,11 @@ mutt_hcache_delete(void *db, const char *filename,
 
 void *mutt_hcache_open (const char *path, const char *folder)
 {
-  struct header_cache *h = mem_calloc (1, sizeof (HEADER_CACHE));
+  struct header_cache *h = p_new(HEADER_CACHE, 1);
   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') {
@@ -789,8 +788,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);
@@ -819,8 +818,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);
@@ -846,8 +845,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);