NeoMutt  2025-12-11-911-gd8d604
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:2442
static enum MxStatus imap_mbox_close(struct Mailbox *m)
Close a Mailbox - Implements MxOps::mbox_close() -.
Definition imap.c:2456
static bool imap_mbox_open_append(struct Mailbox *m, OpenMailboxFlags flags)
Open a Mailbox for appending - Implements MxOps::mbox_open_append() -.
Definition imap.c:2405
static enum MxOpenReturns imap_mbox_open(struct Mailbox *m)
Open a mailbox - Implements MxOps::mbox_open() -.
Definition imap.c:2319
int imap_msg_close(struct Mailbox *m, struct Message *msg)
Close an email - Implements MxOps::msg_close() -.
Definition message.c:2216
int imap_msg_commit(struct Mailbox *m, struct Message *msg)
Save changes to an email - Implements MxOps::msg_commit() -.
Definition message.c:2202
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:2499
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:2009
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:2224
int imap_path_canon(struct Buffer *path)
Canonicalise a Mailbox path - Implements MxOps::path_canon() -.
Definition imap.c:2695
static int imap_path_is_empty(struct Buffer *path)
Is the mailbox empty - Implements MxOps::path_is_empty() -.
Definition imap.c:2726
enum MailboxType imap_path_probe(const char *path, const struct stat *st)
Is this an IMAP Mailbox?
Definition imap.c:2681
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:2611
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:2524

IMAP Mailbox - Implements MxOps -.

Definition at line 2739 of file imap.c.

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

◆ 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:638
int maildir_msg_commit(struct Mailbox *m, struct Message *msg)
Save changes to an email - Implements MxOps::msg_commit() -.
Definition message.c:628
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:549
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:522
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:646
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:817
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:802
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:1677
static enum MxStatus mbox_mbox_check(struct Mailbox *m)
Check for new mail - Implements MxOps::mbox_check() -.
Definition mbox.c:956
static enum MxStatus mbox_mbox_close(struct Mailbox *m)
Close a Mailbox - Implements MxOps::mbox_close() -.
Definition mbox.c:1460
static bool mbox_mbox_open_append(struct Mailbox *m, OpenMailboxFlags flags)
Open a Mailbox for appending - Implements MxOps::mbox_open_append() -.
Definition mbox.c:904
static enum MxOpenReturns mbox_mbox_open(struct Mailbox *m)
Open a Mailbox - Implements MxOps::mbox_open() -.
Definition mbox.c:855
static enum MxStatus mbox_mbox_sync(struct Mailbox *m)
Save changes to the Mailbox - Implements MxOps::mbox_sync() -.
Definition mbox.c:1090
static int mbox_msg_close(struct Mailbox *m, struct Message *msg)
Close an email - Implements MxOps::msg_close() -.
Definition mbox.c:1546
static int mbox_msg_commit(struct Mailbox *m, struct Message *msg)
Save changes to an email - Implements MxOps::msg_commit() -.
Definition mbox.c:1529
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:1516
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:1500
static int mbox_msg_padding_size(struct Mailbox *m)
Bytes of padding between messages - Implements MxOps::msg_padding_size() -.
Definition mbox.c:1561
static int mbox_path_canon(struct Buffer *path)
Canonicalise a Mailbox path - Implements MxOps::path_canon() -.
Definition mbox.c:1633
static int mbox_path_is_empty(struct Buffer *path)
Is the mailbox empty - Implements MxOps::path_is_empty() -.
Definition mbox.c:1642
enum MailboxType mbox_path_probe(const char *path, const struct stat *st)
Is this an mbox Mailbox?
Definition mbox.c:1569

Mbox Mailbox - Implements MxOps -.

Definition at line 1739 of file mbox.c.

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

◆ 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:1650
static int mmdf_msg_padding_size(struct Mailbox *m)
Bytes of padding between messages - Implements MxOps::msg_padding_size() -.
Definition mbox.c:1669

MMDF Mailbox - Implements MxOps -.

Definition at line 1769 of file mbox.c.

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

◆ 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:811
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:803
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:1053
static enum MxStatus mh_mbox_close(struct Mailbox *m)
Close a Mailbox - Implements MxOps::mbox_close() -.
Definition mh.c:1137
static bool mh_mbox_open_append(struct Mailbox *m, OpenMailboxFlags flags)
Open a Mailbox for appending - Implements MxOps::mbox_open_append() -.
Definition mh.c:827
static enum MxOpenReturns mh_mbox_open(struct Mailbox *m)
Open a Mailbox - Implements MxOps::mbox_open() -.
Definition mh.c:819
static enum MxStatus mh_mbox_sync(struct Mailbox *m)
Save changes to the Mailbox - Implements MxOps::mbox_sync() -.
Definition mh.c:1067
static int mh_msg_close(struct Mailbox *m, struct Message *msg)
Close an email - Implements MxOps::msg_close() -.
Definition mh.c:1184
static int mh_msg_commit(struct Mailbox *m, struct Message *msg)
Save changes to an email - Implements MxOps::msg_commit() -.
Definition mh.c:1174
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:1166
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:1145
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:788
static int mh_path_canon(struct Buffer *path)
Canonicalise a Mailbox path - Implements MxOps::path_canon() -.
Definition mh.c:1192
static enum MailboxType mh_path_probe(const char *path, const struct stat *st)
Is this an mh Mailbox?
Definition mh.c:1201
int mh_check_empty(struct Buffer *path)
Is mailbox empty.
Definition mh.c:116

MH Mailbox - Implements MxOps -.

Definition at line 1241 of file mh.c.

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

◆ 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:2375
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:2367
static enum MxStatus nntp_mbox_check(struct Mailbox *m)
Check for new mail - Implements MxOps::mbox_check() -.
Definition nntp.c:2548
static enum MxStatus nntp_mbox_close(struct Mailbox *m)
Close a Mailbox - Implements MxOps::mbox_close() -.
Definition nntp.c:2625
static enum MxOpenReturns nntp_mbox_open(struct Mailbox *m)
Open a Mailbox - Implements MxOps::mbox_open() -.
Definition nntp.c:2383
static enum MxStatus nntp_mbox_sync(struct Mailbox *m)
Save changes to the Mailbox - Implements MxOps::mbox_sync() -.
Definition nntp.c:2565
static int nntp_msg_close(struct Mailbox *m, struct Message *msg)
Close an email - Implements MxOps::msg_close() -.
Definition nntp.c:2779
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:2647
static int nntp_path_canon(struct Buffer *path)
Canonicalise a Mailbox path - Implements MxOps::path_canon() -.
Definition nntp.c:2801
enum MailboxType nntp_path_probe(const char *path, const struct stat *st)
Is this an NNTP Mailbox?
Definition nntp.c:2787

NNTP Mailbox - Implements MxOps -.

Definition at line 2809 of file nntp.c.

2809 {
2810 // clang-format off
2811 .type = MUTT_NNTP,
2812 .name = "nntp",
2813 .is_local = false,
2814 .ac_owns_path = nntp_ac_owns_path,
2815 .ac_add = nntp_ac_add,
2816 .mbox_open = nntp_mbox_open,
2817 .mbox_open_append = NULL,
2818 .mbox_check = nntp_mbox_check,
2819 .mbox_check_stats = NULL,
2820 .mbox_sync = nntp_mbox_sync,
2821 .mbox_close = nntp_mbox_close,
2822 .msg_open = nntp_msg_open,
2823 .msg_open_new = NULL,
2824 .msg_commit = NULL,
2825 .msg_close = nntp_msg_close,
2826 .msg_padding_size = NULL,
2827 .msg_save_hcache = NULL,
2828 .tags_edit = NULL,
2829 .tags_commit = NULL,
2830 .path_probe = nntp_path_probe,
2831 .path_canon = nntp_path_canon,
2832 // clang-format on
2833};

◆ 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:2091
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:2083
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:2156
static enum MxStatus nm_mbox_close(struct Mailbox *m)
Close a Mailbox - Implements MxOps::mbox_close() -.
Definition notmuch.c:2430
static enum MxOpenReturns nm_mbox_open(struct Mailbox *m)
Open a Mailbox - Implements MxOps::mbox_open() -.
Definition notmuch.c:2106
static enum MxStatus nm_mbox_sync(struct Mailbox *m)
Save changes to the Mailbox - Implements MxOps::mbox_sync() -.
Definition notmuch.c:2293
static int nm_msg_close(struct Mailbox *m, struct Message *msg)
Close an email - Implements MxOps::msg_close() -.
Definition notmuch.c:2469
static int nm_msg_commit(struct Mailbox *m, struct Message *msg)
Save changes to an email - Implements MxOps::msg_commit() -.
Definition notmuch.c:2460
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:2438
static int nm_path_canon(struct Buffer *path)
Canonicalise a Mailbox path - Implements MxOps::path_canon() -.
Definition notmuch.c:2542
enum MailboxType nm_path_probe(const char *path, const struct stat *st)
Is this a Notmuch Mailbox?
Definition notmuch.c:2531
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:2492
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:2478

Notmuch Mailbox - Implements MxOps -.

Definition at line 2550 of file notmuch.c.

2550 {
2551 // clang-format off
2552 .type = MUTT_NOTMUCH,
2553 .name = "notmuch",
2554 .is_local = false,
2555 .ac_owns_path = nm_ac_owns_path,
2556 .ac_add = nm_ac_add,
2557 .mbox_open = nm_mbox_open,
2558 .mbox_open_append = NULL,
2559 .mbox_check = nm_mbox_check,
2560 .mbox_check_stats = nm_mbox_check_stats,
2561 .mbox_sync = nm_mbox_sync,
2562 .mbox_close = nm_mbox_close,
2563 .msg_open = nm_msg_open,
2564 .msg_open_new = maildir_msg_open_new,
2565 .msg_commit = nm_msg_commit,
2566 .msg_close = nm_msg_close,
2567 .msg_padding_size = NULL,
2568 .msg_save_hcache = NULL,
2569 .tags_edit = nm_tags_edit,
2570 .tags_commit = nm_tags_commit,
2571 .path_probe = nm_path_probe,
2572 .path_canon = nm_path_canon,
2573 .path_is_empty = NULL,
2574 // clang-format on
2575};

◆ 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:724
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:706
static enum MxStatus pop_mbox_check(struct Mailbox *m)
Check for new mail - Implements MxOps::mbox_check() -.
Definition pop.c:831
static enum MxStatus pop_mbox_close(struct Mailbox *m)
Close a Mailbox - Implements MxOps::mbox_close() -.
Definition pop.c:963
static enum MxOpenReturns pop_mbox_open(struct Mailbox *m)
Open a Mailbox - Implements MxOps::mbox_open() -.
Definition pop.c:754
static enum MxStatus pop_mbox_sync(struct Mailbox *m)
Save changes to the Mailbox - Implements MxOps::mbox_sync() -.
Definition pop.c:873
static int pop_msg_close(struct Mailbox *m, struct Message *msg)
Close an email - Implements MxOps::msg_close() -.
Definition pop.c:1145
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:989
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:1153
static int pop_path_canon(struct Buffer *path)
Canonicalise a Mailbox path - Implements MxOps::path_canon() -.
Definition pop.c:1184
enum MailboxType pop_path_probe(const char *path, const struct stat *st)
Is this a POP Mailbox?
Definition pop.c:1170

POP Mailbox - Implements MxOps -.

Definition at line 1192 of file pop.c.

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