| #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 */ |