NeoMutt  2025-12-11-980-ge38c27
Teaching an old dog new tricks
DOXYGEN
Loading...
Searching...
No Matches
Mailbox API

The Mailbox API. More...

+ Collaboration diagram for Mailbox API:

Topics

 ac_owns_path()
 Check whether an Account owns a Mailbox path.
 
 ac_add()
 Add a Mailbox to an Account.
 
 mbox_open()
 Open a Mailbox.
 
 mbox_open_append()
 Open a Mailbox for appending.
 
 mbox_check()
 Check for new mail.
 
 mbox_check_stats()
 Check the Mailbox statistics.
 
 mbox_sync()
 Save changes to the Mailbox.
 
 mbox_close()
 Close a Mailbox.
 
 msg_open()
 Open an email message in a Mailbox.
 
 msg_open_new()
 Open a new message in a Mailbox.
 
 msg_commit()
 Save changes to an email.
 
 msg_close()
 Close an email.
 
 msg_padding_size()
 Bytes of padding between messages.
 
 msg_save_hcache()
 Save message to the header cache.
 
 tags_edit()
 Prompt and validate new messages tags.
 
 tags_commit()
 Save the tags to a message.
 
 path_probe()
 Does this Mailbox type recognise this path?
 
 path_canon()
 Canonicalise a Mailbox path.
 
 path_is_empty()
 Is the Mailbox empty?
 

Variables

const struct MxOps MxCompOps
 Compressed Mailbox - Implements MxOps -.
 
const struct MxOps MxImapOps
 IMAP Mailbox - Implements MxOps -.
 
const struct MxOps MxMaildirOps
 Maildir Mailbox - Implements MxOps -.
 
const struct MxOps MxMboxOps
 Mbox Mailbox - Implements MxOps -.
 
const struct MxOps MxMmdfOps
 MMDF Mailbox - Implements MxOps -.
 
const struct MxOps MxMhOps
 MH Mailbox - Implements MxOps -.
 
const struct MxOps MxNntpOps
 NNTP Mailbox - Implements MxOps -.
 
const struct MxOps MxNotmuchOps
 Notmuch Mailbox - Implements MxOps -.
 
const struct MxOps MxPopOps
 POP Mailbox - Implements MxOps -.
 

Detailed Description

The Mailbox API.

Each backend provides a set of functions through which the Mailbox, messages, tags and paths are manipulated.

Variable Documentation

◆ MxCompOps

const struct MxOps MxCompOps
Initial value:
= {
.type = MUTT_COMPRESSED,
.name = "compressed",
.is_local = true,
.ac_owns_path = comp_ac_owns_path,
.ac_add = comp_ac_add,
.mbox_open = comp_mbox_open,
.mbox_open_append = comp_mbox_open_append,
.mbox_check = comp_mbox_check,
.mbox_check_stats = NULL,
.mbox_sync = comp_mbox_sync,
.mbox_close = comp_mbox_close,
.msg_open = comp_msg_open,
.msg_open_new = comp_msg_open_new,
.msg_commit = comp_msg_commit,
.msg_close = comp_msg_close,
.msg_padding_size = comp_msg_padding_size,
.msg_save_hcache = comp_msg_save_hcache,
.tags_edit = comp_tags_edit,
.tags_commit = comp_tags_commit,
.path_probe = comp_path_probe,
.path_canon = comp_path_canon,
.path_is_empty = NULL,
}
@ MUTT_COMPRESSED
Compressed file Mailbox type.
Definition mailbox.h:52
static bool comp_ac_add(struct Account *a, struct Mailbox *m)
Add a Mailbox to an Account - Implements MxOps::ac_add() -.
Definition compress.c:405
static bool comp_ac_owns_path(struct Account *a, const char *path)
Check whether an Account owns a Mailbox path - Implements MxOps::ac_owns_path() -.
Definition compress.c:397
static enum MxStatus comp_mbox_check(struct Mailbox *m)
Check for new mail - Implements MxOps::mbox_check() -.
Definition compress.c:553
static enum MxStatus comp_mbox_close(struct Mailbox *m)
Close a Mailbox - Implements MxOps::mbox_close() -.
Definition compress.c:640
static bool comp_mbox_open_append(struct Mailbox *m, OpenMailboxFlags flags)
Open a Mailbox for appending - Implements MxOps::mbox_open_append() -.
Definition compress.c:473
static enum MxOpenReturns comp_mbox_open(struct Mailbox *m)
Open a Mailbox - Implements MxOps::mbox_open() -.
Definition compress.c:418
static enum MxStatus comp_mbox_sync(struct Mailbox *m)
Save changes to the Mailbox - Implements MxOps::mbox_sync() -.
Definition compress.c:589
static int comp_msg_close(struct Mailbox *m, struct Message *msg)
Close an email - Implements MxOps::msg_close() -.
Definition compress.c:777
static int comp_msg_commit(struct Mailbox *m, struct Message *msg)
Save changes to an email - Implements MxOps::msg_commit() -.
Definition compress.c:759
static bool comp_msg_open_new(struct Mailbox *m, struct Message *msg, const struct Email *e)
Open a new message in a Mailbox - Implements MxOps::msg_open_new() -.
Definition compress.c:741
static bool comp_msg_open(struct Mailbox *m, struct Message *msg, struct Email *e)
Open an email message in a Mailbox - Implements MxOps::msg_open() -.
Definition compress.c:723
static int comp_msg_padding_size(struct Mailbox *m)
Bytes of padding between messages - Implements MxOps::msg_padding_size() -.
Definition compress.c:795
static int comp_msg_save_hcache(struct Mailbox *m, struct Email *e)
Save message to the header cache - Implements MxOps::msg_save_hcache() -.
Definition compress.c:812
static int comp_path_canon(struct Buffer *path)
Canonicalise a Mailbox path - Implements MxOps::path_canon() -.
Definition compress.c:877
static enum MailboxType comp_path_probe(const char *path, const struct stat *st)
Is this a compressed Mailbox?
Definition compress.c:863
static int comp_tags_commit(struct Mailbox *m, struct Email *e, const char *buf)
Save the tags to a message - Implements MxOps::tags_commit() -.
Definition compress.c:846
static int comp_tags_edit(struct Mailbox *m, const char *tags, struct Buffer *buf)
Prompt and validate new messages tags - Implements MxOps::tags_edit() -.
Definition compress.c:829

Compressed Mailbox - Implements MxOps -.

Compress only uses open, close and check. The message functions are delegated to mbox.

Definition at line 889 of file compress.c.

889 {
890 // clang-format off
891 .type = MUTT_COMPRESSED,
892 .name = "compressed",
893 .is_local = true,
894 .ac_owns_path = comp_ac_owns_path,
895 .ac_add = comp_ac_add,
896 .mbox_open = comp_mbox_open,
897 .mbox_open_append = comp_mbox_open_append,
898 .mbox_check = comp_mbox_check,
899 .mbox_check_stats = NULL,
900 .mbox_sync = comp_mbox_sync,
901 .mbox_close = comp_mbox_close,
902 .msg_open = comp_msg_open,
903 .msg_open_new = comp_msg_open_new,
904 .msg_commit = comp_msg_commit,
905 .msg_close = comp_msg_close,
906 .msg_padding_size = comp_msg_padding_size,
907 .msg_save_hcache = comp_msg_save_hcache,
908 .tags_edit = comp_tags_edit,
909 .tags_commit = comp_tags_commit,
910 .path_probe = comp_path_probe,
911 .path_canon = comp_path_canon,
912 .path_is_empty = NULL,
913 // clang-format on
914};

◆ MxImapOps

const struct MxOps MxImapOps
Initial value:
= {
.type = MUTT_IMAP,
.name = "imap",
.is_local = false,
.ac_owns_path = imap_ac_owns_path,
.ac_add = imap_ac_add,
.mbox_open = imap_mbox_open,
.mbox_open_append = imap_mbox_open_append,
.mbox_check = imap_mbox_check,
.mbox_check_stats = imap_mbox_check_stats,
.mbox_sync = NULL,
.mbox_close = imap_mbox_close,
.msg_open = imap_msg_open,
.msg_open_new = imap_msg_open_new,
.msg_commit = imap_msg_commit,
.msg_close = imap_msg_close,
.msg_padding_size = NULL,
.msg_save_hcache = imap_msg_save_hcache,
.tags_edit = imap_tags_edit,
.tags_commit = imap_tags_commit,
.path_probe = imap_path_probe,
.path_canon = imap_path_canon,
.path_is_empty = imap_path_is_empty,
}
@ MUTT_IMAP
'IMAP' Mailbox type
Definition mailbox.h:49
static bool imap_ac_add(struct Account *a, struct Mailbox *m)
Add a Mailbox to an Account - Implements MxOps::ac_add() -.
Definition imap.c:1924
static bool imap_ac_owns_path(struct Account *a, const char *path)
Check whether an Account owns a Mailbox path - Implements MxOps::ac_owns_path() -.
Definition imap.c:1906
static enum MxStatus imap_mbox_check_stats(struct Mailbox *m, uint8_t flags)
Check the Mailbox statistics - Implements MxOps::mbox_check_stats() -.
Definition imap.c:1345
static enum MxStatus imap_mbox_check(struct Mailbox *m)
Check for new mail - Implements MxOps::mbox_check() -.
Definition imap.c:2444
static enum MxStatus imap_mbox_close(struct Mailbox *m)
Close a Mailbox - Implements MxOps::mbox_close() -.
Definition imap.c:2458
static bool imap_mbox_open_append(struct Mailbox *m, OpenMailboxFlags flags)
Open a Mailbox for appending - Implements MxOps::mbox_open_append() -.
Definition imap.c:2407
static enum MxOpenReturns imap_mbox_open(struct Mailbox *m)
Open a mailbox - Implements MxOps::mbox_open() -.
Definition imap.c:2321
int imap_msg_close(struct Mailbox *m, struct Message *msg)
Close an email - Implements MxOps::msg_close() -.
Definition message.c:2217
int imap_msg_commit(struct Mailbox *m, struct Message *msg)
Save changes to an email - Implements MxOps::msg_commit() -.
Definition message.c:2203
static bool imap_msg_open_new(struct Mailbox *m, struct Message *msg, const struct Email *e)
Open a new message in a Mailbox - Implements MxOps::msg_open_new() -.
Definition imap.c:2501
bool imap_msg_open(struct Mailbox *m, struct Message *msg, struct Email *e)
Open an email message in a Mailbox - Implements MxOps::msg_open() -.
Definition message.c:2010
int imap_msg_save_hcache(struct Mailbox *m, struct Email *e)
Save message to the header cache - Implements MxOps::msg_save_hcache() -.
Definition message.c:2225
int imap_path_canon(struct Buffer *path)
Canonicalise a Mailbox path - Implements MxOps::path_canon() -.
Definition imap.c:2697
static int imap_path_is_empty(struct Buffer *path)
Is the mailbox empty - Implements MxOps::path_is_empty() -.
Definition imap.c:2728
enum MailboxType imap_path_probe(const char *path, const struct stat *st)
Is this an IMAP Mailbox?
Definition imap.c:2683
static int imap_tags_commit(struct Mailbox *m, struct Email *e, const char *buf)
Save the tags to a message - Implements MxOps::tags_commit() -.
Definition imap.c:2613
static int imap_tags_edit(struct Mailbox *m, const char *tags, struct Buffer *buf)
Prompt and validate new messages tags - Implements MxOps::tags_edit() -.
Definition imap.c:2526

IMAP Mailbox - Implements MxOps -.

Definition at line 2741 of file imap.c.

2741 {
2742 // clang-format off
2743 .type = MUTT_IMAP,
2744 .name = "imap",
2745 .is_local = false,
2746 .ac_owns_path = imap_ac_owns_path,
2747 .ac_add = imap_ac_add,
2748 .mbox_open = imap_mbox_open,
2749 .mbox_open_append = imap_mbox_open_append,
2750 .mbox_check = imap_mbox_check,
2751 .mbox_check_stats = imap_mbox_check_stats,
2752 .mbox_sync = NULL, /* imap syncing is handled by imap_sync_mailbox */
2753 .mbox_close = imap_mbox_close,
2754 .msg_open = imap_msg_open,
2755 .msg_open_new = imap_msg_open_new,
2756 .msg_commit = imap_msg_commit,
2757 .msg_close = imap_msg_close,
2758 .msg_padding_size = NULL,
2759 .msg_save_hcache = imap_msg_save_hcache,
2760 .tags_edit = imap_tags_edit,
2761 .tags_commit = imap_tags_commit,
2762 .path_probe = imap_path_probe,
2763 .path_canon = imap_path_canon,
2764 .path_is_empty = imap_path_is_empty,
2765 // clang-format on
2766};

◆ MxMaildirOps

const struct MxOps MxMaildirOps
Initial value:
= {
.type = MUTT_MAILDIR,
.name = "maildir",
.is_local = true,
.ac_owns_path = maildir_ac_owns_path,
.ac_add = maildir_ac_add,
.mbox_open = maildir_mbox_open,
.mbox_open_append = maildir_mbox_open_append,
.mbox_check = maildir_mbox_check,
.mbox_check_stats = maildir_mbox_check_stats,
.mbox_sync = maildir_mbox_sync,
.mbox_close = maildir_mbox_close,
.msg_open = maildir_msg_open,
.msg_open_new = maildir_msg_open_new,
.msg_commit = maildir_msg_commit,
.msg_close = maildir_msg_close,
.msg_padding_size = NULL,
.msg_save_hcache = maildir_msg_save_hcache,
.tags_edit = NULL,
.tags_commit = NULL,
.path_probe = maildir_path_probe,
.path_canon = maildir_path_canon,
.path_is_empty = maildir_path_is_empty,
}
@ MUTT_MAILDIR
'Maildir' Mailbox type
Definition mailbox.h:47
bool maildir_ac_add(struct Account *a, struct Mailbox *m)
Add a Mailbox to an Account - Implements MxOps::ac_add() -.
Definition account.c:37
bool maildir_ac_owns_path(struct Account *a, const char *path)
Check whether an Account owns a Mailbox path - Implements MxOps::ac_owns_path() -.
Definition account.c:45
enum MxStatus maildir_mbox_check_stats(struct Mailbox *m, uint8_t flags)
Check the Mailbox statistics - Implements MxOps::mbox_check_stats() -.
Definition mailbox.c:820
enum MxStatus maildir_mbox_check(struct Mailbox *m)
Check for new mail - Implements MxOps::mbox_check() -.
Definition mailbox.c:812
enum MxStatus maildir_mbox_close(struct Mailbox *m)
Close a Mailbox - Implements MxOps::mbox_close() -.
Definition mailbox.c:909
bool maildir_mbox_open_append(struct Mailbox *m, OpenMailboxFlags flags)
Open a Mailbox for appending - Implements MxOps::mbox_open_append() -.
Definition mailbox.c:758
enum MxOpenReturns maildir_mbox_open(struct Mailbox *m)
Open a Mailbox - Implements MxOps::mbox_open() -.
Definition mailbox.c:747
enum MxStatus maildir_mbox_sync(struct Mailbox *m)
Save changes to the Mailbox - Implements MxOps::mbox_sync() -.
Definition mailbox.c:849
int maildir_msg_close(struct Mailbox *m, struct Message *msg)
Close an email - Implements MxOps::msg_close() -.
Definition message.c:639
int maildir_msg_commit(struct Mailbox *m, struct Message *msg)
Save changes to an email - Implements MxOps::msg_commit() -.
Definition message.c:629
bool maildir_msg_open_new(struct Mailbox *m, struct Message *msg, const struct Email *e)
Open a new message in a Mailbox - Implements MxOps::msg_open_new() -.
Definition message.c:550
bool maildir_msg_open(struct Mailbox *m, struct Message *msg, struct Email *e)
Open an email message in a Mailbox - Implements MxOps::msg_open() -.
Definition message.c:523
int maildir_msg_save_hcache(struct Mailbox *m, struct Email *e)
Save message to the header cache - Implements MxOps::msg_save_hcache() -.
Definition message.c:647
int maildir_path_canon(struct Buffer *path)
Canonicalise a Mailbox path - Implements MxOps::path_canon() -.
Definition path.c:44
enum MailboxType maildir_path_probe(const char *path, const struct stat *st)
Is this a Maildir Mailbox?
Definition path.c:94
int maildir_path_is_empty(struct Buffer *path)
Is the mailbox empty.
Definition path.c:57

Maildir Mailbox - Implements MxOps -.

Definition at line 44 of file maildir.c.

44 {
45 // clang-format off
46 .type = MUTT_MAILDIR,
47 .name = "maildir",
48 .is_local = true,
49 .ac_owns_path = maildir_ac_owns_path,
50 .ac_add = maildir_ac_add,
51 .mbox_open = maildir_mbox_open,
52 .mbox_open_append = maildir_mbox_open_append,
53 .mbox_check = maildir_mbox_check,
54 .mbox_check_stats = maildir_mbox_check_stats,
55 .mbox_sync = maildir_mbox_sync,
56 .mbox_close = maildir_mbox_close,
57 .msg_open = maildir_msg_open,
58 .msg_open_new = maildir_msg_open_new,
59 .msg_commit = maildir_msg_commit,
60 .msg_close = maildir_msg_close,
61 .msg_padding_size = NULL,
62 .msg_save_hcache = maildir_msg_save_hcache,
63 .tags_edit = NULL,
64 .tags_commit = NULL,
65 .path_probe = maildir_path_probe,
66 .path_canon = maildir_path_canon,
67 .path_is_empty = maildir_path_is_empty,
68 // clang-format on
69};

◆ MxMboxOps

const struct MxOps MxMboxOps
Initial value:
= {
.type = MUTT_MBOX,
.name = "mbox",
.is_local = true,
.ac_owns_path = mbox_ac_owns_path,
.ac_add = mbox_ac_add,
.mbox_open = mbox_mbox_open,
.mbox_open_append = mbox_mbox_open_append,
.mbox_check = mbox_mbox_check,
.mbox_check_stats = mbox_mbox_check_stats,
.mbox_sync = mbox_mbox_sync,
.mbox_close = mbox_mbox_close,
.msg_open = mbox_msg_open,
.msg_open_new = mbox_msg_open_new,
.msg_commit = mbox_msg_commit,
.msg_close = mbox_msg_close,
.msg_padding_size = mbox_msg_padding_size,
.msg_save_hcache = NULL,
.tags_edit = NULL,
.tags_commit = NULL,
.path_probe = mbox_path_probe,
.path_canon = mbox_path_canon,
.path_is_empty = mbox_path_is_empty,
}
@ MUTT_MBOX
'mbox' Mailbox type
Definition mailbox.h:44
static bool mbox_ac_add(struct Account *a, struct Mailbox *m)
Add a Mailbox to an Account - Implements MxOps::ac_add() -.
Definition mbox.c:819
static bool mbox_ac_owns_path(struct Account *a, const char *path)
Check whether an Account owns a Mailbox path - Implements MxOps::ac_owns_path() -.
Definition mbox.c:804
static enum MxStatus mbox_mbox_check_stats(struct Mailbox *m, uint8_t flags)
Check the Mailbox statistics - Implements MxOps::mbox_check_stats() -.
Definition mbox.c:1679
static enum MxStatus mbox_mbox_check(struct Mailbox *m)
Check for new mail - Implements MxOps::mbox_check() -.
Definition mbox.c:958
static enum MxStatus mbox_mbox_close(struct Mailbox *m)
Close a Mailbox - Implements MxOps::mbox_close() -.
Definition mbox.c:1462
static bool mbox_mbox_open_append(struct Mailbox *m, OpenMailboxFlags flags)
Open a Mailbox for appending - Implements MxOps::mbox_open_append() -.
Definition mbox.c:906
static enum MxOpenReturns mbox_mbox_open(struct Mailbox *m)
Open a Mailbox - Implements MxOps::mbox_open() -.
Definition mbox.c:857
static enum MxStatus mbox_mbox_sync(struct Mailbox *m)
Save changes to the Mailbox - Implements MxOps::mbox_sync() -.
Definition mbox.c:1092
static int mbox_msg_close(struct Mailbox *m, struct Message *msg)
Close an email - Implements MxOps::msg_close() -.
Definition mbox.c:1548
static int mbox_msg_commit(struct Mailbox *m, struct Message *msg)
Save changes to an email - Implements MxOps::msg_commit() -.
Definition mbox.c:1531
static bool mbox_msg_open_new(struct Mailbox *m, struct Message *msg, const struct Email *e)
Open a new message in a Mailbox - Implements MxOps::msg_open_new() -.
Definition mbox.c:1518
static bool mbox_msg_open(struct Mailbox *m, struct Message *msg, struct Email *e)
Open an email message in a Mailbox - Implements MxOps::msg_open() -.
Definition mbox.c:1502
static int mbox_msg_padding_size(struct Mailbox *m)
Bytes of padding between messages - Implements MxOps::msg_padding_size() -.
Definition mbox.c:1563
static int mbox_path_canon(struct Buffer *path)
Canonicalise a Mailbox path - Implements MxOps::path_canon() -.
Definition mbox.c:1635
static int mbox_path_is_empty(struct Buffer *path)
Is the mailbox empty - Implements MxOps::path_is_empty() -.
Definition mbox.c:1644
enum MailboxType mbox_path_probe(const char *path, const struct stat *st)
Is this an mbox Mailbox?
Definition mbox.c:1571

Mbox Mailbox - Implements MxOps -.

Definition at line 1741 of file mbox.c.

1741 {
1742 // clang-format off
1743 .type = MUTT_MBOX,
1744 .name = "mbox",
1745 .is_local = true,
1746 .ac_owns_path = mbox_ac_owns_path,
1747 .ac_add = mbox_ac_add,
1748 .mbox_open = mbox_mbox_open,
1749 .mbox_open_append = mbox_mbox_open_append,
1750 .mbox_check = mbox_mbox_check,
1751 .mbox_check_stats = mbox_mbox_check_stats,
1752 .mbox_sync = mbox_mbox_sync,
1753 .mbox_close = mbox_mbox_close,
1754 .msg_open = mbox_msg_open,
1755 .msg_open_new = mbox_msg_open_new,
1756 .msg_commit = mbox_msg_commit,
1757 .msg_close = mbox_msg_close,
1758 .msg_padding_size = mbox_msg_padding_size,
1759 .msg_save_hcache = NULL,
1760 .tags_edit = NULL,
1761 .tags_commit = NULL,
1762 .path_probe = mbox_path_probe,
1763 .path_canon = mbox_path_canon,
1764 .path_is_empty = mbox_path_is_empty,
1765 // clang-format on
1766};

◆ MxMmdfOps

const struct MxOps MxMmdfOps
Initial value:
= {
.type = MUTT_MMDF,
.name = "mmdf",
.is_local = true,
.ac_owns_path = mbox_ac_owns_path,
.ac_add = mbox_ac_add,
.mbox_open = mbox_mbox_open,
.mbox_open_append = mbox_mbox_open_append,
.mbox_check = mbox_mbox_check,
.mbox_check_stats = mbox_mbox_check_stats,
.mbox_sync = mbox_mbox_sync,
.mbox_close = mbox_mbox_close,
.msg_open = mbox_msg_open,
.msg_open_new = mbox_msg_open_new,
.msg_commit = mmdf_msg_commit,
.msg_close = mbox_msg_close,
.msg_padding_size = mmdf_msg_padding_size,
.msg_save_hcache = NULL,
.tags_edit = NULL,
.tags_commit = NULL,
.path_probe = mbox_path_probe,
.path_canon = mbox_path_canon,
.path_is_empty = mbox_path_is_empty,
}
@ MUTT_MMDF
'mmdf' Mailbox type
Definition mailbox.h:45
static int mmdf_msg_commit(struct Mailbox *m, struct Message *msg)
Save changes to an email - Implements MxOps::msg_commit() -.
Definition mbox.c:1652
static int mmdf_msg_padding_size(struct Mailbox *m)
Bytes of padding between messages - Implements MxOps::msg_padding_size() -.
Definition mbox.c:1671

MMDF Mailbox - Implements MxOps -.

Definition at line 1771 of file mbox.c.

1771 {
1772 // clang-format off
1773 .type = MUTT_MMDF,
1774 .name = "mmdf",
1775 .is_local = true,
1776 .ac_owns_path = mbox_ac_owns_path,
1777 .ac_add = mbox_ac_add,
1778 .mbox_open = mbox_mbox_open,
1779 .mbox_open_append = mbox_mbox_open_append,
1780 .mbox_check = mbox_mbox_check,
1781 .mbox_check_stats = mbox_mbox_check_stats,
1782 .mbox_sync = mbox_mbox_sync,
1783 .mbox_close = mbox_mbox_close,
1784 .msg_open = mbox_msg_open,
1785 .msg_open_new = mbox_msg_open_new,
1786 .msg_commit = mmdf_msg_commit,
1787 .msg_close = mbox_msg_close,
1788 .msg_padding_size = mmdf_msg_padding_size,
1789 .msg_save_hcache = NULL,
1790 .tags_edit = NULL,
1791 .tags_commit = NULL,
1792 .path_probe = mbox_path_probe,
1793 .path_canon = mbox_path_canon,
1794 .path_is_empty = mbox_path_is_empty,
1795 // clang-format on
1796};

◆ MxMhOps

const struct MxOps MxMhOps
Initial value:
= {
.type = MUTT_MH,
.name = "mh",
.is_local = true,
.ac_owns_path = mh_ac_owns_path,
.ac_add = mh_ac_add,
.mbox_open = mh_mbox_open,
.mbox_open_append = mh_mbox_open_append,
.mbox_check = mh_mbox_check,
.mbox_check_stats = mh_mbox_check_stats,
.mbox_sync = mh_mbox_sync,
.mbox_close = mh_mbox_close,
.msg_open = mh_msg_open,
.msg_open_new = mh_msg_open_new,
.msg_commit = mh_msg_commit,
.msg_close = mh_msg_close,
.msg_padding_size = NULL,
.msg_save_hcache = mh_msg_save_hcache,
.tags_edit = NULL,
.tags_commit = NULL,
.path_probe = mh_path_probe,
.path_canon = mh_path_canon,
.path_is_empty = mh_check_empty,
}
@ MUTT_MH
'MH' Mailbox type
Definition mailbox.h:46
static bool mh_ac_add(struct Account *a, struct Mailbox *m)
Add a Mailbox to an Account - Implements MxOps::ac_add() -.
Definition mh.c:813
static bool mh_ac_owns_path(struct Account *a, const char *path)
Check whether an Account owns a Mailbox path - Implements MxOps::ac_owns_path() -.
Definition mh.c:805
static enum MxStatus mh_mbox_check_stats(struct Mailbox *m, uint8_t flags)
Check the Mailbox statistics - Implements MxOps::mbox_check_stats() -.
Definition mh.c:140
static enum MxStatus mh_mbox_check(struct Mailbox *m)
Check for new mail - Implements MxOps::mbox_check() -.
Definition mh.c:1055
static enum MxStatus mh_mbox_close(struct Mailbox *m)
Close a Mailbox - Implements MxOps::mbox_close() -.
Definition mh.c:1139
static bool mh_mbox_open_append(struct Mailbox *m, OpenMailboxFlags flags)
Open a Mailbox for appending - Implements MxOps::mbox_open_append() -.
Definition mh.c:829
static enum MxOpenReturns mh_mbox_open(struct Mailbox *m)
Open a Mailbox - Implements MxOps::mbox_open() -.
Definition mh.c:821
static enum MxStatus mh_mbox_sync(struct Mailbox *m)
Save changes to the Mailbox - Implements MxOps::mbox_sync() -.
Definition mh.c:1069
static int mh_msg_close(struct Mailbox *m, struct Message *msg)
Close an email - Implements MxOps::msg_close() -.
Definition mh.c:1186
static int mh_msg_commit(struct Mailbox *m, struct Message *msg)
Save changes to an email - Implements MxOps::msg_commit() -.
Definition mh.c:1176
static bool mh_msg_open_new(struct Mailbox *m, struct Message *msg, const struct Email *e)
Open a new message in a Mailbox - Implements MxOps::msg_open_new() -.
Definition mh.c:1168
static bool mh_msg_open(struct Mailbox *m, struct Message *msg, struct Email *e)
Open an email message in a Mailbox - Implements MxOps::msg_open() -.
Definition mh.c:1147
static int mh_msg_save_hcache(struct Mailbox *m, struct Email *e)
Save message to the header cache - Implements MxOps::msg_save_hcache() -.
Definition mh.c:790
static int mh_path_canon(struct Buffer *path)
Canonicalise a Mailbox path - Implements MxOps::path_canon() -.
Definition mh.c:1194
static enum MailboxType mh_path_probe(const char *path, const struct stat *st)
Is this an mh Mailbox?
Definition mh.c:1203
int mh_check_empty(struct Buffer *path)
Is mailbox empty.
Definition mh.c:116

MH Mailbox - Implements MxOps -.

Definition at line 1243 of file mh.c.

1243 {
1244 // clang-format off
1245 .type = MUTT_MH,
1246 .name = "mh",
1247 .is_local = true,
1248 .ac_owns_path = mh_ac_owns_path,
1249 .ac_add = mh_ac_add,
1250 .mbox_open = mh_mbox_open,
1251 .mbox_open_append = mh_mbox_open_append,
1252 .mbox_check = mh_mbox_check,
1253 .mbox_check_stats = mh_mbox_check_stats,
1254 .mbox_sync = mh_mbox_sync,
1255 .mbox_close = mh_mbox_close,
1256 .msg_open = mh_msg_open,
1257 .msg_open_new = mh_msg_open_new,
1258 .msg_commit = mh_msg_commit,
1259 .msg_close = mh_msg_close,
1260 .msg_padding_size = NULL,
1261 .msg_save_hcache = mh_msg_save_hcache,
1262 .tags_edit = NULL,
1263 .tags_commit = NULL,
1264 .path_probe = mh_path_probe,
1265 .path_canon = mh_path_canon,
1266 .path_is_empty = mh_check_empty,
1267 // clang-format on
1268};

◆ MxNntpOps

const struct MxOps MxNntpOps
Initial value:
= {
.type = MUTT_NNTP,
.name = "nntp",
.is_local = false,
.ac_owns_path = nntp_ac_owns_path,
.ac_add = nntp_ac_add,
.mbox_open = nntp_mbox_open,
.mbox_open_append = NULL,
.mbox_check = nntp_mbox_check,
.mbox_check_stats = NULL,
.mbox_sync = nntp_mbox_sync,
.mbox_close = nntp_mbox_close,
.msg_open = nntp_msg_open,
.msg_open_new = NULL,
.msg_commit = NULL,
.msg_close = nntp_msg_close,
.msg_padding_size = NULL,
.msg_save_hcache = NULL,
.tags_edit = NULL,
.tags_commit = NULL,
.path_probe = nntp_path_probe,
.path_canon = nntp_path_canon,
}
@ MUTT_NNTP
'NNTP' (Usenet) Mailbox type
Definition mailbox.h:48
static bool nntp_ac_add(struct Account *a, struct Mailbox *m)
Add a Mailbox to an Account - Implements MxOps::ac_add() -.
Definition nntp.c:2383
static bool nntp_ac_owns_path(struct Account *a, const char *path)
Check whether an Account owns a Mailbox path - Implements MxOps::ac_owns_path() -.
Definition nntp.c:2375
static enum MxStatus nntp_mbox_check(struct Mailbox *m)
Check for new mail - Implements MxOps::mbox_check() -.
Definition nntp.c:2558
static enum MxStatus nntp_mbox_close(struct Mailbox *m)
Close a Mailbox - Implements MxOps::mbox_close() -.
Definition nntp.c:2635
static enum MxOpenReturns nntp_mbox_open(struct Mailbox *m)
Open a Mailbox - Implements MxOps::mbox_open() -.
Definition nntp.c:2391
static enum MxStatus nntp_mbox_sync(struct Mailbox *m)
Save changes to the Mailbox - Implements MxOps::mbox_sync() -.
Definition nntp.c:2575
static int nntp_msg_close(struct Mailbox *m, struct Message *msg)
Close an email - Implements MxOps::msg_close() -.
Definition nntp.c:2789
static bool nntp_msg_open(struct Mailbox *m, struct Message *msg, struct Email *e)
Open an email message in a Mailbox - Implements MxOps::msg_open() -.
Definition nntp.c:2657
static int nntp_path_canon(struct Buffer *path)
Canonicalise a Mailbox path - Implements MxOps::path_canon() -.
Definition nntp.c:2811
enum MailboxType nntp_path_probe(const char *path, const struct stat *st)
Is this an NNTP Mailbox?
Definition nntp.c:2797

NNTP Mailbox - Implements MxOps -.

Definition at line 2819 of file nntp.c.

2819 {
2820 // clang-format off
2821 .type = MUTT_NNTP,
2822 .name = "nntp",
2823 .is_local = false,
2824 .ac_owns_path = nntp_ac_owns_path,
2825 .ac_add = nntp_ac_add,
2826 .mbox_open = nntp_mbox_open,
2827 .mbox_open_append = NULL,
2828 .mbox_check = nntp_mbox_check,
2829 .mbox_check_stats = NULL,
2830 .mbox_sync = nntp_mbox_sync,
2831 .mbox_close = nntp_mbox_close,
2832 .msg_open = nntp_msg_open,
2833 .msg_open_new = NULL,
2834 .msg_commit = NULL,
2835 .msg_close = nntp_msg_close,
2836 .msg_padding_size = NULL,
2837 .msg_save_hcache = NULL,
2838 .tags_edit = NULL,
2839 .tags_commit = NULL,
2840 .path_probe = nntp_path_probe,
2841 .path_canon = nntp_path_canon,
2842 // clang-format on
2843};

◆ MxNotmuchOps

const struct MxOps MxNotmuchOps
Initial value:
= {
.type = MUTT_NOTMUCH,
.name = "notmuch",
.is_local = false,
.ac_owns_path = nm_ac_owns_path,
.ac_add = nm_ac_add,
.mbox_open = nm_mbox_open,
.mbox_open_append = NULL,
.mbox_check = nm_mbox_check,
.mbox_check_stats = nm_mbox_check_stats,
.mbox_sync = nm_mbox_sync,
.mbox_close = nm_mbox_close,
.msg_open = nm_msg_open,
.msg_open_new = maildir_msg_open_new,
.msg_commit = nm_msg_commit,
.msg_close = nm_msg_close,
.msg_padding_size = NULL,
.msg_save_hcache = NULL,
.tags_edit = nm_tags_edit,
.tags_commit = nm_tags_commit,
.path_probe = nm_path_probe,
.path_canon = nm_path_canon,
.path_is_empty = NULL,
}
@ MUTT_NOTMUCH
'Notmuch' (virtual) Mailbox type
Definition mailbox.h:50
static bool nm_ac_add(struct Account *a, struct Mailbox *m)
Add a Mailbox to an Account - Implements MxOps::ac_add() -.
Definition notmuch.c:2040
static bool nm_ac_owns_path(struct Account *a, const char *path)
Check whether an Account owns a Mailbox path - Implements MxOps::ac_owns_path() -.
Definition notmuch.c:2032
static enum MxStatus nm_mbox_check_stats(struct Mailbox *m, uint8_t flags)
Check the Mailbox statistics - Implements MxOps::mbox_check_stats() -.
Definition notmuch.c:1836
static enum MxStatus nm_mbox_check(struct Mailbox *m)
Check for new mail - Implements MxOps::mbox_check() -.
Definition notmuch.c:2105
static enum MxStatus nm_mbox_close(struct Mailbox *m)
Close a Mailbox - Implements MxOps::mbox_close() -.
Definition notmuch.c:2377
static enum MxOpenReturns nm_mbox_open(struct Mailbox *m)
Open a Mailbox - Implements MxOps::mbox_open() -.
Definition notmuch.c:2055
static enum MxStatus nm_mbox_sync(struct Mailbox *m)
Save changes to the Mailbox - Implements MxOps::mbox_sync() -.
Definition notmuch.c:2242
static int nm_msg_close(struct Mailbox *m, struct Message *msg)
Close an email - Implements MxOps::msg_close() -.
Definition notmuch.c:2416
static int nm_msg_commit(struct Mailbox *m, struct Message *msg)
Save changes to an email - Implements MxOps::msg_commit() -.
Definition notmuch.c:2407
static bool nm_msg_open(struct Mailbox *m, struct Message *msg, struct Email *e)
Open an email message in a Mailbox - Implements MxOps::msg_open() -.
Definition notmuch.c:2385
static int nm_path_canon(struct Buffer *path)
Canonicalise a Mailbox path - Implements MxOps::path_canon() -.
Definition notmuch.c:2489
enum MailboxType nm_path_probe(const char *path, const struct stat *st)
Is this a Notmuch Mailbox?
Definition notmuch.c:2478
static int nm_tags_commit(struct Mailbox *m, struct Email *e, const char *buf)
Save the tags to a message - Implements MxOps::tags_commit() -.
Definition notmuch.c:2439
static int nm_tags_edit(struct Mailbox *m, const char *tags, struct Buffer *buf)
Prompt and validate new messages tags - Implements MxOps::tags_edit() -.
Definition notmuch.c:2425

Notmuch Mailbox - Implements MxOps -.

Definition at line 2497 of file notmuch.c.

2497 {
2498 // clang-format off
2499 .type = MUTT_NOTMUCH,
2500 .name = "notmuch",
2501 .is_local = false,
2502 .ac_owns_path = nm_ac_owns_path,
2503 .ac_add = nm_ac_add,
2504 .mbox_open = nm_mbox_open,
2505 .mbox_open_append = NULL,
2506 .mbox_check = nm_mbox_check,
2507 .mbox_check_stats = nm_mbox_check_stats,
2508 .mbox_sync = nm_mbox_sync,
2509 .mbox_close = nm_mbox_close,
2510 .msg_open = nm_msg_open,
2511 .msg_open_new = maildir_msg_open_new,
2512 .msg_commit = nm_msg_commit,
2513 .msg_close = nm_msg_close,
2514 .msg_padding_size = NULL,
2515 .msg_save_hcache = NULL,
2516 .tags_edit = nm_tags_edit,
2517 .tags_commit = nm_tags_commit,
2518 .path_probe = nm_path_probe,
2519 .path_canon = nm_path_canon,
2520 .path_is_empty = NULL,
2521 // clang-format on
2522};

◆ MxPopOps

const struct MxOps MxPopOps
Initial value:
= {
.type = MUTT_POP,
.name = "pop",
.is_local = false,
.ac_owns_path = pop_ac_owns_path,
.ac_add = pop_ac_add,
.mbox_open = pop_mbox_open,
.mbox_open_append = NULL,
.mbox_check = pop_mbox_check,
.mbox_check_stats = NULL,
.mbox_sync = pop_mbox_sync,
.mbox_close = pop_mbox_close,
.msg_open = pop_msg_open,
.msg_open_new = NULL,
.msg_commit = NULL,
.msg_close = pop_msg_close,
.msg_padding_size = NULL,
.msg_save_hcache = pop_msg_save_hcache,
.tags_edit = NULL,
.tags_commit = NULL,
.path_probe = pop_path_probe,
.path_canon = pop_path_canon,
.path_is_empty = NULL,
}
@ MUTT_POP
'POP3' Mailbox type
Definition mailbox.h:51
static bool pop_ac_add(struct Account *a, struct Mailbox *m)
Add a Mailbox to an Account - Implements MxOps::ac_add() -.
Definition pop.c:729
static bool pop_ac_owns_path(struct Account *a, const char *path)
Check whether an Account owns a Mailbox path - Implements MxOps::ac_owns_path() -.
Definition pop.c:711
static enum MxStatus pop_mbox_check(struct Mailbox *m)
Check for new mail - Implements MxOps::mbox_check() -.
Definition pop.c:836
static enum MxStatus pop_mbox_close(struct Mailbox *m)
Close a Mailbox - Implements MxOps::mbox_close() -.
Definition pop.c:970
static enum MxOpenReturns pop_mbox_open(struct Mailbox *m)
Open a Mailbox - Implements MxOps::mbox_open() -.
Definition pop.c:759
static enum MxStatus pop_mbox_sync(struct Mailbox *m)
Save changes to the Mailbox - Implements MxOps::mbox_sync() -.
Definition pop.c:878
static int pop_msg_close(struct Mailbox *m, struct Message *msg)
Close an email - Implements MxOps::msg_close() -.
Definition pop.c:1152
static bool pop_msg_open(struct Mailbox *m, struct Message *msg, struct Email *e)
Open an email message in a Mailbox - Implements MxOps::msg_open() -.
Definition pop.c:996
static int pop_msg_save_hcache(struct Mailbox *m, struct Email *e)
Save message to the header cache - Implements MxOps::msg_save_hcache() -.
Definition pop.c:1160
static int pop_path_canon(struct Buffer *path)
Canonicalise a Mailbox path - Implements MxOps::path_canon() -.
Definition pop.c:1191
enum MailboxType pop_path_probe(const char *path, const struct stat *st)
Is this a POP Mailbox?
Definition pop.c:1177

POP Mailbox - Implements MxOps -.

Definition at line 1199 of file pop.c.

1199 {
1200 // clang-format off
1201 .type = MUTT_POP,
1202 .name = "pop",
1203 .is_local = false,
1204 .ac_owns_path = pop_ac_owns_path,
1205 .ac_add = pop_ac_add,
1206 .mbox_open = pop_mbox_open,
1207 .mbox_open_append = NULL,
1208 .mbox_check = pop_mbox_check,
1209 .mbox_check_stats = NULL,
1210 .mbox_sync = pop_mbox_sync,
1211 .mbox_close = pop_mbox_close,
1212 .msg_open = pop_msg_open,
1213 .msg_open_new = NULL,
1214 .msg_commit = NULL,
1215 .msg_close = pop_msg_close,
1216 .msg_padding_size = NULL,
1217 .msg_save_hcache = pop_msg_save_hcache,
1218 .tags_edit = NULL,
1219 .tags_commit = NULL,
1220 .path_probe = pop_path_probe,
1221 .path_canon = pop_path_canon,
1222 .path_is_empty = NULL,
1223 // clang-format on
1224};