aboutsummaryrefslogtreecommitdiffstats
path: root/html.h
diff options
context:
space:
mode:
Diffstat (limited to 'html.h')
-rw-r--r--html.h376
1 files changed, 376 insertions, 0 deletions
diff --git a/html.h b/html.h
new file mode 100644
index 0000000..28d1599
--- /dev/null
+++ b/html.h
@@ -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 */