1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73
|
/*
* LibSylph -- E-Mail client library
* Copyright (C) 1999-2011 Hiroyuki Yamamoto
*/
#ifndef __HTML_H__
#define __HTML_H__
#include <glib.h>
#include <stdio.h>
#include "codeconv.h"
typedef enum
{
HTML_NORMAL,
HTML_PAR,
HTML_BR,
HTML_HR,
HTML_HREF,
HTML_IMG,
HTML_FONT,
HTML_PRE,
HTML_UNKNOWN,
HTML_CONV_FAILED,
HTML_ERR,
HTML_EOF
} HTMLState;
typedef struct _HTMLParser HTMLParser;
typedef struct _HTMLAttr HTMLAttr;
typedef struct _HTMLTag HTMLTag;
struct _HTMLParser
{
FILE *fp;
CodeConverter *conv;
GHashTable *symbol_table;
GString *str;
GString *buf;
gchar *bufp;
HTMLState state;
gchar *href;
gboolean newline;
gboolean empty_line;
gboolean space;
gboolean pre;
};
struct _HTMLAttr
{
gchar *name;
gchar *value;
};
struct _HTMLTag
{
gchar *name;
GList *attr;
};
HTMLParser *html_parser_new (FILE *fp,
CodeConverter *conv);
void html_parser_destroy (HTMLParser *parser);
const gchar *html_parse (HTMLParser *parser);
#endif /* __HTML_H__ */
|