From e6989a418ced63941a3d5ef782410366c6c19658 Mon Sep 17 00:00:00 2001 From: Brendan Cully Date: Thu, 5 Apr 2007 16:14:09 -0700 Subject: [PATCH] Fix mh header caching (closes #2472) --- ChangeLog | 6 ++++++ hcache.c | 9 ++++++--- mh.c | 7 ++++++- 3 files changed, 18 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index 2470321a..be4c1137 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2007-04-05 15:21 -0700 Brendan Cully (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 (3638701db407) * ChangeLog, configure.ac: Check for BDB4 libs in $lib as well as diff --git a/hcache.c b/hcache.c index 9f10cb13..2d50bde6 100644 --- 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 44542e00..76a79a11 100644 --- 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 { -- 2.40.0