]> granicus.if.org Git - neomutt/blob - mutt_attach.h
merge: lots of tidying
[neomutt] / mutt_attach.h
1 /**
2  * @file
3  * Handling of email attachments
4  *
5  * @authors
6  * Copyright (C) 1996-2000 Michael R. Elkins <me@mutt.org>
7  *
8  * @copyright
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
12  * version.
13  *
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
17  * details.
18  *
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/>.
21  */
22
23 /* common protos for compose / attach menus */
24
25 #ifndef MUTT_MUTT_ATTACH_H
26 #define MUTT_MUTT_ATTACH_H
27
28 #include <stdbool.h>
29 #include <stdio.h>
30
31 struct AttachCtx;
32 struct Menu;
33 struct Email;
34 struct Body;
35
36 /**
37  * enum ViewAttachMode - Options for mutt_view_attachment()
38  */
39 enum ViewAttachMode
40 {
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
44 };
45
46 /**
47  * enum SaveAttach - Options for saving attachments
48  *
49  * @sa mutt_save_attachment(), mutt_decode_save_attachment(),
50  *     save_attachment_open(), mutt_check_overwrite()
51  */
52 enum SaveAttach
53 {
54   MUTT_SAVE_NO_FLAGS = 0, ///< No flags set
55   MUTT_SAVE_APPEND,       ///< Append to existing file
56   MUTT_SAVE_OVERWRITE,    ///< Overwrite existing file
57 };
58
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);
62
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,
68                                 struct Body *top);
69
70 int mutt_view_attachment(FILE *fp, struct Body *a, enum ViewAttachMode mode, struct Email *e, struct AttachCtx *actx);
71
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);
80
81 /* small helper functions to handle temporary attachment files */
82 void mutt_add_temp_attachment(char *filename);
83 void mutt_unlink_temp_attachments(void);
84
85 #endif /* MUTT_MUTT_ATTACH_H */