File: //usr/include/dovecot/sieve/edit-mail.h
#ifndef EDIT_MAIL_H
#define EDIT_MAIL_H
struct edit_mail;
struct edit_mail *edit_mail_wrap(struct mail *mail);
void edit_mail_unwrap(struct edit_mail **edmail);
struct edit_mail *edit_mail_snapshot(struct edit_mail *edmail);
void edit_mail_reset(struct edit_mail *edmail);
struct mail *edit_mail_get_mail(struct edit_mail *edmail);
/*
* Header modification
*/
/* Simple API */
void edit_mail_header_add(struct edit_mail *edmail, const char *field_name,
const char *value, bool last);
int edit_mail_header_delete(struct edit_mail *edmail,
const char *field_name, int index);
int edit_mail_header_replace(struct edit_mail *edmail,
const char *field_name, int index,
const char *newname, const char *newvalue);
/* Iterator */
struct edit_mail_header_iter;
int edit_mail_headers_iterate_init(struct edit_mail *edmail,
const char *field_name, bool reverse,
struct edit_mail_header_iter **edhiter_r);
void edit_mail_headers_iterate_deinit(struct edit_mail_header_iter **edhiter);
void edit_mail_headers_iterate_get(struct edit_mail_header_iter *edhiter,
const char **value_r);
bool edit_mail_headers_iterate_next(struct edit_mail_header_iter *edhiter);
bool edit_mail_headers_iterate_remove(struct edit_mail_header_iter *edhiter);
bool edit_mail_headers_iterate_replace(struct edit_mail_header_iter *edhiter,
const char *newname,
const char *newvalue);
#endif