139 while (reverse && cur->
next)
151 while (reverse && cur->
next)
154 else if (reverse ? cur->
prev : cur->
next)
156 cur = reverse ? cur->
prev : cur->
next;
160 while (!(reverse ? cur->
prev : cur->
next))
166 cur = reverse ? cur->
prev : cur->
next;
182 for (; cur; cur = cur->
next, done =
false)
196 p->message && ref; ref =
STAILQ_NEXT(ref, entries))
Representation of an email.
Representation of an email header (envelope)
#define MUTT_ENV_CHANGED_IRT
In-Reply-To changed to link/break threads.
#define MUTT_ENV_CHANGED_REFS
References changed to break thread.
void mutt_list_free(struct ListHead *h)
Free a List AND its strings.
Convenience wrapper for the library headers.
bool mutt_istr_equal(const char *a, const char *b)
Compare two strings, ignoring case.
#define STAILQ_FIRST(head)
#define STAILQ_REMOVE_AFTER(head, elm, field)
#define STAILQ_NEXT(elm, field)
The envelope/body of an email.
struct Envelope * env
Envelope information.
bool changed
Email has been edited.
int vnum
Virtual message number.
struct MuttThread * thread
Thread of Emails.
unsigned char changed
Changed fields, e.g. MUTT_ENV_CHANGED_SUBJECT.
struct ListHead references
message references (in reverse order)
struct ListHead in_reply_to
in-reply-to header content
struct MuttThread * parent
Parent of this Thread.
struct Email * sort_aux_key
Email that controls how subthread siblings sort.
struct MuttThread * prev
Previous sibling Thread.
struct MuttThread * child
Child of this Thread.
struct Email * message
Email this Thread refers to.
struct Email * sort_thread_key
Email that controls how top thread sorts.
struct MuttThread * next
Next sibling Thread.
void unlink_message(struct MuttThread **old, struct MuttThread *cur)
Break the message out of the thread.
bool is_descendant(const struct MuttThread *a, const struct MuttThread *b)
Is one thread a descendant of another.
void insert_message(struct MuttThread **add, struct MuttThread *parent, struct MuttThread *cur)
Insert a message into a thread.
void mutt_break_thread(struct Email *e)
Break the email Thread.
struct Email * find_virtual(struct MuttThread *cur, bool reverse)
Find an email with a Virtual message number.
void clean_references(struct MuttThread *brk, struct MuttThread *cur)
Update email references for a broken Thread.
Create/manipulate threading in emails.