static char rcsid[] = "@(#)$Id: mpar_leaf.c,v 1.9 2006/05/07 08:35:31 hurtta Exp $";

/******************************************************************************
 *  The Elm (ME+) Mail System  -  $Revision: 1.9 $   $State: Exp $
 *
 *  Author: Kari Hurtta <hurtta+elm@posti.FMI.FI> (was hurtta+elm@ozone.FMI.FI)
 *****************************************************************************/

#include "def_melib.h"
#include "mpar_imp.h"

#if 0
DEBUG_VAR(Debug,__FILE__,"mime");
#endif

#if ANSI_C
#define S_(x) static x;
#else
#define S_(x)
#endif

S_(mpar_alloc mpar_leaf_alloc)
static void mpar_leaf_alloc(D)
     struct mime_parser_data *D;
{
    D->p.any = NULL;
}

S_(mpar_free mpar_leaf_free)
static void mpar_leaf_free(D)
     struct mime_parser_data *D;
{
   D->p.any = NULL;
}

S_(mpar_parse mpar_leaf_parse)
static int mpar_leaf_parse(D,s,defcharset,fp,header_error)
     struct mime_parser_data *D;
     struct mimeinfo *s;
     charset_t defcharset;
     FILE *fp;
     struct header_errors **header_error;
{
    int ret = 1;         /* Always succeed ... */
    
    return ret;
}

S_(mpar_subparts mpar_leaf_subparts)
static int mpar_leaf_subparts(D)
     struct mime_parser_data *D;
{
     return 0;
}

S_(mpar_index mpar_leaf_index)
static struct mimeinfo *mpar_leaf_index(P,idx)
     struct mime_parser_data *P;
     int idx;
{

  panic("MIME PARSER PANIC",__FILE__,__LINE__,"mpar_leaf_index",
	"Index out of range",0);

  return NULL;
}

S_(mpar_copy mpar_leaf_copy)
static void mpar_leaf_copy(T,S)
     struct mime_parser_data *T;
     struct mime_parser_data *S;
{
    /* nothing */
}

static struct mime_parser leaf_PARSER = {
    mpar_leaf_alloc,
    mpar_leaf_free,
    mpar_leaf_parse,
    mpar_leaf_subparts,
    mpar_leaf_index,
    mpar_leaf_copy
};

#if __GNUC__ 
#define MTH        struct media_type_handle          
#define PARSER(A)   handle_mime_parser, { parser_code: & A }
#define CAST1       
#else
#define MTH        struct COMPAT_media_type_handle
#define PARSER(A)   handle_mime_parser, (void *) & A
#define CAST1       ( struct media_type_handle *)
#endif

static MTH  leaf_parser_1 = { PARSER(leaf_PARSER) };

void register_leaf_parser() {
   /* All except multipart */

     register_mt_defhandler(MIME_TYPE_LEAF, CAST1 &leaf_parser_1);

     /* for message/rfc822 there is own parser, it should apply
	before default parser...
     */
     register_mt_defhandler(MIME_TYPE_MESSAGE, CAST1 &leaf_parser_1);
}

/*
 * Local Variables:
 *  mode:c
 *  c-basic-offset:4
 *  buffer-file-coding-system: iso-8859-1
 * End:
 */


syntax highlighted by Code2HTML, v. 0.9.1