+ if (!ctx->quiet && ReadInc && ((count % ReadInc) == 0 || count == 1))
+ mutt_message (_("Reading %s... %d"), ctx->path, count);
+ snprintf (fn, sizeof (fn), "%s/%s", ctx->path, p->h->path);
+
+#if USE_HCACHE
+ if (option (OPTHCACHEVERIFY)) {
+ ret = stat (fn, &lastchanged);
+ }
+ else {
+ lastchanged.st_mtime = 0;
+ ret = 0;
+ }
+
+ if (data != NULL && !ret && lastchanged.st_mtime <= when->tv_sec) {
+ p->h = mutt_hcache_restore ((unsigned char *) data, &p->h);
+ maildir_parse_flags (p->h, fn);
+ }
+ else
+#endif
+ if (maildir_parse_message (ctx->magic, fn, p->h->old, p->h)) {
+ p->header_parsed = 1;
+ maildir_parse_flags (p->h, fn);
+#if USE_HCACHE
+ mutt_hcache_store (hc, p->h->path + 3, p->h, 0, &maildir_hcache_keylen);
+#endif
+ }
+ else
+ mutt_free_header (&p->h);
+#if USE_HCACHE
+ FREE (&data);
+#endif
+ }
+#if USE_HCACHE
+ mutt_hcache_close (hc);
+#endif
+}