From: Brendan Cully Date: Thu, 5 Apr 2007 23:14:09 +0000 (-0700) Subject: Fix mh header caching (closes #2472) X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=0c8097f9e67e3df02edfdf9f83dde18b2b225ad9;p=neomutt Fix mh header caching (closes #2472) --- diff --git a/ChangeLog b/ChangeLog index 2470321a4..be4c1137f 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 9f10cb13c..2d50bde67 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 44542e002..76a79a112 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 {