~ubuntu-branches/ubuntu/lucid/w3m/lucid-proposed

« back to all changes in this revision

Viewing changes to html.c

  • Committer: Bazaar Package Importer
  • Author(s): Fumitoshi UKAI
  • Date: 2004-04-29 03:28:41 UTC
  • Revision ID: james.westby@ubuntu.com-20040429032841-uo4mu7a813aqrua8
Tags: upstream-0.5.1
ImportĀ upstreamĀ versionĀ 0.5.1

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/* $Id: html.c,v 1.28 2003/09/26 20:48:21 ukai Exp $ */
 
2
#include "html.h"
 
3
 
 
4
/* Define HTML Tag Infomation Table */
 
5
 
 
6
#define ATTR_CORE       ATTR_ID
 
7
#define MAXA_CORE       1
 
8
unsigned char ALST_A[] = {
 
9
    ATTR_NAME, ATTR_HREF, ATTR_REL, ATTR_CHARSET, ATTR_TARGET, ATTR_HSEQ,
 
10
    ATTR_REFERER,
 
11
    ATTR_FRAMENAME, ATTR_TITLE, ATTR_ACCESSKEY, ATTR_CORE
 
12
};
 
13
#define MAXA_A          MAXA_CORE + 10
 
14
unsigned char ALST_P[] = { ATTR_ALIGN, ATTR_CORE };
 
15
#define MAXA_P          MAXA_CORE + 1
 
16
unsigned char ALST_UL[] = { ATTR_START, ATTR_TYPE, ATTR_CORE };
 
17
#define MAXA_UL         MAXA_CORE + 2
 
18
unsigned char ALST_LI[] = { ATTR_TYPE, ATTR_VALUE, ATTR_CORE };
 
19
#define MAXA_LI         MAXA_CORE + 2
 
20
unsigned char ALST_HR[] = { ATTR_WIDTH, ATTR_ALIGN, ATTR_CORE };
 
21
#define MAXA_HR         MAXA_CORE + 2
 
22
unsigned char ALST_LINK[] = { ATTR_HREF, ATTR_HSEQ, ATTR_REL, ATTR_REV,
 
23
    ATTR_TITLE, ATTR_TYPE, ATTR_CORE
 
24
};
 
25
#define MAXA_LINK       MAXA_CORE + sizeof ALST_LINK/sizeof ALST_LINK[0] - 1
 
26
unsigned char ALST_DL[] = { ATTR_COMPACT, ATTR_CORE };
 
27
#define MAXA_DL         MAXA_CORE + 1
 
28
unsigned char ALST_PRE[] = { ATTR_FOR_TABLE, ATTR_CORE };
 
29
#define MAXA_PRE        MAXA_CORE + 1
 
30
unsigned char ALST_IMG[] =
 
31
    { ATTR_SRC, ATTR_ALT, ATTR_WIDTH, ATTR_HEIGHT, ATTR_ALIGN, ATTR_USEMAP,
 
32
    ATTR_ISMAP, ATTR_TITLE, ATTR_CORE
 
33
};
 
34
#define MAXA_IMG        MAXA_CORE + 8
 
35
unsigned char ALST_TABLE[] =
 
36
    { ATTR_BORDER, ATTR_WIDTH, ATTR_HBORDER, ATTR_CELLSPACING,
 
37
    ATTR_CELLPADDING, ATTR_VSPACE, ATTR_CORE
 
38
};
 
39
#define MAXA_TABLE      MAXA_CORE + 6
 
40
unsigned char ALST_META[] = { ATTR_HTTP_EQUIV, ATTR_CONTENT, ATTR_CORE };
 
41
#define MAXA_META       MAXA_CORE + 2
 
42
unsigned char ALST_FRAME[] = { ATTR_SRC, ATTR_NAME, ATTR_CORE };
 
43
#define MAXA_FRAME      MAXA_CORE + 2
 
44
unsigned char ALST_FRAMESET[] = { ATTR_COLS, ATTR_ROWS, ATTR_CORE };
 
45
#define MAXA_FRAMESET   MAXA_CORE + 2
 
46
unsigned char ALST_NOFRAMES[] = { ATTR_CORE };
 
47
#define MAXA_NOFRAMES   MAXA_CORE
 
48
unsigned char ALST_FORM[] =
 
49
    { ATTR_METHOD, ATTR_ACTION, ATTR_CHARSET, ATTR_ACCEPT_CHARSET,
 
50
    ATTR_ENCTYPE, ATTR_TARGET, ATTR_NAME, ATTR_CORE
 
51
};
 
52
#define MAXA_FORM       MAXA_CORE + 7
 
53
unsigned char ALST_INPUT[] =
 
54
    { ATTR_TYPE, ATTR_VALUE, ATTR_NAME, ATTR_CHECKED, ATTR_ACCEPT, ATTR_SIZE,
 
55
    ATTR_MAXLENGTH, ATTR_ALT, ATTR_READONLY, ATTR_SRC, ATTR_WIDTH, ATTR_HEIGHT,
 
56
    ATTR_CORE
 
57
};
 
58
#define MAXA_INPUT      MAXA_CORE + 12
 
59
unsigned char ALST_TEXTAREA[] =
 
60
    { ATTR_COLS, ATTR_ROWS, ATTR_NAME, ATTR_READONLY, ATTR_CORE };
 
61
#define MAXA_TEXTAREA   MAXA_CORE + 4
 
62
unsigned char ALST_SELECT[] = { ATTR_NAME, ATTR_MULTIPLE, ATTR_CORE };
 
63
#define MAXA_SELECT     MAXA_CORE + 2
 
64
unsigned char ALST_OPTION[] =
 
65
    { ATTR_VALUE, ATTR_LABEL, ATTR_SELECTED, ATTR_CORE };
 
66
#define MAXA_OPTION     MAXA_CORE + 3
 
67
unsigned char ALST_ISINDEX[] = { ATTR_ACTION, ATTR_PROMPT, ATTR_CORE };
 
68
#define MAXA_ISINDEX    MAXA_CORE + 2
 
69
unsigned char ALST_MAP[] = { ATTR_NAME, ATTR_CORE };
 
70
#define MAXA_MAP        MAXA_CORE + 1
 
71
unsigned char ALST_AREA[] =
 
72
    { ATTR_HREF, ATTR_TARGET, ATTR_ALT, ATTR_SHAPE, ATTR_COORDS, ATTR_CORE };
 
73
#define MAXA_AREA       MAXA_CORE + 5
 
74
unsigned char ALST_BASE[] = { ATTR_HREF, ATTR_TARGET, ATTR_CORE };
 
75
#define MAXA_BASE       MAXA_CORE + 2
 
76
unsigned char ALST_BODY[] = { ATTR_BACKGROUND, ATTR_CORE };
 
77
#define MAXA_BODY       MAXA_CORE + 1
 
78
unsigned char ALST_TR[] = { ATTR_ALIGN, ATTR_VALIGN, ATTR_CORE };
 
79
#define MAXA_TR         MAXA_CORE + 2
 
80
unsigned char ALST_TD[] =
 
81
    { ATTR_COLSPAN, ATTR_ROWSPAN, ATTR_ALIGN, ATTR_VALIGN, ATTR_WIDTH,
 
82
    ATTR_NOWRAP, ATTR_CORE
 
83
};
 
84
#define MAXA_TD         MAXA_CORE + 6
 
85
unsigned char ALST_BGSOUND[] = { ATTR_SRC, ATTR_CORE };
 
86
#define MAX_BGSOUND     MAXA_CORE + 1
 
87
unsigned char ALST_APPLET[] = { ATTR_ARCHIVE, ATTR_CORE };
 
88
#define MAX_APPLET      MAXA_CORE + 1
 
89
unsigned char ALST_EMBED[] = { ATTR_SRC, ATTR_CORE };
 
90
#define MAX_EMBED       MAXA_CORE + 1
 
91
 
 
92
unsigned char ALST_TEXTAREA_INT[] = { ATTR_TEXTAREANUMBER };
 
93
#define MAXA_TEXTAREA_INT 1
 
94
unsigned char ALST_SELECT_INT[] = { ATTR_SELECTNUMBER };
 
95
#define MAXA_SELECT_INT 1
 
96
unsigned char ALST_TABLE_ALT[] = { ATTR_TID };
 
97
#define MAXA_TABLE_ALT  1
 
98
unsigned char ALST_SYMBOL[] = { ATTR_TYPE };
 
99
#define MAXA_SYMBOL     1
 
100
unsigned char ALST_TITLE_ALT[] = { ATTR_TITLE };
 
101
#define MAXA_TITLE_ALT  1
 
102
unsigned char ALST_FORM_INT[] =
 
103
    { ATTR_METHOD, ATTR_ACTION, ATTR_CHARSET, ATTR_ACCEPT_CHARSET,
 
104
    ATTR_ENCTYPE, ATTR_TARGET, ATTR_NAME, ATTR_FID
 
105
};
 
106
#define MAXA_FORM_INT  8
 
107
unsigned char ALST_INPUT_ALT[] =
 
108
    { ATTR_HSEQ, ATTR_FID, ATTR_NO_EFFECT, ATTR_TYPE, ATTR_NAME, ATTR_VALUE,
 
109
    ATTR_CHECKED, ATTR_ACCEPT, ATTR_SIZE, ATTR_MAXLENGTH, ATTR_READONLY,
 
110
    ATTR_TEXTAREANUMBER,
 
111
    ATTR_SELECTNUMBER, ATTR_ROWS, ATTR_TOP_MARGIN, ATTR_BOTTOM_MARGIN
 
112
};
 
113
#define MAXA_INPUT_ALT  16
 
114
unsigned char ALST_IMG_ALT[] =
 
115
    { ATTR_SRC, ATTR_WIDTH, ATTR_HEIGHT, ATTR_USEMAP, ATTR_ISMAP, ATTR_HSEQ,
 
116
    ATTR_XOFFSET, ATTR_YOFFSET, ATTR_TOP_MARGIN, ATTR_BOTTOM_MARGIN,
 
117
    ATTR_TITLE
 
118
};
 
119
#define MAXA_IMG_ALT  11
 
120
unsigned char ALST_NOP[] = { ATTR_CORE };
 
121
#define MAXA_NOP        MAXA_CORE
 
122
 
 
123
TagInfo TagMAP[MAX_HTMLTAG] = {
 
124
    {NULL, NULL, 0, 0},         /*   0 HTML_UNKNOWN    */
 
125
    {"a", ALST_A, MAXA_A, 0},   /*   1 HTML_A          */
 
126
    {"/a", NULL, 0, TFLG_END},  /*   2 HTML_N_A        */
 
127
    {"h", ALST_P, MAXA_P, 0},   /*   3 HTML_H          */
 
128
    {"/h", NULL, 0, TFLG_END},  /*   4 HTML_N_H        */
 
129
    {"p", ALST_P, MAXA_P, 0},   /*   5 HTML_P          */
 
130
    {"br", NULL, 0, 0},         /*   6 HTML_BR         */
 
131
    {"b", NULL, 0, 0},          /*   7 HTML_B          */
 
132
    {"/b", NULL, 0, TFLG_END},  /*   8 HTML_N_B        */
 
133
    {"ul", ALST_UL, MAXA_UL, 0},        /*   9 HTML_UL         */
 
134
    {"/ul", NULL, 0, TFLG_END}, /*  10 HTML_N_UL       */
 
135
    {"li", ALST_LI, MAXA_LI, 0},        /*  11 HTML_LI         */
 
136
    {"ol", ALST_UL, MAXA_UL, 0},        /*  12 HTML_OL         */
 
137
    {"/ol", NULL, 0, TFLG_END}, /*  13 HTML_N_OL       */
 
138
    {"title", NULL, 0, 0},      /*  14 HTML_TITLE      */
 
139
    {"/title", NULL, 0, TFLG_END},      /*  15 HTML_N_TITLE    */
 
140
    {"hr", ALST_HR, MAXA_HR, 0},        /*  16 HTML_HR         */
 
141
    {"dl", ALST_DL, MAXA_DL, 0},        /*  17 HTML_DL         */
 
142
    {"/dl", NULL, 0, TFLG_END}, /*  18 HTML_N_DL       */
 
143
    {"dt", ALST_NOP, MAXA_NOP, 0},      /*  19 HTML_DT         */
 
144
    {"dd", ALST_NOP, MAXA_NOP, 0},      /*  20 HTML_DD         */
 
145
    {"pre", ALST_PRE, MAXA_PRE, 0},     /*  21 HTML_PRE        */
 
146
    {"/pre", NULL, 0, TFLG_END},        /*  22 HTML_N_PRE      */
 
147
    {"blockquote", ALST_NOP, MAXA_NOP, 0},      /*  23 HTML_BLQ        */
 
148
    {"/blockquote", NULL, 0, TFLG_END}, /*  24 HTML_N_BLQ      */
 
149
    {"img", ALST_IMG, MAXA_IMG, 0},     /*  25 HTML_IMG        */
 
150
    {"listing", NULL, 0, 0},    /*  26 HTML_LISTING    */
 
151
    {"/listing", NULL, 0, TFLG_END},    /*  27 HTML_N_LISTING  */
 
152
    {"xmp", NULL, 0, 0},        /*  28 HTML_XMP        */
 
153
    {"/xmp", NULL, 0, TFLG_END},        /*  29 HTML_N_XMP      */
 
154
    {"plaintext", NULL, 0, 0},  /*  30 HTML_PLAINTEXT  */
 
155
    {"table", ALST_TABLE, MAXA_TABLE, 0},       /*  31 HTML_TABLE      */
 
156
    {"/table", NULL, 0, TFLG_END},      /*  32 HTML_N_TABLE    */
 
157
    {"meta", ALST_META, MAXA_META, 0},  /*  33 HTML_META       */
 
158
    {"/p", NULL, 0, TFLG_END},  /*  34 HTML_N_P        */
 
159
    {"frame", ALST_FRAME, MAXA_FRAME, 0},       /*  35 HTML_FRAME      */
 
160
    {"frameset", ALST_FRAMESET, MAXA_FRAMESET, 0},      /*  36 HTML_FRAMESET   */
 
161
    {"/frameset", NULL, 0, TFLG_END},   /*  37 HTML_N_FRAMESET */
 
162
    {"center", NULL, 0, 0},     /*  38 HTML_CENTER     */
 
163
    {"/center", NULL, 0, TFLG_END},     /*  39 HTML_N_CENTER   */
 
164
    {"font", NULL, 0, 0},       /*  40 HTML_FONT       */
 
165
    {"/font", NULL, 0, TFLG_END},       /*  41 HTML_N_FONT     */
 
166
    {"form", ALST_FORM, MAXA_FORM, 0},  /*  42 HTML_FORM       */
 
167
    {"/form", NULL, 0, TFLG_END},       /*  43 HTML_N_FORM     */
 
168
    {"input", ALST_INPUT, MAXA_INPUT, 0},       /*  44 HTML_INPUT      */
 
169
    {"textarea", ALST_TEXTAREA, MAXA_TEXTAREA, 0},      /*  45 HTML_TEXTAREA   */
 
170
    {"/textarea", NULL, 0, TFLG_END},   /*  46 HTML_N_TEXTAREA */
 
171
    {"select", ALST_SELECT, MAXA_SELECT, 0},    /*  47 HTML_SELECT     */
 
172
    {"/select", NULL, 0, TFLG_END},     /*  48 HTML_N_SELECT   */
 
173
    {"option", ALST_OPTION, MAXA_OPTION, 0},    /*  49 HTML_OPTION     */
 
174
    {"nobr", NULL, 0, 0},       /*  50 HTML_NOBR       */
 
175
    {"/nobr", NULL, 0, TFLG_END},       /*  51 HTML_N_NOBR     */
 
176
    {"div", ALST_P, MAXA_P, 0}, /*  52 HTML_DIV        */
 
177
    {"/div", NULL, 0, TFLG_END},        /*  53 HTML_N_DIV      */
 
178
    {"isindex", ALST_ISINDEX, MAXA_ISINDEX, 0}, /*  54 HTML_ISINDEX    */
 
179
    {"map", ALST_MAP, MAXA_MAP, 0},     /*  55 HTML_MAP        */
 
180
    {"/map", NULL, 0, TFLG_END},        /*  56 HTML_N_MAP      */
 
181
    {"area", ALST_AREA, MAXA_AREA, 0},  /*  57 HTML_AREA       */
 
182
    {"script", NULL, 0, 0},     /*  58 HTML_SCRIPT     */
 
183
    {"/script", NULL, 0, TFLG_END},     /*  59 HTML_N_SCRIPT   */
 
184
    {"base", ALST_BASE, MAXA_BASE, 0},  /*  60 HTML_BASE       */
 
185
    {"del", NULL, 0, 0},        /*  61 HTML_DEL        */
 
186
    {"/del", NULL, 0, TFLG_END},        /*  62 HTML_N_DEL      */
 
187
    {"ins", NULL, 0, 0},        /*  63 HTML_INS        */
 
188
    {"/ins", NULL, 0, TFLG_END},        /*  64 HTML_N_INS      */
 
189
    {"u", NULL, 0, 0},          /*  65 HTML_U          */
 
190
    {"/u", NULL, 0, TFLG_END},  /*  66 HTML_N_U        */
 
191
    {"style", NULL, 0, 0},      /*  67 HTML_STYLE      */
 
192
    {"/style", NULL, 0, TFLG_END},      /*  68 HTML_N_STYLE    */
 
193
    {"wbr", NULL, 0, 0},        /*  69 HTML_WBR        */
 
194
    {"em", NULL, 0, 0},         /*  70 HTML_EM         */
 
195
    {"/em", NULL, 0, TFLG_END}, /*  71 HTML_N_EM       */
 
196
    {"body", ALST_BODY, MAXA_BODY, 0},  /*  72 HTML_BODY       */
 
197
    {"/body", NULL, 0, TFLG_END},       /*  73 HTML_N_BODY     */
 
198
    {"tr", ALST_TR, MAXA_TR, 0},        /*  74 HTML_TR         */
 
199
    {"/tr", NULL, 0, TFLG_END}, /*  75 HTML_N_TR       */
 
200
    {"td", ALST_TD, MAXA_TD, 0},        /*  76 HTML_TD         */
 
201
    {"/td", NULL, 0, TFLG_END}, /*  77 HTML_N_TD       */
 
202
    {"caption", ALST_NOP, MAXA_NOP, 0}, /*  78 HTML_CAPTION    */
 
203
    {"/caption", NULL, 0, TFLG_END},    /*  79 HTML_N_CAPTION  */
 
204
    {"th", ALST_TD, MAXA_TD, 0},        /*  80 HTML_TH         */
 
205
    {"/th", NULL, 0, TFLG_END}, /*  81 HTML_N_TH       */
 
206
    {"thead", NULL, 0, 0},      /*  82 HTML_THEAD      */
 
207
    {"/thead", NULL, 0, TFLG_END},      /*  83 HTML_N_THEAD    */
 
208
    {"tbody", NULL, 0, 0},      /*  84 HTML_TBODY      */
 
209
    {"/tbody", NULL, 0, TFLG_END},      /*  85 HTML_N_TBODY    */
 
210
    {"tfoot", NULL, 0, 0},      /*  86 HTML_TFOOT      */
 
211
    {"/tfoot", NULL, 0, TFLG_END},      /*  87 HTML_N_TFOOT    */
 
212
    {"colgroup", NULL, 0, 0},   /*  88 HTML_COLGROUP   */
 
213
    {"/colgroup", NULL, 0, TFLG_END},   /*  89 HTML_N_COLGROUP */
 
214
    {"col", NULL, 0, 0},        /*  90 HTML_COL        */
 
215
    {"bgsound", ALST_BGSOUND, MAX_BGSOUND, 0},  /*  91 HTML_BGSOUND    */
 
216
    {"applet", ALST_APPLET, MAX_APPLET, 0},     /*  92 HTML_APPLET     */
 
217
    {"embed", ALST_EMBED, MAX_EMBED, 0},        /*  93 HTML_EMBED      */
 
218
    {"/option", NULL, 0, TFLG_END},     /*  94 HTML_N_OPTION   */
 
219
    {"head", NULL, 0, 0},       /*  95 HTML_HEAD       */
 
220
    {"/head", NULL, 0, TFLG_END},       /*  96 HTML_N_HEAD     */
 
221
    {"doctype", NULL, 0, 0},    /*  97 HTML_DOCTYPE    */
 
222
    {"noframes", ALST_NOFRAMES, MAXA_NOFRAMES, 0},      /*  98 HTML_NOFRAMES   */
 
223
    {"/noframes", NULL, 0, TFLG_END},   /*  99 HTML_N_NOFRAMES */
 
224
 
 
225
    {"sup", NULL, 0, 0},        /* 100 HTML_SUP       */
 
226
    {"/sup", NULL, 0, 0},       /* 101 HTML_N_SUP       */
 
227
    {"sub", NULL, 0, 0},        /* 102 HTML_SUB       */
 
228
    {"/sub", NULL, 0, 0},       /* 103 HTML_N_SUB       */
 
229
    {"link", ALST_LINK, MAXA_LINK, 0},  /*  104 HTML_LINK      */
 
230
    {"s", NULL, 0, 0},          /*  105 HTML_S        */
 
231
    {"/s", NULL, 0, TFLG_END},  /*  106 HTML_N_S      */
 
232
    {"q", NULL, 0, 0},          /*  107 HTML_Q */
 
233
    {"/q", NULL, 0, TFLG_END},  /*  108 HTML_N_Q */
 
234
    {NULL, NULL, 0, 0},         /* 109 Undefined       */
 
235
 
 
236
    /* pseudo tag */
 
237
    {"select_int", ALST_SELECT_INT, MAXA_SELECT_INT, TFLG_INT}, /* 110 HTML_SELECT_INT   */
 
238
    {"/select_int", NULL, 0, TFLG_INT | TFLG_END},      /* 111 HTML_N_SELECT_INT */
 
239
    {"option_int", ALST_OPTION, MAXA_OPTION, TFLG_INT}, /* 112 HTML_OPTION_INT   */
 
240
    {"textarea_int", ALST_TEXTAREA_INT, MAXA_TEXTAREA_INT, TFLG_INT},   /* 113 HTML_TEXTAREA_INT   */
 
241
    {"/textarea_int", NULL, 0, TFLG_INT | TFLG_END},    /* 114 HTML_N_TEXTAREA_INT */
 
242
    {"table_alt", ALST_TABLE_ALT, MAXA_TABLE_ALT, TFLG_INT},    /* 115 HTML_TABLE_ALT   */
 
243
    {"symbol", ALST_SYMBOL, MAXA_SYMBOL, TFLG_INT},     /* 116 HTML_SYMBOL */
 
244
    {"/symbol", NULL, 0, TFLG_INT | TFLG_END},  /* 117 HTML_N_SYMBOL      */
 
245
    {"pre_int", NULL, 0, TFLG_INT},     /* 118 HTML_PRE_INT     */
 
246
    {"/pre_int", NULL, 0, TFLG_INT | TFLG_END}, /* 119 HTML_N_PRE_INT   */
 
247
    {"title_alt", ALST_TITLE_ALT, MAXA_TITLE_ALT, TFLG_INT},    /* 120 HTML_TITLE_ALT   */
 
248
    {"form_int", ALST_FORM_INT, MAXA_FORM_INT, TFLG_INT},       /* 121 HTML_FORM_INT    */
 
249
    {"/form_int", NULL, 0, TFLG_INT | TFLG_END},        /* 122 HTML_N_FORM_INT  */
 
250
    {"dl_compact", NULL, 0, TFLG_INT},  /* 123 HTML_DL_COMPACT  */
 
251
    {"input_alt", ALST_INPUT_ALT, MAXA_INPUT_ALT, TFLG_INT},    /* 124 HTML_INPUT_ALT   */
 
252
    {"/input_alt", NULL, 0, TFLG_INT | TFLG_END},       /* 125 HTML_N_INPUT_ALT */
 
253
    {"img_alt", ALST_IMG_ALT, MAXA_IMG_ALT, TFLG_INT},  /* 126 HTML_IMG_ALT     */
 
254
    {"/img_alt", NULL, 0, TFLG_INT | TFLG_END}, /* 127 HTML_N_IMG_ALT   */
 
255
    {" ", ALST_NOP, MAXA_NOP, TFLG_INT},        /* 128 HTML_NOP         */
 
256
    {"pre_plain", NULL, 0, TFLG_INT},   /* 129 HTML_PRE_PLAIN         */
 
257
    {"/pre_plain", NULL, 0, TFLG_INT | TFLG_END},       /* 130 HTML_N_PRE_PLAIN         */
 
258
    {"internal", NULL, 0, TFLG_INT},    /* 131 HTML_INTERNAL   */
 
259
    {"/internal", NULL, 0, TFLG_INT | TFLG_END},        /* 132 HTML_N_INTERNAL   */
 
260
    {"div_int", ALST_P, MAXA_P, TFLG_INT},      /*  133 HTML_DIV_INT    */
 
261
    {"/div_int", NULL, 0, TFLG_INT | TFLG_END}, /*  134 HTML_N_DIV_INT  */
 
262
};
 
263
 
 
264
TagAttrInfo AttrMAP[MAX_TAGATTR] = {
 
265
    {NULL, VTYPE_NONE, 0},      /*  0 ATTR_UNKNOWN        */
 
266
    {"accept", VTYPE_NONE, 0},  /*  1 ATTR_ACCEPT         */
 
267
    {"accept-charset", VTYPE_STR, 0},   /*  2 ATTR_ACCEPT_CHARSET */
 
268
    {"action", VTYPE_ACTION, 0},        /*  3 ATTR_ACTION         */
 
269
    {"align", VTYPE_ALIGN, 0},  /*  4 ATTR_ALIGN          */
 
270
    {"alt", VTYPE_STR, 0},      /*  5 ATTR_ALT            */
 
271
    {"archive", VTYPE_STR, 0},  /*  6 ATTR_ARCHIVE        */
 
272
    {"background", VTYPE_STR, 0},       /*  7 ATTR_BACKGROUND     */
 
273
    {"border", VTYPE_NUMBER, 0},        /*  8 ATTR_BORDER         */
 
274
    {"cellpadding", VTYPE_NUMBER, 0},   /*  9 ATTR_CELLPADDING    */
 
275
    {"cellspacing", VTYPE_NUMBER, 0},   /* 10 ATTR_CELLSPACING    */
 
276
    {"charset", VTYPE_STR, 0},  /* 11 ATTR_CHARSET        */
 
277
    {"checked", VTYPE_NONE, 0}, /* 12 ATTR_CHECKED        */
 
278
    {"cols", VTYPE_MLENGTH, 0}, /* 13 ATTR_COLS           */
 
279
    {"colspan", VTYPE_NUMBER, 0},       /* 14 ATTR_COLSPAN        */
 
280
    {"content", VTYPE_STR, 0},  /* 15 ATTR_CONTENT        */
 
281
    {"enctype", VTYPE_ENCTYPE, 0},      /* 16 ATTR_ENCTYPE        */
 
282
    {"height", VTYPE_LENGTH, 0},        /* 17 ATTR_HEIGHT         */
 
283
    {"href", VTYPE_STR, 0},     /* 18 ATTR_HREF           */
 
284
    {"http-equiv", VTYPE_STR, 0},       /* 19 ATTR_HTTP_EQUIV     */
 
285
    {"id", VTYPE_STR, 0},       /* 20 ATTR_ID             */
 
286
    {"link", VTYPE_STR, 0},     /* 21 ATTR_LINK           */
 
287
    {"maxlength", VTYPE_NUMBER, 0},     /* 22 ATTR_MAXLENGTH      */
 
288
    {"method", VTYPE_METHOD, 0},        /* 23 ATTR_METHOD         */
 
289
    {"multiple", VTYPE_NONE, 0},        /* 24 ATTR_MULTIPLE       */
 
290
    {"name", VTYPE_STR, 0},     /* 25 ATTR_NAME           */
 
291
    {"nowrap", VTYPE_NONE, 0},  /* 26 ATTR_NOWRAP         */
 
292
    {"prompt", VTYPE_STR, 0},   /* 27 ATTR_PROMPT         */
 
293
    {"rows", VTYPE_MLENGTH, 0}, /* 28 ATTR_ROWS           */
 
294
    {"rowspan", VTYPE_NUMBER, 0},       /* 29 ATTR_ROWSPAN        */
 
295
    {"size", VTYPE_NUMBER, 0},  /* 30 ATTR_SIZE           */
 
296
    {"src", VTYPE_STR, 0},      /* 31 ATTR_SRC            */
 
297
    {"target", VTYPE_STR, 0},   /* 32 ATTR_TARGET         */
 
298
    {"type", VTYPE_TYPE, 0},    /* 33 ATTR_TYPE           */
 
299
    {"usemap", VTYPE_STR, 0},   /* 34 ATTR_USEMAP         */
 
300
    {"valign", VTYPE_VALIGN, 0},        /* 35 ATTR_VALIGN         */
 
301
    {"value", VTYPE_STR, 0},    /* 36 ATTR_VALUE          */
 
302
    {"vspace", VTYPE_NUMBER, 0},        /* 37 ATTR_VSPACE         */
 
303
    {"width", VTYPE_LENGTH, 0}, /* 38 ATTR_WIDTH          */
 
304
    {"compact", VTYPE_NONE, 0}, /* 39 ATTR_COMPACT        */
 
305
    {"start", VTYPE_NUMBER, 0}, /* 40 ATTR_START          */
 
306
    {"selected", VTYPE_NONE, 0},        /* 41 ATTR_SELECTED       */
 
307
    {"label", VTYPE_STR, 0},    /* 42 ATTR_LABEL          */
 
308
    {"readonly", VTYPE_NONE, 0},        /* 43 ATTR_READONLY       */
 
309
    {"shape", VTYPE_STR, 0},    /* 44 ATTR_SHAPE          */
 
310
    {"coords", VTYPE_STR, 0},   /* 45 ATTR_COORDS         */
 
311
    {"ismap", VTYPE_NONE, 0},   /* 46 ATTR_ISMAP          */
 
312
    {"rel", VTYPE_STR, 0},      /* 47 ATTR_REL            */
 
313
    {"rev", VTYPE_STR, 0},      /* 48 ATTR_REV            */
 
314
    {"title", VTYPE_STR, 0},    /* 49 ATTR_TITLE          */
 
315
    {"accesskey", VTYPE_STR, 0},        /* 50 ATTR_ACCESSKEY          */
 
316
    {NULL, VTYPE_NONE, 0},      /* 51 Undefined           */
 
317
    {NULL, VTYPE_NONE, 0},      /* 52 Undefined           */
 
318
    {NULL, VTYPE_NONE, 0},      /* 53 Undefined           */
 
319
    {NULL, VTYPE_NONE, 0},      /* 54 Undefined           */
 
320
    {NULL, VTYPE_NONE, 0},      /* 55 Undefined           */
 
321
    {NULL, VTYPE_NONE, 0},      /* 56 Undefined           */
 
322
    {NULL, VTYPE_NONE, 0},      /* 57 Undefined           */
 
323
    {NULL, VTYPE_NONE, 0},      /* 58 Undefined           */
 
324
    {NULL, VTYPE_NONE, 0},      /* 59 Undefined           */
 
325
 
 
326
    /* Internal attribute */
 
327
    {"xoffset", VTYPE_NUMBER, AFLG_INT},        /* 60 ATTR_XOFFSET        */
 
328
    {"yoffset", VTYPE_NUMBER, AFLG_INT},        /* 61 ATTR_YOFFSET        */
 
329
    {"top_margin", VTYPE_NUMBER, AFLG_INT},     /* 62 ATTR_TOP_MARGIN,    */
 
330
    {"bottom_margin", VTYPE_NUMBER, AFLG_INT},  /* 63 ATTR_BOTTOM_MARGIN, */
 
331
    {"tid", VTYPE_NUMBER, AFLG_INT},    /* 64 ATTR_TID            */
 
332
    {"fid", VTYPE_NUMBER, AFLG_INT},    /* 65 ATTR_FID            */
 
333
    {"for_table", VTYPE_NONE, AFLG_INT},        /* 66 ATTR_FOR_TABLE      */
 
334
    {"framename", VTYPE_STR, AFLG_INT}, /* 67 ATTR_FRAMENAME      */
 
335
    {"hborder", VTYPE_NONE, 0}, /* 68 ATTR_HBORDER        */
 
336
    {"hseq", VTYPE_NUMBER, AFLG_INT},   /* 69 ATTR_HSEQ           */
 
337
    {"no_effect", VTYPE_NONE, AFLG_INT},        /* 70 ATTR_NO_EFFECT      */
 
338
    {"referer", VTYPE_STR, AFLG_INT},   /* 71 ATTR_REFERER        */
 
339
    {"selectnumber", VTYPE_NUMBER, AFLG_INT},   /* 72 ATTR_SELECTNUMBER   */
 
340
    {"textareanumber", VTYPE_NUMBER, AFLG_INT}, /* 73 ATTR_TEXTAREANUMBER */
 
341
};