#include <lib-lib/lib-lib.h>
-#include <lib-ui/curses.h>
+#include <lib-ui/lib-ui.h>
#include <lib-mx/mx.h>
#include <lib-mx/hcache.h>
#include "imap_private.h"
#include "message.h"
-#ifdef HAVE_PGP
-#include "pgp.h"
-#endif
-
static void flush_buffer (char *buf, size_t * len, CONNECTION * conn);
static int msg_fetch_header (CONTEXT * ctx, IMAP_HEADER * h, char *buf,
FILE * fp);
int rc, mfhrc, oldmsgcount;
int fetchlast = 0;
const char *want_headers =
- "DATE FROM SUBJECT TO CC MESSAGE-ID REFERENCES CONTENT-TYPE CONTENT-DESCRIPTION IN-REPLY-TO REPLY-TO LINES string_list_t-POST X-LABEL";
+ "DATE FROM SUBJECT TO CC MESSAGE-ID REFERENCES CONTENT-TYPE CONTENT-DESCRIPTION IN-REPLY-TO REPLY-TO LINES LIST-POST X-LABEL";
#ifdef USE_HCACHE
- void *hc = NULL;
- unsigned long *uid_validity = NULL;
+ hcache_t *hc = NULL;
+ long *uid_validity = NULL;
char uid_buf[64];
#endif /* USE_HCACHE */
/* instead of downloading all headers and then parsing them, we parse them
* as they come in. */
- fp = m_tempfile(tempfile, sizeof(tempfile), NONULL(Tempdir), NULL);
+ fp = m_tempfile(tempfile, sizeof(tempfile), NONULL(mod_core.tmpdir), NULL);
if (!fp) {
mutt_error(_("Could not create temporary file"));
mutt_sleep(2);
idata->newMailCount = 0;
#ifdef USE_HCACHE
- if ((hc = mutt_hcache_open (HeaderCache, ctx->path))) {
+ if ((hc = mutt_hcache_open(ctx->path))) {
snprintf (buf, sizeof (buf),
"FETCH %d:%d (UID FLAGS)", msgbegin + 1, msgend + 1);
break;
if ((mfhrc =
- msg_fetch_header_fetch (idata->ctx, &h, idata->cmd.buf, fp)) == -1)
+ msg_fetch_header_fetch (idata->ctx, &h, idata->cmd.buf.data, fp)) == -1)
continue;
else if (mfhrc < 0)
break;
fputs ("\n\n", fp);
sprintf (uid_buf, "/%u", h.data->uid); /* XXX --tg 21:41 04-07-11 */
- uid_validity =
- (unsigned long *) mutt_hcache_fetch (hc, uid_buf, &imap_hcache_keylen);
+ uid_validity = mutt_hcache_fetch (hc, uid_buf, &imap_hcache_keylen);
if (uid_validity != NULL && *uid_validity == idata->uid_validity) {
- ctx->hdrs[msgno] = mutt_hcache_restore((unsigned char *) uid_validity, 0);
+ ctx->hdrs[msgno] = mutt_hcache_restore(uid_validity, 0);
ctx->hdrs[msgno]->index = h.sid - 1;
/* messages which have not been expunged are ACTIVE (borrowed from mh
* folders) */
if ((mfhrc < -1) || ((rc != IMAP_CMD_CONTINUE) && (rc != IMAP_CMD_OK))) {
imap_free_header_data((void *)&h.data);
m_fclose(&fp);
- mutt_hcache_close (hc);
+ mutt_hcache_close (&hc);
return -1;
}
}
break;
if ((mfhrc =
- msg_fetch_header (idata->ctx, &h, idata->cmd.buf, fp)) == -1)
+ msg_fetch_header (idata->ctx, &h, idata->cmd.buf.data, fp)) == -1)
continue;
else if (mfhrc < 0)
break;
imap_free_header_data ((void *)&h.data);
m_fclose(&fp);
#ifdef USE_HCACHE
- mutt_hcache_close (hc);
+ mutt_hcache_close (&hc);
#endif /* USE_HCACHE */
return -1;
}
}
#ifdef USE_HCACHE
- mutt_hcache_close (hc);
+ mutt_hcache_close (&hc);
#endif /* USE_HCACHE */
m_fclose(&fp);
mutt_message _("Fetching message...");
cache->uid = HEADER_DATA (h)->uid;
- msg->fp = m_tempfile(path, sizeof(path), NONULL(Tempdir), NULL);
+ msg->fp = m_tempfile(path, sizeof(path), NONULL(mod_core.tmpdir), NULL);
if (!msg->fp) {
return -1;
}
snprintf (buf, sizeof (buf), "UID FETCH %u %s", HEADER_DATA (h)->uid,
(mutt_bit_isset (idata->capabilities, IMAP4REV1) ?
- (option (OPTIMAPPEEK) ? "BODY.PEEK[]" : "BODY[]") : "RFC822"));
+ "BODY.PEEK[]" : "RFC822"));
imap_cmd_start (idata, buf);
do {
if ((rc = imap_cmd_step (idata)) != IMAP_CMD_CONTINUE)
break;
- pc = idata->cmd.buf;
+ pc = idata->cmd.buf.data;
pc = imap_next_word (pc);
pc = imap_next_word (pc);
/* pick up trailing line */
if ((rc = imap_cmd_step (idata)) != IMAP_CMD_CONTINUE)
goto bail;
- pc = idata->cmd.buf;
+ pc = idata->cmd.buf.data;
fetched = 1;
}
if (rc != IMAP_CMD_OK)
goto bail;
- if (!fetched || !imap_code (idata->cmd.buf))
+ if (!fetched || !imap_code (idata->cmd.buf.data))
goto bail;
/* Update the header information. Previously, we only downloaded a
if (rc != IMAP_CMD_RESPOND) {
char *pc;
- pc = vskipspaces(idata->cmd.buf + SEQLEN);
+ pc = vskipspaces(idata->cmd.buf.data + SEQLEN);
pc = imap_next_word (pc);
mutt_error ("%s", pc);
mutt_sleep (1);
rc = imap_cmd_step (idata);
while (rc == IMAP_CMD_CONTINUE);
- if (!imap_code (idata->cmd.buf)) {
+ if (!imap_code (idata->cmd.buf.data)) {
char *pc;
- pc = vskipspaces(idata->cmd.buf + SEQLEN);
+ pc = vskipspaces(idata->cmd.buf.data + SEQLEN);
pc = imap_next_word (pc);
mutt_error ("%s", pc);
mutt_sleep (1);
if (rc == -2) {
/* bail out if command failed for reasons other than nonexistent target */
if (ascii_strncasecmp
- (imap_get_qualifier (idata->cmd.buf), "[TRYCREATE]", 11)) {
- imap_error ("imap_copy_messages", idata->cmd.buf);
+ (imap_get_qualifier (idata->cmd.buf.data), "[TRYCREATE]", 11)) {
+ imap_error ("imap_copy_messages", idata->cmd.buf.data);
goto fail;
}
snprintf (mmbox, sizeof (mmbox), _("Create %s?"), mbox);
rc = imap_exec (idata, cmd.data, 0);
}
if (rc != 0) {
- imap_error ("imap_copy_messages", idata->cmd.buf);
+ imap_error ("imap_copy_messages", idata->cmd.buf.data);
goto fail;
}
}
}
- if (cmd.data)
- p_delete(&cmd.data);
- if (sync_cmd.data)
- p_delete(&sync_cmd.data);
+ p_delete(&cmd.data);
+ p_delete(&sync_cmd.data);
p_delete(&mx.mbox);
return 0;
fail:
- if (cmd.data)
- p_delete(&cmd.data);
- if (sync_cmd.data)
- p_delete(&sync_cmd.data);
+ p_delete(&cmd.data);
+ p_delete(&sync_cmd.data);
p_delete(&mx.mbox);
return -1;
}
if (imap_cmd_step (idata) != IMAP_CMD_CONTINUE)
return rc;
- if (msg_parse_fetch (h, idata->cmd.buf) == -1)
+ if (msg_parse_fetch (h, idata->cmd.buf.data) == -1)
return rc;
}