/* $Id: def_melib.h,v 1.10 2006/06/28 19:21:09 hurtta Exp $ */ #include "headers.h" #include "melib.h" #include "misclib.h" #include "mboxlib.h" #define MIME_PARAM_magic 0xFC04 struct mime_param { unsigned short magic; /* MIME_PARAM_magic */ struct mp_pair { char *raw_param; char *raw_value; } * params; int param_count; charset_t def; struct ascii_pair { int is_compat; char *param; char *value; } * ascii_params; int ascii_param_count; struct string_pair { char *param; struct string *value; } * string_params; int string_param_count; }; /* -------------------------------------- */ /* Internal routines to melib */ /* mime_decode.c */ extern FILE *arrange_decoded P_((mime_t *ptr,in_state_t *state_in, out_state_t *state_out, in_state_t *newstate2, char **name)); extern int set_filter P_((mime_t *ptr, out_state_t *stat, charset_t default_content_charset, charset_t override_charset)); extern FILE * arrange_binary P_((mime_t *ptr, in_state_t *state_in, out_state_t *state_out, in_state_t *newstate2, char **name)); /* pgp_decode.c */ #ifdef USE_PGP extern void pgp_decode P_((mime_t *, in_state_t *s_in, out_state_t *s_out, charset_t defcharset, struct header_rec *mss, type_mismatch_prompt *badtype)); extern int pgp_selector P_((mime_t *p, struct header_rec * hdr)); extern void pgp_SG_decoder P_((mime_t *body, mime_t *sign, in_state_t *state_in, out_state_t *state_out, const char *micalg, charset_t defcharset, struct header_rec *mss, type_mismatch_prompt *badtype)); extern void pgp_EC_decoder P_((mime_t *init, mime_t *data, in_state_t *state_in, out_state_t *state_out, charset_t defcharset, struct header_rec *mss, type_mismatch_prompt *badtype)); #endif /* mime_parse.c */ extern mime_t *mime_t_alloc P_((void)); extern void mime_get_disposition P_((char *value, mime_t *mt, charset_t def_charset, struct header_errors **header_error)); extern void mime_get_content P_((char *value, mime_t *mt, charset_t def_charset, struct header_errors **header_error)); extern mime_t *rfc822_parse P_((FILE *fp, int len, charset_t defcharset)); extern mime_t * multipart_parse P_((FILE *fp, int length, char *boundary, int opts, charset_t defcharset, int have_boundary)); extern CONST char * mime_get_boundary P_((struct mime_param *P)); extern mime_t *mime_read_header P_((FILE *fp, int opts, charset_t defcharset, struct header_errors **header_error)); extern mime_t *parse_mime_headers P_((header_list_ptr headers, long part_offset, long body_offset, int opts, charset_t hdr_charset, struct header_errors **header_error)); /* mparser.c */ extern void mime_parser_free P_((struct mime_parser_data **P)); /* mailcap.c */ /* Return 1 if have view command and test succees ... */ extern int mailcap_is_valid_view P_((struct mailcap_entry *f, mime_t *p)); /* Return 1 if run succees ... */ extern int run_mailcap_view P_((char *file_name, FILE * file_handle, out_state_t *state_out, struct mailcap_entry *x, mime_t *p)); /* mime_selector.c */ extern void mime_selector_free P_((struct mime_selected_handler **p)); extern int mime_classify_subparts P_((mime_t *ptr, struct header_rec * hdr)); extern int mime_classify_best_alternative P_((mime_t *ptr, mime_t **ret, struct header_rec * hdr)); extern void null_EC_decoder P_((mime_t *init, mime_t *data, in_state_t *state_in, out_state_t *state_out, charset_t defcharset, struct header_rec *mss, type_mismatch_prompt *badtype)); extern void null_SG_decoder P_((mime_t *body, mime_t *sign, in_state_t *state_in, out_state_t *state_out, const char *micalg, charset_t defcharset, struct header_rec *mss, type_mismatch_prompt *badtype)); /* parse_util.c */ extern header_list_ptr state_read_headers P_((in_state_t *, int)); /* mime_decode.c */ extern void melib_register_decoders(void); /* partial.c */ extern void partial_decode P_((mime_t *ptr, in_state_t *s_in, out_state_t *s_out, charset_t defcharset, struct header_rec *mss, type_mismatch_prompt *badtype)); extern int partial_selector P_((mime_t *p, struct header_rec * hdr)); /* type_check.c */ /* Returns 0 if paging of type is not allowed */ extern int check_type_magic P_((mime_t *ptr, in_state_t *state_in, out_state_t *state_out, type_mismatch_prompt *badtype)); /* * Local Variables: * mode:c * c-basic-offset:4 * buffer-file-coding-system: iso-8859-1 * End: */