/* $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:
*/
syntax highlighted by Code2HTML, v. 0.9.1