-void *mutt_hcache_open (const char *path, const char *folder)
-{
- struct header_cache *h = p_new(struct header_cache, 1);
- int pagesize =
- atoi (HeaderCachePageSize) ? atoi (HeaderCachePageSize) : 16384;
- h->db = NULL;
- h->folder = m_strdup(folder);
- h->crc = generate_crc32 ();
-
- if (!path || path[0] == '\0') {
- p_delete(&h->folder);
- p_delete(&h);
- return NULL;
- }
-
- path = mutt_hcache_per_folder (path, folder);
-
- h->db = gdbm_open ((char *) path, pagesize, GDBM_WRCREAT, 00600, NULL);
- if (h->db) {
- return h;
- }
-
- /* if rw failed try ro */
- h->db = gdbm_open ((char *) path, pagesize, GDBM_READER, 00600, NULL);
- if (h->db) {
- return h;
- }
- else {
- p_delete(&h->folder);
- p_delete(&h);
-
- return NULL;
- }
-}
-
-void mutt_hcache_close (void *db)
-{
- struct header_cache *h = db;
-
- if (!h) {
- return;
- }
-
- gdbm_close (h->db);
- p_delete(&h->folder);
- p_delete(&h);
-}
-
-void *mutt_hcache_fetch (void *db, const char *filename,