mutt_buffer_increase_size (out, mutt_strlen (in));
olen = mutt_from_base64 (out->data, in, out->dsize);
+ /* mutt_from_base64 returns raw bytes, so don't terminate the buffer either */
if (olen > 0)
out->dptr = out->data + olen;
else
if (flags & IMAP_CMD_QUEUE)
return 0;
- if (idata->cmdbuf->dptr == idata->cmdbuf->data)
+ if (mutt_buffer_len (idata->cmdbuf) == 0)
return IMAP_CMD_BAD;
rc = mutt_socket_write_d (idata->conn, idata->cmdbuf->data, -1,
flags & IMAP_CMD_PASS ? IMAP_LOG_PASS : IMAP_LOG_CMD);
- idata->cmdbuf->dptr = idata->cmdbuf->data;
+ mutt_buffer_clear (idata->cmdbuf);
/* unidle when command queue is flushed */
if (idata->state == IMAP_IDLE)
hdrs = idata->ctx->hdrs;
for (n = *pos;
- n < idata->ctx->msgcount && buf->dptr - buf->data < IMAP_MAX_CMDLEN;
+ (n < idata->ctx->msgcount) && (mutt_buffer_len (buf) < IMAP_MAX_CMDLEN);
n++)
{
match = 0;
do
{
- cmd->dptr = cmd->data;
+ mutt_buffer_clear (cmd);
mutt_buffer_add_printf (cmd, "%s ", pre);
rc = imap_make_msg_set (idata, cmd, flag, changed, invert, &pos);
if (rc > 0)
}
snprintf (uid, sizeof (uid), "%u", HEADER_DATA(hdr)->uid);
- cmd->dptr = cmd->data;
+ mutt_buffer_clear (cmd);
mutt_buffer_addstr (cmd, "UID STORE ");
mutt_buffer_addstr (cmd, uid);
/* Too big. Just query the whole range then. */
if (chunks == 150 || mutt_strlen (b->data) > 500)
{
- b->dptr = b->data;
+ mutt_buffer_clear (b);
mutt_buffer_add_printf (b, "%u:%u", msn_begin, msn_end);
}
}
char qc = 0; /* quote char */
char *pc;
- /* reset the destination pointer to the beginning of the buffer */
- dest->dptr = dest->data;
+ mutt_buffer_clear (dest);
SKIPWS (tok->dptr);
while ((ch = *tok->dptr))
BUFFER err;
mutt_buffer_init (&err);
- err.dsize = STRING;
- err.data = safe_malloc(err.dsize);
- err.dptr = err.data;
+ mutt_buffer_increase_size (&err, STRING);
Groups = hash_create (1031, 0);
/* reverse alias keys need to be strdup'ed because of idna conversions */
/* prepare BUFFERs */
srcbuf = mutt_buffer_from (srccopy);
+ /* note: we are resetting dptr and *reading* from the buffer, so we don't
+ * want to use mutt_buffer_clear(). */
srcbuf->dptr = srcbuf->data;
word = mutt_buffer_new ();
command = mutt_buffer_new ();
/* else overwrite */
else
{
- e->spam->dptr = e->spam->data;
- *e->spam->dptr = '\0';
+ mutt_buffer_clear (e->spam);
mutt_buffer_addstr(e->spam, buf);
}
}