well this makes things fail for people ...
[apps/madmutt.git] / protos.h
1 /*
2  * Copyright notice from original mutt:
3  * Copyright (C) 1996-2000 Michael R. Elkins <me@mutt.org>
4  *
5  * This file is part of mutt-ng, see http://www.muttng.org/.
6  * It's licensed under the GNU General Public License,
7  * please see the file GPL in the top level source directory.
8  */
9
10 extern const char *madmutt_version;
11
12 /* use the m_temp{fd,file} functions instead */
13 void mutt_adv_mktemp (const char*, char*, ssize_t) __attribute__((deprecated));
14 void mutt_mktemp (char *) __attribute__((deprecated));
15 void mutt_exit (int);
16
17 #define MoreArgs(p) (*p->dptr && *p->dptr != ';' && *p->dptr != '#')
18
19 void set_quadoption (int, int);
20 int query_quadoption (int, const char *);
21 int query_quadoption2(int, const char *);
22 int quadoption (int);
23
24 int mutt_option_value (const char* val, char* dst, ssize_t dstlen);
25 int url_parse_mailto(ENVELOPE *e, char **body, const char *src);
26
27 address_t *mutt_default_from (void);
28
29 BODY *mutt_make_file_attach (const char *);
30 BODY *mutt_make_message_attach (CONTEXT *, HEADER *, int);
31 BODY *mutt_remove_multipart (BODY *);
32 BODY *mutt_make_multipart (BODY *);
33
34 CONTENT *mutt_get_content_info (const char *fname, BODY * b);
35
36 int mutt_cmp_header (const HEADER*, const HEADER*);
37
38 ssize_t _mutt_expand_path(char *, ssize_t, const char *, int);
39 #define mutt_expand_path(s, n) _mutt_expand_path((s), (n), (s), 0)
40
41 char *mutt_get_body_charset (char *, ssize_t, BODY *);
42 const char *mutt_get_name (address_t *);
43 char *mutt_make_date (char *, ssize_t);
44
45 const char *mutt_fqdn (short);
46
47 void mutt_add_to_reference_headers (ENVELOPE * env, ENVELOPE * curenv,
48                                     string_list_t *** pp, string_list_t *** qq);
49 int mutt_bounce_message (FILE * fp, HEADER *, address_t *);
50 void mutt_default_save (char *, ssize_t, HEADER *);
51 void mutt_display_address (ENVELOPE *);
52 void mutt_edit_content_type (HEADER *, BODY *, FILE *);
53 void mutt_edit_headers(const char *, HEADER *, char *, ssize_t);
54 void mutt_enter_command (void);
55 void mutt_fix_reply_recipients (ENVELOPE * env);
56 void mutt_folder_hook (char *);
57 void mutt_forward_intro (FILE * fp, HEADER * cur);
58 void mutt_forward_trailer (FILE * fp);
59 void mutt_help (int);
60 void mutt_draw_tree (CONTEXT *);
61 void mutt_make_attribution (CONTEXT * ctx, HEADER * cur, FILE * out);
62 void mutt_make_forward_subject (ENVELOPE * env, CONTEXT * ctx, HEADER * cur);
63 void mutt_make_misc_reply_headers (ENVELOPE * env, CONTEXT * ctx,
64                                    HEADER * cur, ENVELOPE * curenv);
65 void mutt_message_to_7bit (BODY *, FILE *);
66
67 void mutt_prepare_envelope (ENVELOPE *, int);
68 void mutt_unprepare_envelope (ENVELOPE *);
69 void mutt_pretty_mailbox (char *);
70 void mutt_pipe_message (HEADER *);
71 void mutt_print_message (HEADER *);
72 void mutt_safe_path (char *s, ssize_t l, address_t * a);
73 void mutt_save_path (char *s, ssize_t l, address_t * a);
74
75 void mutt_message_hook (CONTEXT *, HEADER *, int);
76 void _mutt_set_flag (CONTEXT *, HEADER *, int, int, int);
77
78 #define mutt_set_flag(a,b,c,d) _mutt_set_flag(a,b,c,d,1)
79 void mutt_set_followup_to (ENVELOPE *);
80 void mutt_shell_escape (void);
81 void mutt_stamp_attachment (BODY * a);
82 void mutt_tag_set_flag (int, int);
83 void mutt_update_encoding (BODY * a);
84 void mutt_write_references (string_list_t *, FILE *);
85 void mutt_write_address_list (address_t * adr, FILE * fp, int linelen,
86                               int display);
87
88 int mutt_can_decode (BODY *);
89 int mutt_change_flag (HEADER *, int);
90 int mutt_check_month (const char *);
91 int mutt_check_overwrite (const char *, const char *, char *, ssize_t, int *,
92                           char **);
93 int mutt_command_complete (char *, ssize_t, int, int);
94 int mutt_var_value_complete (char *, ssize_t, int);
95
96 int mutt_display_message (HEADER * h);
97 int mutt_edit_message (CONTEXT *, HEADER *);
98 int mutt_fetch_recips (ENVELOPE * out, ENVELOPE * in, int flags);
99 int mutt_prepare_template (FILE *, CONTEXT *, HEADER *, HEADER *, short);
100 int mutt_resend_message (FILE *, CONTEXT *, HEADER *);
101
102 int mutt_get_postponed (CONTEXT *, HEADER *, HEADER **, char *, ssize_t);
103 int mutt_invoke_mta (address_t *, address_t *, address_t *, address_t *, const char *,
104                      int);
105 int mutt_is_list_cc (int, address_t *, address_t *);
106 int mutt_is_list_recipient (int, address_t *, address_t *);
107 int mutt_lookup_mime_type (BODY *, const char *);
108 int mutt_num_postponed (int);
109 int mutt_parse_bind (BUFFER *, BUFFER *, unsigned long, BUFFER *);
110 int mutt_parse_exec (BUFFER *, BUFFER *, unsigned long, BUFFER *);
111 int mutt_parse_macro (BUFFER *, BUFFER *, unsigned long, BUFFER *);
112 int mutt_parse_push (BUFFER *, BUFFER *, unsigned long, BUFFER *);
113 int mutt_parse_rc_line (const char *, BUFFER *, BUFFER *);
114 int _mutt_save_message (HEADER *, CONTEXT *, int, int, int);
115 int mutt_save_message (HEADER *, int, int, int, int *);
116 int mutt_search_command (int, int);
117 int mutt_compose_menu (HEADER *, char *, ssize_t, HEADER *);
118 int mutt_thread_set_flag (HEADER *, int, int, int);
119 void mutt_update_num_postponed (void);
120 int mutt_which_case (const char *);
121 int mutt_write_fcc (const char *path, HEADER * hdr, const char *msgid, int,
122                     char *);
123 int mutt_write_mime_body (BODY *, FILE *);
124 int mutt_write_mime_header (BODY *, FILE *);
125 int mutt_write_rfc822_header (FILE *, ENVELOPE *, BODY *, int);
126 void mutt_sleep (short);
127 int mutt_save_confirm (const char *, struct stat *);
128
129 void ci_bounce_message (HEADER *, int *);
130 int ci_send_message (int, HEADER *, char *, CONTEXT *, HEADER *);
131
132 /* flags for mutt_extract_token() */
133 #define M_TOKEN_EQUAL           (1 << 0)  /* treat '=' as a special */
134 #define M_TOKEN_CONDENSE        (1 << 1)  /* ^(char) to control chars (macros) */
135 #define M_TOKEN_SPACE           (1 << 2)  /* don't treat whitespace as a term */
136 #define M_TOKEN_PATTERN         (1 << 3)  /* !)|~ are terms (for patterns) */
137
138 /* equivalent to M_TOKEN_PATTERN */
139 #define M_TOKEN_COMMENT         (1 << 4)  /* don't reap comments */
140
141 /* implies M_TOKEN_SPACE */
142 #define M_TOKEN_QUOTE           (1 << 5)  /* don't interpret quotes */
143 int mutt_extract_token(BUFFER *, BUFFER *, int);
144