diff options
Diffstat (limited to 'mailinfo.h')
-rw-r--r-- | mailinfo.h | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/mailinfo.h b/mailinfo.h new file mode 100644 index 0000000..f2ffd03 --- /dev/null +++ b/mailinfo.h @@ -0,0 +1,56 @@ +#ifndef MAILINFO_H +#define MAILINFO_H + +#include "strbuf.h" + +#define MAX_BOUNDARIES 5 + +enum quoted_cr_action { + quoted_cr_unset = -1, + quoted_cr_nowarn, + quoted_cr_warn, + quoted_cr_strip, +}; + +struct mailinfo { + FILE *input; + FILE *output; + FILE *patchfile; + + struct strbuf name; + struct strbuf email; + int keep_subject; + int keep_non_patch_brackets_in_subject; + int quoted_cr; /* enum quoted_cr_action */ + int add_message_id; + int use_scissors; + int use_inbody_headers; + const char *metainfo_charset; + + struct strbuf *content[MAX_BOUNDARIES]; + struct strbuf **content_top; + struct strbuf charset; + unsigned int format_flowed:1; + unsigned int delsp:1; + unsigned int have_quoted_cr:1; + char *message_id; + enum { + TE_DONTCARE, TE_QP, TE_BASE64 + } transfer_encoding; + int patch_lines; + int filter_stage; /* still reading log or are we copying patch? */ + int header_stage; /* still checking in-body headers? */ + struct strbuf inbody_header_accum; + struct strbuf **p_hdr_data; + struct strbuf **s_hdr_data; + + struct strbuf log_message; + int input_error; +}; + +int mailinfo_parse_quoted_cr_action(const char *actionstr, int *action); +void setup_mailinfo(struct mailinfo *); +int mailinfo(struct mailinfo *, const char *msg, const char *patch); +void clear_mailinfo(struct mailinfo *); + +#endif /* MAILINFO_H */ |