about summary refs log tree commit diff stats
path: root/WWW/Library/Implementation/HTMLDTD.h
blob: 79d1111fc2d5df8f0f4e8e70f675982bca845b3c (plain) (blame)
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
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
/*				 The HTML DTD -- software interface in libwww
			      HTML DTD - SOFTWARE INTERFACE

   SGML purists should excuse the use of the term "DTD" in this file to
   represent DTD-related information which is not exactly a DTD itself.

   The C modular structure doesn't work very well here, as the dtd is
   partly in the .h and partly in the .c which are not very independent.
   Tant pis.

 */
#ifndef HTMLDTD_H
#define HTMLDTD_H

#include <SGML.h>
#include <HTFont.h>

/*
**  Valid name chars for tag parsing.
*/
#define IsNmStart(c) (isalpha(UCH(c)))
#define IsNmChar(c) (isalnum(UCH(c)) || \
		      c == '_' || c=='-' || c == '.' || c==':')


#define ReallyEmptyTagNum(e) ((HTML_dtd.tags[e].contents == SGML_EMPTY) && \
			      !(HTML_dtd.tags[e].flags & Tgf_nreie))
#define ReallyEmptyTag(t) ((t->contents == SGML_EMPTY) && \
			   !(t->flags & Tgf_nreie))

/*

Element Numbers

 */

/*

   Must Match all tables by element!
   These include tables in HTMLDTD.c and code in HTML.c.

 */
typedef enum {
	HTML_A,
	HTML_ABBREV,
	HTML_ACRONYM,
	HTML_ADDRESS,
	HTML_APPLET,
	HTML_AREA,
	HTML_AU,
	HTML_AUTHOR,
	HTML_B,
	HTML_BANNER,
	HTML_BASE,
	HTML_BASEFONT,
	HTML_BDO,
	HTML_BGSOUND,
	HTML_BIG,
	HTML_BLINK,
	HTML_BLOCKQUOTE,
	HTML_BODY,
	HTML_BODYTEXT,
	HTML_BQ,
	HTML_BR,
	HTML_BUTTON,
	HTML_CAPTION,
	HTML_CENTER,
	HTML_CITE,
	HTML_CODE,
	HTML_COL,
	HTML_COLGROUP,
	HTML_COMMENT,
	HTML_CREDIT,
	HTML_DD,
	HTML_DEL,
	HTML_DFN,
	HTML_DIR,
	HTML_DIV,
	HTML_DL,
	HTML_DLC,
	HTML_DT,
	HTML_EM,
	HTML_EMBED,
	HTML_FIELDSET,
	HTML_FIG,
	HTML_FN,
	HTML_FONT,
	HTML_FORM,
	HTML_FRAME,
	HTML_FRAMESET,
	HTML_H1,
	HTML_H2,
	HTML_H3,
	HTML_H4,
	HTML_H5,
	HTML_H6,
	HTML_HEAD,
	HTML_HR,
	HTML_HTML,
	HTML_HY,
	HTML_I,
	HTML_IFRAME,
	HTML_IMG,
	HTML_INPUT,
	HTML_INS,
	HTML_ISINDEX,
	HTML_KBD,
	HTML_KEYGEN,
	HTML_LABEL,
	HTML_LEGEND,
	HTML_LH,
	HTML_LI,
	HTML_LINK,
	HTML_LISTING,
	HTML_MAP,
	HTML_MARQUEE,
	HTML_MATH,
	HTML_MENU,
	HTML_META,
	HTML_NEXTID,
	HTML_NOFRAMES,
	HTML_NOTE,
	HTML_OBJECT,
	HTML_OL,
	HTML_OPTION,
	HTML_OVERLAY,
	HTML_P,
	HTML_PARAM,
	HTML_PLAINTEXT,
	HTML_PRE,
	HTML_Q,
	HTML_S,
	HTML_SAMP,
	HTML_SCRIPT,
	HTML_SELECT,
	HTML_SHY,
	HTML_SMALL,
	HTML_SPAN,
	HTML_SPOT,
	HTML_STRIKE,
	HTML_STRONG,
	HTML_STYLE,
	HTML_SUB,
	HTML_SUP,
	HTML_TAB,
	HTML_TABLE,
	HTML_TBODY,
	HTML_TD,
	HTML_TEXTAREA,
	HTML_TEXTFLOW,
	HTML_TFOOT,
	HTML_TH,
	HTML_THEAD,
	HTML_TITLE,
	HTML_TR,
	HTML_TT,
	HTML_U,
	HTML_UL,
	HTML_VAR,
	HTML_WBR,
	HTML_XMP,
	HTML_ALT_OBJECT } HTMLElement;

/* Notes: HTML.c uses a different extension of the HTML_ELEMENTS space
          privately, see HTNestedList.h. */
/*        Don't replace HTML_ELEMENTS with TABLESIZE(mumble_dtd.tags). */
/* Keep the following defines in synch with the above enum! */

/* HTML_ELEMENTS:     number of elements visible to Lynx code in general,
                      alphabetic (ASCII) order. */
#define HTML_ELEMENTS 118

/* HTML_ALL_ELEMENTS: number of elements visible to SGML parser,
                      additional variant(s) at end. */
#define HTML_ALL_ELEMENTS 119


/*

Attribute numbers

 */

/*

   Identifier is HTML_<element>_<attribute>.
   These must match the tables in HTML.c!

 */
#define HTML_A_ACCESSKEY        0
#define HTML_A_CHARSET          1 /* i18n draft, added tentatively - KW */
#define HTML_A_CLASS            2
#define HTML_A_CLEAR            3
#define HTML_A_COORDS           4
#define HTML_A_DIR              5
#define HTML_A_HREF             6
#define HTML_A_ID               7
#define HTML_A_ISMAP            8
#define HTML_A_LANG             9
#define HTML_A_MD              10
#define HTML_A_NAME            11
#define HTML_A_NOTAB           12
#define HTML_A_ONCLICK         13
#define HTML_A_ONMOUSEOUT      14
#define HTML_A_ONMOUSEOVER     15
#define HTML_A_REL             16
#define HTML_A_REV             17
#define HTML_A_SHAPE           18
#define HTML_A_STYLE           19
#define HTML_A_TABINDEX        20
#define HTML_A_TARGET          21
#define HTML_A_TITLE           22
#define HTML_A_TYPE            23
#define HTML_A_URN             24
#define HTML_A_ATTRIBUTES      25

#define HTML_ADDRESS_CLASS      0
#define HTML_ADDRESS_CLEAR      1
#define HTML_ADDRESS_DIR        2
#define HTML_ADDRESS_ID         3
#define HTML_ADDRESS_LANG       4
#define HTML_ADDRESS_NOWRAP     5
#define HTML_ADDRESS_STYLE      6
#define HTML_ADDRESS_TITLE      7
#define HTML_ADDRESS_ATTRIBUTES 8

#define HTML_APPLET_ALIGN       0
#define HTML_APPLET_ALT         1
#define HTML_APPLET_CLASS       2
#define HTML_APPLET_CLEAR       3
#define HTML_APPLET_CODE        4
#define HTML_APPLET_CODEBASE    5
#define HTML_APPLET_DIR         6
#define HTML_APPLET_DOWNLOAD    7
#define HTML_APPLET_HEIGHT      8
#define HTML_APPLET_HSPACE      9
#define HTML_APPLET_ID         10
#define HTML_APPLET_LANG       11
#define HTML_APPLET_NAME       12
#define HTML_APPLET_STYLE      13
#define HTML_APPLET_TITLE      14
#define HTML_APPLET_VSPACE     15
#define HTML_APPLET_WIDTH      16
#define HTML_APPLET_ATTRIBUTES 17

#define HTML_AREA_ALT           0
#define HTML_AREA_CLASS         1
#define HTML_AREA_CLEAR         2
#define HTML_AREA_COORDS        3
#define HTML_AREA_DIR           4
#define HTML_AREA_HREF          5
#define HTML_AREA_ID            6
#define HTML_AREA_LANG          7
#define HTML_AREA_NOHREF        8
#define HTML_AREA_NONOTAB       9
#define HTML_AREA_ONCLICK      10
#define HTML_AREA_ONMOUSEOUT   11
#define HTML_AREA_ONMOUSEOVER  12
#define HTML_AREA_SHAPE        13
#define HTML_AREA_STYLE        14
#define HTML_AREA_TABINDEX     15
#define HTML_AREA_TARGET       16
#define HTML_AREA_TITLE        17
#define HTML_AREA_ATTRIBUTES   18

#define HTML_BASE_HREF          0
#define HTML_BASE_TARGET        1
#define HTML_BASE_TITLE         2
#define HTML_BASE_ATTRIBUTES    3

#define HTML_BGSOUND_CLASS      0
#define HTML_BGSOUND_CLEAR      1
#define HTML_BGSOUND_DIR        2
#define HTML_BGSOUND_ID         3
#define HTML_BGSOUND_LANG       4
#define HTML_BGSOUND_LOOP       5
#define HTML_BGSOUND_SRC        6
#define HTML_BGSOUND_STYLE      7
#define HTML_BGSOUND_TITLE      8
#define HTML_BGSOUND_ATTRIBUTES 9

#define HTML_BODY_ALINK         0
#define HTML_BODY_BACKGROUND    1
#define HTML_BODY_BGCOLOR       2
#define HTML_BODY_CLASS         3
#define HTML_BODY_CLEAR         4
#define HTML_BODY_DIR           5
#define HTML_BODY_ID            6
#define HTML_BODY_LANG          7
#define HTML_BODY_LINK          8
#define HTML_BODY_ONLOAD        9
#define HTML_BODY_ONUNLOAD     10
#define HTML_BODY_STYLE        11
#define HTML_BODY_TEXT         12
#define HTML_BODY_TITLE        13
#define HTML_BODY_VLINK        14
#define HTML_BODY_ATTRIBUTES   15

#define HTML_BODYTEXT_CLASS     0
#define HTML_BODYTEXT_CLEAR     1
#define HTML_BODYTEXT_DATA      2
#define HTML_BODYTEXT_DIR       3
#define HTML_BODYTEXT_ID        4
#define HTML_BODYTEXT_LANG      5
#define HTML_BODYTEXT_NAME      6
#define HTML_BODYTEXT_OBJECT    7
#define HTML_BODYTEXT_REF       8
#define HTML_BODYTEXT_STYLE     9
#define HTML_BODYTEXT_TITLE    10
#define HTML_BODYTEXT_TYPE     11
#define HTML_BODYTEXT_VALUE    12
#define HTML_BODYTEXT_VALUETYPE  13
#define HTML_BODYTEXT_ATTRIBUTES 14

#define HTML_BQ_CITE             0
#define HTML_BQ_CLASS            1
#define HTML_BQ_CLEAR            2
#define HTML_BQ_DIR              3
#define HTML_BQ_ID               4
#define HTML_BQ_LANG             5
#define HTML_BQ_NOWRAP           6
#define HTML_BQ_STYLE            7
#define HTML_BQ_TITLE            8
#define HTML_BQ_ATTRIBUTES       9

#define HTML_BUTTON_CLASS       0
#define HTML_BUTTON_CLEAR       1
#define HTML_BUTTON_DIR         2
#define HTML_BUTTON_DISABLED    3
#define HTML_BUTTON_ID          4
#define HTML_BUTTON_LANG        5
#define HTML_BUTTON_NAME        6
#define HTML_BUTTON_ONFOCUS     7
#define HTML_BUTTON_ONBLUR      8
#define HTML_BUTTON_STYLE       9
#define HTML_BUTTON_TABINDEX   10
#define HTML_BUTTON_TITLE      11
#define HTML_BUTTON_TYPE       12
#define HTML_BUTTON_VALUE      13
#define HTML_BUTTON_ATTRIBUTES 14

#define HTML_CAPTION_ACCESSKEY  0
#define HTML_CAPTION_ALIGN      1
#define HTML_CAPTION_CLASS      2
#define HTML_CAPTION_CLEAR      3
#define HTML_CAPTION_DIR        4
#define HTML_CAPTION_ID         5
#define HTML_CAPTION_LANG       6
#define HTML_CAPTION_STYLE      7
#define HTML_CAPTION_TITLE      8
#define HTML_CAPTION_ATTRIBUTES 9

#define HTML_COL_ALIGN          0
#define HTML_COL_CHAR           1
#define HTML_COL_CHAROFF        2
#define HTML_COL_CLASS          3
#define HTML_COL_CLEAR          4
#define HTML_COL_DIR            5
#define HTML_COL_ID             6
#define HTML_COL_LANG           7
#define HTML_COL_SPAN           8
#define HTML_COL_STYLE          9
#define HTML_COL_TITLE         10
#define HTML_COL_VALIGN        11
#define HTML_COL_WIDTH         12
#define HTML_COL_ATTRIBUTES    13

#define HTML_CREDIT_CLASS       0
#define HTML_CREDIT_CLEAR       1
#define HTML_CREDIT_DIR         2
#define HTML_CREDIT_ID          3
#define HTML_CREDIT_LANG        4
#define HTML_CREDIT_STYLE       5
#define HTML_CREDIT_TITLE       6
#define HTML_CREDIT_ATTRIBUTES  7

#define HTML_DIV_ALIGN          0
#define HTML_DIV_CLASS          1
#define HTML_DIV_CLEAR          2
#define HTML_DIV_DIR            3
#define HTML_DIV_ID             4
#define HTML_DIV_LANG           5
#define HTML_DIV_STYLE          6
#define HTML_DIV_TITLE          7
#define HTML_DIV_ATTRIBUTES     8

#define HTML_DL_CLASS           0
#define HTML_DL_CLEAR           1
#define HTML_DL_COMPACT         2
#define HTML_DL_DIR             3
#define HTML_DL_ID              4
#define HTML_DL_LANG            5
#define HTML_DL_STYLE           6
#define HTML_DL_TITLE           7
#define HTML_DL_ATTRIBUTES      8

#define HTML_EMBED_ALIGN        0
#define HTML_EMBED_ALT          1
#define HTML_EMBED_BORDER       2
#define HTML_EMBED_CLASS        3
#define HTML_EMBED_CLEAR        4
#define HTML_EMBED_DIR          5
#define HTML_EMBED_HEIGHT       6
#define HTML_EMBED_ID           7
#define HTML_EMBED_IMAGEMAP     8
#define HTML_EMBED_ISMAP        9
#define HTML_EMBED_LANG        10
#define HTML_EMBED_MD          11
#define HTML_EMBED_NAME        12
#define HTML_EMBED_NOFLOW      13
#define HTML_EMBED_PARAMS      14
#define HTML_EMBED_SRC         15
#define HTML_EMBED_STYLE       16
#define HTML_EMBED_TITLE       17
#define HTML_EMBED_UNITS       18
#define HTML_EMBED_USEMAP      19
#define HTML_EMBED_WIDTH       20
#define HTML_EMBED_ATTRIBUTES  21

#define HTML_FIELDSET_CLASS     0
#define HTML_FIELDSET_CLEAR     1
#define HTML_FIELDSET_DIR       2
#define HTML_FIELDSET_ID        3
#define HTML_FIELDSET_LANG      4
#define HTML_FIELDSET_STYLE     5
#define HTML_FIELDSET_TITLE     6
#define HTML_FIELDSET_ATTRIBUTES 7

#define HTML_FIG_ALIGN          0
#define HTML_FIG_BORDER         1
#define HTML_FIG_CLASS          2
#define HTML_FIG_CLEAR          3
#define HTML_FIG_DIR            4
#define HTML_FIG_HEIGHT         5
#define HTML_FIG_ID             6
#define HTML_FIG_IMAGEMAP       7
#define HTML_FIG_ISOBJECT       8
#define HTML_FIG_LANG           9
#define HTML_FIG_MD            10
#define HTML_FIG_NOFLOW        11
#define HTML_FIG_SRC           12
#define HTML_FIG_STYLE         13
#define HTML_FIG_TITLE         14
#define HTML_FIG_UNITS         15
#define HTML_FIG_WIDTH         16
#define HTML_FIG_ATTRIBUTES    17

#define HTML_FN_CLASS           0
#define HTML_FN_CLEAR           1
#define HTML_FN_DIR             2
#define HTML_FN_ID              3
#define HTML_FN_LANG            4
#define HTML_FN_STYLE           5
#define HTML_FN_TITLE           6
#define HTML_FN_ATTRIBUTES      7

#define HTML_FONT_CLASS         0
#define HTML_FONT_CLEAR         1
#define HTML_FONT_COLOR         2
#define HTML_FONT_DIR           3
#define HTML_FONT_FACE          4
#define HTML_FONT_ID            5
#define HTML_FONT_LANG          6
#define HTML_FONT_SIZE          7
#define HTML_FONT_STYLE         8
#define HTML_FONT_ATTRIBUTES    9

#define HTML_FORM_ACCEPT_CHARSET  0 /* HTML 4.0 draft - kw */
#define HTML_FORM_ACTION        1
#define HTML_FORM_CLASS         2
#define HTML_FORM_CLEAR         3
#define HTML_FORM_DIR           4
#define HTML_FORM_ENCTYPE       5
#define HTML_FORM_ID            6
#define HTML_FORM_LANG          7
#define HTML_FORM_METHOD        8
#define HTML_FORM_ONSUBMIT      9
#define HTML_FORM_SCRIPT       10
#define HTML_FORM_STYLE        11
#define HTML_FORM_SUBJECT      12
#define HTML_FORM_TARGET       13
#define HTML_FORM_TITLE        14
#define HTML_FORM_ATTRIBUTES   15

#define HTML_FRAME_ID            0
#define HTML_FRAME_LONGDESC      1
#define HTML_FRAME_MARGINHEIGHT  2
#define HTML_FRAME_MARGINWIDTH   3
#define HTML_FRAME_NAME          4
#define HTML_FRAME_NORESIZE      5
#define HTML_FRAME_SCROLLING     6
#define HTML_FRAME_SRC           7
#define HTML_FRAME_ATTRIBUTES    8

#define HTML_FRAMESET_COLS      0
#define HTML_FRAMESET_ROWS      1
#define HTML_FRAMESET_ATTRIBUTES 2

#define HTML_GEN_CLASS          0
#define HTML_GEN_CLEAR          1
#define HTML_GEN_DIR            2
#define HTML_GEN_ID             3
#define HTML_GEN_LANG           4
#define HTML_GEN_STYLE          5
#define HTML_GEN_TITLE          6
#define HTML_GEN_ATTRIBUTES     7

#define HTML_H_ALIGN            0
#define HTML_H_CLASS            1
#define HTML_H_CLEAR            2
#define HTML_H_DINGBAT          3
#define HTML_H_DIR              4
#define HTML_H_ID               5
#define HTML_H_LANG             6
#define HTML_H_MD               7
#define HTML_H_NOWRAP           8
#define HTML_H_SEQNUM           9
#define HTML_H_SKIP            10
#define HTML_H_SRC             11
#define HTML_H_STYLE           12
#define HTML_H_TITLE           13
#define HTML_H_ATTRIBUTES      14

#define HTML_HR_ALIGN           0
#define HTML_HR_CLASS           1
#define HTML_HR_CLEAR           2
#define HTML_HR_DIR             3
#define HTML_HR_ID              4
#define HTML_HR_MD              5
#define HTML_HR_NOSHADE         6
#define HTML_HR_SIZE            7
#define HTML_HR_SRC             8
#define HTML_HR_STYLE           9
#define HTML_HR_TITLE          10
#define HTML_HR_WIDTH          11
#define HTML_HR_ATTRIBUTES     12

#define HTML_IFRAME_ALIGN         0
#define HTML_IFRAME_FRAMEBORDER   1
#define HTML_IFRAME_HEIGHT        2
#define HTML_IFRAME_ID            3
#define HTML_IFRAME_LONGDESC      4
#define HTML_IFRAME_MARGINHEIGHT  5
#define HTML_IFRAME_MARGINWIDTH   6
#define HTML_IFRAME_NAME          7
#define HTML_IFRAME_SCROLLING     8
#define HTML_IFRAME_SRC           9
#define HTML_IFRAME_STYLE        10
#define HTML_IFRAME_WIDTH        11
#define HTML_IFRAME_ATTRIBUTES   12

#define HTML_IMG_ALIGN           0
#define HTML_IMG_ALT             1
#define HTML_IMG_BORDER          2
#define HTML_IMG_CLASS           3
#define HTML_IMG_CLEAR           4
#define HTML_IMG_DIR             5
#define HTML_IMG_HEIGHT          6
#define HTML_IMG_ID              7
#define HTML_IMG_ISMAP           8
#define HTML_IMG_ISOBJECT        9
#define HTML_IMG_LANG           10
#define HTML_IMG_LONGDESC       11
#define HTML_IMG_MD             12
#define HTML_IMG_SRC            13
#define HTML_IMG_STYLE          14
#define HTML_IMG_TITLE          15
#define HTML_IMG_UNITS          16
#define HTML_IMG_USEMAP         17
#define HTML_IMG_WIDTH          18
#define HTML_IMG_ATTRIBUTES     19

#define HTML_INPUT_ACCEPT       0
#define HTML_INPUT_ACCEPT_CHARSET  1 /* RFC 2070 HTML i18n - kw */
#define HTML_INPUT_ALIGN        2
#define HTML_INPUT_ALT          3
#define HTML_INPUT_CHECKED      4
#define HTML_INPUT_CLASS        5
#define HTML_INPUT_CLEAR        6
#define HTML_INPUT_DIR          7
#define HTML_INPUT_DISABLED     8
#define HTML_INPUT_ERROR        9
#define HTML_INPUT_HEIGHT      10
#define HTML_INPUT_ID          11
#define HTML_INPUT_LANG        12
#define HTML_INPUT_MAX         13
#define HTML_INPUT_MAXLENGTH   14
#define HTML_INPUT_MD          15
#define HTML_INPUT_MIN         16
#define HTML_INPUT_NAME        17
#define HTML_INPUT_NOTAB       18
#define HTML_INPUT_ONBLUR      19
#define HTML_INPUT_ONCHANGE    20
#define HTML_INPUT_ONCLICK     21
#define HTML_INPUT_ONFOCUS     22
#define HTML_INPUT_ONSELECT    23
#define HTML_INPUT_SIZE        24
#define HTML_INPUT_SRC         25
#define HTML_INPUT_STYLE       26
#define HTML_INPUT_TABINDEX    27
#define HTML_INPUT_TITLE       28
#define HTML_INPUT_TYPE        29
#define HTML_INPUT_VALUE       30
#define HTML_INPUT_WIDTH       31
#define HTML_INPUT_ATTRIBUTES  32

#define HTML_ISINDEX_ACTION     0  /* Treat as synonym for HREF. - FM */
#define HTML_ISINDEX_DIR        1
#define HTML_ISINDEX_HREF       2  /* HTML 3.0 "action". - FM */
#define HTML_ISINDEX_ID         3
#define HTML_ISINDEX_LANG       4
#define HTML_ISINDEX_PROMPT     5  /* HTML 3.0 "prompt". - FM */
#define HTML_ISINDEX_TITLE      6
#define HTML_ISINDEX_ATTRIBUTES 7

#define HTML_KEYGEN_CHALLENGE   0
#define HTML_KEYGEN_CLASS       1
#define HTML_KEYGEN_DIR         2
#define HTML_KEYGEN_ID          3
#define HTML_KEYGEN_LANG        4
#define HTML_KEYGEN_NAME        5
#define HTML_KEYGEN_STYLE       6
#define HTML_KEYGEN_TITLE       7
#define HTML_KEYGEN_ATTRIBUTES  8

#define HTML_LABEL_ACCESSKEY    0
#define HTML_LABEL_CLASS        1
#define HTML_LABEL_CLEAR        2
#define HTML_LABEL_DIR          3
#define HTML_LABEL_FOR          4
#define HTML_LABEL_ID           5
#define HTML_LABEL_LANG         6
#define HTML_LABEL_ONCLICK      7
#define HTML_LABEL_STYLE        8
#define HTML_LABEL_TITLE        9
#define HTML_LABEL_ATTRIBUTES  10

#define HTML_LEGEND_ACCESSKEY   0
#define HTML_LEGEND_ALIGN       1
#define HTML_LEGEND_CLASS       2
#define HTML_LEGEND_CLEAR       3
#define HTML_LEGEND_DIR         4
#define HTML_LEGEND_ID          5
#define HTML_LEGEND_LANG        6
#define HTML_LEGEND_STYLE       7
#define HTML_LEGEND_TITLE       8
#define HTML_LEGEND_ATTRIBUTES  9

#define HTML_LI_CLASS           0
#define HTML_LI_CLEAR           1
#define HTML_LI_DINGBAT         2
#define HTML_LI_DIR             3
#define HTML_LI_ID              4
#define HTML_LI_LANG            5
#define HTML_LI_MD              6
#define HTML_LI_SKIP            7
#define HTML_LI_SRC             8
#define HTML_LI_STYLE           9
#define HTML_LI_TITLE          10
#define HTML_LI_TYPE           11
#define HTML_LI_VALUE          12
#define HTML_LI_ATTRIBUTES     13

#define HTML_LINK_CHARSET       0 /* RFC 2070 HTML i18n - kw */
#define HTML_LINK_CLASS         1
#define HTML_LINK_HREF          2
#define HTML_LINK_ID            3
#define HTML_LINK_MEDIA         4
#define HTML_LINK_REL           5
#define HTML_LINK_REV           6
#define HTML_LINK_STYLE         7
#define HTML_LINK_TARGET        8
#define HTML_LINK_TITLE         9
#define HTML_LINK_TYPE         10
#define HTML_LINK_ATTRIBUTES   11

#define HTML_MAP_CLASS          0
#define HTML_MAP_CLEAR          1
#define HTML_MAP_DIR            2
#define HTML_MAP_ID             3
#define HTML_MAP_LANG           4
#define HTML_MAP_NAME           5
#define HTML_MAP_STYLE          6
#define HTML_MAP_TITLE          7
#define HTML_MAP_ATTRIBUTES     8

#define HTML_MATH_BOX           0
#define HTML_MATH_CLASS         1
#define HTML_MATH_CLEAR         2
#define HTML_MATH_DIR           3
#define HTML_MATH_ID            4
#define HTML_MATH_LANG          5
#define HTML_MATH_STYLE         6
#define HTML_MATH_TITLE         7
#define HTML_MATH_ATTRIBUTES    8

#define HTML_META_CONTENT       0
#define HTML_META_HTTP_EQUIV    1  /* For parsing in HTML.c - FM */
#define HTML_META_NAME          2
#define HTML_META_ATTRIBUTES    3

#define NEXTID_N                0

#define HTML_NOTE_CLASS         0
#define HTML_NOTE_CLEAR         1
#define HTML_NOTE_DIR           2
#define HTML_NOTE_ID            3
#define HTML_NOTE_LANG          4
#define HTML_NOTE_MD            5
#define HTML_NOTE_ROLE          6 /* Old name for CLASS - FM */
#define HTML_NOTE_SRC           7
#define HTML_NOTE_STYLE         8
#define HTML_NOTE_TITLE         9
#define HTML_NOTE_ATTRIBUTES   10

#define HTML_OBJECT_ALIGN       0
#define HTML_OBJECT_BORDER      1
#define HTML_OBJECT_CLASS       2
#define HTML_OBJECT_CLASSID     3
#define HTML_OBJECT_CODEBASE    4
#define HTML_OBJECT_CODETYPE    5
#define HTML_OBJECT_DATA        6
#define HTML_OBJECT_DECLARE     7
#define HTML_OBJECT_DIR         8
#define HTML_OBJECT_HEIGHT      9
#define HTML_OBJECT_HSPACE     10
#define HTML_OBJECT_ID         11
#define HTML_OBJECT_ISMAP      12
#define HTML_OBJECT_LANG       13
#define HTML_OBJECT_NAME       14
#define HTML_OBJECT_NOTAB      15
#define HTML_OBJECT_SHAPES     16
#define HTML_OBJECT_STANDBY    17
#define HTML_OBJECT_STYLE      18
#define HTML_OBJECT_TABINDEX   19
#define HTML_OBJECT_TITLE      20
#define HTML_OBJECT_TYPE       21
#define HTML_OBJECT_USEMAP     22
#define HTML_OBJECT_VSPACE     23
#define HTML_OBJECT_WIDTH      24
#define HTML_OBJECT_ATTRIBUTES 25

#define HTML_OL_CLASS           0
#define HTML_OL_CLEAR           1
#define HTML_OL_COMPACT         2
#define HTML_OL_CONTINUE        3
#define HTML_OL_DIR             4
#define HTML_OL_ID              5
#define HTML_OL_LANG            6
#define HTML_OL_SEQNUM          7
#define HTML_OL_START           8
#define HTML_OL_STYLE           9
#define HTML_OL_TITLE          10
#define HTML_OL_TYPE           11
#define HTML_OL_ATTRIBUTES     12

#define HTML_OPTION_CLASS       0
#define HTML_OPTION_CLEAR       1
#define HTML_OPTION_DIR         2
#define HTML_OPTION_DISABLED    3
#define HTML_OPTION_ERROR       4
#define HTML_OPTION_ID          5
#define HTML_OPTION_LANG        6
#define HTML_OPTION_SELECTED    7
#define HTML_OPTION_SHAPE       8
#define HTML_OPTION_STYLE       9
#define HTML_OPTION_TITLE      10
#define HTML_OPTION_VALUE      11
#define HTML_OPTION_ATTRIBUTES 12

#define HTML_OVERLAY_CLASS      0
#define HTML_OVERLAY_HEIGHT     1
#define HTML_OVERLAY_ID         2
#define HTML_OVERLAY_IMAGEMAP   3
#define HTML_OVERLAY_MD         4
#define HTML_OVERLAY_SRC        5
#define HTML_OVERLAY_STYLE      6
#define HTML_OVERLAY_TITLE      7
#define HTML_OVERLAY_UNITS      8
#define HTML_OVERLAY_WIDTH      9
#define HTML_OVERLAY_X         10
#define HTML_OVERLAY_Y         11
#define HTML_OVERLAY_ATTRIBUTES 12

#define HTML_P_ALIGN            0
#define HTML_P_CLASS            1
#define HTML_P_CLEAR            2
#define HTML_P_DIR              3
#define HTML_P_ID               4
#define HTML_P_LANG             5
#define HTML_P_NOWRAP           6
#define HTML_P_STYLE            7
#define HTML_P_TITLE            8
#define HTML_P_ATTRIBUTES       9

#define HTML_PARAM_ACCEPT       0
#define HTML_PARAM_ACCEPT_CHARSET  1
#define HTML_PARAM_ACCEPT_ENCODING 2
#define HTML_PARAM_CLASS        3
#define HTML_PARAM_CLEAR        4
#define HTML_PARAM_DATA         5
#define HTML_PARAM_DIR          6
#define HTML_PARAM_ID           7
#define HTML_PARAM_LANG         8
#define HTML_PARAM_NAME         9
#define HTML_PARAM_OBJECT      10
#define HTML_PARAM_REF         11
#define HTML_PARAM_STYLE       12
#define HTML_PARAM_TITLE       13
#define HTML_PARAM_TYPE        14
#define HTML_PARAM_VALUE       15
#define HTML_PARAM_VALUEREF    16  /* Use VALUETYPE (DATA|REF|OBJECT). - FM */
#define HTML_PARAM_VALUETYPE   17
#define HTML_PARAM_ATTRIBUTES  18

#define HTML_SCRIPT_CLASS       0
#define HTML_SCRIPT_CLEAR       1
#define HTML_SCRIPT_DIR         2
#define HTML_SCRIPT_EVENT       3
#define HTML_SCRIPT_FOR         4
#define HTML_SCRIPT_ID          5
#define HTML_SCRIPT_LANG        6
#define HTML_SCRIPT_LANGUAGE    7
#define HTML_SCRIPT_NAME        8
#define HTML_SCRIPT_SCRIPTENGINE 9
#define HTML_SCRIPT_SRC        10
#define HTML_SCRIPT_STYLE      11
#define HTML_SCRIPT_TITLE      12
#define HTML_SCRIPT_TYPE       13
#define HTML_SCRIPT_ATTRIBUTES 14

#define HTML_SELECT_ALIGN       0
#define HTML_SELECT_CLASS       1
#define HTML_SELECT_CLEAR       2
#define HTML_SELECT_DIR         3
#define HTML_SELECT_DISABLED    4
#define HTML_SELECT_ERROR       5
#define HTML_SELECT_HEIGHT      6
#define HTML_SELECT_ID          7
#define HTML_SELECT_LANG        8
#define HTML_SELECT_MD          9
#define HTML_SELECT_MULTIPLE   10
#define HTML_SELECT_NAME       11
#define HTML_SELECT_NOTAB      12
#define HTML_SELECT_ONBLUR     13
#define HTML_SELECT_ONCHANGE   14
#define HTML_SELECT_ONFOCUS    15
#define HTML_SELECT_SIZE       16
#define HTML_SELECT_STYLE      17
#define HTML_SELECT_TABINDEX   18
#define HTML_SELECT_TITLE      19
#define HTML_SELECT_UNITS      20
#define HTML_SELECT_WIDTH      21
#define HTML_SELECT_ATTRIBUTES 22

#define HTML_STYLE_DIR          0
#define HTML_STYLE_LANG         1
#define HTML_STYLE_NOTATION     2
#define HTML_STYLE_TITLE        3
#define HTML_STYLE_ATTRIBUTES   4

#define HTML_TAB_ALIGN          0
#define HTML_TAB_CLASS          1
#define HTML_TAB_CLEAR          2
#define HTML_TAB_DIR            3
#define HTML_TAB_DP             4
#define HTML_TAB_ID             5
#define HTML_TAB_INDENT         6
#define HTML_TAB_LANG           7
#define HTML_TAB_STYLE          8
#define HTML_TAB_TITLE          9
#define HTML_TAB_TO            10
#define HTML_TAB_ATTRIBUTES    11

#define HTML_TABLE_ALIGN        0
#define HTML_TABLE_BACKGROUND   1
#define HTML_TABLE_BORDER       2
#define HTML_TABLE_CELLPADDING  3
#define HTML_TABLE_CELLSPACING  4
#define HTML_TABLE_CLASS        5
#define HTML_TABLE_CLEAR        6
#define HTML_TABLE_COLS         7
#define HTML_TABLE_COLSPEC      8
#define HTML_TABLE_DIR          9
#define HTML_TABLE_DP          10
#define HTML_TABLE_FRAME       11
#define HTML_TABLE_ID          12
#define HTML_TABLE_LANG        13
#define HTML_TABLE_NOFLOW      14
#define HTML_TABLE_NOWRAP      15
#define HTML_TABLE_RULES       16
#define HTML_TABLE_STYLE       17
#define HTML_TABLE_SUMMARY     18
#define HTML_TABLE_TITLE       19
#define HTML_TABLE_UNITS       20
#define HTML_TABLE_WIDTH       21
#define HTML_TABLE_ATTRIBUTES  22

#define HTML_TD_ALIGN           0
#define HTML_TD_AXES            1
#define HTML_TD_AXIS            2
#define HTML_TD_BACKGROUND      3
#define HTML_TD_CHAR            4
#define HTML_TD_CHAROFF         5
#define HTML_TD_CLASS           6
#define HTML_TD_CLEAR           7
#define HTML_TD_COLSPAN         8
#define HTML_TD_DIR             9
#define HTML_TD_DP             10
#define HTML_TD_HEIGHT         11
#define HTML_TD_ID             12
#define HTML_TD_LANG           13
#define HTML_TD_NOWRAP         14
#define HTML_TD_ROWSPAN        15
#define HTML_TD_STYLE          16
#define HTML_TD_TITLE          17
#define HTML_TD_VALIGN         18
#define HTML_TD_WIDTH          19
#define HTML_TD_ATTRIBUTES     20

#define HTML_TEXTAREA_ACCEPT_CHARSET  0 /* RFC 2070 HTML i18n - kw */
#define HTML_TEXTAREA_ALIGN     1
#define HTML_TEXTAREA_CLASS     2
#define HTML_TEXTAREA_CLEAR     3
#define HTML_TEXTAREA_COLS      4
#define HTML_TEXTAREA_DIR       5
#define HTML_TEXTAREA_DISABLED  6
#define HTML_TEXTAREA_ERROR     7
#define HTML_TEXTAREA_ID        8
#define HTML_TEXTAREA_LANG      9
#define HTML_TEXTAREA_NAME     10
#define HTML_TEXTAREA_NOTAB    11
#define HTML_TEXTAREA_ONBLUR   12
#define HTML_TEXTAREA_ONCHANGE 13
#define HTML_TEXTAREA_ONFOCUS  14
#define HTML_TEXTAREA_ONSELECT 15
#define HTML_TEXTAREA_ROWS     16
#define HTML_TEXTAREA_STYLE    17
#define HTML_TEXTAREA_TABINDEX 18
#define HTML_TEXTAREA_TITLE    19
#define HTML_TEXTAREA_ATTRIBUTES 20

#define HTML_TR_ALIGN           0
#define HTML_TR_CHAR            1
#define HTML_TR_CHAROFF         2
#define HTML_TR_CLASS           3
#define HTML_TR_CLEAR           4
#define HTML_TR_DIR             5
#define HTML_TR_DP              6
#define HTML_TR_ID              7
#define HTML_TR_LANG            8
#define HTML_TR_NOWRAP          9
#define HTML_TR_STYLE          10
#define HTML_TR_TITLE          11
#define HTML_TR_VALIGN         12
#define HTML_TR_ATTRIBUTES     13

#define HTML_UL_CLASS           0
#define HTML_UL_CLEAR           1
#define HTML_UL_COMPACT         2
#define HTML_UL_DINGBAT         3
#define HTML_UL_DIR             4
#define HTML_UL_ID              5
#define HTML_UL_LANG            6
#define HTML_UL_MD              7
#define HTML_UL_PLAIN           8
#define HTML_UL_SRC             9
#define HTML_UL_STYLE          10
#define HTML_UL_TITLE          11
#define HTML_UL_TYPE           12
#define HTML_UL_WRAP           13
#define HTML_UL_ATTRIBUTES     14

#ifdef USE_PRETTYSRC
/* values of HTML attributes' types */
#define HTMLA_NORMAL 0 /* nothing specific */
#define HTMLA_ANAME  1 /* anchor name - 'id' or a's 'name' */
#define HTMLA_HREF   2 /* href */
#define HTMLA_CLASS  4 /* class name.  */
#define HTMLA_AUXCLASS 8 /* attribute, the value of which also designates
			    a class name */
#endif
extern CONST SGML_dtd HTML_dtd;

extern void HTSwitchDTD PARAMS((int new_flag));

extern HTTag HTTag_unrecognized;
extern HTTag HTTag_mixedObject;

/*

Start anchor element

   It is kinda convenient to have a particular routine for starting an anchor
   element, as everything else for HTML is simple anyway.

  ON ENTRY

   targetstream points to a structured stream object.

   name and href point to attribute strings or are NULL if the attribute is
   to be omitted.

 */
extern void HTStartAnchor PARAMS((
		HTStructured * targetstream,
		CONST char *	name,
		CONST char *	href));

extern void HTStartAnchor5 PARAMS((
		HTStructured * targetstream,
		CONST char *	name,
		CONST char *	href,
		CONST char *	linktype,
		int		tag_charset));

/*

Start IsIndex element - FM

   It is kinda convenient to have a particular routine for starting an IsIndex
   element with the prompt and/or href (action) attributes specified.

  ON ENTRY

   targetstream points to a structured stream object.

   prompt and href point to attribute strings or are NULL if the attribute is
   to be omitted.

 */
extern void HTStartIsIndex PARAMS((
		HTStructured * targetstream,
		CONST char *	prompt,
		CONST char *	href));


#endif /* HTMLDTD_H */

/*

   End of module definition  */