95 {
N_(
"Exit"), OP_EXIT },
96 {
N_(
"Save"), OP_ATTACHMENT_SAVE },
97 {
N_(
"Pipe"), OP_PIPE },
98 {
N_(
"Print"), OP_ATTACHMENT_PRINT },
99 {
N_(
"Help"), OP_HELP },
152 const char *src,
const char *prec,
const char *if_str,
155 char fmt[128] = { 0 };
156 char charset[128] = { 0 };
185 snprintf(fmt,
sizeof(fmt),
"%%%sc", prec);
186 snprintf(buf, buflen, fmt,
270 snprintf(buf, buflen,
"%c", aptr->
body->
deleted ?
'D' :
' ');
282 const char dispchar[] = {
'I',
'A',
'F',
'-' };
295 snprintf(buf, buflen,
"%c", ch);
311 snprintf(fmt,
sizeof(fmt),
"%%%sd", prec);
312 snprintf(buf, buflen, fmt, aptr->
num + 1);
321 snprintf(fmt,
sizeof(fmt),
"%%%sc", prec);
339 char tmp[128] = { 0 };
352 snprintf(buf, buflen,
"%c", aptr->
body->
tagged ?
'*' :
' ');
359 else if (!aptr->
tree)
364 snprintf(buf, buflen,
"%c", aptr->
body->
unlink ?
'-' :
' ');
375 snprintf(fmt,
sizeof(fmt),
"%%%sd", prec);
447 if (ev_w->
win != win_menu)
472 struct Email *e, FILE *fp,
bool attach_msg)
474 if (!mv || !mv->
mailbox || !e || !fp)
struct AttachCtx * mutt_actx_new(void)
Create a new Attachment Context.
struct AttachPrivateData * attach_private_data_new(void)
Create new Attach Data.
Handling of email attachments.
void mutt_parse_mime_message(struct Email *e, FILE *fp)
Parse a MIME email.
Miscellaneous email parsing routines.
size_t buf_strcpy(struct Buffer *buf, const char *s)
Copy a string into a Buffer.
static const char * buf_string(const struct Buffer *buf)
Convert a buffer to a const char * "string".
const char * cs_subset_string(const struct ConfigSubset *sub, const char *name)
Get a string config item by name.
Convenience wrapper for the config headers.
Convenience wrapper for the core headers.
void mutt_format_s_tree(char *buf, size_t buflen, const char *prec, const char *s)
Format a simple string with tree characters.
void mutt_format_s(char *buf, size_t buflen, const char *prec, const char *s)
Format a simple string.
@ FR_DONE
Exit the Dialog.
@ FR_UNKNOWN
Unknown function.
@ FR_CONTINUE
Remain in the Dialog.
static const struct Mapping AttachmentHelp[]
Help Bar for the Attachment selection dialog.
char * mutt_body_get_charset(struct Body *b, char *buf, size_t buflen)
Get a body's character set.
Structs that make up an email.
bool mutt_is_message_type(int type, const char *subtype)
Determine if a mime type matches a message or not.
long mutt_file_get_size(const char *path)
Get the size of a file.
int km_dokey(enum MenuType mtype, GetChFlags flags)
Determine what a keypress should do.
void km_error_key(enum MenuType mtype)
Handle an unbound key sequence.
int menu_tagging_dispatcher(struct MuttWindow *win, int op)
Perform tagging operations on the Menu - Implements function_dispatcher_t -.
int global_function_dispatcher(struct MuttWindow *win, int op)
Perform a Global function - Implements function_dispatcher_t -.
int attach_function_dispatcher(struct MuttWindow *win, int op)
Perform a Attach function - Implements function_dispatcher_t -.
int menu_function_dispatcher(struct MuttWindow *win, int op)
Perform a Menu function - Implements function_dispatcher_t -.
void mutt_expando_format(char *buf, size_t buflen, size_t col, int cols, const char *src, format_t callback, intptr_t data, MuttFormatFlags flags)
Expand expandos (x) in a string -.
const char * attach_format_str(char *buf, size_t buflen, size_t col, int cols, char op, const char *src, const char *prec, const char *if_str, const char *else_str, intptr_t data, MuttFormatFlags flags)
Format a string for the attachment menu - Implements format_t -.
void dlg_attachment(struct ConfigSubset *sub, struct MailboxView *mv, struct Email *e, FILE *fp, bool attach_msg)
Show the attachments in a Menu -.
#define mutt_debug(LEVEL,...)
static int attach_config_observer(struct NotifyCallback *nc)
Notification that a Config Variable has changed - Implements observer_t -.
static int attach_window_observer(struct NotifyCallback *nc)
Notification that a Window has changed - Implements observer_t -.
Convenience wrapper for the gui headers.
void simple_dialog_free(struct MuttWindow **ptr)
Destroy a simple index Dialog.
struct MuttWindow * simple_dialog_new(enum MenuType mtype, enum WindowType wtype, const struct Mapping *help_data)
Create a simple index Dialog.
void mutt_make_string(char *buf, size_t buflen, int cols, const char *s, struct Mailbox *m, int inpgr, struct Email *e, MuttFormatFlags flags, const char *progress)
Create formatted strings using mailbox expandos.
String processing routines to generate the mail index.
void mutt_message_hook(struct Mailbox *m, struct Email *e, HookFlags type)
Perform a message hook.
Parse and execute user-defined hooks.
#define MUTT_MESSAGE_HOOK
message-hook: run before displaying a message
#define GETCH_NO_FLAGS
No flags are set.
@ LL_DEBUG5
Log at debug level 5.
@ LL_DEBUG1
Log at debug level 1.
@ TYPE_TEXT
Type: 'text/*'.
Convenience wrapper for the library headers.
bool notify_observer_remove(struct Notify *notify, const observer_t callback, const void *global_data)
Remove an observer from an object.
bool notify_observer_add(struct Notify *notify, enum NotifyType type, observer_t callback, void *global_data)
Add an observer to an object.
bool mutt_str_equal(const char *a, const char *b)
Compare two strings.
void mutt_clear_error(void)
Clear the message line (bottom line of screen)
void window_redraw(struct MuttWindow *win)
Reflow, recalc and repaint a tree of Windows.
struct MuttWindow * window_set_focus(struct MuttWindow *win)
Set the Window focus.
struct MuttWindow * window_find_child(struct MuttWindow *win, enum WindowType type)
Recursively find a child Window of a given type.
@ WT_STATUS_BAR
Status Bar containing extra info about the Index/Pager/etc.
@ WT_DLG_ATTACHMENT
Attachment Dialog, dlg_attachment()
@ NT_WINDOW_DELETE
Window is about to be deleted.
void buf_pretty_mailbox(struct Buffer *buf)
Shorten a mailbox path using '~' or '='.
void mutt_str_pretty_size(char *buf, size_t buflen, size_t num)
Display an abbreviated size, like 3.4K.
bool mutt_is_text_part(struct Body *b)
Is this part of an email in plain text?
Some miscellaneous functions.
@ NT_WINDOW
MuttWindow has changed, NotifyWindow, EventWindow.
@ NT_CONFIG
Config has changed, NotifyConfig, EventConfig.
const char * opcodes_get_name(int op)
Get the name of an opcode.
struct Buffer * buf_pool_get(void)
Get a Buffer from the pool.
void buf_pool_release(struct Buffer **ptr)
Return a Buffer to the pool.
void mutt_update_recvattach_menu(struct AttachCtx *actx, struct Menu *menu, bool init)
Update the Attachment Menu.
Routines for managing attachments.
void sbar_set_title(struct MuttWindow *win, const char *title)
Set the title for the Simple Bar.
FILE * fp_root
Used by recvattach for updating.
struct Email * email
Used by recvattach for updating.
struct AttachPtr ** idx
Array of attachments.
short * v2r
Mapping from virtual to real attachment.
Private state data for Attachments.
int op
Op returned from the Pager, e.g. OP_NEXT_ENTRY.
struct Menu * menu
Current Menu.
struct ConfigSubset * sub
Config subset.
struct AttachCtx * actx
List of all Attachments.
bool attach_msg
Are we in "attach message" mode?
struct Mailbox * mailbox
Current Mailbox.
An email to which things will be attached.
struct Body * body
Attachment.
char * tree
Tree characters to display.
int num
Attachment index number.
char * d_filename
filename to be used for the content-disposition header If NULL, filename is used instead.
signed short attach_count
Number of attachments.
bool deleted
Attachment marked for deletion.
bool noconv
Don't do character set conversion.
bool unlink
If true, filename should be unlink()ed before free()ing this structure.
LOFF_T length
length (in bytes) of attachment
struct Email * email
header information for message/rfc822
char * description
content-description
unsigned int disposition
content-disposition, ContentDisposition
bool attach_qualifies
This attachment should be counted.
bool tagged
This attachment is tagged.
char * subtype
content-type subtype
unsigned int encoding
content-transfer-encoding, ContentEncoding
unsigned int type
content-type primary type, ContentType
char * filename
When sending a message, this is the file to which this structure refers.
String manipulation buffer.
char * data
Pointer to data.
A set of inherited config items.
struct Notify * notify
Notifications: NotifyConfig, EventConfig.
The envelope/body of an email.
const char * name
Name of config item that changed.
An Event that happened to a Window.
struct MuttWindow * win
Window that changed.
struct Mailbox * mailbox
Current Mailbox.
Mapping between user-readable string and a constant.
struct WindowState state
Current state of the Window.
void * wdata
Private data.
struct Notify * notify
Notifications: NotifyWindow, EventWindow.
Container for Accounts, Notifications.
struct ConfigSubset * sub
Inherited config items.
Data passed to a notification function.
void * event_data
Data from notify_send()
enum NotifyType event_type
Send: Event type, e.g. NT_ACCOUNT.
int event_subtype
Send: Event subtype, e.g. NT_ACCOUNT_ADD.
void * global_data
Data from notify_observer_add()
short cols
Number of columns, can be MUTT_WIN_SIZE_UNLIMITED.
@ MENU_ATTACHMENT
Select an attachment.