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 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423
|
/* $Id: html.h,v 1.31 2010/08/14 01:29:40 htrb Exp $ */
#ifndef _HTML_H
#define _HTML_H
#include "config.h"
#ifdef USE_SSL
#include <openssl/bio.h>
#include <openssl/x509.h>
#include <openssl/ssl.h>
#endif /* USE_SSL */
#include <time.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 UFclose(f) if (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;
union input_stream;
typedef struct {
unsigned char scheme;
char is_cgi;
char encoding;
union input_stream *stream;
char *ext;
int compression;
int content_encoding;
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 CMP_BROTLI 5
#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
#define HTML_I 109
#define HTML_N_I 110
#define HTML_STRONG 111
#define HTML_N_STRONG 112
#define HTML_SPAN 113
#define HTML_N_SPAN 114
#define HTML_ABBR 115
#define HTML_N_ABBR 116
#define HTML_ACRONYM 117
#define HTML_N_ACRONYM 118
#define HTML_BASEFONT 119
#define HTML_BDO 120
#define HTML_N_BDO 121
#define HTML_BIG 122
#define HTML_N_BIG 123
#define HTML_BUTTON 124
#define HTML_N_BUTTON 125
#define HTML_FIELDSET 126
#define HTML_N_FIELDSET 127
#define HTML_IFRAME 128
#define HTML_LABEL 129
#define HTML_N_LABEL 130
#define HTML_LEGEND 131
#define HTML_N_LEGEND 132
#define HTML_NOSCRIPT 133
#define HTML_N_NOSCRIPT 134
#define HTML_OBJECT 135
#define HTML_OPTGROUP 136
#define HTML_N_OPTGROUP 137
#define HTML_PARAM 138
#define HTML_SMALL 139
#define HTML_N_SMALL 140
#define HTML_FIGURE 141
#define HTML_N_FIGURE 142
#define HTML_FIGCAPTION 143
#define HTML_N_FIGCAPTION 144
#define HTML_SECTION 145
#define HTML_N_SECTION 146
#define HTML_N_DT 147
#define HTML_N_DD 148
#define HTML_DFN 149
#define HTML_N_DFN 150
/* pseudo tag */
#define HTML_SELECT_INT 160
#define HTML_N_SELECT_INT 161
#define HTML_OPTION_INT 162
#define HTML_TEXTAREA_INT 163
#define HTML_N_TEXTAREA_INT 164
#define HTML_TABLE_ALT 165
#define HTML_SYMBOL 166
#define HTML_N_SYMBOL 167
#define HTML_PRE_INT 168
#define HTML_N_PRE_INT 169
#define HTML_TITLE_ALT 170
#define HTML_FORM_INT 171
#define HTML_N_FORM_INT 172
#define HTML_DL_COMPACT 173
#define HTML_INPUT_ALT 174
#define HTML_N_INPUT_ALT 175
#define HTML_IMG_ALT 176
#define HTML_N_IMG_ALT 177
#define HTML_NOP 178
#define HTML_PRE_PLAIN 179
#define HTML_N_PRE_PLAIN 180
#define HTML_INTERNAL 181
#define HTML_N_INTERNAL 182
#define HTML_DIV_INT 183
#define HTML_N_DIV_INT 184
#define MAX_HTMLTAG 185
/* 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
#define ATTR_PUBLIC 51
/* 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 ATTR_PRE_INT 74
#define MAX_TAGATTR 75
/* 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 {
unsigned 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 */
|