cache = &idata->cache[cacheno];
if (cache->path) {
- if (cache->uid == HEADER_DATA (h)->uid) {
- /* yes, so just return a pointer to the message */
- if (!(msg->fp = fopen (cache->path, "r"))) {
- mutt_perror (cache->path);
- return (-1);
- }
+ /* don't treat cache errors as fatal, just fall back. */
+ if (cache->uid == HEADER_DATA(h)->uid && (msg->fp = fopen (cache->path, "r")))
return 0;
- }
else {
- /* clear the previous entry */
unlink (cache->path);
FREE (&cache->path);
}
cache->uid = HEADER_DATA (h)->uid;
mutt_mktemp (path);
- cache->path = safe_strdup (path);
+ cache->path = str_dup (path);
if (!(msg->fp = safe_fopen (path, "w+"))) {
FREE (&cache->path);
return -1;
/* see comment before command start. */
h->active = 1;
+ fflush (msg->fp);
+ if (ferror (msg->fp)) {
+ mutt_perror (cache->path);
+ goto bail;
+ }
+
if (rc != IMAP_CMD_OK)
goto bail;
while (keywords) {
if (msg_has_flag (mailbox_flags, keywords->data)) {
- safe_strcat (s, slen, keywords->data);
- safe_strcat (s, slen, " ");
+ str_cat (s, slen, keywords->data);
+ str_cat (s, slen, " ");
}
keywords = keywords->next;
}
#if USE_HCACHE
static size_t imap_hcache_keylen (const char *fn)
{
- return mutt_strlen (fn);
+ return str_len (fn);
}
/* msg_fetch_header: import IMAP FETCH response into an IMAP_HEADER.
flag_list = flag_list->next;
while (flag_list) {
- if (!ascii_strncasecmp (flag_list->data, flag, mutt_strlen (flag_list->data)))
+ if (!ascii_strncasecmp (flag_list->data, flag, str_len (flag_list->data)))
return 1;
flag_list = flag_list->next;