]> granicus.if.org Git - mutt/commitdiff
Fix mh header caching (closes #2472)
authorBrendan Cully <brendan@kublai.com>
Thu, 5 Apr 2007 23:14:09 +0000 (16:14 -0700)
committerBrendan Cully <brendan@kublai.com>
Thu, 5 Apr 2007 23:14:09 +0000 (16:14 -0700)
ChangeLog
hcache.c
mh.c

index 2470321a440ce0e4a984dbbd9b510ead7e3a14f0..be4c1137f9894f02a0e1804623ba42663ea04993 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2007-04-05 15:21 -0700  Brendan Cully  <brendan@kublai.com>  (7cf4415ec23d)
+
+       * configure.ac: Teach --with-gdbm to accept a prefix (closes #2413)
+
+       * hcachever.sh: POSIX fixes for hcachever.sh
+
 2007-04-05 13:06 -0700  Jukka Salmi  <j+mutt@2007.salmi.ch>  (3638701db407)
 
        * ChangeLog, configure.ac: Check for BDB4 libs in $lib as well as
index 9f10cb13c2274a44c4eab463f63506e1061bdc89..2d50bde675c0134fc93e4c1f9c5f53eb847ba542 100644 (file)
--- a/hcache.c
+++ b/hcache.c
@@ -602,7 +602,8 @@ mutt_hcache_fetch_raw (header_cache_t *h, const char *filename,
     return NULL;
   
 #ifdef HAVE_DB4
-  filename++;                  /* skip '/' */
+  if (filename[0] == '/')
+    filename++;
 
   mutt_hcache_dbt_init(&key, (void *) filename, keylen(filename));
   mutt_hcache_dbt_empty_init(&data);
@@ -671,7 +672,8 @@ mutt_hcache_store_raw (header_cache_t* h, const char* filename, void* data,
     return -1;
 
 #if HAVE_DB4
-  filename++;                  /* skip '/' */
+  if (filename[0] == '/')
+    filename++;
   
   mutt_hcache_dbt_init(&key, (void *) filename, keylen(filename));
   
@@ -976,7 +978,8 @@ mutt_hcache_delete(header_cache_t *h, const char *filename,
   if (!h)
     return -1;
 
-  filename++;                  /* skip '/' */
+  if (filename[0] == '/')
+    filename++;
 
   mutt_hcache_dbt_init(&key, (void *) filename, keylen(filename));
   return h->db->del(h->db, NULL, &key, 0);
diff --git a/mh.c b/mh.c
index 44542e002a6b2b497f56574ebc3dc3d92945f103..76a79a11223d9fc2b4880e2bc3d271705b24ed45 100644 (file)
--- a/mh.c
+++ b/mh.c
@@ -702,8 +702,13 @@ static int maildir_parse_entry (CONTEXT * ctx, struct maildir ***last,
     if (hc && (data = mutt_hcache_fetch (hc, fname, strlen)))
       h = mutt_hcache_restore ((unsigned char *) data, NULL);
     else
-#endif
+    {
+      h = maildir_parse_message (ctx->magic, buf, is_old, NULL);
+      mutt_hcache_store (hc, fname, h, 0, strlen);
+    }
+#else
     h = maildir_parse_message (ctx->magic, buf, is_old, NULL);
+#endif
   }
   else
   {