bool parent_rfc822;
if (hdr == NULL) {
- if (part->context == NULL) {
+ if (part->data == NULL) {
/* no Content-* headers. add an empty context
structure anyway. */
- part->context = part_data =
+ part->data = part_data =
p_new(pool, struct message_part_data, 1);
part_data->pool = pool;
} else if ((part->flags & MESSAGE_PART_FLAG_IS_MIME) == 0) {
/* If there was no Mime-Version, forget all
the Content-stuff */
- part_data = part->context;
+ part_data = part->data;
envelope = part_data->envelope;
i_zero(part_data);
if (!parent_rfc822 && strncasecmp(hdr->name, "Content-", 8) != 0)
return;
- if (part->context == NULL) {
+ if (part->data == NULL) {
/* initialize message part data */
- part->context = part_data =
+ part->data = part_data =
p_new(pool, struct message_part_data, 1);
part_data->pool = pool;
}
- part_data = part->context;
+ part_data = part->data;
if (strncasecmp(hdr->name, "Content-", 8) == 0) {
T_BEGIN {
static void part_write_body_multipart(const struct message_part *part,
string_t *str, bool extended)
{
- struct message_part_data *data = part->context;
+ struct message_part_data *data = part->data;
if (part->children != NULL)
imap_bodystructure_write_siblings(part->children, str, extended);
static void part_write_body(const struct message_part *part,
string_t *str, bool extended)
{
- struct message_part_data *data = part->context;
+ struct message_part_data *data = part->data;
bool text;
if (part->flags & MESSAGE_PART_FLAG_MESSAGE_RFC822) {
i_assert(part->children != NULL);
i_assert(part->children->next == NULL);
- child_data = part->children->context;
+ child_data = part->children->data;
str_append(str, " (");
if (child_data->envelope_str != NULL)
bool imap_bodystructure_is_plain_7bit(const struct message_part *part)
{
- const struct message_part_data *data = part->context;
+ const struct message_part_data *data = part->data;
i_assert(part->parent == NULL);
uoff_t vsize;
bool multipart, text, message_rfc822;
- i_assert(part->context == NULL);
+ i_assert(part->data == NULL);
- part->context = data = p_new(pool, struct message_part_data, 1);
+ part->data = data = p_new(pool, struct message_part_data, 1);
data->pool = pool;
multipart = FALSE;
}
str_truncate(tmpstr, 0);
imap_write_envelope(list_args, tmpstr);
- child_data = part->children->context;
+ child_data = part->children->data;
child_data->envelope_str = p_strdup(pool, str_c(tmpstr));
args += 2;
struct message_part;
struct message_header_line;
-/* Parse a single header. Note that this modifies part->context. */
+/* Parse a single header. Note that this modifies part->data. */
void imap_bodystructure_parse_header(pool_t pool, struct message_part *part,
struct message_header_line *hdr);
bool imap_bodystructure_is_plain_7bit(const struct message_part *part)
ATTR_PURE;
-/* Write a BODY/BODYSTRUCTURE from given message_part. The
- message_part->contexts must contain struct message_part_data.
- part->body_size.virtual_size and .lines are also used for writing it. */
+/* Write a BODY/BODYSTRUCTURE from given message_part. The message_part->data
+ field must be set. part->body_size.virtual_size and .lines are also used
+ for writing it. */
void imap_bodystructure_write(const struct message_part *part,
string_t *dest, bool extended);
-/* Parse BODYSTRUCTURE and save the contents to message_part->contexts.
- Returns 0 if ok, -1 if bodystructure wasn't valid. */
+/* Parse BODYSTRUCTURE and save the contents to message_part->data for each
+ message tree node. Returns 0 if ok, -1 if bodystructure wasn't valid. */
int imap_bodystructure_parse(const char *bodystructure, pool_t pool,
struct message_part *parts, const char **error_r);