NeoMutt  2025-12-11-980-ge38c27
Teaching an old dog new tricks
DOXYGEN
Loading...
Searching...
No Matches
functions.c File Reference

Attachment functions. More...

#include "config.h"
#include <stdbool.h>
#include <stdio.h>
#include "mutt/lib.h"
#include "config/lib.h"
#include "email/lib.h"
#include "core/lib.h"
#include "gui/lib.h"
#include "functions.h"
#include "key/lib.h"
#include "menu/lib.h"
#include "ncrypt/lib.h"
#include "question/lib.h"
#include "send/lib.h"
#include "attach.h"
#include "module_data.h"
#include "mutt_attach.h"
#include "private_data.h"
#include "recvattach.h"
#include "recvcmd.h"
+ Include dependency graph for functions.c:

Go to the source code of this file.

Functions

void attach_init_keys (struct NeoMutt *n, struct SubMenu *sm_generic)
 Initialise the Attach Keybindings - Implements ::init_keys_api.
 
static void attach_collapse (struct AttachCtx *actx, struct Menu *menu, struct ConfigSubset *sub)
 Close the tree of the current attachment.
 
static bool check_attach (struct AttachPrivateData *priv)
 Check if in attach-message mode.
 
static bool check_readonly (struct Mailbox *m)
 Check if the Mailbox is readonly.
 
static void recvattach_extract_pgp_keys (struct AttachPtrArray *aa)
 Extract PGP keys from attachments.
 
static int recvattach_pgp_check_traditional (struct AttachPtrArray *aa)
 Is the Attachment inline PGP?
 
static int op_attach_collapse (struct AttachFunctionData *fdata, const struct KeyEvent *event)
 toggle display of subparts - Implements attach_function_t -
 
static void attach_apply_set_deleted (struct AttachPtrArray *apa, bool deleted, int *num_changed, int *num_blocked)
 Apply the deleted flag to a working set of attachments.
 
static int op_attach_delete (struct AttachFunctionData *fdata, const struct KeyEvent *event)
 delete the current entry - Implements attach_function_t -
 
static int op_attach_edit_type (struct AttachFunctionData *fdata, const struct KeyEvent *event)
 edit attachment content type - Implements attach_function_t -
 
static int op_attach_pipe (struct AttachFunctionData *fdata, const struct KeyEvent *event)
 pipe message/attachment to a shell command - Implements attach_function_t -
 
static int op_attach_print (struct AttachFunctionData *fdata, const struct KeyEvent *event)
 print the current entry - Implements attach_function_t -
 
static int op_attach_save (struct AttachFunctionData *fdata, const struct KeyEvent *event)
 save message/attachment to a mailbox/file - Implements attach_function_t -
 
static int op_attach_undelete (struct AttachFunctionData *fdata, const struct KeyEvent *event)
 undelete the current entry - Implements attach_function_t -
 
static int op_attach_view (struct AttachFunctionData *fdata, const struct KeyEvent *event)
 view attachment using mailcap entry if necessary - Implements attach_function_t -
 
static int op_attach_view_mailcap (struct AttachFunctionData *fdata, const struct KeyEvent *event)
 force viewing of attachment using mailcap - Implements attach_function_t -
 
static int op_attach_view_pager (struct AttachFunctionData *fdata, const struct KeyEvent *event)
 view attachment in pager using copiousoutput mailcap - Implements attach_function_t -
 
static int op_attach_view_text (struct AttachFunctionData *fdata, const struct KeyEvent *event)
 view attachment as text - Implements attach_function_t -
 
static int op_bounce_message (struct AttachFunctionData *fdata, const struct KeyEvent *event)
 remail a message to another user - Implements attach_function_t -
 
static int op_check_traditional (struct AttachFunctionData *fdata, const struct KeyEvent *event)
 check for classic PGP - Implements attach_function_t -
 
static int op_compose_to_sender (struct AttachFunctionData *fdata, const struct KeyEvent *event)
 compose new message to the current message sender - Implements attach_function_t -
 
static int op_quit (struct AttachFunctionData *fdata, const struct KeyEvent *event)
 Save changes and exit this dialog - Implements attach_function_t -.
 
static int op_extract_keys (struct AttachFunctionData *fdata, const struct KeyEvent *event)
 extract supported public keys - Implements attach_function_t -
 
static int op_forward_message (struct AttachFunctionData *fdata, const struct KeyEvent *event)
 forward a message with comments - Implements attach_function_t -
 
static int op_list_subscribe (struct AttachFunctionData *fdata, const struct KeyEvent *event)
 subscribe to a mailing list - Implements attach_function_t -
 
static int op_list_unsubscribe (struct AttachFunctionData *fdata, const struct KeyEvent *event)
 unsubscribe from a mailing list - Implements attach_function_t -
 
static int op_reply (struct AttachFunctionData *fdata, const struct KeyEvent *event)
 reply to a message - Implements attach_function_t -
 
static int op_resend (struct AttachFunctionData *fdata, const struct KeyEvent *event)
 use the current message as a template for a new one - Implements attach_function_t -
 
static int op_followup (struct AttachFunctionData *fdata, const struct KeyEvent *event)
 followup to newsgroup - Implements attach_function_t -
 
static int op_forward_to_group (struct AttachFunctionData *fdata, const struct KeyEvent *event)
 forward to newsgroup - Implements attach_function_t -
 
int attach_function_dispatcher (struct MuttWindow *win, const struct KeyEvent *event)
 Perform a Attach function - Implements function_dispatcher_t -.
 

Variables

static const char * Function_not_permitted_in_attach_message_mode
 Error message for unavailable functions in attach mode.
 
static const struct MenuFuncOp OpAttach []
 Functions for the Attach Menu.
 
static const struct MenuOpSeq AttachDefaultBindings []
 Key bindings for the Attachment Menu.
 
static const struct AttachFunction AttachFunctions []
 All the NeoMutt functions that the Attach supports.
 

Detailed Description

Attachment functions.

Authors
  • Richard Russon
  • Dennis Schön

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.

Definition in file functions.c.

Function Documentation

◆ attach_init_keys()

void attach_init_keys ( struct NeoMutt * n,
struct SubMenu * sm_generic )

Initialise the Attach Keybindings - Implements ::init_keys_api.

Definition at line 123 of file functions.c.

124{
126 ASSERT(mod_data);
127
128 struct MenuDefinition *md = NULL;
129 struct SubMenu *sm = NULL;
130
132 md = km_register_menu(MENU_ATTACH, "attach");
133 km_menu_add_submenu(md, sm);
134 km_menu_add_submenu(md, sm_generic);
136
137 mod_data->menu_attach = md;
138}
static const struct MenuFuncOp OpAttach[]
Functions for the Attach Menu.
Definition functions.c:59
static const struct MenuOpSeq AttachDefaultBindings[]
Key bindings for the Attachment Menu.
Definition functions.c:93
void km_menu_add_submenu(struct MenuDefinition *md, struct SubMenu *sm)
Add a SubMenu to a Menu Definition.
Definition init.c:123
struct SubMenu * km_register_submenu(const struct MenuFuncOp functions[])
Register a submenu.
Definition init.c:88
struct MenuDefinition * km_register_menu(int menu, const char *name)
Register a menu.
Definition init.c:105
void km_menu_add_bindings(struct MenuDefinition *md, const struct MenuOpSeq bindings[])
Add Keybindings to a Menu.
Definition init.c:136
@ MODULE_ID_ATTACH
ModuleAttach, Attachments
Definition module_api.h:49
void * neomutt_get_module_data(struct NeoMutt *n, enum ModuleId id)
Get the private data for a Module.
Definition neomutt.c:666
#define ASSERT(COND)
Definition signal2.h:59
Attach private Module data.
Definition module_data.h:32
struct MenuDefinition * menu_attach
Attach menu definition.
Definition module_data.h:40
Functions for a Dialog or Window.
Definition menudef.h:44
Collection of related functions.
Definition menudef.h:33
@ MENU_ATTACH
Select an attachment.
Definition type.h:35
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ attach_collapse()

static void attach_collapse ( struct AttachCtx * actx,
struct Menu * menu,
struct ConfigSubset * sub )
static

Close the tree of the current attachment.

Parameters
actxAttachment context
menuMenu listing Attachments
subConfig subset

Definition at line 146 of file functions.c.

147{
148 int rindex;
149 int curlevel;
150
151 struct AttachPtr *cur_att = current_attachment(actx, menu);
152 cur_att->collapsed = !cur_att->collapsed;
153 /* When expanding, expand all the children too */
154 if (cur_att->collapsed)
155 return;
156
157 curlevel = cur_att->level;
158 const int index = menu_get_index(menu);
159 rindex = actx->v2r[index] + 1;
160
161 const bool c_digest_collapse = cs_subset_bool(sub, "digest_collapse");
162 while ((rindex < actx->idxlen) && (actx->idx[rindex]->level > curlevel))
163 {
164 if (c_digest_collapse && (actx->idx[rindex]->body->type == TYPE_MULTIPART) &&
165 mutt_istr_equal(actx->idx[rindex]->body->subtype, "digest"))
166 {
167 actx->idx[rindex]->collapsed = true;
168 }
169 else
170 {
171 actx->idx[rindex]->collapsed = false;
172 }
173 rindex++;
174 }
175}
bool cs_subset_bool(const struct ConfigSubset *sub, const char *name)
Get a boolean config item by name.
Definition helpers.c:47
int menu_get_index(struct Menu *menu)
Get the current selection in the Menu.
Definition menu.c:153
@ TYPE_MULTIPART
Type: 'multipart/*'.
Definition mime.h:37
bool mutt_istr_equal(const char *a, const char *b)
Compare two strings, ignoring case.
Definition string.c:678
struct AttachPtr * current_attachment(struct AttachCtx *actx, struct Menu *menu)
Get the current attachment.
Definition recvattach.c:71
struct AttachPtr ** idx
Array of attachments.
Definition attach.h:69
short * v2r
Mapping from virtual to real attachment.
Definition attach.h:73
An email to which things will be attached.
Definition attach.h:36
struct Body * body
Attachment.
Definition attach.h:37
bool collapsed
Group is collapsed.
Definition attach.h:45
int level
Nesting depth of attachment.
Definition attach.h:41
char * subtype
content-type subtype
Definition body.h:61
unsigned int type
content-type primary type, ContentType
Definition body.h:40
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ check_attach()

static bool check_attach ( struct AttachPrivateData * priv)
static

Check if in attach-message mode.

Parameters
privPrivate Attach data
Return values
trueMailbox is readonly

Definition at line 182 of file functions.c.

183{
184 if (priv->attach_msg)
185 {
188 return true;
189 }
190
191 return false;
192}
static const char * Function_not_permitted_in_attach_message_mode
Error message for unavailable functions in attach mode.
Definition functions.c:52
void mutt_flushinp(void)
MacroEvents moved to KeyModuleData UngetKeyEvents moved to KeyModuleData.
Definition get.c:81
#define mutt_error(...)
Definition logging2.h:94
#define _(a)
Definition message.h:28
bool attach_msg
Are we in "attach message" mode?
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ check_readonly()

static bool check_readonly ( struct Mailbox * m)
static

Check if the Mailbox is readonly.

Parameters
mMailbox
Return values
trueMailbox is readonly

Definition at line 199 of file functions.c.

200{
201 if (!m || m->readonly)
202 {
204 mutt_error(_("Mailbox is read-only"));
205 return true;
206 }
207
208 return false;
209}
bool readonly
Don't allow changes to the mailbox.
Definition mailbox.h:118
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ recvattach_extract_pgp_keys()

static void recvattach_extract_pgp_keys ( struct AttachPtrArray * aa)
static

Extract PGP keys from attachments.

Parameters
aaSelected attachments

Definition at line 215 of file functions.c.

216{
217 struct AttachPtr **app = NULL;
218 ARRAY_FOREACH(app, aa)
219 {
220 crypt_pgp_extract_key_from_attachment((*app)->fp, (*app)->body);
221 }
222}
#define ARRAY_FOREACH(elem, head)
Iterate over all elements of the array.
Definition array.h:223
void crypt_pgp_extract_key_from_attachment(FILE *fp, struct Body *b)
Wrapper for CryptModuleSpecs::pgp_extract_key_from_attachment()
Definition cryptglue.c:460
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ recvattach_pgp_check_traditional()

static int recvattach_pgp_check_traditional ( struct AttachPtrArray * aa)
static

Is the Attachment inline PGP?

Parameters
aaSelected attachments
Return values
1Any selected Attachment is inline PGP

Definition at line 229 of file functions.c.

230{
231 int rc = 0;
232
233 struct AttachPtr **app = NULL;
234 ARRAY_FOREACH(app, aa)
235 {
236 rc = rc || crypt_pgp_check_traditional((*app)->fp, (*app)->body, true);
237 }
238
239 return rc;
240}
bool crypt_pgp_check_traditional(FILE *fp, struct Body *b, bool just_one)
Wrapper for CryptModuleSpecs::pgp_check_traditional()
Definition cryptglue.c:321
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ attach_apply_set_deleted()

static void attach_apply_set_deleted ( struct AttachPtrArray * apa,
bool deleted,
int * num_changed,
int * num_blocked )
static

Apply the deleted flag to a working set of attachments.

Parameters
[in]apaWorking set of AttachPtr pointers
[in]deletedtrue to mark as deleted, false to undelete
[out]num_changedNumber of attachments actually changed
[out]num_blockedNumber of attachments rejected (non-multipart)

Only multipart attachments may be deleted. Non-multipart attachments in the working set are skipped and counted in num_blocked.

Definition at line 271 of file functions.c.

273{
274 int changed = 0;
275 int blocked = 0;
276
277 if (apa)
278 {
279 struct AttachPtr **app = NULL;
280 ARRAY_FOREACH(app, apa)
281 {
282 struct AttachPtr *ap = *app;
283 if (!ap || !ap->body)
284 continue;
285
286 if (deleted && (ap->parent_type != TYPE_MULTIPART))
287 {
288 blocked++;
289 continue;
290 }
291
292 ap->body->deleted = deleted;
293 changed++;
294 }
295 }
296
297 if (num_changed)
298 *num_changed = changed;
299 if (num_blocked)
300 *num_blocked = blocked;
301}
int parent_type
Type of parent attachment, e.g. TYPE_MULTIPART.
Definition attach.h:39
bool deleted
Attachment marked for deletion.
Definition body.h:88
+ Here is the caller graph for this function:

Variable Documentation

◆ Function_not_permitted_in_attach_message_mode

const char* Function_not_permitted_in_attach_message_mode
static
Initial value:
= N_(
"Function not permitted in attach-message mode")
#define N_(a)
Definition message.h:32

Error message for unavailable functions in attach mode.

Definition at line 52 of file functions.c.

◆ OpAttach

const struct MenuFuncOp OpAttach[]
static
Initial value:
= {
{ "bounce-message", OP_BOUNCE_MESSAGE },
{ "check-traditional-pgp", OP_CHECK_TRADITIONAL },
{ "collapse-parts", OP_ATTACH_COLLAPSE },
{ "compose-to-sender", OP_COMPOSE_TO_SENDER },
{ "delete-entry", OP_ATTACH_DELETE },
{ "display-toggle-weed", OP_DISPLAY_HEADERS },
{ "edit-type", OP_ATTACH_EDIT_TYPE },
{ "extract-keys", OP_EXTRACT_KEYS },
{ "followup-message", OP_FOLLOWUP },
{ "forward-message", OP_FORWARD_MESSAGE },
{ "forward-to-group", OP_FORWARD_TO_GROUP },
{ "group-chat-reply", OP_GROUP_CHAT_REPLY },
{ "group-reply", OP_GROUP_REPLY },
{ "list-reply", OP_LIST_REPLY },
{ "list-subscribe", OP_LIST_SUBSCRIBE },
{ "list-unsubscribe", OP_LIST_UNSUBSCRIBE },
{ "pipe-entry", OP_PIPE },
{ "pipe-message", OP_PIPE },
{ "print-entry", OP_ATTACH_PRINT },
{ "reply", OP_REPLY },
{ "resend-message", OP_RESEND },
{ "save-entry", OP_ATTACH_SAVE },
{ "undelete-entry", OP_ATTACH_UNDELETE },
{ "view-attach", OP_ATTACH_VIEW },
{ "view-mailcap", OP_ATTACH_VIEW_MAILCAP },
{ "view-pager", OP_ATTACH_VIEW_PAGER },
{ "view-text", OP_ATTACH_VIEW_TEXT },
{ NULL, 0 },
}

Functions for the Attach Menu.

Definition at line 59 of file functions.c.

59 { /* map: attach */
60 { "bounce-message", OP_BOUNCE_MESSAGE },
61 { "check-traditional-pgp", OP_CHECK_TRADITIONAL },
62 { "collapse-parts", OP_ATTACH_COLLAPSE },
63 { "compose-to-sender", OP_COMPOSE_TO_SENDER },
64 { "delete-entry", OP_ATTACH_DELETE },
65 { "display-toggle-weed", OP_DISPLAY_HEADERS },
66 { "edit-type", OP_ATTACH_EDIT_TYPE },
67 { "extract-keys", OP_EXTRACT_KEYS },
68 { "followup-message", OP_FOLLOWUP },
69 { "forward-message", OP_FORWARD_MESSAGE },
70 { "forward-to-group", OP_FORWARD_TO_GROUP },
71 { "group-chat-reply", OP_GROUP_CHAT_REPLY },
72 { "group-reply", OP_GROUP_REPLY },
73 { "list-reply", OP_LIST_REPLY },
74 { "list-subscribe", OP_LIST_SUBSCRIBE },
75 { "list-unsubscribe", OP_LIST_UNSUBSCRIBE },
76 { "pipe-entry", OP_PIPE },
77 { "pipe-message", OP_PIPE },
78 { "print-entry", OP_ATTACH_PRINT },
79 { "reply", OP_REPLY },
80 { "resend-message", OP_RESEND },
81 { "save-entry", OP_ATTACH_SAVE },
82 { "undelete-entry", OP_ATTACH_UNDELETE },
83 { "view-attach", OP_ATTACH_VIEW },
84 { "view-mailcap", OP_ATTACH_VIEW_MAILCAP },
85 { "view-pager", OP_ATTACH_VIEW_PAGER },
86 { "view-text", OP_ATTACH_VIEW_TEXT },
87 { NULL, 0 },
88};

◆ AttachDefaultBindings

const struct MenuOpSeq AttachDefaultBindings[]
static
Initial value:
= {
{ OP_ATTACH_COLLAPSE, "v" },
{ OP_ATTACH_DELETE, "d" },
{ OP_ATTACH_EDIT_TYPE, "\005" },
{ OP_PIPE, "|" },
{ OP_ATTACH_PRINT, "p" },
{ OP_ATTACH_SAVE, "s" },
{ OP_ATTACH_UNDELETE, "u" },
{ OP_ATTACH_VIEW, "<keypadenter>" },
{ OP_ATTACH_VIEW, "\n" },
{ OP_ATTACH_VIEW, "\r" },
{ OP_ATTACH_VIEW_MAILCAP, "m" },
{ OP_ATTACH_VIEW_TEXT, "T" },
{ OP_BOUNCE_MESSAGE, "b" },
{ OP_CHECK_TRADITIONAL, "\033P" },
{ OP_DISPLAY_HEADERS, "h" },
{ OP_EXTRACT_KEYS, "\013" },
{ OP_FORGET_PASSPHRASE, "\006" },
{ OP_FORWARD_MESSAGE, "f" },
{ OP_GROUP_REPLY, "g" },
{ OP_LIST_REPLY, "L" },
{ OP_REPLY, "r" },
{ OP_RESEND, "\033e" },
{ 0, NULL },
}

Key bindings for the Attachment Menu.

Definition at line 93 of file functions.c.

93 { /* map: attach */
94 { OP_ATTACH_COLLAPSE, "v" },
95 { OP_ATTACH_DELETE, "d" },
96 { OP_ATTACH_EDIT_TYPE, "\005" }, // <Ctrl-E>
97 { OP_PIPE, "|" },
98 { OP_ATTACH_PRINT, "p" },
99 { OP_ATTACH_SAVE, "s" },
100 { OP_ATTACH_UNDELETE, "u" },
101 { OP_ATTACH_VIEW, "<keypadenter>" },
102 { OP_ATTACH_VIEW, "\n" }, // <Enter>
103 { OP_ATTACH_VIEW, "\r" }, // <Return>
104 { OP_ATTACH_VIEW_MAILCAP, "m" },
105 { OP_ATTACH_VIEW_TEXT, "T" },
106 { OP_BOUNCE_MESSAGE, "b" },
107 { OP_CHECK_TRADITIONAL, "\033P" }, // <Alt-P>
108 { OP_DISPLAY_HEADERS, "h" },
109 { OP_EXTRACT_KEYS, "\013" }, // <Ctrl-K>
110 { OP_FORGET_PASSPHRASE, "\006" }, // <Ctrl-F>
111 { OP_FORWARD_MESSAGE, "f" },
112 { OP_GROUP_REPLY, "g" },
113 { OP_LIST_REPLY, "L" },
114 { OP_REPLY, "r" },
115 { OP_RESEND, "\033e" }, // <Alt-e>
116 { 0, NULL },
117};

◆ AttachFunctions

const struct AttachFunction AttachFunctions[]
static

All the NeoMutt functions that the Attach supports.

Definition at line 781 of file functions.c.

781 {
782 // clang-format off
783 { OP_ATTACH_COLLAPSE, op_attach_collapse },
784 { OP_ATTACH_DELETE, op_attach_delete },
785 { OP_ATTACH_EDIT_TYPE, op_attach_edit_type },
786 { OP_ATTACH_PRINT, op_attach_print },
787 { OP_ATTACH_SAVE, op_attach_save },
788 { OP_ATTACH_UNDELETE, op_attach_undelete },
789 { OP_ATTACH_VIEW, op_attach_view },
790 { OP_ATTACH_VIEW_MAILCAP, op_attach_view_mailcap },
791 { OP_ATTACH_VIEW_PAGER, op_attach_view_pager },
792 { OP_ATTACH_VIEW_TEXT, op_attach_view_text },
793 { OP_BOUNCE_MESSAGE, op_bounce_message },
794 { OP_CHECK_TRADITIONAL, op_check_traditional },
795 { OP_COMPOSE_TO_SENDER, op_compose_to_sender },
796 { OP_DISPLAY_HEADERS, op_attach_view },
797 { OP_EXIT, op_quit },
798 { OP_EXTRACT_KEYS, op_extract_keys },
799 { OP_FOLLOWUP, op_followup },
800 { OP_FORWARD_MESSAGE, op_forward_message },
801 { OP_FORWARD_TO_GROUP, op_forward_to_group },
802 { OP_GROUP_CHAT_REPLY, op_reply },
803 { OP_GROUP_REPLY, op_reply },
804 { OP_LIST_REPLY, op_reply },
805 { OP_LIST_SUBSCRIBE, op_list_subscribe },
806 { OP_LIST_UNSUBSCRIBE, op_list_unsubscribe },
807 { OP_PIPE, op_attach_pipe },
808 { OP_QUIT, op_quit },
809 { OP_REPLY, op_reply },
810 { OP_RESEND, op_resend },
811 { 0, NULL },
812 // clang-format on
813};
static int op_quit(struct AliasFunctionData *fdata, const struct KeyEvent *event)
Save changes and exit this dialog - Implements alias_function_t -.
Definition functions.c:308
static int op_attach_view_text(struct AttachFunctionData *fdata, const struct KeyEvent *event)
view attachment as text - Implements attach_function_t -
Definition functions.c:540
static int op_followup(struct AttachFunctionData *fdata, const struct KeyEvent *event)
followup to newsgroup - Implements attach_function_t -
Definition functions.c:732
static int op_list_unsubscribe(struct AttachFunctionData *fdata, const struct KeyEvent *event)
unsubscribe from a mailing list - Implements attach_function_t -
Definition functions.c:670
static int op_attach_edit_type(struct AttachFunctionData *fdata, const struct KeyEvent *event)
edit attachment content type - Implements attach_function_t -
Definition functions.c:391
static int op_resend(struct AttachFunctionData *fdata, const struct KeyEvent *event)
use the current message as a template for a new one - Implements attach_function_t -
Definition functions.c:714
static int op_forward_message(struct AttachFunctionData *fdata, const struct KeyEvent *event)
forward a message with comments - Implements attach_function_t -
Definition functions.c:642
static int op_attach_delete(struct AttachFunctionData *fdata, const struct KeyEvent *event)
delete the current entry - Implements attach_function_t -
Definition functions.c:311
static int op_attach_undelete(struct AttachFunctionData *fdata, const struct KeyEvent *event)
undelete the current entry - Implements attach_function_t -
Definition functions.c:449
static int op_attach_view(struct AttachFunctionData *fdata, const struct KeyEvent *event)
view attachment using mailcap entry if necessary - Implements attach_function_t -
Definition functions.c:501
static int op_attach_pipe(struct AttachFunctionData *fdata, const struct KeyEvent *event)
pipe message/attachment to a shell command - Implements attach_function_t -
Definition functions.c:402
static int op_compose_to_sender(struct AttachFunctionData *fdata, const struct KeyEvent *event)
compose new message to the current message sender - Implements attach_function_t -
Definition functions.c:586
static int op_attach_save(struct AttachFunctionData *fdata, const struct KeyEvent *event)
save message/attachment to a mailbox/file - Implements attach_function_t -
Definition functions.c:428
static int op_list_subscribe(struct AttachFunctionData *fdata, const struct KeyEvent *event)
subscribe to a mailing list - Implements attach_function_t -
Definition functions.c:658
static int op_attach_print(struct AttachFunctionData *fdata, const struct KeyEvent *event)
print the current entry - Implements attach_function_t -
Definition functions.c:415
static int op_attach_collapse(struct AttachFunctionData *fdata, const struct KeyEvent *event)
toggle display of subparts - Implements attach_function_t -
Definition functions.c:247
static int op_check_traditional(struct AttachFunctionData *fdata, const struct KeyEvent *event)
check for classic PGP - Implements attach_function_t -
Definition functions.c:569
static int op_extract_keys(struct AttachFunctionData *fdata, const struct KeyEvent *event)
extract supported public keys - Implements attach_function_t -
Definition functions.c:624
static int op_forward_to_group(struct AttachFunctionData *fdata, const struct KeyEvent *event)
forward to newsgroup - Implements attach_function_t -
Definition functions.c:763
static int op_reply(struct AttachFunctionData *fdata, const struct KeyEvent *event)
reply to a message - Implements attach_function_t -
Definition functions.c:688
static int op_bounce_message(struct AttachFunctionData *fdata, const struct KeyEvent *event)
remail a message to another user - Implements attach_function_t -
Definition functions.c:553
static int op_attach_view_mailcap(struct AttachFunctionData *fdata, const struct KeyEvent *event)
force viewing of attachment using mailcap - Implements attach_function_t -
Definition functions.c:514
static int op_attach_view_pager(struct AttachFunctionData *fdata, const struct KeyEvent *event)
view attachment in pager using copiousoutput mailcap - Implements attach_function_t -
Definition functions.c:527