From c6905e45f078530cda57690b0db6a7378dc1f794 Mon Sep 17 00:00:00 2001 From: Junio C Hamano Date: Wed, 14 Oct 2015 17:44:55 -0700 Subject: mailinfo: libify Move the bulk of the code from builtin/mailinfo.c to mailinfo.c so that new callers can start calling mailinfo() directly. Note that a few calls to exit() and die() need to be cleaned up for the API to be truly useful, which will come in later steps. Signed-off-by: Junio C Hamano --- mailinfo.h | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 mailinfo.h (limited to 'mailinfo.h') diff --git a/mailinfo.h b/mailinfo.h new file mode 100644 index 0000000000..1e97b737f3 --- /dev/null +++ b/mailinfo.h @@ -0,0 +1,40 @@ +#ifndef MAILINFO_H +#define MAILINFO_H + +#define MAX_BOUNDARIES 5 + +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 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; + 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 **p_hdr_data; + struct strbuf **s_hdr_data; + + struct strbuf log_message; +}; + +extern void setup_mailinfo(struct mailinfo *); +extern int mailinfo(struct mailinfo *, const char *msg, const char *patch); +extern void clear_mailinfo(struct mailinfo *); + +#endif /* MAILINFO_H */ -- cgit v1.2.3