NeoMutt  2025-12-11-911-gd8d604
Teaching an old dog new tricks
DOXYGEN
Loading...
Searching...
No Matches
mx.h
Go to the documentation of this file.
1
24
25#ifndef MUTT_MX_H
26#define MUTT_MX_H
27
28#include <stdbool.h>
29#include <stdint.h>
30#include "core/lib.h"
31
32struct Buffer;
33struct Email;
34
35extern const struct EnumDef MboxTypeDef;
36
41{
43 MUTT_ADD_FROM = 1U << 0,
44 MUTT_SET_DRAFT = 1U << 1,
45};
46typedef uint8_t MsgOpenFlags;
47
48/* Wrappers for the Mailbox API, see MxOps */
49enum MxStatus mx_mbox_check (struct Mailbox *m);
50enum MxStatus mx_mbox_check_stats (struct Mailbox *m, uint8_t flags);
51enum MxStatus mx_mbox_close (struct Mailbox *m);
52bool mx_mbox_open (struct Mailbox *m, OpenMailboxFlags flags);
53enum MxStatus mx_mbox_sync (struct Mailbox *m);
54int mx_msg_close (struct Mailbox *m, struct Message **ptr);
55int mx_msg_commit (struct Mailbox *m, struct Message *msg);
56struct Message * mx_msg_open_new (struct Mailbox *m, const struct Email *e, MsgOpenFlags flags);
57struct Message * mx_msg_open (struct Mailbox *m, struct Email *e);
58int mx_msg_padding_size (struct Mailbox *m);
59int mx_save_hcache (struct Mailbox *m, struct Email *e);
60int mx_path_canon (struct Buffer *path, const char *folder, enum MailboxType *type);
61int mx_path_canon2 (struct Mailbox *m, const char *folder);
62enum MailboxType mx_path_probe (const char *path);
63struct Mailbox * mx_path_resolve (const char *path);
64struct Mailbox * mx_resolve (const char *path_or_name);
65int mx_tags_commit (struct Mailbox *m, struct Email *e, const char *tags);
66int mx_tags_edit (struct Mailbox *m, const char *tags, struct Buffer *buf);
67enum MailboxType mx_type (struct Mailbox *m);
68
69#define MBOX_SEP "\n"
70
71struct Account * mx_ac_find (struct Mailbox *m);
72struct Mailbox * mx_mbox_find (struct Account *a, const char *path);
73struct Mailbox * mx_mbox_find2 (const char *path);
74bool mx_mbox_ac_link (struct Mailbox *m);
75bool mx_ac_add (struct Account *a, struct Mailbox *m);
76int mx_ac_remove (struct Mailbox *m, bool keep_account);
77
78int mx_access (const char *path, int flags);
79void mx_alloc_memory (struct Mailbox *m, int req_size);
80int mx_path_is_empty (struct Buffer *path);
81void mx_fastclose_mailbox (struct Mailbox *m, bool keep_account);
82const struct MxOps * mx_get_ops (enum MailboxType type);
83bool mx_tags_is_supported (struct Mailbox *m);
84int mx_toggle_write (struct Mailbox *m);
85
86#endif /* MUTT_MX_H */
Convenience wrapper for the core headers.
MailboxType
Supported mailbox formats.
Definition mailbox.h:40
const struct EnumDef MboxTypeDef
Data for the $mbox_type enumeration.
Definition mx.c:89
void mx_alloc_memory(struct Mailbox *m, int req_size)
Create storage for the emails.
Definition mx.c:1208
int mx_tags_edit(struct Mailbox *m, const char *tags, struct Buffer *buf)
Start the tag editor of the mailbox.
Definition mx.c:1276
int mx_msg_close(struct Mailbox *m, struct Message **ptr)
Close a message.
Definition mx.c:1182
int mx_ac_remove(struct Mailbox *m, bool keep_account)
Remove a Mailbox from an Account and delete Account if empty.
Definition mx.c:1754
int mx_access(const char *path, int flags)
Wrapper for access, checks permissions on a given mailbox.
Definition mx.c:167
uint8_t MsgOpenFlags
Definition mx.h:46
int mx_msg_padding_size(struct Mailbox *m)
Bytes of padding between messages - Wrapper for MxOps::msg_padding_size()
Definition mx.c:1507
void mx_fastclose_mailbox(struct Mailbox *m, bool keep_account)
Free up memory associated with the Mailbox.
Definition mx.c:411
enum MxStatus mx_mbox_check_stats(struct Mailbox *m, uint8_t flags)
Check the statistics for a mailbox - Wrapper for MxOps::mbox_check_stats()
Definition mx.c:1773
MsgOpenFlag
Flags for mx_msg_open_new(), e.g.
Definition mx.h:41
@ MUTT_ADD_FROM
add a From_ line
Definition mx.h:43
@ MUTT_SET_DRAFT
set the message draft flag
Definition mx.h:44
@ MUTT_MSG_NONE
No flags are set.
Definition mx.h:42
int mx_path_canon(struct Buffer *path, const char *folder, enum MailboxType *type)
Canonicalise a mailbox path - Wrapper for MxOps::path_canon()
Definition mx.c:1369
bool mx_mbox_open(struct Mailbox *m, OpenMailboxFlags flags)
Open a mailbox and parse it.
Definition mx.c:285
struct Mailbox * mx_mbox_find(struct Account *a, const char *path)
Find a Mailbox on an Account.
Definition mx.c:1546
struct Mailbox * mx_resolve(const char *path_or_name)
Get a Mailbox from either a path or name.
Definition mx.c:1719
bool mx_ac_add(struct Account *a, struct Mailbox *m)
Add a Mailbox to an Account - Wrapper for MxOps::ac_add()
Definition mx.c:1737
struct Mailbox * mx_mbox_find2(const char *path)
Find a Mailbox on an Account.
Definition mx.c:1615
struct Message * mx_msg_open(struct Mailbox *m, struct Email *e)
Return a stream pointer for a message.
Definition mx.c:1136
const struct MxOps * mx_get_ops(enum MailboxType type)
Get mailbox operations.
Definition mx.c:124
bool mx_tags_is_supported(struct Mailbox *m)
Return true if mailbox support tagging.
Definition mx.c:1313
int mx_tags_commit(struct Mailbox *m, struct Email *e, const char *tags)
Save tags to the Mailbox - Wrapper for MxOps::tags_commit()
Definition mx.c:1296
int mx_save_hcache(struct Mailbox *m, struct Email *e)
Save message to the header cache - Wrapper for MxOps::msg_save_hcache()
Definition mx.c:1797
bool mx_mbox_ac_link(struct Mailbox *m)
Link a Mailbox to an existing or new Account.
Definition mx.c:248
struct Account * mx_ac_find(struct Mailbox *m)
Find the Account owning a Mailbox.
Definition mx.c:1521
enum MailboxType mx_type(struct Mailbox *m)
Return the type of the Mailbox.
Definition mx.c:1810
int mx_path_is_empty(struct Buffer *path)
Is the mailbox empty.
Definition mx.c:1254
struct Message * mx_msg_open_new(struct Mailbox *m, const struct Email *e, MsgOpenFlags flags)
Open a new message.
Definition mx.c:1041
int mx_toggle_write(struct Mailbox *m)
Toggle the mailbox's readonly flag.
Definition mx.c:1821
int mx_msg_commit(struct Mailbox *m, struct Message *msg)
Commit a message to a folder - Wrapper for MxOps::msg_commit()
Definition mx.c:1161
enum MailboxType mx_path_probe(const char *path)
Find a mailbox that understands a path.
Definition mx.c:1323
struct Mailbox * mx_path_resolve(const char *path)
Get a Mailbox for a path.
Definition mx.c:1647
int mx_path_canon2(struct Mailbox *m, const char *folder)
Canonicalise the path to realpath.
Definition mx.c:1473
enum MxStatus mx_mbox_check(struct Mailbox *m)
Check for new mail - Wrapper for MxOps::mbox_check()
Definition mx.c:1107
enum MxStatus mx_mbox_sync(struct Mailbox *m)
Save changes to mailbox.
Definition mx.c:903
enum MxStatus mx_mbox_close(struct Mailbox *m)
Save changes and close mailbox.
Definition mx.c:595
uint8_t OpenMailboxFlags
Definition mxapi.h:51
MxStatus
Return values from mbox_check(), mbox_check_stats(), mbox_sync(), and mbox_close()
Definition mxapi.h:70
A group of associated Mailboxes.
Definition account.h:36
String manipulation buffer.
Definition buffer.h:36
The envelope/body of an email.
Definition email.h:39
An enumeration.
Definition enum.h:30
A mailbox.
Definition mailbox.h:81
A local copy of an email.
Definition message.h:34
char * path
path to temp file
Definition message.h:36
struct Message::@264267271004327071125374067057142037276212342100 flags
Flags for the Message.
Definition mxapi.h:98
enum MailboxType type
Mailbox type, e.g. MUTT_IMAP.
Definition mxapi.h:99