80 if (env->
subject[match.rm_eo] !=
'\0')
195 if (!base || !extra || !*extra)
201#define MOVE_ELEM(member) \
204 base->member = (*extra)->member; \
205 (*extra)->member = NULL; \
208#define MOVE_STAILQ(member) \
209 if (STAILQ_EMPTY(&base->member)) \
211 STAILQ_SWAP(&base->member, &(*extra)->member, ListNode); \
214#define MOVE_ADDRESSLIST(member) \
215 if (TAILQ_EMPTY(&base->member)) \
217 TAILQ_SWAP(&base->member, &(*extra)->member, Address, entries); \
220#define MOVE_BUFFER(member) \
221 if (buf_is_empty(&base->member)) \
223 memcpy(&base->member, &(*extra)->member, sizeof(struct Buffer)); \
224 buf_init(&(*extra)->member); \
258 *(
char **) &base->
subject = (*extra)->subject;
259 *(
char **) &base->
real_subj = (*extra)->real_subj;
261 *(
char **) &(*extra)->subject = NULL;
262 *(
char **) &(*extra)->real_subj = NULL;
263 (*extra)->disp_subj = NULL;
273#undef MOVE_ADDRESSLIST
336#define H_TO_INTL(member) \
337 if (mutt_addrlist_to_intl(&env->member, err) && (rc == 0)) \
bool mutt_addrlist_equal(const struct AddressList *ala, const struct AddressList *alb)
Compare two Address lists for equality.
void mutt_addrlist_clear(struct AddressList *al)
Unlink and free all Address in an AddressList.
int mutt_addrlist_to_local(struct AddressList *al)
Convert an Address list from Punycode.
void buf_dealloc(struct Buffer *buf)
Release the memory allocated by a buffer.
const struct Regex * cs_subset_regex(const struct ConfigSubset *sub, const char *name)
Get a regex config item by name.
Convenience wrapper for the config headers.
Convenience wrapper for the core headers.
Representation of an email.
int mutt_env_to_intl(struct Envelope *env, const char **tag, char **err)
Convert an Envelope's Address fields to Punycode format.
void mutt_env_merge(struct Envelope *base, struct Envelope **extra)
Merge the headers of two Envelopes.
void mutt_env_free(struct Envelope **ptr)
Free an Envelope.
#define MOVE_ELEM(member)
#define MOVE_ADDRESSLIST(member)
struct Envelope * mutt_env_new(void)
Create a new Envelope.
#define MOVE_STAILQ(member)
void mutt_env_set_subject(struct Envelope *env, const char *subj)
Set both subject and real_subj to subj.
#define H_TO_INTL(member)
#define MOVE_BUFFER(member)
bool mutt_env_notify_send(struct Email *e, enum NotifyEnvelope type)
Send an Envelope change notification.
bool mutt_env_cmp_strict(const struct Envelope *e1, const struct Envelope *e2)
Strictly compare two Envelopes.
struct AutocryptHeader * mutt_autocrypthdr_new(void)
Create a new AutocryptHeader.
void mutt_autocrypthdr_free(struct AutocryptHeader **ptr)
Free an AutocryptHeader.
void mutt_env_to_local(struct Envelope *env)
Convert an Envelope's Address fields to local format.
Representation of an email header (envelope)
NotifyEnvelope
Types of Envelope Event.
#define MUTT_ENV_CHANGED_XLABEL
X-Label edited.
#define MUTT_ENV_CHANGED_IRT
In-Reply-To changed to link/break threads.
#define MUTT_ENV_CHANGED_REFS
References changed to break thread.
bool mutt_list_equal(const struct ListHead *ah, const struct ListHead *bh)
Compare two string lists.
void mutt_list_free(struct ListHead *h)
Free a List AND its strings.
void * mutt_mem_calloc(size_t nmemb, size_t size)
Allocate zeroed memory on the heap.
Convenience wrapper for the library headers.
bool notify_send(struct Notify *notify, enum NotifyType event_type, int event_subtype, void *event_data)
Send out a notification message.
bool mutt_regex_capture(const struct Regex *regex, const char *str, size_t nmatch, regmatch_t matches[])
Match a regex against a string, with provided options.
bool mutt_str_equal(const char *a, const char *b)
Compare two strings.
char * mutt_str_replace(char **p, const char *s)
Replace one string with another.
@ NT_ENVELOPE
Envelope has changed, NotifyEnvelope.
#define STAILQ_INIT(head)
The envelope/body of an email.
struct Notify * notify
Notifications: NotifyEmail, EventEmail.
struct ListHead userhdrs
user defined headers
char * supersedes
Supersedes header.
char * list_subscribe
This stores a mailto URL, or nothing.
struct AddressList return_path
Return path for the Email.
char *const subject
Email's subject.
struct AddressList to
Email's 'To' list.
unsigned char changed
Changed fields, e.g. MUTT_ENV_CHANGED_SUBJECT.
char * followup_to
List of 'followup-to' fields.
struct AddressList reply_to
Email's 'reply-to'.
char * message_id
Message ID.
char * x_comment_to
List of 'X-comment-to' fields.
struct AddressList x_original_to
Email's 'X-Original-to'.
struct AutocryptHeader * autocrypt_gossip
Autocrypt Gossip header.
char * newsgroups
List of newsgroups.
struct AddressList mail_followup_to
Email's 'mail-followup-to'.
struct AddressList cc
Email's 'Cc' list.
struct AddressList sender
Email's sender.
struct ListHead references
message references (in reverse order)
struct AutocryptHeader * autocrypt
Autocrypt header.
struct Buffer spam
Spam header.
struct ListHead in_reply_to
in-reply-to header content
struct AddressList bcc
Email's 'Bcc' list.
char * xref
List of cross-references.
char * organization
Organisation header.
char * list_post
This stores a mailto URL, or nothing.
char *const real_subj
Offset of the real subject.
char * disp_subj
Display subject (modified copy of subject)
char * list_unsubscribe
This stores a mailto URL, or nothing.
struct AddressList from
Email's 'From' list.
An Event that happened to an Email.
Container for Accounts, Notifications.
struct ConfigSubset * sub
Inherited config items.
Cached regular expression.