3 * Handling of email attachments
6 * Copyright (C) 1996-2000 Michael R. Elkins <me@mutt.org>
9 * This program is free software: you can redistribute it and/or modify it under
10 * the terms of the GNU General Public License as published by the Free Software
11 * Foundation, either version 2 of the License, or (at your option) any later
14 * This program is distributed in the hope that it will be useful, but WITHOUT
15 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
16 * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
19 * You should have received a copy of the GNU General Public License along with
20 * this program. If not, see <http://www.gnu.org/licenses/>.
23 /* common protos for compose / attach menus */
25 #ifndef MUTT_MUTT_ATTACH_H
26 #define MUTT_MUTT_ATTACH_H
37 * enum ViewAttachMode - Options for mutt_view_attachment()
41 MUTT_VA_REGULAR = 1, ///< View using default method
42 MUTT_VA_MAILCAP, ///< Force viewing using mailcap entry
43 MUTT_VA_AS_TEXT, ///< Force viewing as text
47 * enum SaveAttach - Options for saving attachments
49 * @sa mutt_save_attachment(), mutt_decode_save_attachment(),
50 * save_attachment_open(), mutt_check_overwrite()
54 MUTT_SAVE_NO_FLAGS = 0, ///< No flags set
55 MUTT_SAVE_APPEND, ///< Append to existing file
56 MUTT_SAVE_OVERWRITE, ///< Overwrite existing file
59 int attach_tag(struct Menu *menu, int sel, int act);
60 int mutt_attach_display_loop(struct Menu *menu, int op, struct Email *e,
61 struct AttachCtx *actx, bool recv);
63 void mutt_save_attachment_list(struct AttachCtx *actx, FILE *fp, bool tag,
64 struct Body *top, struct Email *e, struct Menu *menu);
65 void mutt_pipe_attachment_list(struct AttachCtx *actx, FILE *fp, bool tag,
66 struct Body *top, bool filter);
67 void mutt_print_attachment_list(struct AttachCtx *actx, FILE *fp, bool tag,
70 int mutt_view_attachment(FILE *fp, struct Body *a, enum ViewAttachMode mode, struct Email *e, struct AttachCtx *actx);
72 void mutt_check_lookup_list(struct Body *b, char *type, size_t len);
73 int mutt_compose_attachment(struct Body *a);
74 int mutt_decode_save_attachment(FILE *fp, struct Body *m, char *path, int displaying, enum SaveAttach opt);
75 int mutt_edit_attachment(struct Body *a);
76 int mutt_get_tmp_attachment(struct Body *a);
77 int mutt_pipe_attachment(FILE *fp, struct Body *b, const char *path, char *outfile);
78 int mutt_print_attachment(FILE *fp, struct Body *a);
79 int mutt_save_attachment(FILE *fp, struct Body *m, char *path, enum SaveAttach opt, struct Email *e);
81 /* small helper functions to handle temporary attachment files */
82 void mutt_add_temp_attachment(char *filename);
83 void mutt_unlink_temp_attachments(void);
85 #endif /* MUTT_MUTT_ATTACH_H */