diff options
Diffstat (limited to '')
-rw-r--r-- | html.h | 376 |
1 files changed, 376 insertions, 0 deletions
@@ -0,0 +1,376 @@ +/* $Id: html.h,v 1.25 2003/10/20 16:41:56 ukai Exp $ */ +#ifndef _HTML_H +#define _HTML_H +#ifdef USE_SSL +#include <openssl/bio.h> +#include <openssl/x509.h> +#include <openssl/ssl.h> +#endif /* USE_SSL */ + +#include "istream.h" + +#define StrUFgets(f) StrISgets((f)->stream) +#define StrmyUFgets(f) StrmyISgets((f)->stream) +#define UFgetc(f) ISgetc((f)->stream) +#define UFundogetc(f) ISundogetc((f)->stream) +#define UFread(f,buf,len) ISread((f)->stream,buf,len) +#define UFclose(f) (void)(ISclose((f)->stream) == 0 && ((f)->stream = NULL)) +#define UFfileno(f) ISfileno((f)->stream) + +struct cmdtable { + char *cmdname; + int cmd; +}; + +struct mailcap { + char *type; + char *viewer; + int flags; + char *test; + char *nametemplate; + char *edit; +}; + +#define MAILCAP_NEEDSTERMINAL 0x01 +#define MAILCAP_COPIOUSOUTPUT 0x02 +#define MAILCAP_HTMLOUTPUT 0x04 + +#define MCSTAT_REPNAME 0x01 +#define MCSTAT_REPTYPE 0x02 +#define MCSTAT_REPPARAM 0x04 + +struct table2 { + char *item1; + char *item2; +}; + +typedef struct { + char *referer; + int flag; +} URLOption; + +typedef struct _ParsedURL { + int scheme; + char *user; + char *pass; + char *host; + int port; + char *file; + char *real_file; + char *query; + char *label; + int is_nocache; +} ParsedURL; + +typedef struct { + unsigned char scheme; + char is_cgi; + char encoding; + InputStream stream; + char *ext; + int compression; + char *guess_type; +#ifdef USE_SSL + char *ssl_certificate; +#endif + char *url; + time_t modtime; +} URLFile; + +#define CMP_NOCOMPRESS 0 +#define CMP_COMPRESS 1 +#define CMP_GZIP 2 +#define CMP_BZIP2 3 +#define CMP_DEFLATE 4 + +#define ENC_7BIT 0 +#define ENC_BASE64 1 +#define ENC_QUOTE 2 +#define ENC_UUENCODE 3 + +#define HTML_UNKNOWN 0 +#define HTML_A 1 +#define HTML_N_A 2 +#define HTML_H 3 +#define HTML_N_H 4 +#define HTML_P 5 +#define HTML_BR 6 +#define HTML_B 7 +#define HTML_N_B 8 +#define HTML_UL 9 +#define HTML_N_UL 10 +#define HTML_LI 11 +#define HTML_OL 12 +#define HTML_N_OL 13 +#define HTML_TITLE 14 +#define HTML_N_TITLE 15 +#define HTML_HR 16 +#define HTML_DL 17 +#define HTML_N_DL 18 +#define HTML_DT 19 +#define HTML_DD 20 +#define HTML_PRE 21 +#define HTML_N_PRE 22 +#define HTML_BLQ 23 +#define HTML_N_BLQ 24 +#define HTML_IMG 25 +#define HTML_LISTING 26 +#define HTML_N_LISTING 27 +#define HTML_XMP 28 +#define HTML_N_XMP 29 +#define HTML_PLAINTEXT 30 +#define HTML_TABLE 31 +#define HTML_N_TABLE 32 +#define HTML_META 33 +#define HTML_N_P 34 +#define HTML_FRAME 35 +#define HTML_FRAMESET 36 +#define HTML_N_FRAMESET 37 +#define HTML_CENTER 38 +#define HTML_N_CENTER 39 +#define HTML_FONT 40 +#define HTML_N_FONT 41 +#define HTML_FORM 42 +#define HTML_N_FORM 43 +#define HTML_INPUT 44 +#define HTML_TEXTAREA 45 +#define HTML_N_TEXTAREA 46 +#define HTML_SELECT 47 +#define HTML_N_SELECT 48 +#define HTML_OPTION 49 +#define HTML_NOBR 50 +#define HTML_N_NOBR 51 +#define HTML_DIV 52 +#define HTML_N_DIV 53 +#define HTML_ISINDEX 54 +#define HTML_MAP 55 +#define HTML_N_MAP 56 +#define HTML_AREA 57 +#define HTML_SCRIPT 58 +#define HTML_N_SCRIPT 59 +#define HTML_BASE 60 +#define HTML_DEL 61 +#define HTML_N_DEL 62 +#define HTML_INS 63 +#define HTML_N_INS 64 +#define HTML_U 65 +#define HTML_N_U 66 +#define HTML_STYLE 67 +#define HTML_N_STYLE 68 +#define HTML_WBR 69 +#define HTML_EM 70 +#define HTML_N_EM 71 +#define HTML_BODY 72 +#define HTML_N_BODY 73 +#define HTML_TR 74 +#define HTML_N_TR 75 +#define HTML_TD 76 +#define HTML_N_TD 77 +#define HTML_CAPTION 78 +#define HTML_N_CAPTION 79 +#define HTML_TH 80 +#define HTML_N_TH 81 +#define HTML_THEAD 82 +#define HTML_N_THEAD 83 +#define HTML_TBODY 84 +#define HTML_N_TBODY 85 +#define HTML_TFOOT 86 +#define HTML_N_TFOOT 87 +#define HTML_COLGROUP 88 +#define HTML_N_COLGROUP 89 +#define HTML_COL 90 +#define HTML_BGSOUND 91 +#define HTML_APPLET 92 +#define HTML_EMBED 93 +#define HTML_N_OPTION 94 +#define HTML_HEAD 95 +#define HTML_N_HEAD 96 +#define HTML_DOCTYPE 97 +#define HTML_NOFRAMES 98 +#define HTML_N_NOFRAMES 99 +#define HTML_SUP 100 +#define HTML_N_SUP 101 +#define HTML_SUB 102 +#define HTML_N_SUB 103 +#define HTML_LINK 104 +#define HTML_S 105 +#define HTML_N_S 106 +#define HTML_Q 107 +#define HTML_N_Q 108 + + /* pseudo tag */ +#define HTML_SELECT_INT 110 +#define HTML_N_SELECT_INT 111 +#define HTML_OPTION_INT 112 +#define HTML_TEXTAREA_INT 113 +#define HTML_N_TEXTAREA_INT 114 +#define HTML_TABLE_ALT 115 +#define HTML_SYMBOL 116 +#define HTML_N_SYMBOL 117 +#define HTML_PRE_INT 118 +#define HTML_N_PRE_INT 119 +#define HTML_TITLE_ALT 120 +#define HTML_FORM_INT 121 +#define HTML_N_FORM_INT 122 +#define HTML_DL_COMPACT 123 +#define HTML_INPUT_ALT 124 +#define HTML_N_INPUT_ALT 125 +#define HTML_IMG_ALT 126 +#define HTML_N_IMG_ALT 127 +#define HTML_NOP 128 +#define HTML_PRE_PLAIN 129 +#define HTML_N_PRE_PLAIN 130 +#define HTML_INTERNAL 131 +#define HTML_N_INTERNAL 132 +#define HTML_DIV_INT 133 +#define HTML_N_DIV_INT 134 + +#define MAX_HTMLTAG 135 + +/* Tag attribute */ + +#define ATTR_UNKNOWN 0 +#define ATTR_ACCEPT 1 +#define ATTR_ACCEPT_CHARSET 2 +#define ATTR_ACTION 3 +#define ATTR_ALIGN 4 +#define ATTR_ALT 5 +#define ATTR_ARCHIVE 6 +#define ATTR_BACKGROUND 7 +#define ATTR_BORDER 8 +#define ATTR_CELLPADDING 9 +#define ATTR_CELLSPACING 10 +#define ATTR_CHARSET 11 +#define ATTR_CHECKED 12 +#define ATTR_COLS 13 +#define ATTR_COLSPAN 14 +#define ATTR_CONTENT 15 +#define ATTR_ENCTYPE 16 +#define ATTR_HEIGHT 17 +#define ATTR_HREF 18 +#define ATTR_HTTP_EQUIV 19 +#define ATTR_ID 20 +#define ATTR_LINK 21 +#define ATTR_MAXLENGTH 22 +#define ATTR_METHOD 23 +#define ATTR_MULTIPLE 24 +#define ATTR_NAME 25 +#define ATTR_NOWRAP 26 +#define ATTR_PROMPT 27 +#define ATTR_ROWS 28 +#define ATTR_ROWSPAN 29 +#define ATTR_SIZE 30 +#define ATTR_SRC 31 +#define ATTR_TARGET 32 +#define ATTR_TYPE 33 +#define ATTR_USEMAP 34 +#define ATTR_VALIGN 35 +#define ATTR_VALUE 36 +#define ATTR_VSPACE 37 +#define ATTR_WIDTH 38 +#define ATTR_COMPACT 39 +#define ATTR_START 40 +#define ATTR_SELECTED 41 +#define ATTR_LABEL 42 +#define ATTR_READONLY 43 +#define ATTR_SHAPE 44 +#define ATTR_COORDS 45 +#define ATTR_ISMAP 46 +#define ATTR_REL 47 +#define ATTR_REV 48 +#define ATTR_TITLE 49 +#define ATTR_ACCESSKEY 50 + +/* Internal attribute */ +#define ATTR_XOFFSET 60 +#define ATTR_YOFFSET 61 +#define ATTR_TOP_MARGIN 62 +#define ATTR_BOTTOM_MARGIN 63 +#define ATTR_TID 64 +#define ATTR_FID 65 +#define ATTR_FOR_TABLE 66 +#define ATTR_FRAMENAME 67 +#define ATTR_HBORDER 68 +#define ATTR_HSEQ 69 +#define ATTR_NO_EFFECT 70 +#define ATTR_REFERER 71 +#define ATTR_SELECTNUMBER 72 +#define ATTR_TEXTAREANUMBER 73 + +#define MAX_TAGATTR 74 + +/* HTML Tag Information Table */ + +typedef struct html_tag_info { + char *name; + unsigned char *accept_attribute; + unsigned char max_attribute; + unsigned char flag; +} TagInfo; + +#define TFLG_END 1 +#define TFLG_INT 2 + +/* HTML Tag Attribute Information Table */ + +typedef struct tag_attribute_info { + char *name; + unsigned char vtype; + unsigned char flag; +} TagAttrInfo; + +#define AFLG_INT 1 + +#define VTYPE_NONE 0 +#define VTYPE_STR 1 +#define VTYPE_NUMBER 2 +#define VTYPE_LENGTH 3 +#define VTYPE_ALIGN 4 +#define VTYPE_VALIGN 5 +#define VTYPE_ACTION 6 +#define VTYPE_ENCTYPE 7 +#define VTYPE_METHOD 8 +#define VTYPE_MLENGTH 9 +#define VTYPE_TYPE 10 + +#define SHAPE_UNKNOWN 0 +#define SHAPE_DEFAULT 1 +#define SHAPE_RECT 2 +#define SHAPE_CIRCLE 3 +#define SHAPE_POLY 4 + +extern TagInfo TagMAP[]; +extern TagAttrInfo AttrMAP[]; + +struct environment { + char env; + int type; + int count; + char indent; +}; + +#define MAX_ENV_LEVEL 20 +#define MAX_INDENT_LEVEL 10 + +#define INDENT_INCR IndentIncr + +#define SCM_UNKNOWN 255 +#define SCM_MISSING 254 +#define SCM_HTTP 0 +#define SCM_GOPHER 1 +#define SCM_FTP 2 +#define SCM_FTPDIR 3 +#define SCM_LOCAL 4 +#define SCM_LOCAL_CGI 5 +#define SCM_EXEC 6 +#define SCM_NNTP 7 +#define SCM_NNTP_GROUP 8 +#define SCM_NEWS 9 +#define SCM_NEWS_GROUP 10 +#define SCM_DATA 11 +#define SCM_MAILTO 12 +#ifdef USE_SSL +#define SCM_HTTPS 13 +#endif /* USE_SSL */ + +#endif /* _HTML_H */ |