NeoMutt  2025-12-11-117-gc1a713
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:53
static bool comp_ac_add(struct Account *a, struct Mailbox *m)
Add a Mailbox to an Account - Implements MxOps::ac_add() -.
Definition compress.c:402
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:394
static enum MxStatus comp_mbox_check(struct Mailbox *m)
Check for new mail - Implements MxOps::mbox_check() -.
Definition compress.c:550
static enum MxStatus comp_mbox_close(struct Mailbox *m)
Close a Mailbox - Implements MxOps::mbox_close() -.
Definition compress.c:637
static bool comp_mbox_open_append(struct Mailbox *m, OpenMailboxFlags flags)
Open a Mailbox for appending - Implements MxOps::mbox_open_append() -.
Definition compress.c:470
static enum MxOpenReturns comp_mbox_open(struct Mailbox *m)
Open a Mailbox - Implements MxOps::mbox_open() -.
Definition compress.c:415
static enum MxStatus comp_mbox_sync(struct Mailbox *m)
Save changes to the Mailbox - Implements MxOps::mbox_sync() -.
Definition compress.c:586
static int comp_msg_close(struct Mailbox *m, struct Message *msg)
Close an email - Implements MxOps::msg_close() -.
Definition compress.c:774
static int comp_msg_commit(struct Mailbox *m, struct Message *msg)
Save changes to an email - Implements MxOps::msg_commit() -.
Definition compress.c:756
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:738
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:720
static int comp_msg_padding_size(struct Mailbox *m)
Bytes of padding between messages - Implements MxOps::msg_padding_size() -.
Definition compress.c:792
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:809
static int comp_path_canon(struct Buffer *path)
Canonicalise a Mailbox path - Implements MxOps::path_canon() -.
Definition compress.c:874
static enum MailboxType comp_path_probe(const char *path, const struct stat *st)
Is this a compressed Mailbox?
Definition compress.c:860
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:843
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:826

Compressed Mailbox - Implements MxOps -.

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

Definition at line 886 of file compress.c.

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

◆ 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:50
static bool imap_ac_add(struct Account *a, struct Mailbox *m)
Add a Mailbox to an Account - Implements MxOps::ac_add() -.
Definition imap.c:1807
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:1789
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:1264
static enum MxStatus imap_mbox_check(struct Mailbox *m)
Check for new mail - Implements MxOps::mbox_check() -.
Definition imap.c:2232
static enum MxStatus imap_mbox_close(struct Mailbox *m)
Close a Mailbox - Implements MxOps::mbox_close() -.
Definition imap.c:2246
static bool imap_mbox_open_append(struct Mailbox *m, OpenMailboxFlags flags)
Open a Mailbox for appending - Implements MxOps::mbox_open_append() -.
Definition imap.c:2195
static enum MxOpenReturns imap_mbox_open(struct Mailbox *m)
Open a mailbox - Implements MxOps::mbox_open() -.
Definition imap.c:1986
int imap_msg_close(struct Mailbox *m, struct Message *msg)
Close an email - Implements MxOps::msg_close() -.
Definition message.c:2204
int imap_msg_commit(struct Mailbox *m, struct Message *msg)
Save changes to an email - Implements MxOps::msg_commit() -.
Definition message.c:2190
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:2288
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:1997
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:2212
int imap_path_canon(struct Buffer *path)
Canonicalise a Mailbox path - Implements MxOps::path_canon() -.
Definition imap.c:2484
static int imap_path_is_empty(struct Buffer *path)
Is the mailbox empty - Implements MxOps::path_is_empty() -.
Definition imap.c:2515
enum MailboxType imap_path_probe(const char *path, const struct stat *st)
Is this an IMAP Mailbox?
Definition imap.c:2470
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:2400
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:2313

IMAP Mailbox - Implements MxOps -.

Definition at line 2528 of file imap.c.

2528 {
2529 // clang-format off
2530 .type = MUTT_IMAP,
2531 .name = "imap",
2532 .is_local = false,
2533 .ac_owns_path = imap_ac_owns_path,
2534 .ac_add = imap_ac_add,
2535 .mbox_open = imap_mbox_open,
2536 .mbox_open_append = imap_mbox_open_append,
2537 .mbox_check = imap_mbox_check,
2538 .mbox_check_stats = imap_mbox_check_stats,
2539 .mbox_sync = NULL, /* imap syncing is handled by imap_sync_mailbox */
2540 .mbox_close = imap_mbox_close,
2541 .msg_open = imap_msg_open,
2542 .msg_open_new = imap_msg_open_new,
2543 .msg_commit = imap_msg_commit,
2544 .msg_close = imap_msg_close,
2545 .msg_padding_size = NULL,
2546 .msg_save_hcache = imap_msg_save_hcache,
2547 .tags_edit = imap_tags_edit,
2548 .tags_commit = imap_tags_commit,
2549 .path_probe = imap_path_probe,
2550 .path_canon = imap_path_canon,
2551 .path_is_empty = imap_path_is_empty,
2552 // clang-format on
2553};

◆ 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:48
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:814
enum MxStatus maildir_mbox_check(struct Mailbox *m)
Check for new mail - Implements MxOps::mbox_check() -.
Definition mailbox.c:806
enum MxStatus maildir_mbox_close(struct Mailbox *m)
Close a Mailbox - Implements MxOps::mbox_close() -.
Definition mailbox.c:903
bool maildir_mbox_open_append(struct Mailbox *m, OpenMailboxFlags flags)
Open a Mailbox for appending - Implements MxOps::mbox_open_append() -.
Definition mailbox.c:752
enum MxOpenReturns maildir_mbox_open(struct Mailbox *m)
Open a Mailbox - Implements MxOps::mbox_open() -.
Definition mailbox.c:741
enum MxStatus maildir_mbox_sync(struct Mailbox *m)
Save changes to the Mailbox - Implements MxOps::mbox_sync() -.
Definition mailbox.c:843
int maildir_msg_close(struct Mailbox *m, struct Message *msg)
Close an email - Implements MxOps::msg_close() -.
Definition message.c:613
int maildir_msg_commit(struct Mailbox *m, struct Message *msg)
Save changes to an email - Implements MxOps::msg_commit() -.
Definition message.c:603
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:531
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:504
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:621
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:45
static bool mbox_ac_add(struct Account *a, struct Mailbox *m)
Add a Mailbox to an Account - Implements MxOps::ac_add() -.
Definition mbox.c:790
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:775
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:1650
static enum MxStatus mbox_mbox_check(struct Mailbox *m)
Check for new mail - Implements MxOps::mbox_check() -.
Definition mbox.c:929
static enum MxStatus mbox_mbox_close(struct Mailbox *m)
Close a Mailbox - Implements MxOps::mbox_close() -.
Definition mbox.c:1433
static bool mbox_mbox_open_append(struct Mailbox *m, OpenMailboxFlags flags)
Open a Mailbox for appending - Implements MxOps::mbox_open_append() -.
Definition mbox.c:877
static enum MxOpenReturns mbox_mbox_open(struct Mailbox *m)
Open a Mailbox - Implements MxOps::mbox_open() -.
Definition mbox.c:828
static enum MxStatus mbox_mbox_sync(struct Mailbox *m)
Save changes to the Mailbox - Implements MxOps::mbox_sync() -.
Definition mbox.c:1063
static int mbox_msg_close(struct Mailbox *m, struct Message *msg)
Close an email - Implements MxOps::msg_close() -.
Definition mbox.c:1519
static int mbox_msg_commit(struct Mailbox *m, struct Message *msg)
Save changes to an email - Implements MxOps::msg_commit() -.
Definition mbox.c:1502
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:1489
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:1473
static int mbox_msg_padding_size(struct Mailbox *m)
Bytes of padding between messages - Implements MxOps::msg_padding_size() -.
Definition mbox.c:1534
static int mbox_path_canon(struct Buffer *path)
Canonicalise a Mailbox path - Implements MxOps::path_canon() -.
Definition mbox.c:1606
static int mbox_path_is_empty(struct Buffer *path)
Is the mailbox empty - Implements MxOps::path_is_empty() -.
Definition mbox.c:1615
enum MailboxType mbox_path_probe(const char *path, const struct stat *st)
Is this an mbox Mailbox?
Definition mbox.c:1542

Mbox Mailbox - Implements MxOps -.

Definition at line 1712 of file mbox.c.

1712 {
1713 // clang-format off
1714 .type = MUTT_MBOX,
1715 .name = "mbox",
1716 .is_local = true,
1717 .ac_owns_path = mbox_ac_owns_path,
1718 .ac_add = mbox_ac_add,
1719 .mbox_open = mbox_mbox_open,
1720 .mbox_open_append = mbox_mbox_open_append,
1721 .mbox_check = mbox_mbox_check,
1722 .mbox_check_stats = mbox_mbox_check_stats,
1723 .mbox_sync = mbox_mbox_sync,
1724 .mbox_close = mbox_mbox_close,
1725 .msg_open = mbox_msg_open,
1726 .msg_open_new = mbox_msg_open_new,
1727 .msg_commit = mbox_msg_commit,
1728 .msg_close = mbox_msg_close,
1729 .msg_padding_size = mbox_msg_padding_size,
1730 .msg_save_hcache = NULL,
1731 .tags_edit = NULL,
1732 .tags_commit = NULL,
1733 .path_probe = mbox_path_probe,
1734 .path_canon = mbox_path_canon,
1735 .path_is_empty = mbox_path_is_empty,
1736 // clang-format on
1737};

◆ 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:46
static int mmdf_msg_commit(struct Mailbox *m, struct Message *msg)
Save changes to an email - Implements MxOps::msg_commit() -.
Definition mbox.c:1623
static int mmdf_msg_padding_size(struct Mailbox *m)
Bytes of padding between messages - Implements MxOps::msg_padding_size() -.
Definition mbox.c:1642

MMDF Mailbox - Implements MxOps -.

Definition at line 1742 of file mbox.c.

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

◆ 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:47
static bool mh_ac_add(struct Account *a, struct Mailbox *m)
Add a Mailbox to an Account - Implements MxOps::ac_add() -.
Definition mh.c:808
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:800
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:142
static enum MxStatus mh_mbox_check(struct Mailbox *m)
Check for new mail - Implements MxOps::mbox_check() -.
Definition mh.c:1050
static enum MxStatus mh_mbox_close(struct Mailbox *m)
Close a Mailbox - Implements MxOps::mbox_close() -.
Definition mh.c:1134
static bool mh_mbox_open_append(struct Mailbox *m, OpenMailboxFlags flags)
Open a Mailbox for appending - Implements MxOps::mbox_open_append() -.
Definition mh.c:824
static enum MxOpenReturns mh_mbox_open(struct Mailbox *m)
Open a Mailbox - Implements MxOps::mbox_open() -.
Definition mh.c:816
static enum MxStatus mh_mbox_sync(struct Mailbox *m)
Save changes to the Mailbox - Implements MxOps::mbox_sync() -.
Definition mh.c:1064
static int mh_msg_close(struct Mailbox *m, struct Message *msg)
Close an email - Implements MxOps::msg_close() -.
Definition mh.c:1181
static int mh_msg_commit(struct Mailbox *m, struct Message *msg)
Save changes to an email - Implements MxOps::msg_commit() -.
Definition mh.c:1171
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:1163
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:1142
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:785
static int mh_path_canon(struct Buffer *path)
Canonicalise a Mailbox path - Implements MxOps::path_canon() -.
Definition mh.c:1189
static enum MailboxType mh_path_probe(const char *path, const struct stat *st)
Is this an mh Mailbox?
Definition mh.c:1198
int mh_check_empty(struct Buffer *path)
Is mailbox empty.
Definition mh.c:118

MH Mailbox - Implements MxOps -.

Definition at line 1238 of file mh.c.

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

◆ 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:49
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:2547
static enum MxStatus nntp_mbox_close(struct Mailbox *m)
Close a Mailbox - Implements MxOps::mbox_close() -.
Definition nntp.c:2624
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:2564
static int nntp_msg_close(struct Mailbox *m, struct Message *msg)
Close an email - Implements MxOps::msg_close() -.
Definition nntp.c:2778
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:2646
static int nntp_path_canon(struct Buffer *path)
Canonicalise a Mailbox path - Implements MxOps::path_canon() -.
Definition nntp.c:2800
enum MailboxType nntp_path_probe(const char *path, const struct stat *st)
Is this an NNTP Mailbox?
Definition nntp.c:2786

NNTP Mailbox - Implements MxOps -.

Definition at line 2808 of file nntp.c.

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

◆ 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:51
static bool nm_ac_add(struct Account *a, struct Mailbox *m)
Add a Mailbox to an Account - Implements MxOps::ac_add() -.
Definition notmuch.c:2046
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:2038
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:1803
static enum MxStatus nm_mbox_check(struct Mailbox *m)
Check for new mail - Implements MxOps::mbox_check() -.
Definition notmuch.c:2111
static enum MxStatus nm_mbox_close(struct Mailbox *m)
Close a Mailbox - Implements MxOps::mbox_close() -.
Definition notmuch.c:2373
static enum MxOpenReturns nm_mbox_open(struct Mailbox *m)
Open a Mailbox - Implements MxOps::mbox_open() -.
Definition notmuch.c:2061
static enum MxStatus nm_mbox_sync(struct Mailbox *m)
Save changes to the Mailbox - Implements MxOps::mbox_sync() -.
Definition notmuch.c:2246
static int nm_msg_close(struct Mailbox *m, struct Message *msg)
Close an email - Implements MxOps::msg_close() -.
Definition notmuch.c:2410
static int nm_msg_commit(struct Mailbox *m, struct Message *msg)
Save changes to an email - Implements MxOps::msg_commit() -.
Definition notmuch.c:2401
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:2381
static int nm_path_canon(struct Buffer *path)
Canonicalise a Mailbox path - Implements MxOps::path_canon() -.
Definition notmuch.c:2483
enum MailboxType nm_path_probe(const char *path, const struct stat *st)
Is this a Notmuch Mailbox?
Definition notmuch.c:2472
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:2433
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:2419

Notmuch Mailbox - Implements MxOps -.

Definition at line 2491 of file notmuch.c.

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

◆ 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:52
static bool pop_ac_add(struct Account *a, struct Mailbox *m)
Add a Mailbox to an Account - Implements MxOps::ac_add() -.
Definition pop.c:710
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:692
static enum MxStatus pop_mbox_check(struct Mailbox *m)
Check for new mail - Implements MxOps::mbox_check() -.
Definition pop.c:817
static enum MxStatus pop_mbox_close(struct Mailbox *m)
Close a Mailbox - Implements MxOps::mbox_close() -.
Definition pop.c:949
static enum MxOpenReturns pop_mbox_open(struct Mailbox *m)
Open a Mailbox - Implements MxOps::mbox_open() -.
Definition pop.c:740
static enum MxStatus pop_mbox_sync(struct Mailbox *m)
Save changes to the Mailbox - Implements MxOps::mbox_sync() -.
Definition pop.c:859
static int pop_msg_close(struct Mailbox *m, struct Message *msg)
Close an email - Implements MxOps::msg_close() -.
Definition pop.c:1131
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:975
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:1139
static int pop_path_canon(struct Buffer *path)
Canonicalise a Mailbox path - Implements MxOps::path_canon() -.
Definition pop.c:1170
enum MailboxType pop_path_probe(const char *path, const struct stat *st)
Is this a POP Mailbox?
Definition pop.c:1156

POP Mailbox - Implements MxOps -.

Definition at line 1178 of file pop.c.

1178 {
1179 // clang-format off
1180 .type = MUTT_POP,
1181 .name = "pop",
1182 .is_local = false,
1183 .ac_owns_path = pop_ac_owns_path,
1184 .ac_add = pop_ac_add,
1185 .mbox_open = pop_mbox_open,
1186 .mbox_open_append = NULL,
1187 .mbox_check = pop_mbox_check,
1188 .mbox_check_stats = NULL,
1189 .mbox_sync = pop_mbox_sync,
1190 .mbox_close = pop_mbox_close,
1191 .msg_open = pop_msg_open,
1192 .msg_open_new = NULL,
1193 .msg_commit = NULL,
1194 .msg_close = pop_msg_close,
1195 .msg_padding_size = NULL,
1196 .msg_save_hcache = pop_msg_save_hcache,
1197 .tags_edit = NULL,
1198 .tags_commit = NULL,
1199 .path_probe = pop_path_probe,
1200 .path_canon = pop_path_canon,
1201 .path_is_empty = NULL,
1202 // clang-format on
1203};