summaryrefslogtreecommitdiff
path: root/svtools/source/svhtml/htmlkywd.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'svtools/source/svhtml/htmlkywd.cxx')
-rw-r--r--svtools/source/svhtml/htmlkywd.cxx1099
1 files changed, 1099 insertions, 0 deletions
diff --git a/svtools/source/svhtml/htmlkywd.cxx b/svtools/source/svhtml/htmlkywd.cxx
new file mode 100644
index 000000000000..cc7ce74e73f4
--- /dev/null
+++ b/svtools/source/svhtml/htmlkywd.cxx
@@ -0,0 +1,1099 @@
+/*************************************************************************
+ *
+ * $RCSfile: htmlkywd.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:59:05 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (the "License"); You may not use this file
+ * except in compliance with the License. You may obtain a copy of the
+ * License at http://www.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#include <ctype.h>
+#include <stdlib.h>
+#include <string.h>
+#include <limits.h>
+
+#include <segmentc.hxx>
+
+#include "svparser.hxx"
+#include "htmlkywd.hxx"
+#include "htmltokn.h"
+
+// die Tabelle muss noch sortiert werden
+struct HTML_TokenEntry
+{
+ union
+ {
+ const sal_Char *sToken;
+ const String *pUToken;
+ };
+ int nToken;
+};
+
+// die Farbnamen werden nicht exportiert
+// Sie stammen aus "http://www.uio.no/~mnbjerke/colors_w.html"
+// und scheinen im Gegensatz zu denen aus
+// "http://www.infi.net/wwwimages/colorindex.html"
+// zu stimmen
+sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_aliceblue, "ALICEBLUE" );
+sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_antiquewhite, "ANTIQUEWHITE" );
+sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_aqua, "AQUA" );
+sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_aquamarine, "AQUAMARINE" );
+sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_azure, "AZURE" );
+sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_beige, "BEIGE" );
+sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_bisque, "BISQUE" );
+sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_black, "BLACK" );
+sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_blanchedalmond, "BLANCHEDALMOND" );
+sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_blue, "BLUE" );
+sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_blueviolet, "BLUEVIOLET" );
+sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_brown, "BROWN" );
+sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_burlywood, "BURLYWOOD" );
+sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_cadetblue, "CADETBLUE" );
+sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_chartreuse, "CHARTREUSE" );
+sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_chocolate, "CHOCOLATE" );
+sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_coral, "CORAL" );
+sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_cornflowerblue, "CORNFLOWERBLUE" );
+sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_cornsilk, "CORNSILK" );
+sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_crimson, "CRIMSON" );
+sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_cyan, "CYAN" );
+sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_darkblue, "DARKBLUE" );
+sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_darkcyan, "DARKCYAN" );
+sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_darkgoldenrod, "DARKGOLDENROD" );
+sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_darkgray, "DARKGRAY" );
+sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_darkgreen, "DARKGREEN" );
+sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_darkkhaki, "DARKKHAKI" );
+sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_darkmagenta, "DARKMAGENTA" );
+sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_darkolivegreen, "DARKOLIVEGREEN" );
+sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_darkorange, "DARKORANGE" );
+sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_darkorchid, "DARKORCHID" );
+sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_darkred, "DARKRED" );
+sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_darksalmon, "DARKSALMON" );
+sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_darkseagreen, "DARKSEAGREEN" );
+sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_darkslateblue, "DARKSLATEBLUE" );
+sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_darkslategray, "DARKSLATEGRAY" );
+sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_darkturquoise, "DARKTURQUOISE" );
+sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_darkviolet, "DARKVIOLET" );
+sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_deeppink, "DEEPPINK" );
+sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_deepskyblue, "DEEPSKYBLUE" );
+sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_dimgray, "DIMGRAY" );
+sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_dodgerblue, "DODGERBLUE" );
+sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_firebrick, "FIREBRICK" );
+sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_floralwhite, "FLORALWHITE" );
+sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_forestgreen, "FORESTGREEN" );
+sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_fuchsia, "FUCHSIA" );
+sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_gainsboro, "GAINSBORO" );
+sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_ghostwhite, "GHOSTWHITE" );
+sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_gold, "GOLD" );
+sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_goldenrod, "GOLDENROD" );
+sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_gray, "GRAY" );
+sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_green, "GREEN" );
+sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_greenyellow, "GREENYELLOW" );
+sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_honeydew, "HONEYDEW" );
+sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_hotpink, "HOTPINK" );
+sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_indianred, "INDIANRED" );
+sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_indigo, "INDIGO" );
+sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_ivory, "IVORY" );
+sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_khaki, "KHAKI" );
+sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_lavender, "LAVENDER" );
+sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_lavenderblush, "LAVENDERBLUSH" );
+sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_lawngreen, "LAWNGREEN" );
+sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_lemonchiffon, "LEMONCHIFFON" );
+sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_lightblue, "LIGHTBLUE" );
+sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_lightcoral, "LIGHTCORAL" );
+sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_lightcyan, "LIGHTCYAN" );
+sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_lightgoldenrodyellow, "LIGHTGOLDENRODYELLOW" );
+sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_lightgreen, "LIGHTGREEN" );
+sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_lightgrey, "LIGHTGREY" );
+sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_lightpink, "LIGHTPINK" );
+sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_lightsalmon, "LIGHTSALMON" );
+sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_lightseagreen, "LIGHTSEAGREEN" );
+sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_lightskyblue, "LIGHTSKYBLUE" );
+sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_lightslategray, "LIGHTSLATEGRAY" );
+sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_lightsteelblue, "LIGHTSTEELBLUE" );
+sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_lightyellow, "LIGHTYELLOW" );
+sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_lime, "LIME" );
+sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_limegreen, "LIMEGREEN" );
+sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_linen, "LINEN" );
+sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_magenta, "MAGENTA" );
+sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_maroon, "MAROON" );
+sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_mediumaquamarine, "MEDIUMAQUAMARINE" );
+sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_mediumblue, "MEDIUMBLUE" );
+sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_mediumorchid, "MEDIUMORCHID" );
+sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_mediumpurple, "MEDIUMPURPLE" );
+sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_mediumseagreen, "MEDIUMSEAGREEN" );
+sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_mediumslateblue, "MEDIUMSLATEBLUE" );
+sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_mediumspringgreen, "MEDIUMSPRINGGREEN" );
+sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_mediumturquoise, "MEDIUMTURQUOISE" );
+sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_mediumvioletred, "MEDIUMVIOLETRED" );
+sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_midnightblue, "MIDNIGHTBLUE" );
+sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_mintcream, "MINTCREAM" );
+sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_mistyrose, "MISTYROSE" );
+sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_moccasin, "MOCCASIN" );
+sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_navajowhite, "NAVAJOWHITE" );
+sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_navy, "NAVY" );
+sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_oldlace, "OLDLACE" );
+sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_olive, "OLIVE" );
+sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_olivedrab, "OLIVEDRAB" );
+sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_orange, "ORANGE" );
+sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_orangered, "ORANGERED" );
+sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_orchid, "ORCHID" );
+sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_palegoldenrod, "PALEGOLDENROD" );
+sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_palegreen, "PALEGREEN" );
+sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_paleturquoise, "PALETURQUOISE" );
+sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_palevioletred, "PALEVIOLETRED" );
+sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_papayawhip, "PAPAYAWHIP" );
+sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_peachpuff, "PEACHPUFF" );
+sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_peru, "PERU" );
+sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_pink, "PINK" );
+sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_plum, "PLUM" );
+sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_powderblue, "POWDERBLUE" );
+sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_purple, "PURPLE" );
+sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_red, "RED" );
+sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_rosybrown, "ROSYBROWN" );
+sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_royalblue, "ROYALBLUE" );
+sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_saddlebrown, "SADDLEBROWN" );
+sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_salmon, "SALMON" );
+sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_sandybrown, "SANDYBROWN" );
+sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_seagreen, "SEAGREEN" );
+sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_seashell, "SEASHELL" );
+sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_sienna, "SIENNA" );
+sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_silver, "SILVER" );
+sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_skyblue, "SKYBLUE" );
+sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_slateblue, "SLATEBLUE" );
+sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_slategray, "SLATEGRAY" );
+sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_snow, "SNOW" );
+sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_springgreen, "SPRINGGREEN" );
+sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_steelblue, "STEELBLUE" );
+sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_tan, "TAN" );
+sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_teal, "TEAL" );
+sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_thistle, "THISTLE" );
+sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_tomato, "TOMATO" );
+sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_turquoise, "TURQUOISE" );
+sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_violet, "VIOLET" );
+sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_wheat, "WHEAT" );
+sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_white, "WHITE" );
+sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_whitesmoke, "WHITESMOKE" );
+sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_yellow, "YELLOW" );
+sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_yellowgreen, "YELLOWGREEN" );
+
+
+// Flag: RTF-Token Tabelle wurde schon sortiert
+static int __FAR_DATA bSortKeyWords = FALSE;
+
+static HTML_TokenEntry __FAR_DATA aHTMLTokenTab[] = {
+sHTML_area, HTML_AREA, // Netscape 2.0
+sHTML_base, HTML_BASE, // HTML 3.0
+sHTML_comment, HTML_COMMENT,
+sHTML_doctype, HTML_DOCTYPE,
+sHTML_embed, HTML_EMBED, // Netscape 2.0
+sHTML_figureoverlay,HTML_FIGUREOVERLAY, // HTML 3.0
+sHTML_horzrule, HTML_HORZRULE,
+sHTML_horztab, HTML_HORZTAB, // HTML 3.0
+sHTML_image, HTML_IMAGE,
+sHTML_image2, HTML_IMAGE,
+sHTML_input, HTML_INPUT,
+sHTML_isindex, HTML_ISINDEX, // HTML 3.0
+sHTML_li, HTML_LI_ON,
+sHTML_linebreak, HTML_LINEBREAK,
+sHTML_link, HTML_LINK, // HTML 3.0
+sHTML_meta, HTML_META, // HTML 3.0
+sHTML_nextid, HTML_NEXTID, // HTML 3.0
+sHTML_of, HTML_OF, // HTML 3.0
+sHTML_option, HTML_OPTION,
+sHTML_param, HTML_PARAM, // HotJava
+sHTML_range, HTML_RANGE, // HTML 3.0
+sHTML_spacer, HTML_SPACER, // Netscape 3.0b5
+sHTML_wbr, HTML_WBR, // Netscape
+
+sHTML_abbreviation, HTML_ABBREVIATION_ON, // HTML 3.0
+sHTML_above, HTML_ABOVE_ON, // HTML 3.0
+sHTML_acronym, HTML_ACRONYM_ON, // HTML 3.0
+sHTML_address, HTML_ADDRESS_ON,
+sHTML_anchor, HTML_ANCHOR_ON,
+sHTML_applet, HTML_APPLET_ON, // HotJava
+sHTML_array, HTML_ARRAY_ON, // HTML 3.0
+sHTML_author, HTML_AUTHOR_ON, // HTML 3.0
+sHTML_banner, HTML_BANNER_ON, // HTML 3.0
+sHTML_bar, HTML_BAR_ON, // HTML 3.0
+sHTML_basefont, HTML_BASEFONT_ON, // Netscape
+sHTML_below, HTML_BELOW_ON, // HTML 3.0
+sHTML_bigprint, HTML_BIGPRINT_ON, // HTML 3.0
+sHTML_blink, HTML_BLINK_ON, // Netscape
+sHTML_blockquote, HTML_BLOCKQUOTE_ON,
+sHTML_blockquote30, HTML_BLOCKQUOTE30_ON, // HTML 3.0
+sHTML_body, HTML_BODY_ON,
+sHTML_bold, HTML_BOLD_ON,
+sHTML_boldtext, HTML_BOLDTEXT_ON, // HTML 3.0
+sHTML_box, HTML_BOX_ON, // HTML 3.0
+sHTML_caption, HTML_CAPTION_ON, // HTML 3.0
+sHTML_center, HTML_CENTER_ON, // Netscape
+sHTML_citiation, HTML_CITIATION_ON,
+sHTML_col, HTML_COL_ON, // HTML 3 Table Model Draft
+sHTML_colgroup, HTML_COLGROUP_ON, // HTML 3 Table Model Draft
+sHTML_code, HTML_CODE_ON,
+sHTML_credit, HTML_CREDIT_ON, // HTML 3.0
+sHTML_dd, HTML_DD_ON,
+sHTML_deflist, HTML_DEFLIST_ON,
+sHTML_deletedtext, HTML_DELETEDTEXT_ON, // HTML 3.0
+sHTML_dirlist, HTML_DIRLIST_ON,
+sHTML_division, HTML_DIVISION_ON, // HTML 3.0
+sHTML_dot, HTML_DOT_ON, // HTML 3.0
+sHTML_doubledot, HTML_DOUBLEDOT_ON, // HTML 3.0
+sHTML_dt, HTML_DT_ON,
+sHTML_emphasis, HTML_EMPHASIS_ON,
+sHTML_figure, HTML_FIGURE_ON, // HTML 3.0
+sHTML_font, HTML_FONT_ON, // Netscpe
+sHTML_footnote, HTML_FOOTNOTE_ON, // HTML 3.0
+sHTML_form, HTML_FORM_ON,
+sHTML_frame, HTML_FRAME_ON, // Netscape 2.0
+sHTML_frameset, HTML_FRAMESET_ON, // Netscape 2.0
+sHTML_hat, HTML_HAT_ON, // HTML 3.0
+sHTML_head, HTML_HEAD_ON,
+sHTML_head1, HTML_HEAD1_ON,
+sHTML_head2, HTML_HEAD2_ON,
+sHTML_head3, HTML_HEAD3_ON,
+sHTML_head4, HTML_HEAD4_ON,
+sHTML_head5, HTML_HEAD5_ON,
+sHTML_head6, HTML_HEAD6_ON,
+sHTML_html, HTML_HTML_ON,
+sHTML_iframe, HTML_IFRAME_ON, // IE 3.0b2
+sHTML_ilayer, HTML_ILAYER_ON,
+sHTML_insertedtext, HTML_INSERTEDTEXT_ON, // HTML 3.0
+sHTML_italic, HTML_ITALIC_ON,
+sHTML_item, HTML_ITEM_ON, // HTML 3.0
+sHTML_keyboard, HTML_KEYBOARD_ON,
+sHTML_language, HTML_LANGUAGE_ON, // HTML 3.0
+sHTML_layer, HTML_LAYER_ON,
+sHTML_listheader, HTML_LISTHEADER_ON, // HTML 3.0
+sHTML_map, HTML_MAP_ON, // Netscape 2.0
+sHTML_math, HTML_MATH_ON, // HTML 3.0
+sHTML_menulist, HTML_MENULIST_ON,
+sHTML_multicol, HTML_MULTICOL_ON, // Netscape 3.0b5
+sHTML_nobr, HTML_NOBR_ON, // Netscape
+sHTML_noembed, HTML_NOEMBED_ON, // Netscape 2.0 ???
+sHTML_noframe, HTML_NOFRAMES_ON, // Netscape 2.0 ???
+sHTML_noframes, HTML_NOFRAMES_ON, // Netscape 2.0
+sHTML_noscript, HTML_NOSCRIPT_ON, // Netscape 3.0
+sHTML_note, HTML_NOTE_ON, // HTML 3.0
+sHTML_orderlist, HTML_ORDERLIST_ON,
+sHTML_parabreak, HTML_PARABREAK_ON,
+sHTML_person, HTML_PERSON_ON, // HTML 3.0
+sHTML_plaintext, HTML_PLAINTEXT_ON, // HTML 3.0
+sHTML_preformtxt, HTML_PREFORMTXT_ON,
+sHTML_root, HTML_ROOT_ON, // HTML 3.0
+sHTML_row, HTML_ROW_ON, // HTML 3.0
+sHTML_sample, HTML_SAMPLE_ON,
+sHTML_script, HTML_SCRIPT_ON, // HTML 3.2
+sHTML_select, HTML_SELECT_ON,
+sHTML_shortquote, HTML_SHORTQUOTE_ON, // HTML 3.0
+sHTML_smallprint, HTML_SMALLPRINT_ON, // HTML 3.0
+sHTML_span, HTML_SPAN_ON, // Style Sheets
+sHTML_squareroot, HTML_SQUAREROOT_ON, // HTML 3.0
+sHTML_strikethrough,HTML_STRIKETHROUGH_ON, // HTML 3.0
+sHTML_strong, HTML_STRONG_ON,
+sHTML_style, HTML_STYLE_ON, // HTML 3.0
+sHTML_subscript, HTML_SUBSCRIPT_ON, // HTML 3.0
+sHTML_superscript, HTML_SUPERSCRIPT_ON, // HTML 3.0
+sHTML_table, HTML_TABLE_ON, // HTML 3.0
+sHTML_tabledata, HTML_TABLEDATA_ON, // HTML 3.0
+sHTML_tableheader, HTML_TABLEHEADER_ON, // HTML 3.0
+sHTML_tablerow, HTML_TABLEROW_ON, // HTML 3.0
+sHTML_tbody, HTML_TBODY_ON, // HTML 3 Table Model Draft
+sHTML_teletype, HTML_TELETYPE_ON,
+sHTML_text, HTML_TEXT_ON, // HTML 3.0
+sHTML_textarea, HTML_TEXTAREA_ON,
+sHTML_textflow, HTML_TEXTFLOW_ON,
+sHTML_tfoot, HTML_TFOOT_ON, // HTML 3 Table Model Draft
+sHTML_thead, HTML_THEAD_ON, // HTML 3 Table Model Draft
+sHTML_tilde, HTML_TILDE_ON, // HTML 3.0
+sHTML_title, HTML_TITLE_ON,
+sHTML_underline, HTML_UNDERLINE_ON,
+sHTML_unorderlist, HTML_UNORDERLIST_ON,
+sHTML_variable, HTML_VARIABLE_ON,
+sHTML_vector, HTML_VECTOR_ON, // HTML 3.0
+
+sHTML_xmp, HTML_XMP_ON,
+sHTML_listing, HTML_LISTING_ON,
+
+sHTML_definstance, HTML_DEFINSTANCE_ON,
+sHTML_strike, HTML_STRIKE_ON,
+
+sHTML_bgsound, HTML_BGSOUND,
+sHTML_comment2, HTML_COMMENT2_ON,
+sHTML_marquee, HTML_MARQUEE_ON,
+sHTML_plaintext2, HTML_PLAINTEXT2_ON,
+
+sHTML_sdfield, HTML_SDFIELD_ON,
+};
+
+
+extern "C"
+{
+
+static int
+#if defined( WNT )
+ __cdecl
+#endif
+#if defined( ICC ) && defined( OS2 )
+ _Optlink
+#endif
+ HTMLKeyCompare( const void *pFirst, const void *pSecond)
+{
+ int nRet = 0;
+ if( -1 == ((HTML_TokenEntry*)pFirst)->nToken )
+ {
+ if( -1 == ((HTML_TokenEntry*)pSecond)->nToken )
+ nRet = ((HTML_TokenEntry*)pFirst)->pUToken->CompareTo(
+ *((HTML_TokenEntry*)pSecond)->pUToken );
+ else
+ nRet = ((HTML_TokenEntry*)pFirst)->pUToken->CompareToAscii(
+ ((HTML_TokenEntry*)pSecond)->sToken );
+ }
+ else
+ {
+ if( -1 == ((HTML_TokenEntry*)pSecond)->nToken )
+ nRet = -1 * ((HTML_TokenEntry*)pSecond)->pUToken->CompareToAscii(
+ ((HTML_TokenEntry*)pFirst)->sToken );
+ else
+ nRet = strcmp( ((HTML_TokenEntry*)pFirst)->sToken,
+ ((HTML_TokenEntry*)pSecond)->sToken );
+ }
+
+ return nRet;
+}
+
+}
+
+int GetHTMLToken( const String& rName )
+{
+ if( !bSortKeyWords )
+ {
+ qsort( (void*) aHTMLTokenTab,
+ sizeof( aHTMLTokenTab ) / sizeof( HTML_TokenEntry ),
+ sizeof( HTML_TokenEntry ),
+ HTMLKeyCompare );
+ bSortKeyWords = TRUE;
+ }
+
+ int nRet = 0;
+
+ if( !rName.CompareToAscii( sHTML_comment, 3UL) )
+ return HTML_COMMENT;
+
+ void* pFound;
+ HTML_TokenEntry aSrch;
+ aSrch.pUToken = &rName;
+ aSrch.nToken = -1;
+
+ if( 0 != ( pFound = bsearch( (sal_Char *) &aSrch,
+ (void*) aHTMLTokenTab,
+ sizeof( aHTMLTokenTab ) / sizeof( HTML_TokenEntry ),
+ sizeof( HTML_TokenEntry ),
+ HTMLKeyCompare )))
+ nRet = ((HTML_TokenEntry*)pFound)->nToken;
+ return nRet;
+}
+
+/* */
+
+struct HTML_CharEntry
+{
+ union
+ {
+ const sal_Char *sName;
+ const String *pUName;
+ };
+ sal_Unicode cChar;
+};
+
+// Flag: RTF-Token Tabelle wurde schon sortiert
+static int __FAR_DATA bSortCharKeyWords = FALSE;
+
+static HTML_CharEntry __FAR_DATA aHTMLCharNameTab[] = {
+sHTML_C_lt, 60,
+sHTML_C_gt, 62,
+sHTML_C_amp, 38,
+sHTML_C_quot, 34,
+
+sHTML_C_Agrave, 192,
+sHTML_C_Aacute, 193,
+sHTML_C_Acirc, 194,
+sHTML_C_Atilde, 195,
+sHTML_C_Auml, 196,
+sHTML_C_Aring, 197,
+sHTML_C_AElig, 198,
+sHTML_C_Ccedil, 199,
+sHTML_C_Egrave, 200,
+sHTML_C_Eacute, 201,
+sHTML_C_Ecirc, 202,
+sHTML_C_Euml, 203,
+sHTML_C_Igrave, 204,
+sHTML_C_Iacute, 205,
+sHTML_C_Icirc, 206,
+sHTML_C_Iuml, 207,
+sHTML_C_ETH, 208,
+sHTML_C_Ntilde, 209,
+sHTML_C_Ograve, 210,
+sHTML_C_Oacute, 211,
+sHTML_C_Ocirc, 212,
+sHTML_C_Otilde, 213,
+sHTML_C_Ouml, 214,
+sHTML_C_Oslash, 216,
+sHTML_C_Ugrave, 217,
+sHTML_C_Uacute, 218,
+sHTML_C_Ucirc, 219,
+sHTML_C_Uuml, 220,
+sHTML_C_Yacute, 221,
+
+sHTML_C_THORN, 222,
+sHTML_C_szlig, 223,
+
+sHTML_S_agrave, 224,
+sHTML_S_aacute, 225,
+sHTML_S_acirc, 226,
+sHTML_S_atilde, 227,
+sHTML_S_auml, 228,
+sHTML_S_aring, 229,
+sHTML_S_aelig, 230,
+sHTML_S_ccedil, 231,
+sHTML_S_egrave, 232,
+sHTML_S_eacute, 233,
+sHTML_S_ecirc, 234,
+sHTML_S_euml, 235,
+sHTML_S_igrave, 236,
+sHTML_S_iacute, 237,
+sHTML_S_icirc, 238,
+sHTML_S_iuml, 239,
+sHTML_S_eth, 240,
+sHTML_S_ntilde, 241,
+sHTML_S_ograve, 242,
+sHTML_S_oacute, 243,
+sHTML_S_ocirc, 244,
+sHTML_S_otilde, 245,
+sHTML_S_ouml, 246,
+sHTML_S_oslash, 248,
+sHTML_S_ugrave, 249,
+sHTML_S_uacute, 250,
+sHTML_S_ucirc, 251,
+sHTML_S_uuml, 252,
+sHTML_S_yacute, 253,
+sHTML_S_thorn, 254,
+sHTML_S_yuml, 255,
+
+// Sonderzeichen
+sHTML_S_acute, 180,
+sHTML_S_brvbar, 166,
+sHTML_S_cedil, 184,
+sHTML_S_cent, 162,
+sHTML_S_copy, 169,
+sHTML_S_curren, 164,
+sHTML_S_deg, 176,
+sHTML_S_divide, 247,
+sHTML_S_frac12, 189,
+sHTML_S_frac14, 188,
+sHTML_S_frac34, 190,
+sHTML_S_iexcl, 161,
+sHTML_S_iquest, 191,
+sHTML_S_laquo, 171,
+sHTML_S_macr, 175,
+sHTML_S_micro, 181,
+sHTML_S_middot, 183,
+sHTML_S_not, 172,
+sHTML_S_ordf, 170,
+sHTML_S_ordm, 186,
+sHTML_S_para, 182,
+sHTML_S_plusmn, 177,
+sHTML_S_pound, 163,
+sHTML_S_raquo, 187,
+sHTML_S_reg, 174,
+sHTML_S_sect, 167,
+sHTML_S_sup1, 185,
+sHTML_S_sup2, 178,
+sHTML_S_sup3, 179,
+sHTML_S_times, 215,
+sHTML_S_uml, 168,
+sHTML_S_yen, 165,
+
+// Netscape kennt noch ein paar in Grossbuchstaben ...
+sHTML_C_LT, 60,
+sHTML_C_GT, 62,
+sHTML_C_AMP, 38,
+sHTML_C_QUOT, 34,
+sHTML_S_COPY, 169,
+sHTML_S_REG, 174,
+
+// Sonderzeichen, die zu Tokens konvertiert werden !!!
+sHTML_S_nbsp, 1,
+sHTML_S_shy, 2,
+};
+
+extern "C"
+{
+
+static int
+#if defined( WNT )
+ __cdecl
+#endif
+#if defined( ICC ) && defined( OS2 )
+ _Optlink
+#endif
+ HTMLCharNameCompare( const void *pFirst, const void *pSecond)
+{
+ int nRet = 0;
+ if( USHRT_MAX == ((HTML_CharEntry*)pFirst)->cChar )
+ {
+ if( USHRT_MAX == ((HTML_CharEntry*)pSecond)->cChar )
+ nRet = ((HTML_CharEntry*)pFirst)->pUName->CompareTo(
+ *((HTML_CharEntry*)pSecond)->pUName );
+ else
+ nRet = ((HTML_CharEntry*)pFirst)->pUName->CompareToAscii(
+ ((HTML_CharEntry*)pSecond)->sName );
+ }
+ else
+ {
+ if( USHRT_MAX == ((HTML_CharEntry*)pSecond)->cChar )
+ nRet = -1 * ((HTML_CharEntry*)pSecond)->pUName->CompareToAscii(
+ ((HTML_CharEntry*)pFirst)->sName );
+ else
+ nRet = strcmp( ((HTML_CharEntry*)pFirst)->sName,
+ ((HTML_CharEntry*)pSecond)->sName );
+ }
+
+ return nRet;
+}
+
+}
+
+sal_Unicode GetHTMLCharName( const String& rName )
+{
+ if( !bSortCharKeyWords )
+ {
+ qsort( (void*) aHTMLCharNameTab,
+ sizeof( aHTMLCharNameTab ) / sizeof( HTML_CharEntry ),
+ sizeof( HTML_CharEntry ),
+ HTMLCharNameCompare );
+ bSortCharKeyWords = TRUE;
+ }
+
+ sal_Unicode cRet = 0;
+ void* pFound;
+ HTML_CharEntry aSrch;
+ aSrch.pUName = &rName;
+ aSrch.cChar = USHRT_MAX;
+
+ if( 0 != ( pFound = bsearch( (sal_Char *) &aSrch,
+ (void*) aHTMLCharNameTab,
+ sizeof( aHTMLCharNameTab) / sizeof( HTML_CharEntry ),
+ sizeof( HTML_CharEntry ),
+ HTMLCharNameCompare )))
+ cRet = ((HTML_CharEntry*)pFound)->cChar;
+ return cRet;
+}
+
+/* */
+
+// Flag: Optionen-Tabelle wurde schon sortiert
+static int __FAR_DATA bSortOptionKeyWords = FALSE;
+
+static HTML_TokenEntry __FAR_DATA aHTMLOptionTab[] = {
+
+// Attribute ohne Wert
+sHTML_O_box, HTML_O_BOX,
+sHTML_O_checked, HTML_O_CHECKED,
+sHTML_O_compact, HTML_O_COMPACT,
+sHTML_O_continue, HTML_O_CONTINUE,
+sHTML_O_controls, HTML_O_CONTROLS, // IExplorer 2.0
+sHTML_O_declare, HTML_O_DECLARE,
+sHTML_O_disabled, HTML_O_DISABLED,
+sHTML_O_folded, HTML_O_FOLDED, // Netscape internal
+sHTML_O_ismap, HTML_O_ISMAP,
+sHTML_O_mayscript, HTML_O_MAYSCRIPT,
+sHTML_O_multiple, HTML_O_MULTIPLE,
+sHTML_O_noflow, HTML_O_NOFLOW,
+sHTML_O_nohref, HTML_O_NOHREF, // Netscape 2.0
+sHTML_O_noresize, HTML_O_NORESIZE, // Netscape 2.0
+sHTML_O_noshade, HTML_O_NOSHADE, // Netscape 2.0
+sHTML_O_nowrap, HTML_O_NOWRAP,
+sHTML_O_plain, HTML_O_PLAIN,
+sHTML_O_sdfixed, HTML_O_SDFIXED,
+sHTML_O_selected, HTML_O_SELECTED,
+sHTML_O_shapes, HTML_O_SHAPES,
+
+// Attribute mit einem String als Wert
+sHTML_O_above, HTML_O_ABOVE,
+sHTML_O_accept, HTML_O_ACCEPT,
+sHTML_O_accesskey, HTML_O_ACCESSKEY,
+sHTML_O_add_date, HTML_O_ADD_DATE, // Netscape internal
+sHTML_O_alt, HTML_O_ALT,
+sHTML_O_axes, HTML_O_AXES,
+sHTML_O_axis, HTML_O_AXIS,
+sHTML_O_below, HTML_O_BELOW,
+sHTML_O_char, HTML_O_CHAR, // HTML 3 Table Model Draft
+sHTML_O_class, HTML_O_CLASS,
+sHTML_O_clip, HTML_O_CLIP,
+sHTML_O_code, HTML_O_CODE, // HotJava
+sHTML_O_codetype, HTML_O_CODETYPE,
+sHTML_O_colspec, HTML_O_COLSPEC,
+sHTML_O_content, HTML_O_CONTENT,
+sHTML_O_coords, HTML_O_COORDS, // Netscape 2.0
+sHTML_O_dp, HTML_O_DP,
+sHTML_O_enctype, HTML_O_ENCTYPE,
+sHTML_O_error, HTML_O_ERROR,
+sHTML_O_face, HTML_O_FACE, // IExplorer 2.0
+sHTML_O_frameborder, HTML_O_FRAMEBORDER, // IExplorer 3.0
+sHTML_O_httpequiv, HTML_O_HTTPEQUIV,
+sHTML_O_language, HTML_O_LANGUAGE, // JavaScript
+sHTML_O_last_modified, HTML_O_LAST_MODIFIED, // Netscape internal
+sHTML_O_last_visit, HTML_O_LAST_VISIT, // Netscape internal
+sHTML_O_md, HTML_O_MD,
+sHTML_O_n, HTML_O_N,
+sHTML_O_name, HTML_O_NAME,
+sHTML_O_notation, HTML_O_NOTATION,
+sHTML_O_prompt, HTML_O_PROMPT,
+sHTML_O_shape, HTML_O_SHAPE,
+sHTML_O_standby, HTML_O_STANDBY,
+sHTML_O_style, HTML_O_STYLE,
+sHTML_O_title, HTML_O_TITLE,
+sHTML_O_value, HTML_O_VALUE,
+sHTML_O_SDval, HTML_O_SDVAL, // StarDiv NumberValue
+sHTML_O_SDnum, HTML_O_SDNUM, // StarDiv NumberFormat
+sHTML_O_sdlibrary, HTML_O_SDLIBRARY,
+sHTML_O_sdmodule, HTML_O_SDMODULE,
+
+// Attribute mit einem SGML-Identifier als Wert
+sHTML_O_from, HTML_O_FROM,
+sHTML_O_id, HTML_O_ID,
+sHTML_O_target, HTML_O_TARGET, // Netscape 2.0
+sHTML_O_to, HTML_O_TO,
+sHTML_O_until, HTML_O_UNTIL,
+
+// Attribute mit einem URI als Wert
+sHTML_O_action, HTML_O_ACTION,
+sHTML_O_background, HTML_O_BACKGROUND,
+sHTML_O_classid, HTML_O_CLASSID,
+sHTML_O_codebase, HTML_O_CODEBASE, // HotJava
+sHTML_O_data, HTML_O_DATA,
+sHTML_O_dynsrc, HTML_O_DYNSRC, // IExplorer 3.0b1
+sHTML_O_dynsync, HTML_O_DYNSYNC, // IExplorer 2.0
+sHTML_O_imagemap, HTML_O_IMAGEMAP,
+sHTML_O_href, HTML_O_HREF,
+sHTML_O_lowsrc, HTML_O_LOWSRC, // Netscape 3.0
+sHTML_O_script, HTML_O_SCRIPT,
+sHTML_O_src, HTML_O_SRC,
+sHTML_O_usemap, HTML_O_USEMAP, // Netscape 2.0
+
+// Attribute mit Entity-Namen als Wert
+sHTML_O_dingbat, HTML_O_DINGBAT,
+sHTML_O_sym, HTML_O_SYM,
+
+// Attribute mit einer Farbe als Wert (alle Netscape)
+sHTML_O_alink, HTML_O_ALINK,
+sHTML_O_bgcolor, HTML_O_BGCOLOR,
+sHTML_O_bordercolor, HTML_O_BORDERCOLOR, // IExplorer 2.0
+sHTML_O_bordercolorlight, HTML_O_BORDERCOLORLIGHT, // IExplorer 2.0
+sHTML_O_bordercolordark, HTML_O_BORDERCOLORDARK, // IExplorer 2.0
+sHTML_O_color, HTML_O_COLOR,
+sHTML_O_link, HTML_O_LINK,
+sHTML_O_text, HTML_O_TEXT,
+sHTML_O_vlink, HTML_O_VLINK,
+
+// Attribute mit einem numerischen Wert
+sHTML_O_border, HTML_O_BORDER,
+sHTML_O_cellspacing,HTML_O_CELLSPACING, // HTML 3 Table Model Draft
+sHTML_O_cellpadding,HTML_O_CELLPADDING, // HTML 3 Table Model Draft
+sHTML_O_charoff, HTML_O_CHAROFF, // HTML 3 Table Model Draft
+sHTML_O_colspan, HTML_O_COLSPAN,
+sHTML_O_framespacing, HTML_O_FRAMESPACING, // IExplorer 3.0
+sHTML_O_gutter, HTML_O_GUTTER, // Netscape 3.0b5
+sHTML_O_indent, HTML_O_INDENT,
+sHTML_O_height, HTML_O_HEIGHT,
+sHTML_O_hspace, HTML_O_HSPACE, // Netscape
+sHTML_O_left, HTML_O_LEFT,
+sHTML_O_leftmargin, HTML_O_LEFTMARGIN, // IExplorer 2.0
+sHTML_O_loop, HTML_O_LOOP, // IExplorer 2.0
+sHTML_O_marginheight,HTML_O_MARGINHEIGHT, // Netscape 2.0
+sHTML_O_marginwidth,HTML_O_MARGINWIDTH, // Netscape 2.0
+sHTML_O_max, HTML_O_MAX,
+sHTML_O_maxlength, HTML_O_MAXLENGTH,
+sHTML_O_min, HTML_O_MIN,
+sHTML_O_pagex, HTML_O_PAGEX,
+sHTML_O_pagey, HTML_O_PAGEY,
+sHTML_O_pointsize, HTML_O_POINTSIZE,
+sHTML_O_rowspan, HTML_O_ROWSPAN,
+sHTML_O_scrollamount, HTML_O_SCROLLAMOUNT, // IExplorer 2.0
+sHTML_O_scrolldelay, HTML_O_SCROLLDELAY, // IExplorer 2.0
+sHTML_O_seqnum, HTML_O_SEQNUM,
+sHTML_O_skip, HTML_O_SKIP,
+sHTML_O_span, HTML_O_SPAN, // HTML 3 Table Model Draft
+sHTML_O_tabindex, HTML_O_TABINDEX,
+sHTML_O_top, HTML_O_TOP,
+sHTML_O_topmargin, HTML_O_TOPMARGIN, // IExplorer 2.0
+sHTML_O_vspace, HTML_O_VSPACE, // Netscape
+sHTML_O_weight, HTML_O_WEIGHT,
+sHTML_O_width, HTML_O_WIDTH,
+sHTML_O_x, HTML_O_X,
+sHTML_O_y, HTML_O_Y,
+sHTML_O_zindex, HTML_O_ZINDEX,
+
+// Attribute mit Enum-Werten
+sHTML_O_bgproperties, HTML_O_BGPROPERTIES, // IExplorer 2.0
+sHTML_O_behavior, HTML_O_BEHAVIOR, // IExplorer 2.0
+sHTML_O_clear, HTML_O_CLEAR,
+sHTML_O_dir, HTML_O_DIR, // HTML 3 Table Model Draft
+sHTML_O_direction, HTML_O_DIRECTION, // IExplorer 2.0
+sHTML_O_format, HTML_O_FORMAT,
+sHTML_O_frame, HTML_O_FRAME, // HTML 3 Table Model Draft
+sHTML_O_lang, HTML_O_LANG,
+sHTML_O_method, HTML_O_METHOD,
+sHTML_O_palette, HTML_O_PALETTE,
+sHTML_O_rel, HTML_O_REL,
+sHTML_O_rev, HTML_O_REV,
+sHTML_O_rules, HTML_O_RULES, // HTML 3 Table Model Draft
+sHTML_O_scrolling, HTML_O_SCROLLING, // Netscape 2.0
+sHTML_O_sdreadonly, HTML_O_SDREADONLY,
+sHTML_O_subtype, HTML_O_SUBTYPE,
+sHTML_O_type, HTML_O_TYPE,
+sHTML_O_valign, HTML_O_VALIGN,
+sHTML_O_valuetype, HTML_O_VALUETYPE,
+sHTML_O_wrap, HTML_O_WRAP,
+sHTML_O_visibility, HTML_O_VISIBILITY,
+
+// Attribute mit Script-Code als Wert
+sHTML_O_onblur, HTML_O_ONBLUR, // JavaScript
+sHTML_O_onchange, HTML_O_ONCHANGE, // JavaScript
+sHTML_O_onclick, HTML_O_ONCLICK, // JavaScript
+sHTML_O_onfocus, HTML_O_ONFOCUS, // JavaScript
+sHTML_O_onload, HTML_O_ONLOAD, // JavaScript
+sHTML_O_onmouseover, HTML_O_ONMOUSEOVER, // JavaScript
+sHTML_O_onreset, HTML_O_ONRESET, // JavaScript
+sHTML_O_onselect, HTML_O_ONSELECT, // JavaScript
+sHTML_O_onsubmit, HTML_O_ONSUBMIT, // JavaScript
+sHTML_O_onunload, HTML_O_ONUNLOAD, // JavaScript
+sHTML_O_onabort, HTML_O_ONABORT, // JavaScript
+sHTML_O_onerror, HTML_O_ONERROR, // JavaScript
+sHTML_O_onmouseout, HTML_O_ONMOUSEOUT, // JavaScript
+
+sHTML_O_SDonblur, HTML_O_SDONBLUR, // StarBasic
+sHTML_O_SDonchange, HTML_O_SDONCHANGE, // StarBasic
+sHTML_O_SDonclick, HTML_O_SDONCLICK, // StarBasic
+sHTML_O_SDonfocus, HTML_O_SDONFOCUS, // StarBasic
+sHTML_O_SDonload, HTML_O_SDONLOAD, // StarBasic
+sHTML_O_SDonmouseover, HTML_O_SDONMOUSEOVER, // StarBasic
+sHTML_O_SDonreset, HTML_O_SDONRESET, // StarBasic
+sHTML_O_SDonselect, HTML_O_SDONSELECT, // StarBasic
+sHTML_O_SDonsubmit, HTML_O_SDONSUBMIT, // StarBasic
+sHTML_O_SDonunload, HTML_O_SDONUNLOAD, // StarBasic
+sHTML_O_SDonabort, HTML_O_SDONABORT, // StarBasic
+sHTML_O_SDonerror, HTML_O_SDONERROR, // StarBasic
+sHTML_O_SDonmouseout, HTML_O_SDONMOUSEOUT, // StarBasic
+
+// Attribute mit Kontext-abhaengigen Werten
+sHTML_O_align, HTML_O_ALIGN,
+sHTML_O_cols, HTML_O_COLS, // Netscape 2.0 vs HTML 2.0
+sHTML_O_rows, HTML_O_ROWS, // Netscape 2.0 vs HTML 2.0
+sHTML_O_size, HTML_O_SIZE,
+sHTML_O_start, HTML_O_START, // Netscape 2.0 vs IExplorer 2.0
+sHTML_O_units, HTML_O_UNITS
+};
+
+int GetHTMLOption( const String& rName )
+{
+ if( !bSortOptionKeyWords )
+ {
+ qsort( (void*) aHTMLOptionTab,
+ sizeof( aHTMLOptionTab ) / sizeof( HTML_TokenEntry ),
+ sizeof( HTML_TokenEntry ),
+ HTMLKeyCompare );
+ bSortOptionKeyWords = TRUE;
+ }
+
+ int nRet = HTML_O_UNKNOWN;
+ void* pFound;
+ HTML_TokenEntry aSrch;
+ aSrch.pUToken = &rName;
+ aSrch.nToken = -1;
+
+ if( 0 != ( pFound = bsearch( (sal_Char *) &aSrch,
+ (void*) aHTMLOptionTab,
+ sizeof( aHTMLOptionTab ) / sizeof( HTML_TokenEntry ),
+ sizeof( HTML_TokenEntry ),
+ HTMLKeyCompare )))
+ nRet = ((HTML_TokenEntry*)pFound)->nToken;
+ return nRet;
+}
+
+/* */
+
+// Flag: Farb-Tabelle wurde schon sortiert
+struct HTML_ColorEntry
+{
+ union
+ {
+ const sal_Char* sName;
+ const String *pUName;
+ };
+ ULONG nColor;
+};
+
+static int __FAR_DATA bSortColorKeyWords = FALSE;
+
+#define HTML_NO_COLOR 0xffffffffUL
+
+static HTML_ColorEntry __FAR_DATA aHTMLColorNameTab[] = {
+sHTML_COL_aliceblue, 0x00f0f8ffUL,
+sHTML_COL_antiquewhite, 0x00faebd7UL,
+sHTML_COL_aqua, 0x0000ffffUL,
+sHTML_COL_aquamarine, 0x007fffd4UL,
+sHTML_COL_azure, 0x00f0ffffUL,
+sHTML_COL_beige, 0x00f5f5dcUL,
+sHTML_COL_bisque, 0x00ffe4c4UL,
+sHTML_COL_black, 0x00000000UL,
+sHTML_COL_blanchedalmond, 0x00ffebcdUL,
+sHTML_COL_blue, 0x000000ffUL,
+sHTML_COL_blueviolet, 0x008a2be2UL,
+sHTML_COL_brown, 0x00a52a2aUL,
+sHTML_COL_burlywood, 0x00deb887UL,
+sHTML_COL_cadetblue, 0x005f9ea0UL,
+sHTML_COL_chartreuse, 0x007fff00UL,
+sHTML_COL_chocolate, 0x00d2691eUL,
+sHTML_COL_coral, 0x00ff7f50UL,
+sHTML_COL_cornflowerblue, 0x006495edUL,
+sHTML_COL_cornsilk, 0x00fff8dcUL,
+sHTML_COL_crimson, 0x00dc143cUL,
+sHTML_COL_cyan, 0x0000ffffUL,
+sHTML_COL_darkblue, 0x0000008bUL,
+sHTML_COL_darkcyan, 0x00008b8bUL,
+sHTML_COL_darkgoldenrod, 0x00b8860bUL,
+sHTML_COL_darkgray, 0x00a9a9a9UL,
+sHTML_COL_darkgreen, 0x00006400UL,
+sHTML_COL_darkkhaki, 0x00bdb76bUL,
+sHTML_COL_darkmagenta, 0x008b008bUL,
+sHTML_COL_darkolivegreen, 0x00556b2fUL,
+sHTML_COL_darkorange, 0x00ff8c00UL,
+sHTML_COL_darkorchid, 0x009932ccUL,
+sHTML_COL_darkred, 0x008b0000UL,
+sHTML_COL_darksalmon, 0x00e9967aUL,
+sHTML_COL_darkseagreen, 0x008fbc8fUL,
+sHTML_COL_darkslateblue, 0x00483d8bUL,
+sHTML_COL_darkslategray, 0x002f4f4fUL,
+sHTML_COL_darkturquoise, 0x0000ced1UL,
+sHTML_COL_darkviolet, 0x009400d3UL,
+sHTML_COL_deeppink, 0x00ff1493UL,
+sHTML_COL_deepskyblue, 0x0000bfffUL,
+sHTML_COL_dimgray, 0x00696969UL,
+sHTML_COL_dodgerblue, 0x001e90ffUL,
+sHTML_COL_firebrick, 0x00b22222UL,
+sHTML_COL_floralwhite, 0x00fffaf0UL,
+sHTML_COL_forestgreen, 0x00228b22UL,
+sHTML_COL_fuchsia, 0x00ff00ffUL,
+sHTML_COL_gainsboro, 0x00dcdcdcUL,
+sHTML_COL_ghostwhite, 0x00f8f8ffUL,
+sHTML_COL_gold, 0x00ffd700UL,
+sHTML_COL_goldenrod, 0x00daa520UL,
+sHTML_COL_gray, 0x00808080UL,
+sHTML_COL_green, 0x00008000UL,
+sHTML_COL_greenyellow, 0x00adff2fUL,
+sHTML_COL_honeydew, 0x00f0fff0UL,
+sHTML_COL_hotpink, 0x00ff69b4UL,
+sHTML_COL_indianred, 0x00cd5c5cUL,
+sHTML_COL_indigo, 0x004b0082UL,
+sHTML_COL_ivory, 0x00fffff0UL,
+sHTML_COL_khaki, 0x00f0e68cUL,
+sHTML_COL_lavender, 0x00e6e6faUL,
+sHTML_COL_lavenderblush, 0x00fff0f5UL,
+sHTML_COL_lawngreen, 0x007cfc00UL,
+sHTML_COL_lemonchiffon, 0x00fffacdUL,
+sHTML_COL_lightblue, 0x00add8e6UL,
+sHTML_COL_lightcoral, 0x00f08080UL,
+sHTML_COL_lightcyan, 0x00e0ffffUL,
+sHTML_COL_lightgoldenrodyellow, 0x00fafad2UL,
+sHTML_COL_lightgreen, 0x0090ee90UL,
+sHTML_COL_lightgrey, 0x00d3d3d3UL,
+sHTML_COL_lightpink, 0x00ffb6c1UL,
+sHTML_COL_lightsalmon, 0x00ffa07aUL,
+sHTML_COL_lightseagreen, 0x0020b2aaUL,
+sHTML_COL_lightskyblue, 0x0087cefaUL,
+sHTML_COL_lightslategray, 0x00778899UL,
+sHTML_COL_lightsteelblue, 0x00b0c4deUL,
+sHTML_COL_lightyellow, 0x00ffffe0UL,
+sHTML_COL_lime, 0x0000ff00UL,
+sHTML_COL_limegreen, 0x0032cd32UL,
+sHTML_COL_linen, 0x00faf0e6UL,
+sHTML_COL_magenta, 0x00ff00ffUL,
+sHTML_COL_maroon, 0x00800000UL,
+sHTML_COL_mediumaquamarine, 0x0066cdaaUL,
+sHTML_COL_mediumblue, 0x000000cdUL,
+sHTML_COL_mediumorchid, 0x00ba55d3UL,
+sHTML_COL_mediumpurple, 0x009370dbUL,
+sHTML_COL_mediumseagreen, 0x003cb371UL,
+sHTML_COL_mediumslateblue, 0x007b68eeUL,
+sHTML_COL_mediumspringgreen, 0x0000fa9aUL,
+sHTML_COL_mediumturquoise, 0x0048d1ccUL,
+sHTML_COL_mediumvioletred, 0x00c71585UL,
+sHTML_COL_midnightblue, 0x00191970UL,
+sHTML_COL_mintcream, 0x00f5fffaUL,
+sHTML_COL_mistyrose, 0x00ffe4e1UL,
+sHTML_COL_moccasin, 0x00ffe4b5UL,
+sHTML_COL_navajowhite, 0x00ffdeadUL,
+sHTML_COL_navy, 0x00000080UL,
+sHTML_COL_oldlace, 0x00fdf5e6UL,
+sHTML_COL_olive, 0x00808000UL,
+sHTML_COL_olivedrab, 0x006b8e23UL,
+sHTML_COL_orange, 0x00ffa500UL,
+sHTML_COL_orangered, 0x00ff4500UL,
+sHTML_COL_orchid, 0x00da70d6UL,
+sHTML_COL_palegoldenrod, 0x00eee8aaUL,
+sHTML_COL_palegreen, 0x0098fb98UL,
+sHTML_COL_paleturquoise, 0x00afeeeeUL,
+sHTML_COL_palevioletred, 0x00db7093UL,
+sHTML_COL_papayawhip, 0x00ffefd5UL,
+sHTML_COL_peachpuff, 0x00ffdab9UL,
+sHTML_COL_peru, 0x00cd853fUL,
+sHTML_COL_pink, 0x00ffc0cbUL,
+sHTML_COL_plum, 0x00dda0ddUL,
+sHTML_COL_powderblue, 0x00b0e0e6UL,
+sHTML_COL_purple, 0x00800080UL,
+sHTML_COL_red, 0x00ff0000UL,
+sHTML_COL_rosybrown, 0x00bc8f8fUL,
+sHTML_COL_royalblue, 0x004169e1UL,
+sHTML_COL_saddlebrown, 0x008b4513UL,
+sHTML_COL_salmon, 0x00fa8072UL,
+sHTML_COL_sandybrown, 0x00f4a460UL,
+sHTML_COL_seagreen, 0x002e8b57UL,
+sHTML_COL_seashell, 0x00fff5eeUL,
+sHTML_COL_sienna, 0x00a0522dUL,
+sHTML_COL_silver, 0x00c0c0c0UL,
+sHTML_COL_skyblue, 0x0087ceebUL,
+sHTML_COL_slateblue, 0x006a5acdUL,
+sHTML_COL_slategray, 0x00708090UL,
+sHTML_COL_snow, 0x00fffafaUL,
+sHTML_COL_springgreen, 0x0000ff7fUL,
+sHTML_COL_steelblue, 0x004682b4UL,
+sHTML_COL_tan, 0x00d2b48cUL,
+sHTML_COL_teal, 0x00008080UL,
+sHTML_COL_thistle, 0x00d8bfd8UL,
+sHTML_COL_tomato, 0x00ff6347UL,
+sHTML_COL_turquoise, 0x0040e0d0UL,
+sHTML_COL_violet, 0x00ee82eeUL,
+sHTML_COL_wheat, 0x00f5deb3UL,
+sHTML_COL_white, 0x00ffffffUL,
+sHTML_COL_whitesmoke, 0x00f5f5f5UL,
+sHTML_COL_yellow, 0x00ffff00UL,
+sHTML_COL_yellowgreen, 0x009acd32UL
+};
+
+extern "C"
+{
+
+static int
+#if defined( WNT )
+ __cdecl
+#endif
+#if defined( ICC ) && defined( OS2 )
+ _Optlink
+#endif
+ HTMLColorNameCompare( const void *pFirst, const void *pSecond)
+{
+ int nRet = 0;
+ if( HTML_NO_COLOR == ((HTML_ColorEntry*)pFirst)->nColor )
+ {
+ if( HTML_NO_COLOR == ((HTML_ColorEntry*)pSecond)->nColor )
+ nRet = ((HTML_ColorEntry*)pFirst)->pUName->CompareTo(
+ *((HTML_ColorEntry*)pSecond)->pUName );
+ else
+ nRet = ((HTML_ColorEntry*)pFirst)->pUName->CompareToAscii(
+ ((HTML_ColorEntry*)pSecond)->sName );
+ }
+ else
+ {
+ if( HTML_NO_COLOR == ((HTML_ColorEntry*)pSecond)->nColor )
+ nRet = -1 * ((HTML_ColorEntry*)pSecond)->pUName->CompareToAscii(
+ ((HTML_ColorEntry*)pFirst)->sName );
+ else
+ nRet = strcmp( ((HTML_ColorEntry*)pFirst)->sName,
+ ((HTML_ColorEntry*)pSecond)->sName );
+ }
+
+ return nRet;
+}
+
+}
+
+ULONG GetHTMLColor( const String& rName )
+{
+ if( !bSortColorKeyWords )
+ {
+ qsort( (void*) aHTMLColorNameTab,
+ sizeof( aHTMLColorNameTab ) / sizeof( HTML_ColorEntry ),
+ sizeof( HTML_ColorEntry ),
+ HTMLColorNameCompare );
+ bSortColorKeyWords = TRUE;
+ }
+
+ ULONG nRet = ULONG_MAX;
+ void* pFound;
+ HTML_ColorEntry aSrch;
+ aSrch.pUName = &rName;
+ aSrch.nColor = HTML_NO_COLOR;
+
+ if( 0 != ( pFound = bsearch( (sal_Char *) &aSrch,
+ (void*) aHTMLColorNameTab,
+ sizeof( aHTMLColorNameTab) / sizeof( HTML_ColorEntry ),
+ sizeof( HTML_ColorEntry ),
+ HTMLColorNameCompare )))
+ nRet = ((HTML_ColorEntry*)pFound)->nColor;
+
+ return nRet;
+}
+