зеркало из https://github.com/mozilla/gecko-dev.git
updated
This commit is contained in:
Родитель
b1fc349927
Коммит
c2ebba68ae
|
@ -44,7 +44,7 @@ nsHTMLTag NS_TagToEnum(const char* aTagName) {
|
|||
int middle = (low + high) >> 1;
|
||||
int result = strcmp(aTagName, tagTable[middle]);
|
||||
if (result == 0)
|
||||
return (nsHTMLTag) middle;
|
||||
return (nsHTMLTag) (middle + 1);
|
||||
if (result < 0)
|
||||
high = middle - 1;
|
||||
else
|
||||
|
@ -54,8 +54,44 @@ nsHTMLTag NS_TagToEnum(const char* aTagName) {
|
|||
}
|
||||
|
||||
const char* NS_EnumToTag(nsHTMLTag aTagID) {
|
||||
if ((unsigned int)aTagID > NS_HTML_TAG_MAX) {
|
||||
if ((int(aTagID) <= 0) || (int(aTagID) > NS_HTML_TAG_MAX)) {
|
||||
return 0;
|
||||
}
|
||||
return tagTable[(int) aTagID];
|
||||
return tagTable[int(aTagID) - 1];
|
||||
}
|
||||
|
||||
#ifdef NS_DEBUG
|
||||
#include <stdio.h>
|
||||
|
||||
class nsTestTagTable {
|
||||
public:
|
||||
nsTestTagTable() {
|
||||
const char *tag;
|
||||
nsHTMLTag id;
|
||||
|
||||
// Make sure we can find everything we are supposed to
|
||||
for (int i = 0; i < NS_HTML_TAG_MAX; i++) {
|
||||
tag = tagTable[i];
|
||||
id = NS_TagToEnum(tag);
|
||||
NS_ASSERTION(id != eHTMLTag_userdefined, "can't find tag id");
|
||||
const char* check = NS_EnumToTag(id);
|
||||
NS_ASSERTION(check == tag, "can't map id back to tag");
|
||||
}
|
||||
|
||||
// Make sure we don't find things that aren't there
|
||||
id = NS_TagToEnum("@");
|
||||
NS_ASSERTION(id == eHTMLTag_userdefined, "found @");
|
||||
id = NS_TagToEnum("zzzzz");
|
||||
NS_ASSERTION(id == eHTMLTag_userdefined, "found @");
|
||||
|
||||
tag = NS_EnumToTag((nsHTMLTag) 0);
|
||||
NS_ASSERTION(0 == tag, "found enum 0");
|
||||
tag = NS_EnumToTag((nsHTMLTag) -1);
|
||||
NS_ASSERTION(0 == tag, "found enum -1");
|
||||
tag = NS_EnumToTag((nsHTMLTag) (NS_HTML_TAG_MAX + 1));
|
||||
NS_ASSERTION(0 == tag, "found past max enum");
|
||||
}
|
||||
};
|
||||
nsTestTagTable validateTagTable;
|
||||
#endif
|
||||
|
||||
|
|
|
@ -22,46 +22,50 @@
|
|||
#define nsHTMLTags_h___
|
||||
#include "nshtmlpars.h"
|
||||
enum nsHTMLTag {
|
||||
eHTMLTag_a=0, eHTMLTag_abbr=1, eHTMLTag_acronym=2, eHTMLTag_address=3,
|
||||
eHTMLTag_applet=4, eHTMLTag_area=5, eHTMLTag_b=6, eHTMLTag_base=7,
|
||||
eHTMLTag_basefont=8, eHTMLTag_bdo=9, eHTMLTag_big=10, eHTMLTag_blink=11,
|
||||
eHTMLTag_blockquote=12, eHTMLTag_body=13, eHTMLTag_br=14,
|
||||
eHTMLTag_button=15, eHTMLTag_caption=16, eHTMLTag_center=17,
|
||||
eHTMLTag_cite=18, eHTMLTag_code=19, eHTMLTag_col=20, eHTMLTag_colgroup=21,
|
||||
eHTMLTag_dd=22, eHTMLTag_del=23, eHTMLTag_dfn=24, eHTMLTag_dir=25,
|
||||
eHTMLTag_div=26, eHTMLTag_dl=27, eHTMLTag_dt=28, eHTMLTag_em=29,
|
||||
eHTMLTag_embed=30, eHTMLTag_fieldset=31, eHTMLTag_font=32,
|
||||
eHTMLTag_form=33, eHTMLTag_frame=34, eHTMLTag_frameset=35, eHTMLTag_h1=36,
|
||||
eHTMLTag_h2=37, eHTMLTag_h3=38, eHTMLTag_h4=39, eHTMLTag_h5=40,
|
||||
eHTMLTag_h6=41, eHTMLTag_head=42, eHTMLTag_hr=43, eHTMLTag_html=44,
|
||||
eHTMLTag_i=45, eHTMLTag_iframe=46, eHTMLTag_ilayer=47, eHTMLTag_img=48,
|
||||
eHTMLTag_input=49, eHTMLTag_ins=50, eHTMLTag_isindex=51, eHTMLTag_kbd=52,
|
||||
eHTMLTag_keygen=53, eHTMLTag_label=54, eHTMLTag_layer=55,
|
||||
eHTMLTag_legend=56, eHTMLTag_li=57, eHTMLTag_link=58, eHTMLTag_listing=59,
|
||||
eHTMLTag_map=60, eHTMLTag_menu=61, eHTMLTag_meta=62, eHTMLTag_multicol=63,
|
||||
eHTMLTag_nobr=64, eHTMLTag_noembed=65, eHTMLTag_noframes=66,
|
||||
eHTMLTag_nolayer=67, eHTMLTag_noscript=68, eHTMLTag_object=69,
|
||||
eHTMLTag_ol=70, eHTMLTag_optgroup=71, eHTMLTag_option=72, eHTMLTag_p=73,
|
||||
eHTMLTag_param=74, eHTMLTag_plaintext=75, eHTMLTag_pre=76, eHTMLTag_q=77,
|
||||
eHTMLTag_s=78, eHTMLTag_samp=79, eHTMLTag_script=80, eHTMLTag_select=81,
|
||||
eHTMLTag_server=82, eHTMLTag_small=83, eHTMLTag_spacer=84,
|
||||
eHTMLTag_span=85, eHTMLTag_strike=86, eHTMLTag_strong=87,
|
||||
eHTMLTag_style=88, eHTMLTag_sub=89, eHTMLTag_sup=90, eHTMLTag_table=91,
|
||||
eHTMLTag_tbody=92, eHTMLTag_td=93, eHTMLTag_textarea=94, eHTMLTag_tfoot=95,
|
||||
eHTMLTag_th=96, eHTMLTag_thead=97, eHTMLTag_title=98, eHTMLTag_tr=99,
|
||||
eHTMLTag_tt=100, eHTMLTag_u=101, eHTMLTag_ul=102, eHTMLTag_var=103,
|
||||
eHTMLTag_wbr=104, eHTMLTag_xmp=105,
|
||||
/* this enum must be first and must be zero */
|
||||
eHTMLTag_unknown=0,
|
||||
|
||||
/* begin tag enums */
|
||||
eHTMLTag_a=1, eHTMLTag_abbr=2, eHTMLTag_acronym=3, eHTMLTag_address=4,
|
||||
eHTMLTag_applet=5, eHTMLTag_area=6, eHTMLTag_b=7, eHTMLTag_base=8,
|
||||
eHTMLTag_basefont=9, eHTMLTag_bdo=10, eHTMLTag_big=11, eHTMLTag_blink=12,
|
||||
eHTMLTag_blockquote=13, eHTMLTag_body=14, eHTMLTag_br=15,
|
||||
eHTMLTag_button=16, eHTMLTag_caption=17, eHTMLTag_center=18,
|
||||
eHTMLTag_cite=19, eHTMLTag_code=20, eHTMLTag_col=21, eHTMLTag_colgroup=22,
|
||||
eHTMLTag_dd=23, eHTMLTag_del=24, eHTMLTag_dfn=25, eHTMLTag_dir=26,
|
||||
eHTMLTag_div=27, eHTMLTag_dl=28, eHTMLTag_dt=29, eHTMLTag_em=30,
|
||||
eHTMLTag_embed=31, eHTMLTag_fieldset=32, eHTMLTag_font=33,
|
||||
eHTMLTag_form=34, eHTMLTag_frame=35, eHTMLTag_frameset=36, eHTMLTag_h1=37,
|
||||
eHTMLTag_h2=38, eHTMLTag_h3=39, eHTMLTag_h4=40, eHTMLTag_h5=41,
|
||||
eHTMLTag_h6=42, eHTMLTag_head=43, eHTMLTag_hr=44, eHTMLTag_html=45,
|
||||
eHTMLTag_i=46, eHTMLTag_iframe=47, eHTMLTag_ilayer=48, eHTMLTag_img=49,
|
||||
eHTMLTag_input=50, eHTMLTag_ins=51, eHTMLTag_isindex=52, eHTMLTag_kbd=53,
|
||||
eHTMLTag_keygen=54, eHTMLTag_label=55, eHTMLTag_layer=56,
|
||||
eHTMLTag_legend=57, eHTMLTag_li=58, eHTMLTag_link=59, eHTMLTag_listing=60,
|
||||
eHTMLTag_map=61, eHTMLTag_menu=62, eHTMLTag_meta=63, eHTMLTag_multicol=64,
|
||||
eHTMLTag_nobr=65, eHTMLTag_noembed=66, eHTMLTag_noframes=67,
|
||||
eHTMLTag_nolayer=68, eHTMLTag_noscript=69, eHTMLTag_object=70,
|
||||
eHTMLTag_ol=71, eHTMLTag_optgroup=72, eHTMLTag_option=73, eHTMLTag_p=74,
|
||||
eHTMLTag_param=75, eHTMLTag_plaintext=76, eHTMLTag_pre=77, eHTMLTag_q=78,
|
||||
eHTMLTag_s=79, eHTMLTag_samp=80, eHTMLTag_script=81, eHTMLTag_select=82,
|
||||
eHTMLTag_server=83, eHTMLTag_small=84, eHTMLTag_spacer=85,
|
||||
eHTMLTag_span=86, eHTMLTag_strike=87, eHTMLTag_strong=88,
|
||||
eHTMLTag_style=89, eHTMLTag_sub=90, eHTMLTag_sup=91, eHTMLTag_table=92,
|
||||
eHTMLTag_tbody=93, eHTMLTag_td=94, eHTMLTag_textarea=95, eHTMLTag_tfoot=96,
|
||||
eHTMLTag_th=97, eHTMLTag_thead=98, eHTMLTag_title=99, eHTMLTag_tr=100,
|
||||
eHTMLTag_tt=101, eHTMLTag_u=102, eHTMLTag_ul=103, eHTMLTag_var=104,
|
||||
eHTMLTag_wbr=105, eHTMLTag_xmp=106,
|
||||
|
||||
/* The remaining enums are not for tags */
|
||||
eHTMLTag_text=106, eHTMLTag_whitespace=107, eHTMLTag_newline=108,
|
||||
eHTMLTag_comment=109, eHTMLTag_entity=110, eHTMLTag_userdefined=111,
|
||||
eHTMLTag_unknown=112, eHTMLTag_secret_h1style=113,
|
||||
eHTMLTag_secret_h2style=114, eHTMLTag_secret_h3style=115,
|
||||
eHTMLTag_secret_h4style=116, eHTMLTag_secret_h5style=117,
|
||||
eHTMLTag_secret_h6style=118
|
||||
eHTMLTag_text=107, eHTMLTag_whitespace=108, eHTMLTag_newline=109,
|
||||
eHTMLTag_comment=110, eHTMLTag_entity=111, eHTMLTag_userdefined=112,
|
||||
eHTMLTag_secret_h1style=113, eHTMLTag_secret_h2style=114,
|
||||
eHTMLTag_secret_h3style=115, eHTMLTag_secret_h4style=116,
|
||||
eHTMLTag_secret_h5style=117, eHTMLTag_secret_h6style=118
|
||||
};
|
||||
#define NS_HTML_TAG_MAX 106
|
||||
|
||||
extern NS_HTMLPARS nsHTMLTag NS_TagToEnum(const char* aTag);
|
||||
extern NS_HTMLPARS const char* NS_EnumToTag(nsHTMLTag aEnum);
|
||||
|
||||
#endif /* nsHTMLTags_h___ */
|
||||
|
|
|
@ -44,7 +44,7 @@ nsHTMLTag NS_TagToEnum(const char* aTagName) {
|
|||
int middle = (low + high) >> 1;
|
||||
int result = strcmp(aTagName, tagTable[middle]);
|
||||
if (result == 0)
|
||||
return (nsHTMLTag) middle;
|
||||
return (nsHTMLTag) (middle + 1);
|
||||
if (result < 0)
|
||||
high = middle - 1;
|
||||
else
|
||||
|
@ -54,8 +54,44 @@ nsHTMLTag NS_TagToEnum(const char* aTagName) {
|
|||
}
|
||||
|
||||
const char* NS_EnumToTag(nsHTMLTag aTagID) {
|
||||
if ((unsigned int)aTagID > NS_HTML_TAG_MAX) {
|
||||
if ((int(aTagID) <= 0) || (int(aTagID) > NS_HTML_TAG_MAX)) {
|
||||
return 0;
|
||||
}
|
||||
return tagTable[(int) aTagID];
|
||||
return tagTable[int(aTagID) - 1];
|
||||
}
|
||||
|
||||
#ifdef NS_DEBUG
|
||||
#include <stdio.h>
|
||||
|
||||
class nsTestTagTable {
|
||||
public:
|
||||
nsTestTagTable() {
|
||||
const char *tag;
|
||||
nsHTMLTag id;
|
||||
|
||||
// Make sure we can find everything we are supposed to
|
||||
for (int i = 0; i < NS_HTML_TAG_MAX; i++) {
|
||||
tag = tagTable[i];
|
||||
id = NS_TagToEnum(tag);
|
||||
NS_ASSERTION(id != eHTMLTag_userdefined, "can't find tag id");
|
||||
const char* check = NS_EnumToTag(id);
|
||||
NS_ASSERTION(check == tag, "can't map id back to tag");
|
||||
}
|
||||
|
||||
// Make sure we don't find things that aren't there
|
||||
id = NS_TagToEnum("@");
|
||||
NS_ASSERTION(id == eHTMLTag_userdefined, "found @");
|
||||
id = NS_TagToEnum("zzzzz");
|
||||
NS_ASSERTION(id == eHTMLTag_userdefined, "found @");
|
||||
|
||||
tag = NS_EnumToTag((nsHTMLTag) 0);
|
||||
NS_ASSERTION(0 == tag, "found enum 0");
|
||||
tag = NS_EnumToTag((nsHTMLTag) -1);
|
||||
NS_ASSERTION(0 == tag, "found enum -1");
|
||||
tag = NS_EnumToTag((nsHTMLTag) (NS_HTML_TAG_MAX + 1));
|
||||
NS_ASSERTION(0 == tag, "found past max enum");
|
||||
}
|
||||
};
|
||||
nsTestTagTable validateTagTable;
|
||||
#endif
|
||||
|
||||
|
|
|
@ -22,46 +22,50 @@
|
|||
#define nsHTMLTags_h___
|
||||
#include "nshtmlpars.h"
|
||||
enum nsHTMLTag {
|
||||
eHTMLTag_a=0, eHTMLTag_abbr=1, eHTMLTag_acronym=2, eHTMLTag_address=3,
|
||||
eHTMLTag_applet=4, eHTMLTag_area=5, eHTMLTag_b=6, eHTMLTag_base=7,
|
||||
eHTMLTag_basefont=8, eHTMLTag_bdo=9, eHTMLTag_big=10, eHTMLTag_blink=11,
|
||||
eHTMLTag_blockquote=12, eHTMLTag_body=13, eHTMLTag_br=14,
|
||||
eHTMLTag_button=15, eHTMLTag_caption=16, eHTMLTag_center=17,
|
||||
eHTMLTag_cite=18, eHTMLTag_code=19, eHTMLTag_col=20, eHTMLTag_colgroup=21,
|
||||
eHTMLTag_dd=22, eHTMLTag_del=23, eHTMLTag_dfn=24, eHTMLTag_dir=25,
|
||||
eHTMLTag_div=26, eHTMLTag_dl=27, eHTMLTag_dt=28, eHTMLTag_em=29,
|
||||
eHTMLTag_embed=30, eHTMLTag_fieldset=31, eHTMLTag_font=32,
|
||||
eHTMLTag_form=33, eHTMLTag_frame=34, eHTMLTag_frameset=35, eHTMLTag_h1=36,
|
||||
eHTMLTag_h2=37, eHTMLTag_h3=38, eHTMLTag_h4=39, eHTMLTag_h5=40,
|
||||
eHTMLTag_h6=41, eHTMLTag_head=42, eHTMLTag_hr=43, eHTMLTag_html=44,
|
||||
eHTMLTag_i=45, eHTMLTag_iframe=46, eHTMLTag_ilayer=47, eHTMLTag_img=48,
|
||||
eHTMLTag_input=49, eHTMLTag_ins=50, eHTMLTag_isindex=51, eHTMLTag_kbd=52,
|
||||
eHTMLTag_keygen=53, eHTMLTag_label=54, eHTMLTag_layer=55,
|
||||
eHTMLTag_legend=56, eHTMLTag_li=57, eHTMLTag_link=58, eHTMLTag_listing=59,
|
||||
eHTMLTag_map=60, eHTMLTag_menu=61, eHTMLTag_meta=62, eHTMLTag_multicol=63,
|
||||
eHTMLTag_nobr=64, eHTMLTag_noembed=65, eHTMLTag_noframes=66,
|
||||
eHTMLTag_nolayer=67, eHTMLTag_noscript=68, eHTMLTag_object=69,
|
||||
eHTMLTag_ol=70, eHTMLTag_optgroup=71, eHTMLTag_option=72, eHTMLTag_p=73,
|
||||
eHTMLTag_param=74, eHTMLTag_plaintext=75, eHTMLTag_pre=76, eHTMLTag_q=77,
|
||||
eHTMLTag_s=78, eHTMLTag_samp=79, eHTMLTag_script=80, eHTMLTag_select=81,
|
||||
eHTMLTag_server=82, eHTMLTag_small=83, eHTMLTag_spacer=84,
|
||||
eHTMLTag_span=85, eHTMLTag_strike=86, eHTMLTag_strong=87,
|
||||
eHTMLTag_style=88, eHTMLTag_sub=89, eHTMLTag_sup=90, eHTMLTag_table=91,
|
||||
eHTMLTag_tbody=92, eHTMLTag_td=93, eHTMLTag_textarea=94, eHTMLTag_tfoot=95,
|
||||
eHTMLTag_th=96, eHTMLTag_thead=97, eHTMLTag_title=98, eHTMLTag_tr=99,
|
||||
eHTMLTag_tt=100, eHTMLTag_u=101, eHTMLTag_ul=102, eHTMLTag_var=103,
|
||||
eHTMLTag_wbr=104, eHTMLTag_xmp=105,
|
||||
/* this enum must be first and must be zero */
|
||||
eHTMLTag_unknown=0,
|
||||
|
||||
/* begin tag enums */
|
||||
eHTMLTag_a=1, eHTMLTag_abbr=2, eHTMLTag_acronym=3, eHTMLTag_address=4,
|
||||
eHTMLTag_applet=5, eHTMLTag_area=6, eHTMLTag_b=7, eHTMLTag_base=8,
|
||||
eHTMLTag_basefont=9, eHTMLTag_bdo=10, eHTMLTag_big=11, eHTMLTag_blink=12,
|
||||
eHTMLTag_blockquote=13, eHTMLTag_body=14, eHTMLTag_br=15,
|
||||
eHTMLTag_button=16, eHTMLTag_caption=17, eHTMLTag_center=18,
|
||||
eHTMLTag_cite=19, eHTMLTag_code=20, eHTMLTag_col=21, eHTMLTag_colgroup=22,
|
||||
eHTMLTag_dd=23, eHTMLTag_del=24, eHTMLTag_dfn=25, eHTMLTag_dir=26,
|
||||
eHTMLTag_div=27, eHTMLTag_dl=28, eHTMLTag_dt=29, eHTMLTag_em=30,
|
||||
eHTMLTag_embed=31, eHTMLTag_fieldset=32, eHTMLTag_font=33,
|
||||
eHTMLTag_form=34, eHTMLTag_frame=35, eHTMLTag_frameset=36, eHTMLTag_h1=37,
|
||||
eHTMLTag_h2=38, eHTMLTag_h3=39, eHTMLTag_h4=40, eHTMLTag_h5=41,
|
||||
eHTMLTag_h6=42, eHTMLTag_head=43, eHTMLTag_hr=44, eHTMLTag_html=45,
|
||||
eHTMLTag_i=46, eHTMLTag_iframe=47, eHTMLTag_ilayer=48, eHTMLTag_img=49,
|
||||
eHTMLTag_input=50, eHTMLTag_ins=51, eHTMLTag_isindex=52, eHTMLTag_kbd=53,
|
||||
eHTMLTag_keygen=54, eHTMLTag_label=55, eHTMLTag_layer=56,
|
||||
eHTMLTag_legend=57, eHTMLTag_li=58, eHTMLTag_link=59, eHTMLTag_listing=60,
|
||||
eHTMLTag_map=61, eHTMLTag_menu=62, eHTMLTag_meta=63, eHTMLTag_multicol=64,
|
||||
eHTMLTag_nobr=65, eHTMLTag_noembed=66, eHTMLTag_noframes=67,
|
||||
eHTMLTag_nolayer=68, eHTMLTag_noscript=69, eHTMLTag_object=70,
|
||||
eHTMLTag_ol=71, eHTMLTag_optgroup=72, eHTMLTag_option=73, eHTMLTag_p=74,
|
||||
eHTMLTag_param=75, eHTMLTag_plaintext=76, eHTMLTag_pre=77, eHTMLTag_q=78,
|
||||
eHTMLTag_s=79, eHTMLTag_samp=80, eHTMLTag_script=81, eHTMLTag_select=82,
|
||||
eHTMLTag_server=83, eHTMLTag_small=84, eHTMLTag_spacer=85,
|
||||
eHTMLTag_span=86, eHTMLTag_strike=87, eHTMLTag_strong=88,
|
||||
eHTMLTag_style=89, eHTMLTag_sub=90, eHTMLTag_sup=91, eHTMLTag_table=92,
|
||||
eHTMLTag_tbody=93, eHTMLTag_td=94, eHTMLTag_textarea=95, eHTMLTag_tfoot=96,
|
||||
eHTMLTag_th=97, eHTMLTag_thead=98, eHTMLTag_title=99, eHTMLTag_tr=100,
|
||||
eHTMLTag_tt=101, eHTMLTag_u=102, eHTMLTag_ul=103, eHTMLTag_var=104,
|
||||
eHTMLTag_wbr=105, eHTMLTag_xmp=106,
|
||||
|
||||
/* The remaining enums are not for tags */
|
||||
eHTMLTag_text=106, eHTMLTag_whitespace=107, eHTMLTag_newline=108,
|
||||
eHTMLTag_comment=109, eHTMLTag_entity=110, eHTMLTag_userdefined=111,
|
||||
eHTMLTag_unknown=112, eHTMLTag_secret_h1style=113,
|
||||
eHTMLTag_secret_h2style=114, eHTMLTag_secret_h3style=115,
|
||||
eHTMLTag_secret_h4style=116, eHTMLTag_secret_h5style=117,
|
||||
eHTMLTag_secret_h6style=118
|
||||
eHTMLTag_text=107, eHTMLTag_whitespace=108, eHTMLTag_newline=109,
|
||||
eHTMLTag_comment=110, eHTMLTag_entity=111, eHTMLTag_userdefined=112,
|
||||
eHTMLTag_secret_h1style=113, eHTMLTag_secret_h2style=114,
|
||||
eHTMLTag_secret_h3style=115, eHTMLTag_secret_h4style=116,
|
||||
eHTMLTag_secret_h5style=117, eHTMLTag_secret_h6style=118
|
||||
};
|
||||
#define NS_HTML_TAG_MAX 106
|
||||
|
||||
extern NS_HTMLPARS nsHTMLTag NS_TagToEnum(const char* aTag);
|
||||
extern NS_HTMLPARS const char* NS_EnumToTag(nsHTMLTag aEnum);
|
||||
|
||||
#endif /* nsHTMLTags_h___ */
|
||||
|
|
Загрузка…
Ссылка в новой задаче