summaryrefslogtreecommitdiffstats
path: root/khtml
diff options
context:
space:
mode:
Diffstat (limited to 'khtml')
-rw-r--r--khtml/css/cssparser.cpp7
-rw-r--r--khtml/css/cssproperties.c387
-rw-r--r--khtml/css/cssproperties.h57
-rw-r--r--khtml/css/cssproperties.in1
-rw-r--r--khtml/css/cssstyleselector.cpp27
-rw-r--r--khtml/css/cssvalues.c751
-rw-r--r--khtml/css/cssvalues.h115
-rw-r--r--khtml/css/cssvalues.in5
-rw-r--r--khtml/rendering/bidi.cpp279
-rw-r--r--khtml/rendering/bidi.h66
-rw-r--r--khtml/rendering/render_block.cpp68
-rw-r--r--khtml/rendering/render_line.cpp4
-rw-r--r--khtml/rendering/render_object.cpp5
-rw-r--r--khtml/rendering/render_object.h1
-rw-r--r--khtml/rendering/render_style.cpp5
-rw-r--r--khtml/rendering/render_style.h7
16 files changed, 910 insertions, 875 deletions
diff --git a/khtml/css/cssparser.cpp b/khtml/css/cssparser.cpp
index 1bff45c51..23eeb69a9 100644
--- a/khtml/css/cssparser.cpp
+++ b/khtml/css/cssparser.cpp
@@ -1076,6 +1076,13 @@ bool CSSParser::parseValue( int propId, bool important )
CSS_PROP_LIST_STYLE_IMAGE };
return parseShortHand(propId, properties, 3, important);
}
+ case CSS_PROP_WORD_WRAP:
+ {
+ // normal | break-word
+ if ( id == CSS_VAL_NORMAL || id == CSS_VAL_BREAK_WORD )
+ valid_primitive = true;
+ break;
+ }
default:
// #ifdef CSS_DEBUG
// kdDebug( 6080 ) << "illegal or CSS2 Aural property: " << val << endl;
diff --git a/khtml/css/cssproperties.c b/khtml/css/cssproperties.c
index df4563a56..c86f2d326 100644
--- a/khtml/css/cssproperties.c
+++ b/khtml/css/cssproperties.c
@@ -1,4 +1,4 @@
-/* ANSI-C code produced by gperf version 3.0.1 */
+/* ANSI-C code produced by gperf version 3.0.2 */
/* Command-line: gperf -a -L ANSI-C -E -C -c -o -t -k '*' -NfindProp -Hhash_prop -Wwordlist_prop -D -s 2 cssproperties.gperf */
#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \
@@ -40,7 +40,7 @@ struct props {
};
static const struct props * findProp (register const char *str, register unsigned int len);
-/* maximum key range = 508, duplicates = 0 */
+/* maximum key range = 469, duplicates = 0 */
#ifdef __GNUC__
__inline
@@ -54,32 +54,32 @@ hash_prop (register const char *str, register unsigned int len)
{
static const unsigned short asso_values[] =
{
- 511, 511, 511, 511, 511, 511, 511, 511, 511, 511,
- 511, 511, 511, 511, 511, 511, 511, 511, 511, 511,
- 511, 511, 511, 511, 511, 511, 511, 511, 511, 511,
- 511, 511, 511, 511, 511, 511, 511, 511, 511, 511,
- 511, 511, 511, 511, 511, 0, 511, 511, 511, 511,
- 511, 0, 511, 511, 511, 511, 511, 511, 511, 511,
- 511, 511, 511, 511, 511, 511, 511, 511, 511, 511,
- 511, 511, 511, 511, 511, 511, 511, 511, 511, 511,
- 511, 511, 511, 511, 511, 511, 511, 511, 511, 511,
- 511, 511, 511, 511, 511, 511, 511, 10, 0, 0,
- 5, 5, 160, 0, 0, 0, 511, 15, 5, 0,
- 25, 0, 0, 15, 0, 30, 0, 40, 5, 190,
- 5, 135, 120, 511, 511, 511, 511, 511, 511, 511,
- 511, 511, 511, 511, 511, 511, 511, 511, 511, 511,
- 511, 511, 511, 511, 511, 511, 511, 511, 511, 511,
- 511, 511, 511, 511, 511, 511, 511, 511, 511, 511,
- 511, 511, 511, 511, 511, 511, 511, 511, 511, 511,
- 511, 511, 511, 511, 511, 511, 511, 511, 511, 511,
- 511, 511, 511, 511, 511, 511, 511, 511, 511, 511,
- 511, 511, 511, 511, 511, 511, 511, 511, 511, 511,
- 511, 511, 511, 511, 511, 511, 511, 511, 511, 511,
- 511, 511, 511, 511, 511, 511, 511, 511, 511, 511,
- 511, 511, 511, 511, 511, 511, 511, 511, 511, 511,
- 511, 511, 511, 511, 511, 511, 511, 511, 511, 511,
- 511, 511, 511, 511, 511, 511, 511, 511, 511, 511,
- 511, 511, 511, 511, 511, 511
+ 472, 472, 472, 472, 472, 472, 472, 472, 472, 472,
+ 472, 472, 472, 472, 472, 472, 472, 472, 472, 472,
+ 472, 472, 472, 472, 472, 472, 472, 472, 472, 472,
+ 472, 472, 472, 472, 472, 472, 472, 472, 472, 472,
+ 472, 472, 472, 472, 472, 0, 472, 472, 472, 472,
+ 472, 0, 472, 472, 472, 472, 472, 472, 472, 472,
+ 472, 472, 472, 472, 472, 472, 472, 472, 472, 472,
+ 472, 472, 472, 472, 472, 472, 472, 472, 472, 472,
+ 472, 472, 472, 472, 472, 472, 472, 472, 472, 472,
+ 472, 472, 472, 472, 472, 472, 472, 10, 0, 0,
+ 5, 5, 120, 0, 0, 0, 472, 15, 5, 0,
+ 25, 0, 0, 50, 0, 30, 0, 40, 0, 140,
+ 35, 180, 80, 472, 472, 472, 472, 472, 472, 472,
+ 472, 472, 472, 472, 472, 472, 472, 472, 472, 472,
+ 472, 472, 472, 472, 472, 472, 472, 472, 472, 472,
+ 472, 472, 472, 472, 472, 472, 472, 472, 472, 472,
+ 472, 472, 472, 472, 472, 472, 472, 472, 472, 472,
+ 472, 472, 472, 472, 472, 472, 472, 472, 472, 472,
+ 472, 472, 472, 472, 472, 472, 472, 472, 472, 472,
+ 472, 472, 472, 472, 472, 472, 472, 472, 472, 472,
+ 472, 472, 472, 472, 472, 472, 472, 472, 472, 472,
+ 472, 472, 472, 472, 472, 472, 472, 472, 472, 472,
+ 472, 472, 472, 472, 472, 472, 472, 472, 472, 472,
+ 472, 472, 472, 472, 472, 472, 472, 472, 472, 472,
+ 472, 472, 472, 472, 472, 472, 472, 472, 472, 472,
+ 472, 472, 472, 472, 472, 472
};
register int hval = len;
@@ -193,11 +193,11 @@ findProp (register const char *str, register unsigned int len)
{
enum
{
- TOTAL_KEYWORDS = 128,
+ TOTAL_KEYWORDS = 129,
MIN_WORD_LENGTH = 3,
MAX_WORD_LENGTH = 32,
MIN_HASH_VALUE = 3,
- MAX_HASH_VALUE = 510
+ MAX_HASH_VALUE = 471
};
static const struct props wordlist_prop[] =
@@ -214,20 +214,18 @@ findProp (register const char *str, register unsigned int len)
{"color", CSS_PROP_COLOR},
#line 58 "cssproperties.gperf"
{"height", CSS_PROP_HEIGHT},
-#line 118 "cssproperties.gperf"
+#line 119 "cssproperties.gperf"
{"border", CSS_PROP_BORDER},
-#line 121 "cssproperties.gperf"
- {"border-top", CSS_PROP_BORDER_TOP},
#line 122 "cssproperties.gperf"
- {"border-right", CSS_PROP_BORDER_RIGHT},
+ {"border-top", CSS_PROP_BORDER_TOP},
#line 123 "cssproperties.gperf"
+ {"border-right", CSS_PROP_BORDER_RIGHT},
+#line 124 "cssproperties.gperf"
{"border-bottom", CSS_PROP_BORDER_BOTTOM},
#line 42 "cssproperties.gperf"
{"clear", CSS_PROP_CLEAR},
-#line 119 "cssproperties.gperf"
+#line 120 "cssproperties.gperf"
{"border-color", CSS_PROP_BORDER_COLOR},
-#line 76 "cssproperties.gperf"
- {"max-height", CSS_PROP_MAX_HEIGHT},
#line 28 "cssproperties.gperf"
{"border-top-color", CSS_PROP_BORDER_TOP_COLOR},
#line 29 "cssproperties.gperf"
@@ -236,7 +234,7 @@ findProp (register const char *str, register unsigned int len)
{"border-bottom-color", CSS_PROP_BORDER_BOTTOM_COLOR},
#line 78 "cssproperties.gperf"
{"min-height", CSS_PROP_MIN_HEIGHT},
-#line 129 "cssproperties.gperf"
+#line 130 "cssproperties.gperf"
{"margin", CSS_PROP_MARGIN},
#line 49 "cssproperties.gperf"
{"direction", CSS_PROP_DIRECTION},
@@ -248,7 +246,7 @@ findProp (register const char *str, register unsigned int len)
{"margin-bottom", CSS_PROP_MARGIN_BOTTOM},
#line 61 "cssproperties.gperf"
{"line-height", CSS_PROP_LINE_HEIGHT},
-#line 131 "cssproperties.gperf"
+#line 132 "cssproperties.gperf"
{"padding", CSS_PROP_PADDING},
#line 89 "cssproperties.gperf"
{"padding-top", CSS_PROP_PADDING_TOP},
@@ -256,53 +254,53 @@ findProp (register const char *str, register unsigned int len)
{"padding-right", CSS_PROP_PADDING_RIGHT},
#line 91 "cssproperties.gperf"
{"padding-bottom", CSS_PROP_PADDING_BOTTOM},
-#line 102 "cssproperties.gperf"
- {"text-align", CSS_PROP_TEXT_ALIGN},
+#line 76 "cssproperties.gperf"
+ {"max-height", CSS_PROP_MAX_HEIGHT},
#line 45 "cssproperties.gperf"
{"content", CSS_PROP_CONTENT},
#line 97 "cssproperties.gperf"
{"position", CSS_PROP_POSITION},
-#line 103 "cssproperties.gperf"
- {"text-decoration", CSS_PROP_TEXT_DECORATION},
#line 80 "cssproperties.gperf"
{"orphans", CSS_PROP_ORPHANS},
-#line 48 "cssproperties.gperf"
- {"cursor", CSS_PROP_CURSOR},
#line 110 "cssproperties.gperf"
{"vertical-align", CSS_PROP_VERTICAL_ALIGN},
+#line 48 "cssproperties.gperf"
+ {"cursor", CSS_PROP_CURSOR},
#line 24 "cssproperties.gperf"
{"border-collapse", CSS_PROP_BORDER_COLLAPSE},
-#line 104 "cssproperties.gperf"
- {"text-indent", CSS_PROP_TEXT_INDENT},
-#line 130 "cssproperties.gperf"
+#line 131 "cssproperties.gperf"
{"outline", CSS_PROP_OUTLINE},
-#line 135 "cssproperties.gperf"
+#line 136 "cssproperties.gperf"
{"scrollbar-highlight-color", CSS_PROP_SCROLLBAR_HIGHLIGHT_COLOR},
#line 41 "cssproperties.gperf"
{"caption-side", CSS_PROP_CAPTION_SIDE},
-#line 136 "cssproperties.gperf"
+#line 137 "cssproperties.gperf"
{"scrollbar-3dlight-color", CSS_PROP_SCROLLBAR_3DLIGHT_COLOR},
#line 25 "cssproperties.gperf"
{"border-spacing", CSS_PROP_BORDER_SPACING},
+#line 102 "cssproperties.gperf"
+ {"text-align", CSS_PROP_TEXT_ALIGN},
#line 109 "cssproperties.gperf"
{"unicode-bidi", CSS_PROP_UNICODE_BIDI},
#line 82 "cssproperties.gperf"
{"outline-color", CSS_PROP_OUTLINE_COLOR},
#line 60 "cssproperties.gperf"
{"letter-spacing", CSS_PROP_LETTER_SPACING},
-#line 98 "cssproperties.gperf"
- {"quotes", CSS_PROP_QUOTES},
-#line 138 "cssproperties.gperf"
+#line 103 "cssproperties.gperf"
+ {"text-decoration", CSS_PROP_TEXT_DECORATION},
+#line 139 "cssproperties.gperf"
{"scrollbar-track-color", CSS_PROP_SCROLLBAR_TRACK_COLOR},
-#line 117 "cssproperties.gperf"
+#line 118 "cssproperties.gperf"
{"background", CSS_PROP_BACKGROUND},
-#line 70 "cssproperties.gperf"
- {"-khtml-marquee", CSS_PROP__KHTML_MARQUEE},
+#line 104 "cssproperties.gperf"
+ {"text-indent", CSS_PROP_TEXT_INDENT},
#line 69 "cssproperties.gperf"
{"-khtml-margin-start", CSS_PROP__KHTML_MARGIN_START},
#line 14 "cssproperties.gperf"
{"background-color", CSS_PROP_BACKGROUND_COLOR},
-#line 132 "cssproperties.gperf"
+#line 100 "cssproperties.gperf"
+ {"size", CSS_PROP_SIZE},
+#line 133 "cssproperties.gperf"
{"scrollbar-base-color", CSS_PROP_SCROLLBAR_BASE_COLOR},
#line 47 "cssproperties.gperf"
{"counter-reset", CSS_PROP_COUNTER_RESET},
@@ -312,208 +310,208 @@ findProp (register const char *str, register unsigned int len)
{"background-image", CSS_PROP_BACKGROUND_IMAGE},
#line 96 "cssproperties.gperf"
{"page-break-inside", CSS_PROP_PAGE_BREAK_INSIDE},
+#line 98 "cssproperties.gperf"
+ {"quotes", CSS_PROP_QUOTES},
#line 16 "cssproperties.gperf"
{"background-repeat", CSS_PROP_BACKGROUND_REPEAT},
-#line 21 "cssproperties.gperf"
- {"-khtml-background-clip", CSS_PROP__KHTML_BACKGROUND_CLIP},
-#line 46 "cssproperties.gperf"
- {"counter-increment", CSS_PROP_COUNTER_INCREMENT},
-#line 27 "cssproperties.gperf"
- {"-khtml-border-vertical-spacing", CSS_PROP__KHTML_BORDER_VERTICAL_SPACING},
-#line 81 "cssproperties.gperf"
- {"opacity", CSS_PROP_OPACITY},
-#line 71 "cssproperties.gperf"
- {"-khtml-marquee-direction", CSS_PROP__KHTML_MARQUEE_DIRECTION},
-#line 73 "cssproperties.gperf"
- {"-khtml-marquee-repetition", CSS_PROP__KHTML_MARQUEE_REPETITION},
-#line 100 "cssproperties.gperf"
- {"size", CSS_PROP_SIZE},
-#line 74 "cssproperties.gperf"
- {"-khtml-marquee-speed", CSS_PROP__KHTML_MARQUEE_SPEED},
-#line 22 "cssproperties.gperf"
- {"-khtml-background-origin", CSS_PROP__KHTML_BACKGROUND_ORIGIN},
-#line 17 "cssproperties.gperf"
- {"background-attachment", CSS_PROP_BACKGROUND_ATTACHMENT},
-#line 116 "cssproperties.gperf"
- {"z-index", CSS_PROP_Z_INDEX},
-#line 18 "cssproperties.gperf"
- {"background-position", CSS_PROP_BACKGROUND_POSITION},
#line 59 "cssproperties.gperf"
{"left", CSS_PROP_LEFT},
-#line 19 "cssproperties.gperf"
- {"background-position-x", CSS_PROP_BACKGROUND_POSITION_X},
-#line 141 "cssproperties.gperf"
- {"-khtml-user-input", CSS_PROP__KHTML_USER_INPUT},
-#line 72 "cssproperties.gperf"
- {"-khtml-marquee-increment", CSS_PROP__KHTML_MARQUEE_INCREMENT},
#line 52 "cssproperties.gperf"
{"float", CSS_PROP_FLOAT},
-#line 111 "cssproperties.gperf"
- {"visibility", CSS_PROP_VISIBILITY},
-#line 127 "cssproperties.gperf"
+#line 21 "cssproperties.gperf"
+ {"-khtml-background-clip", CSS_PROP__KHTML_BACKGROUND_CLIP},
+#line 70 "cssproperties.gperf"
+ {"-khtml-marquee", CSS_PROP__KHTML_MARQUEE},
+#line 27 "cssproperties.gperf"
+ {"-khtml-border-vertical-spacing", CSS_PROP__KHTML_BORDER_VERTICAL_SPACING},
+#line 46 "cssproperties.gperf"
+ {"counter-increment", CSS_PROP_COUNTER_INCREMENT},
+#line 128 "cssproperties.gperf"
{"font", CSS_PROP_FONT},
-#line 126 "cssproperties.gperf"
- {"box-sizing", CSS_PROP_BOX_SIZING},
-#line 124 "cssproperties.gperf"
- {"border-left", CSS_PROP_BORDER_LEFT},
-#line 50 "cssproperties.gperf"
- {"display", CSS_PROP_DISPLAY},
-#line 51 "cssproperties.gperf"
- {"empty-cells", CSS_PROP_EMPTY_CELLS},
-#line 120 "cssproperties.gperf"
- {"border-style", CSS_PROP_BORDER_STYLE},
#line 114 "cssproperties.gperf"
{"width", CSS_PROP_WIDTH},
-#line 32 "cssproperties.gperf"
- {"border-top-style", CSS_PROP_BORDER_TOP_STYLE},
+#line 125 "cssproperties.gperf"
+ {"border-left", CSS_PROP_BORDER_LEFT},
+#line 117 "cssproperties.gperf"
+ {"z-index", CSS_PROP_Z_INDEX},
#line 31 "cssproperties.gperf"
{"border-left-color", CSS_PROP_BORDER_LEFT_COLOR},
-#line 33 "cssproperties.gperf"
- {"border-right-style", CSS_PROP_BORDER_RIGHT_STYLE},
-#line 34 "cssproperties.gperf"
- {"border-bottom-style", CSS_PROP_BORDER_BOTTOM_STYLE},
-#line 68 "cssproperties.gperf"
- {"margin-left", CSS_PROP_MARGIN_LEFT},
-#line 125 "cssproperties.gperf"
+#line 22 "cssproperties.gperf"
+ {"-khtml-background-origin", CSS_PROP__KHTML_BACKGROUND_ORIGIN},
+#line 17 "cssproperties.gperf"
+ {"background-attachment", CSS_PROP_BACKGROUND_ATTACHMENT},
+#line 126 "cssproperties.gperf"
{"border-width", CSS_PROP_BORDER_WIDTH},
-#line 77 "cssproperties.gperf"
- {"max-width", CSS_PROP_MAX_WIDTH},
-#line 128 "cssproperties.gperf"
- {"list-style", CSS_PROP_LIST_STYLE},
+#line 18 "cssproperties.gperf"
+ {"background-position", CSS_PROP_BACKGROUND_POSITION},
#line 36 "cssproperties.gperf"
{"border-top-width", CSS_PROP_BORDER_TOP_WIDTH},
-#line 101 "cssproperties.gperf"
- {"table-layout", CSS_PROP_TABLE_LAYOUT},
#line 37 "cssproperties.gperf"
{"border-right-width", CSS_PROP_BORDER_RIGHT_WIDTH},
#line 38 "cssproperties.gperf"
{"border-bottom-width", CSS_PROP_BORDER_BOTTOM_WIDTH},
-#line 92 "cssproperties.gperf"
- {"padding-left", CSS_PROP_PADDING_LEFT},
+#line 68 "cssproperties.gperf"
+ {"margin-left", CSS_PROP_MARGIN_LEFT},
+#line 142 "cssproperties.gperf"
+ {"-khtml-user-input", CSS_PROP__KHTML_USER_INPUT},
#line 79 "cssproperties.gperf"
{"min-width", CSS_PROP_MIN_WIDTH},
+#line 127 "cssproperties.gperf"
+ {"box-sizing", CSS_PROP_BOX_SIZING},
+#line 92 "cssproperties.gperf"
+ {"padding-left", CSS_PROP_PADDING_LEFT},
+#line 71 "cssproperties.gperf"
+ {"-khtml-marquee-direction", CSS_PROP__KHTML_MARQUEE_DIRECTION},
+#line 73 "cssproperties.gperf"
+ {"-khtml-marquee-repetition", CSS_PROP__KHTML_MARQUEE_REPETITION},
#line 95 "cssproperties.gperf"
{"page-break-before", CSS_PROP_PAGE_BREAK_BEFORE},
+#line 74 "cssproperties.gperf"
+ {"-khtml-marquee-speed", CSS_PROP__KHTML_MARQUEE_SPEED},
#line 94 "cssproperties.gperf"
{"page-break-after", CSS_PROP_PAGE_BREAK_AFTER},
-#line 62 "cssproperties.gperf"
- {"list-style-image", CSS_PROP_LIST_STYLE_IMAGE},
+#line 81 "cssproperties.gperf"
+ {"opacity", CSS_PROP_OPACITY},
+#line 77 "cssproperties.gperf"
+ {"max-width", CSS_PROP_MAX_WIDTH},
+#line 112 "cssproperties.gperf"
+ {"white-space", CSS_PROP_WHITE_SPACE},
#line 56 "cssproperties.gperf"
{"font-variant", CSS_PROP_FONT_VARIANT},
-#line 107 "cssproperties.gperf"
- {"text-transform", CSS_PROP_TEXT_TRANSFORM},
-#line 133 "cssproperties.gperf"
+#line 19 "cssproperties.gperf"
+ {"background-position-x", CSS_PROP_BACKGROUND_POSITION_X},
+#line 134 "cssproperties.gperf"
{"scrollbar-face-color", CSS_PROP_SCROLLBAR_FACE_COLOR},
-#line 112 "cssproperties.gperf"
- {"white-space", CSS_PROP_WHITE_SPACE},
-#line 106 "cssproperties.gperf"
- {"text-shadow", CSS_PROP_TEXT_SHADOW},
-#line 84 "cssproperties.gperf"
- {"outline-style", CSS_PROP_OUTLINE_STYLE},
-#line 115 "cssproperties.gperf"
+#line 72 "cssproperties.gperf"
+ {"-khtml-marquee-increment", CSS_PROP__KHTML_MARQUEE_INCREMENT},
+#line 116 "cssproperties.gperf"
{"word-spacing", CSS_PROP_WORD_SPACING},
-#line 139 "cssproperties.gperf"
+#line 111 "cssproperties.gperf"
+ {"visibility", CSS_PROP_VISIBILITY},
+#line 140 "cssproperties.gperf"
{"scrollbar-arrow-color", CSS_PROP_SCROLLBAR_ARROW_COLOR},
#line 85 "cssproperties.gperf"
{"outline-width", CSS_PROP_OUTLINE_WIDTH},
-#line 63 "cssproperties.gperf"
- {"list-style-position", CSS_PROP_LIST_STYLE_POSITION},
+#line 106 "cssproperties.gperf"
+ {"text-shadow", CSS_PROP_TEXT_SHADOW},
+#line 50 "cssproperties.gperf"
+ {"display", CSS_PROP_DISPLAY},
+#line 107 "cssproperties.gperf"
+ {"text-transform", CSS_PROP_TEXT_TRANSFORM},
+#line 51 "cssproperties.gperf"
+ {"empty-cells", CSS_PROP_EMPTY_CELLS},
+#line 121 "cssproperties.gperf"
+ {"border-style", CSS_PROP_BORDER_STYLE},
+#line 32 "cssproperties.gperf"
+ {"border-top-style", CSS_PROP_BORDER_TOP_STYLE},
#line 26 "cssproperties.gperf"
{"-khtml-border-horizontal-spacing", CSS_PROP__KHTML_BORDER_HORIZONTAL_SPACING},
-#line 75 "cssproperties.gperf"
- {"-khtml-marquee-style", CSS_PROP__KHTML_MARQUEE_STYLE},
+#line 33 "cssproperties.gperf"
+ {"border-right-style", CSS_PROP_BORDER_RIGHT_STYLE},
+#line 34 "cssproperties.gperf"
+ {"border-bottom-style", CSS_PROP_BORDER_BOTTOM_STYLE},
#line 23 "cssproperties.gperf"
{"-khtml-background-size", CSS_PROP__KHTML_BACKGROUND_SIZE},
-#line 20 "cssproperties.gperf"
- {"background-position-y", CSS_PROP_BACKGROUND_POSITION_Y},
-#line 134 "cssproperties.gperf"
+#line 135 "cssproperties.gperf"
{"scrollbar-shadow-color", CSS_PROP_SCROLLBAR_SHADOW_COLOR},
-#line 137 "cssproperties.gperf"
- {"scrollbar-darkshadow-color", CSS_PROP_SCROLLBAR_DARKSHADOW_COLOR},
+#line 129 "cssproperties.gperf"
+ {"list-style", CSS_PROP_LIST_STYLE},
+#line 101 "cssproperties.gperf"
+ {"table-layout", CSS_PROP_TABLE_LAYOUT},
#line 54 "cssproperties.gperf"
{"font-size", CSS_PROP_FONT_SIZE},
-#line 64 "cssproperties.gperf"
- {"list-style-type", CSS_PROP_LIST_STYLE_TYPE},
-#line 55 "cssproperties.gperf"
- {"font-style", CSS_PROP_FONT_STYLE},
-#line 35 "cssproperties.gperf"
- {"border-left-style", CSS_PROP_BORDER_LEFT_STYLE},
#line 86 "cssproperties.gperf"
{"overflow", CSS_PROP_OVERFLOW},
-#line 87 "cssproperties.gperf"
- {"overflow-x", CSS_PROP_OVERFLOW_X},
-#line 105 "cssproperties.gperf"
- {"text-overflow", CSS_PROP_TEXT_OVERFLOW},
+#line 62 "cssproperties.gperf"
+ {"list-style-image", CSS_PROP_LIST_STYLE_IMAGE},
+#line 138 "cssproperties.gperf"
+ {"scrollbar-darkshadow-color", CSS_PROP_SCROLLBAR_DARKSHADOW_COLOR},
#line 57 "cssproperties.gperf"
{"font-weight", CSS_PROP_FONT_WEIGHT},
#line 39 "cssproperties.gperf"
{"border-left-width", CSS_PROP_BORDER_LEFT_WIDTH},
-#line 140 "cssproperties.gperf"
+#line 115 "cssproperties.gperf"
+ {"word-wrap", CSS_PROP_WORD_WRAP},
+#line 84 "cssproperties.gperf"
+ {"outline-style", CSS_PROP_OUTLINE_STYLE},
+#line 141 "cssproperties.gperf"
{"-khtml-flow-mode", CSS_PROP__KHTML_FLOW_MODE},
+#line 87 "cssproperties.gperf"
+ {"overflow-x", CSS_PROP_OVERFLOW_X},
#line 113 "cssproperties.gperf"
{"widows", CSS_PROP_WIDOWS},
+#line 105 "cssproperties.gperf"
+ {"text-overflow", CSS_PROP_TEXT_OVERFLOW},
+#line 63 "cssproperties.gperf"
+ {"list-style-position", CSS_PROP_LIST_STYLE_POSITION},
+#line 20 "cssproperties.gperf"
+ {"background-position-y", CSS_PROP_BACKGROUND_POSITION_Y},
#line 83 "cssproperties.gperf"
{"outline-offset", CSS_PROP_OUTLINE_OFFSET},
-#line 53 "cssproperties.gperf"
- {"font-family", CSS_PROP_FONT_FAMILY},
+#line 75 "cssproperties.gperf"
+ {"-khtml-marquee-style", CSS_PROP__KHTML_MARQUEE_STYLE},
+#line 55 "cssproperties.gperf"
+ {"font-style", CSS_PROP_FONT_STYLE},
+#line 35 "cssproperties.gperf"
+ {"border-left-style", CSS_PROP_BORDER_LEFT_STYLE},
+#line 64 "cssproperties.gperf"
+ {"list-style-type", CSS_PROP_LIST_STYLE_TYPE},
#line 88 "cssproperties.gperf"
- {"overflow-y", CSS_PROP_OVERFLOW_Y}
+ {"overflow-y", CSS_PROP_OVERFLOW_Y},
+#line 53 "cssproperties.gperf"
+ {"font-family", CSS_PROP_FONT_FAMILY}
};
- static const signed char lookup[] =
+ static const short lookup[] =
{
-1, -1, -1, 0, -1, 1, 2, -1, -1, 3,
4, 5, -1, -1, -1, -1, 6, -1, -1, -1,
7, -1, 8, 9, -1, 10, -1, 11, -1, -1,
- 12, 13, -1, 14, 15, -1, -1, -1, -1, -1,
- 16, 17, -1, -1, 18, 19, -1, 20, 21, -1,
- -1, 22, 23, -1, -1, -1, 24, -1, 25, 26,
- 27, -1, 28, 29, -1, -1, -1, -1, -1, -1,
- 30, -1, 31, -1, -1, -1, 32, -1, -1, 33,
- 34, 35, 36, -1, -1, 37, -1, 38, 39, 40,
- -1, -1, 41, 42, 43, -1, 44, -1, -1, -1,
- -1, 45, -1, -1, -1, 46, -1, -1, -1, 47,
- -1, -1, -1, -1, 48, -1, 49, -1, -1, -1,
- 50, -1, -1, 51, -1, 52, 53, 54, -1, -1,
- -1, -1, 55, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 56, -1, -1, -1, -1, 57, -1, -1,
- 58, -1, 59, -1, 60, 61, -1, -1, -1, 62,
- 63, -1, -1, -1, 64, -1, 65, 66, -1, 67,
- -1, -1, -1, -1, 68, -1, 69, 70, -1, 71,
- 72, -1, -1, -1, -1, 73, -1, -1, -1, 74,
- 75, 76, 77, -1, -1, -1, 78, 79, -1, -1,
- 80, 81, 82, 83, 84, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 85, 86, -1, 87,
- 88, 89, 90, 91, 92, -1, -1, 93, -1, 94,
- -1, -1, 95, -1, -1, -1, 96, -1, -1, -1,
- -1, 97, -1, -1, -1, -1, -1, 98, -1, 99,
- 100, 101, -1, -1, -1, -1, 102, -1, -1, -1,
- -1, -1, -1, 103, -1, -1, -1, -1, -1, -1,
- -1, -1, 104, -1, -1, -1, 105, -1, -1, -1,
- -1, -1, -1, 106, 107, -1, -1, 108, -1, -1,
- 109, -1, 110, -1, -1, -1, -1, -1, -1, -1,
+ -1, 12, -1, 13, 14, -1, -1, -1, -1, -1,
+ 15, 16, -1, -1, 17, 18, -1, 19, 20, -1,
+ -1, 21, 22, -1, -1, -1, 23, -1, 24, 25,
+ 26, -1, 27, 28, -1, -1, -1, -1, -1, -1,
+ -1, -1, 29, -1, 30, -1, 31, -1, -1, -1,
+ 32, -1, 33, -1, -1, 34, -1, 35, 36, 37,
+ 38, -1, 39, 40, 41, -1, -1, -1, -1, -1,
+ 42, 43, -1, -1, -1, 44, -1, -1, -1, -1,
+ -1, 45, -1, -1, 46, -1, 47, -1, -1, 48,
+ 49, -1, -1, 50, -1, 51, 52, 53, -1, -1,
+ -1, 54, 55, -1, 56, -1, -1, -1, -1, -1,
+ 57, -1, 58, -1, 59, 60, -1, 61, -1, 62,
+ 63, 64, -1, -1, -1, -1, -1, 65, -1, -1,
+ -1, -1, 66, -1, 67, -1, 68, 69, -1, 70,
+ -1, 71, -1, 72, 73, -1, 74, 75, -1, 76,
+ 77, -1, -1, -1, -1, -1, -1, 78, -1, 79,
+ 80, -1, 81, -1, -1, 82, 83, 84, -1, 85,
+ -1, 86, 87, -1, -1, -1, 88, -1, -1, -1,
+ 89, -1, -1, -1, 90, -1, -1, -1, -1, -1,
+ -1, -1, 91, -1, -1, 92, 93, -1, -1, -1,
+ -1, -1, -1, 94, -1, -1, 95, 96, -1, 97,
+ -1, 98, 99, -1, -1, -1, 100, 101, 102, 103,
+ -1, -1, 104, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 105, -1, -1, 106, -1, 107, -1, 108,
+ -1, -1, -1, -1, -1, -1, -1, -1, 109, -1,
+ -1, -1, -1, -1, -1, -1, 110, -1, -1, -1,
-1, -1, -1, -1, -1, -1, 111, -1, -1, -1,
- -1, -1, 112, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 112, 113, -1, 114, -1, -1, -1, 115, -1,
+ -1, 116, -1, -1, -1, 117, -1, -1, -1, -1,
+ -1, 118, -1, 119, -1, -1, -1, -1, -1, 120,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 113, -1, -1, 114,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 115, -1, -1, -1, -1,
- 116, -1, 117, 118, -1, -1, -1, -1, -1, -1,
- 119, -1, -1, -1, -1, -1, -1, -1, 120, -1,
- -1, 121, 122, -1, -1, -1, -1, -1, -1, -1,
- -1, 123, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 121, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 122, -1, -1, -1, -1, -1,
+ 123, -1, -1, -1, -1, 124, -1, 125, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 124, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 125, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 126, -1, -1, -1,
- 127
+ -1, -1, -1, -1, -1, 126, -1, -1, -1, -1,
+ 127, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 128
};
if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
@@ -535,7 +533,7 @@ findProp (register const char *str, register unsigned int len)
}
return 0;
}
-#line 142 "cssproperties.gperf"
+#line 143 "cssproperties.gperf"
static const char * const propertyList[] = {
"",
@@ -640,6 +638,7 @@ static const char * const propertyList[] = {
"white-space",
"widows",
"width",
+"word-wrap",
"word-spacing",
"z-index",
"background",
diff --git a/khtml/css/cssproperties.h b/khtml/css/cssproperties.h
index 29f7d375b..be92d93d4 100644
--- a/khtml/css/cssproperties.h
+++ b/khtml/css/cssproperties.h
@@ -109,35 +109,36 @@ DOM::DOMString getPropertyName(unsigned short id) KDE_NO_EXPORT;
#define CSS_PROP_WHITE_SPACE 99
#define CSS_PROP_WIDOWS 100
#define CSS_PROP_WIDTH 101
-#define CSS_PROP_WORD_SPACING 102
-#define CSS_PROP_Z_INDEX 103
-#define CSS_PROP_BACKGROUND 104
-#define CSS_PROP_BORDER 105
-#define CSS_PROP_BORDER_COLOR 106
-#define CSS_PROP_BORDER_STYLE 107
-#define CSS_PROP_BORDER_TOP 108
-#define CSS_PROP_BORDER_RIGHT 109
-#define CSS_PROP_BORDER_BOTTOM 110
-#define CSS_PROP_BORDER_LEFT 111
-#define CSS_PROP_BORDER_WIDTH 112
-#define CSS_PROP_BOX_SIZING 113
-#define CSS_PROP_FONT 114
-#define CSS_PROP_LIST_STYLE 115
-#define CSS_PROP_MARGIN 116
-#define CSS_PROP_OUTLINE 117
-#define CSS_PROP_PADDING 118
-#define CSS_PROP_SCROLLBAR_BASE_COLOR 119
-#define CSS_PROP_SCROLLBAR_FACE_COLOR 120
-#define CSS_PROP_SCROLLBAR_SHADOW_COLOR 121
-#define CSS_PROP_SCROLLBAR_HIGHLIGHT_COLOR 122
-#define CSS_PROP_SCROLLBAR_3DLIGHT_COLOR 123
-#define CSS_PROP_SCROLLBAR_DARKSHADOW_COLOR 124
-#define CSS_PROP_SCROLLBAR_TRACK_COLOR 125
-#define CSS_PROP_SCROLLBAR_ARROW_COLOR 126
-#define CSS_PROP__KHTML_FLOW_MODE 127
-#define CSS_PROP__KHTML_USER_INPUT 128
+#define CSS_PROP_WORD_WRAP 102
+#define CSS_PROP_WORD_SPACING 103
+#define CSS_PROP_Z_INDEX 104
+#define CSS_PROP_BACKGROUND 105
+#define CSS_PROP_BORDER 106
+#define CSS_PROP_BORDER_COLOR 107
+#define CSS_PROP_BORDER_STYLE 108
+#define CSS_PROP_BORDER_TOP 109
+#define CSS_PROP_BORDER_RIGHT 110
+#define CSS_PROP_BORDER_BOTTOM 111
+#define CSS_PROP_BORDER_LEFT 112
+#define CSS_PROP_BORDER_WIDTH 113
+#define CSS_PROP_BOX_SIZING 114
+#define CSS_PROP_FONT 115
+#define CSS_PROP_LIST_STYLE 116
+#define CSS_PROP_MARGIN 117
+#define CSS_PROP_OUTLINE 118
+#define CSS_PROP_PADDING 119
+#define CSS_PROP_SCROLLBAR_BASE_COLOR 120
+#define CSS_PROP_SCROLLBAR_FACE_COLOR 121
+#define CSS_PROP_SCROLLBAR_SHADOW_COLOR 122
+#define CSS_PROP_SCROLLBAR_HIGHLIGHT_COLOR 123
+#define CSS_PROP_SCROLLBAR_3DLIGHT_COLOR 124
+#define CSS_PROP_SCROLLBAR_DARKSHADOW_COLOR 125
+#define CSS_PROP_SCROLLBAR_TRACK_COLOR 126
+#define CSS_PROP_SCROLLBAR_ARROW_COLOR 127
+#define CSS_PROP__KHTML_FLOW_MODE 128
+#define CSS_PROP__KHTML_USER_INPUT 129
#define CSS_PROP_MAX CSS_PROP_Z_INDEX
-#define CSS_PROP_TOTAL 129
+#define CSS_PROP_TOTAL 130
#endif
diff --git a/khtml/css/cssproperties.in b/khtml/css/cssproperties.in
index 0d8980663..251eb5e3d 100644
--- a/khtml/css/cssproperties.in
+++ b/khtml/css/cssproperties.in
@@ -116,6 +116,7 @@ visibility
white-space
widows
width
+word-wrap
word-spacing
z-index
background
diff --git a/khtml/css/cssstyleselector.cpp b/khtml/css/cssstyleselector.cpp
index 8f6cc09a6..15432dcd6 100644
--- a/khtml/css/cssstyleselector.cpp
+++ b/khtml/css/cssstyleselector.cpp
@@ -175,6 +175,26 @@ if (id == propID) \
return;\
}
+#define HANDLE_INHERIT_ON_INHERITED_PROPERTY(prop, Prop) \
+if (isInherit) \
+{\
+ style->set##Prop(parentStyle->prop());\
+ return;\
+}
+
+#define HANDLE_INITIAL(prop, Prop) \
+if (isInitial) \
+{\
+ style->set##Prop(RenderStyle::initial##Prop());\
+ return;\
+}
+
+#define HANDLE_INITIAL_AND_INHERIT_ON_INHERITED_PROPERTY(prop, Prop) \
+HANDLE_INITIAL(prop, Prop) \
+else \
+HANDLE_INHERIT_ON_INHERITED_PROPERTY(prop, Prop)
+
+
namespace khtml {
CSSStyleSelectorList *CSSStyleSelector::s_defaultStyle;
@@ -3953,6 +3973,13 @@ void CSSStyleSelector::applyRule( int id, DOM::CSSValueImpl *value )
break;
}
}
+ case CSS_PROP_WORD_WRAP: {
+ HANDLE_INITIAL_AND_INHERIT_ON_INHERITED_PROPERTY(wordWrap, WordWrap)
+ if (!primitiveValue)
+ return;
+ style->setWordWrap(primitiveValue->getIdent() == CSS_VAL_NORMAL ? WWNORMAL : WWBREAKWORD);
+ break;
+ }
default:
return;
}
diff --git a/khtml/css/cssvalues.c b/khtml/css/cssvalues.c
index ad4dbb9db..7368d1869 100644
--- a/khtml/css/cssvalues.c
+++ b/khtml/css/cssvalues.c
@@ -1,4 +1,4 @@
-/* ANSI-C code produced by gperf version 3.0.1 */
+/* ANSI-C code produced by gperf version 3.0.2 */
/* Command-line: gperf -L ANSI-C -E -c -C -n -o -t -k '*' -NfindValue -Hhash_val -Wwordlist_value -D cssvalues.gperf */
#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \
@@ -40,7 +40,7 @@ struct css_value {
};
static const css_value* findValue (register const char *str, register unsigned int len);
-/* maximum key range = 3056, duplicates = 0 */
+/* maximum key range = 2876, duplicates = 0 */
#ifdef __GNUC__
__inline
@@ -54,32 +54,32 @@ hash_val (register const char *str, register unsigned int len)
{
static const unsigned short asso_values[] =
{
- 3056, 3056, 3056, 3056, 3056, 3056, 3056, 3056, 3056, 3056,
- 3056, 3056, 3056, 3056, 3056, 3056, 3056, 3056, 3056, 3056,
- 3056, 3056, 3056, 3056, 3056, 3056, 3056, 3056, 3056, 3056,
- 3056, 3056, 3056, 3056, 3056, 3056, 3056, 3056, 3056, 3056,
- 3056, 3056, 3056, 3056, 3056, 420, 225, 3056, 0, 0,
- 105, 100, 40, 35, 20, 15, 10, 5, 3056, 3056,
- 3056, 3056, 3056, 3056, 3056, 3056, 3056, 3056, 3056, 3056,
- 3056, 3056, 3056, 3056, 3056, 3056, 3056, 3056, 3056, 3056,
- 3056, 3056, 3056, 3056, 3056, 3056, 3056, 3056, 3056, 3056,
- 3056, 3056, 3056, 3056, 3056, 3056, 3056, 175, 60, 0,
- 20, 45, 235, 380, 270, 5, 113, 65, 0, 35,
- 0, 5, 265, 465, 100, 20, 5, 195, 223, 13,
- 3, 68, 10, 3056, 3056, 3056, 3056, 3056, 3056, 3056,
- 3056, 3056, 3056, 3056, 3056, 3056, 3056, 3056, 3056, 3056,
- 3056, 3056, 3056, 3056, 3056, 3056, 3056, 3056, 3056, 3056,
- 3056, 3056, 3056, 3056, 3056, 3056, 3056, 3056, 3056, 3056,
- 3056, 3056, 3056, 3056, 3056, 3056, 3056, 3056, 3056, 3056,
- 3056, 3056, 3056, 3056, 3056, 3056, 3056, 3056, 3056, 3056,
- 3056, 3056, 3056, 3056, 3056, 3056, 3056, 3056, 3056, 3056,
- 3056, 3056, 3056, 3056, 3056, 3056, 3056, 3056, 3056, 3056,
- 3056, 3056, 3056, 3056, 3056, 3056, 3056, 3056, 3056, 3056,
- 3056, 3056, 3056, 3056, 3056, 3056, 3056, 3056, 3056, 3056,
- 3056, 3056, 3056, 3056, 3056, 3056, 3056, 3056, 3056, 3056,
- 3056, 3056, 3056, 3056, 3056, 3056, 3056, 3056, 3056, 3056,
- 3056, 3056, 3056, 3056, 3056, 3056, 3056, 3056, 3056, 3056,
- 3056, 3056, 3056, 3056, 3056, 3056, 3056
+ 2876, 2876, 2876, 2876, 2876, 2876, 2876, 2876, 2876, 2876,
+ 2876, 2876, 2876, 2876, 2876, 2876, 2876, 2876, 2876, 2876,
+ 2876, 2876, 2876, 2876, 2876, 2876, 2876, 2876, 2876, 2876,
+ 2876, 2876, 2876, 2876, 2876, 2876, 2876, 2876, 2876, 2876,
+ 2876, 2876, 2876, 2876, 2876, 420, 23, 2876, 0, 0,
+ 105, 100, 40, 35, 20, 15, 10, 5, 2876, 2876,
+ 2876, 2876, 2876, 2876, 2876, 2876, 2876, 2876, 2876, 2876,
+ 2876, 2876, 2876, 2876, 2876, 2876, 2876, 2876, 2876, 2876,
+ 2876, 2876, 2876, 2876, 2876, 2876, 2876, 2876, 2876, 2876,
+ 2876, 2876, 2876, 2876, 2876, 2876, 2876, 175, 60, 0,
+ 20, 45, 18, 380, 270, 5, 3, 65, 0, 35,
+ 0, 5, 265, 465, 100, 20, 5, 195, 18, 13,
+ 3, 133, 10, 2876, 2876, 2876, 2876, 2876, 2876, 2876,
+ 2876, 2876, 2876, 2876, 2876, 2876, 2876, 2876, 2876, 2876,
+ 2876, 2876, 2876, 2876, 2876, 2876, 2876, 2876, 2876, 2876,
+ 2876, 2876, 2876, 2876, 2876, 2876, 2876, 2876, 2876, 2876,
+ 2876, 2876, 2876, 2876, 2876, 2876, 2876, 2876, 2876, 2876,
+ 2876, 2876, 2876, 2876, 2876, 2876, 2876, 2876, 2876, 2876,
+ 2876, 2876, 2876, 2876, 2876, 2876, 2876, 2876, 2876, 2876,
+ 2876, 2876, 2876, 2876, 2876, 2876, 2876, 2876, 2876, 2876,
+ 2876, 2876, 2876, 2876, 2876, 2876, 2876, 2876, 2876, 2876,
+ 2876, 2876, 2876, 2876, 2876, 2876, 2876, 2876, 2876, 2876,
+ 2876, 2876, 2876, 2876, 2876, 2876, 2876, 2876, 2876, 2876,
+ 2876, 2876, 2876, 2876, 2876, 2876, 2876, 2876, 2876, 2876,
+ 2876, 2876, 2876, 2876, 2876, 2876, 2876, 2876, 2876, 2876,
+ 2876, 2876, 2876, 2876, 2876, 2876, 2876
};
register int hval = 0;
@@ -181,11 +181,11 @@ findValue (register const char *str, register unsigned int len)
{
enum
{
- TOTAL_KEYWORDS = 274,
+ TOTAL_KEYWORDS = 275,
MIN_WORD_LENGTH = 2,
MAX_WORD_LENGTH = 28,
MIN_HASH_VALUE = 0,
- MAX_HASH_VALUE = 3055
+ MAX_HASH_VALUE = 2875
};
static const struct css_value wordlist_value[] =
@@ -202,7 +202,7 @@ findValue (register const char *str, register unsigned int len)
{"600", CSS_VAL_600},
#line 216 "cssvalues.gperf"
{"ltr", CSS_VAL_LTR},
-#line 276 "cssvalues.gperf"
+#line 277 "cssvalues.gperf"
{"down", CSS_VAL_DOWN},
#line 146 "cssvalues.gperf"
{"disc", CSS_VAL_DISC},
@@ -210,7 +210,9 @@ findValue (register const char *str, register unsigned int len)
{"500", CSS_VAL_500},
#line 43 "cssvalues.gperf"
{"400", CSS_VAL_400},
-#line 258 "cssvalues.gperf"
+#line 252 "cssvalues.gperf"
+ {"loud", CSS_VAL_LOUD},
+#line 259 "cssvalues.gperf"
{"scroll", CSS_VAL_SCROLL},
#line 83 "cssvalues.gperf"
{"lime", CSS_VAL_LIME},
@@ -220,30 +222,34 @@ findValue (register const char *str, register unsigned int len)
{"inset", CSS_VAL_INSET},
#line 118 "cssvalues.gperf"
{"window", CSS_VAL_WINDOW},
-#line 286 "cssvalues.gperf"
+#line 287 "cssvalues.gperf"
{"content", CSS_VAL_CONTENT},
#line 147 "cssvalues.gperf"
{"circle", CSS_VAL_CIRCLE},
+#line 86 "cssvalues.gperf"
+ {"olive", CSS_VAL_OLIVE},
#line 33 "cssvalues.gperf"
{"italic", CSS_VAL_ITALIC},
#line 145 "cssvalues.gperf"
{"inside", CSS_VAL_INSIDE},
#line 25 "cssvalues.gperf"
{"solid", CSS_VAL_SOLID},
+#line 281 "cssvalues.gperf"
+ {"slide", CSS_VAL_SLIDE},
#line 183 "cssvalues.gperf"
{"inline", CSS_VAL_INLINE},
-#line 261 "cssvalues.gperf"
+#line 262 "cssvalues.gperf"
{"static", CSS_VAL_STATIC},
#line 204 "cssvalues.gperf"
{"move", CSS_VAL_MOVE},
#line 42 "cssvalues.gperf"
{"300", CSS_VAL_300},
-#line 249 "cssvalues.gperf"
+#line 250 "cssvalues.gperf"
{"level", CSS_VAL_LEVEL},
#line 41 "cssvalues.gperf"
{"200", CSS_VAL_200},
-#line 254 "cssvalues.gperf"
- {"mix", CSS_VAL_MIX},
+#line 69 "cssvalues.gperf"
+ {"serif", CSS_VAL_SERIF},
#line 91 "cssvalues.gperf"
{"teal", CSS_VAL_TEAL},
#line 51 "cssvalues.gperf"
@@ -252,191 +258,207 @@ findValue (register const char *str, register unsigned int len)
{"windowtext", CSS_VAL_WINDOWTEXT},
#line 37 "cssvalues.gperf"
{"bold", CSS_VAL_BOLD},
-#line 213 "cssvalues.gperf"
- {"text", CSS_VAL_TEXT},
-#line 149 "cssvalues.gperf"
- {"box", CSS_VAL_BOX},
+#line 77 "cssvalues.gperf"
+ {"blue", CSS_VAL_BLUE},
+#line 239 "cssvalues.gperf"
+ {"blink", CSS_VAL_BLINK},
+#line 221 "cssvalues.gperf"
+ {"visible", CSS_VAL_VISIBLE},
#line 217 "cssvalues.gperf"
{"rtl", CSS_VAL_RTL},
-#line 242 "cssvalues.gperf"
+#line 243 "cssvalues.gperf"
{"embed", CSS_VAL_EMBED},
+#line 26 "cssvalues.gperf"
+ {"double", CSS_VAL_DOUBLE},
#line 128 "cssvalues.gperf"
{"middle", CSS_VAL_MIDDLE},
-#line 252 "cssvalues.gperf"
+#line 253 "cssvalues.gperf"
{"lower", CSS_VAL_LOWER},
-#line 236 "cssvalues.gperf"
+#line 237 "cssvalues.gperf"
{"below", CSS_VAL_BELOW},
#line 63 "cssvalues.gperf"
{"condensed", CSS_VAL_CONDENSED},
+#line 78 "cssvalues.gperf"
+ {"crimson", CSS_VAL_CRIMSON},
#line 14 "cssvalues.gperf"
{"inherit", CSS_VAL_INHERIT},
-#line 93 "cssvalues.gperf"
- {"yellow", CSS_VAL_YELLOW},
-#line 247 "cssvalues.gperf"
+#line 248 "cssvalues.gperf"
{"invert", CSS_VAL_INVERT},
+#line 255 "cssvalues.gperf"
+ {"mix", CSS_VAL_MIX},
#line 76 "cssvalues.gperf"
{"black", CSS_VAL_BLACK},
+#line 213 "cssvalues.gperf"
+ {"text", CSS_VAL_TEXT},
#line 89 "cssvalues.gperf"
{"red", CSS_VAL_RED},
-#line 280 "cssvalues.gperf"
- {"slide", CSS_VAL_SLIDE},
+#line 256 "cssvalues.gperf"
+ {"overline", CSS_VAL_OVERLINE},
+#line 15 "cssvalues.gperf"
+ {"initial", CSS_VAL_INITIAL},
+#line 214 "cssvalues.gperf"
+ {"wait", CSS_VAL_WAIT},
+#line 149 "cssvalues.gperf"
+ {"box", CSS_VAL_BOX},
#line 139 "cssvalues.gperf"
{"center", CSS_VAL_CENTER},
+#line 279 "cssvalues.gperf"
+ {"fast", CSS_VAL_FAST},
#line 59 "cssvalues.gperf"
{"wider", CSS_VAL_WIDER},
#line 129 "cssvalues.gperf"
{"sub", CSS_VAL_SUB},
+#line 244 "cssvalues.gperf"
+ {"fixed", CSS_VAL_FIXED},
+#line 90 "cssvalues.gperf"
+ {"silver", CSS_VAL_SILVER},
#line 189 "cssvalues.gperf"
{"table", CSS_VAL_TABLE},
-#line 269 "cssvalues.gperf"
+#line 270 "cssvalues.gperf"
{"enabled", CSS_VAL_ENABLED},
+#line 93 "cssvalues.gperf"
+ {"yellow", CSS_VAL_YELLOW},
#line 36 "cssvalues.gperf"
{"normal", CSS_VAL_NORMAL},
-#line 238 "cssvalues.gperf"
- {"blink", CSS_VAL_BLINK},
#line 84 "cssvalues.gperf"
{"maroon", CSS_VAL_MAROON},
-#line 251 "cssvalues.gperf"
- {"loud", CSS_VAL_LOUD},
-#line 285 "cssvalues.gperf"
+#line 286 "cssvalues.gperf"
{"border", CSS_VAL_BORDER},
-#line 85 "cssvalues.gperf"
- {"navy", CSS_VAL_NAVY},
+#line 49 "cssvalues.gperf"
+ {"xx-small", CSS_VAL_XX_SMALL},
#line 57 "cssvalues.gperf"
{"smaller", CSS_VAL_SMALLER},
+#line 207 "cssvalues.gperf"
+ {"nw-resize", CSS_VAL_NW_RESIZE},
#line 38 "cssvalues.gperf"
{"bolder", CSS_VAL_BOLDER},
+#line 284 "cssvalues.gperf"
+ {"clip", CSS_VAL_CLIP},
#line 28 "cssvalues.gperf"
{"icon", CSS_VAL_ICON},
-#line 78 "cssvalues.gperf"
- {"crimson", CSS_VAL_CRIMSON},
+#line 264 "cssvalues.gperf"
+ {"thin", CSS_VAL_THIN},
#line 29 "cssvalues.gperf"
{"menu", CSS_VAL_MENU},
+#line 210 "cssvalues.gperf"
+ {"sw-resize", CSS_VAL_SW_RESIZE},
#line 23 "cssvalues.gperf"
{"dotted", CSS_VAL_DOTTED},
-#line 277 "cssvalues.gperf"
+#line 206 "cssvalues.gperf"
+ {"ne-resize", CSS_VAL_NE_RESIZE},
+#line 278 "cssvalues.gperf"
{"slow", CSS_VAL_SLOW},
#line 151 "cssvalues.gperf"
{"decimal", CSS_VAL_DECIMAL},
-#line 15 "cssvalues.gperf"
- {"initial", CSS_VAL_INITIAL},
+#line 71 "cssvalues.gperf"
+ {"cursive", CSS_VAL_CURSIVE},
#line 134 "cssvalues.gperf"
{"bottom", CSS_VAL_BOTTOM},
-#line 214 "cssvalues.gperf"
- {"wait", CSS_VAL_WAIT},
-#line 69 "cssvalues.gperf"
- {"serif", CSS_VAL_SERIF},
-#line 77 "cssvalues.gperf"
- {"blue", CSS_VAL_BLUE},
-#line 270 "cssvalues.gperf"
+#line 209 "cssvalues.gperf"
+ {"se-resize", CSS_VAL_SE_RESIZE},
+#line 85 "cssvalues.gperf"
+ {"navy", CSS_VAL_NAVY},
+#line 271 "cssvalues.gperf"
{"disabled", CSS_VAL_DISABLED},
#line 127 "cssvalues.gperf"
{"baseline", CSS_VAL_BASELINE},
+#line 92 "cssvalues.gperf"
+ {"white", CSS_VAL_WHITE},
#line 111 "cssvalues.gperf"
{"menutext", CSS_VAL_MENUTEXT},
-#line 221 "cssvalues.gperf"
- {"visible", CSS_VAL_VISIBLE},
-#line 26 "cssvalues.gperf"
- {"double", CSS_VAL_DOUBLE},
+#line 263 "cssvalues.gperf"
+ {"thick", CSS_VAL_THICK},
#line 52 "cssvalues.gperf"
{"medium", CSS_VAL_MEDIUM},
-#line 245 "cssvalues.gperf"
+#line 140 "cssvalues.gperf"
+ {"justify", CSS_VAL_JUSTIFY},
+#line 246 "cssvalues.gperf"
{"hide", CSS_VAL_HIDE},
-#line 274 "cssvalues.gperf"
+#line 275 "cssvalues.gperf"
{"reverse", CSS_VAL_REVERSE},
-#line 243 "cssvalues.gperf"
- {"fixed", CSS_VAL_FIXED},
-#line 283 "cssvalues.gperf"
- {"clip", CSS_VAL_CLIP},
+#line 272 "cssvalues.gperf"
+ {"forwards", CSS_VAL_FORWARDS},
#line 112 "cssvalues.gperf"
{"scrollbar", CSS_VAL_SCROLLBAR},
+#line 228 "cssvalues.gperf"
+ {"pre", CSS_VAL_PRE},
#line 18 "cssvalues.gperf"
{"hidden", CSS_VAL_HIDDEN},
-#line 86 "cssvalues.gperf"
- {"olive", CSS_VAL_OLIVE},
-#line 263 "cssvalues.gperf"
- {"thin", CSS_VAL_THIN},
#line 184 "cssvalues.gperf"
{"block", CSS_VAL_BLOCK},
#line 220 "cssvalues.gperf"
{"lowercase", CSS_VAL_LOWERCASE},
-#line 284 "cssvalues.gperf"
+#line 285 "cssvalues.gperf"
{"ellipsis", CSS_VAL_ELLIPSIS},
-#line 241 "cssvalues.gperf"
+#line 242 "cssvalues.gperf"
{"cross", CSS_VAL_CROSS},
-#line 278 "cssvalues.gperf"
- {"fast", CSS_VAL_FAST},
-#line 90 "cssvalues.gperf"
- {"silver", CSS_VAL_SILVER},
+#line 202 "cssvalues.gperf"
+ {"pointer", CSS_VAL_POINTER},
+#line 258 "cssvalues.gperf"
+ {"relative", CSS_VAL_RELATIVE},
#line 137 "cssvalues.gperf"
{"left", CSS_VAL_LEFT},
-#line 264 "cssvalues.gperf"
+#line 119 "cssvalues.gperf"
+ {"windowframe", CSS_VAL_WINDOWFRAME},
+#line 265 "cssvalues.gperf"
{"underline", CSS_VAL_UNDERLINE},
#line 82 "cssvalues.gperf"
{"indigo", CSS_VAL_INDIGO},
-#line 234 "cssvalues.gperf"
- {"always", CSS_VAL_ALWAYS},
-#line 279 "cssvalues.gperf"
+#line 280 "cssvalues.gperf"
{"infinite", CSS_VAL_INFINITE},
-#line 92 "cssvalues.gperf"
- {"white", CSS_VAL_WHITE},
#line 110 "cssvalues.gperf"
{"infotext", CSS_VAL_INFOTEXT},
#line 187 "cssvalues.gperf"
{"compact", CSS_VAL_COMPACT},
-#line 262 "cssvalues.gperf"
- {"thick", CSS_VAL_THICK},
#line 60 "cssvalues.gperf"
{"narrower", CSS_VAL_NARROWER},
-#line 275 "cssvalues.gperf"
+#line 276 "cssvalues.gperf"
{"up", CSS_VAL_UP},
-#line 49 "cssvalues.gperf"
- {"xx-small", CSS_VAL_XX_SMALL},
-#line 207 "cssvalues.gperf"
- {"nw-resize", CSS_VAL_NW_RESIZE},
#line 22 "cssvalues.gperf"
{"outset", CSS_VAL_OUTSET},
-#line 244 "cssvalues.gperf"
+#line 106 "cssvalues.gperf"
+ {"inactiveborder", CSS_VAL_INACTIVEBORDER},
+#line 245 "cssvalues.gperf"
{"hand", CSS_VAL_HAND},
#line 161 "cssvalues.gperf"
{"hebrew", CSS_VAL_HEBREW},
#line 133 "cssvalues.gperf"
{"top", CSS_VAL_TOP},
-#line 210 "cssvalues.gperf"
- {"sw-resize", CSS_VAL_SW_RESIZE},
+#line 236 "cssvalues.gperf"
+ {"avoid", CSS_VAL_AVOID},
#line 144 "cssvalues.gperf"
{"outside", CSS_VAL_OUTSIDE},
-#line 233 "cssvalues.gperf"
+#line 234 "cssvalues.gperf"
{"absolute", CSS_VAL_ABSOLUTE},
-#line 206 "cssvalues.gperf"
- {"ne-resize", CSS_VAL_NE_RESIZE},
#line 162 "cssvalues.gperf"
{"armenian", CSS_VAL_ARMENIAN},
-#line 71 "cssvalues.gperf"
- {"cursive", CSS_VAL_CURSIVE},
-#line 209 "cssvalues.gperf"
- {"se-resize", CSS_VAL_SE_RESIZE},
+#line 235 "cssvalues.gperf"
+ {"always", CSS_VAL_ALWAYS},
#line 101 "cssvalues.gperf"
{"buttontext", CSS_VAL_BUTTONTEXT},
#line 185 "cssvalues.gperf"
{"list-item", CSS_VAL_LIST_ITEM},
-#line 239 "cssvalues.gperf"
+#line 240 "cssvalues.gperf"
{"both", CSS_VAL_BOTH},
-#line 202 "cssvalues.gperf"
- {"pointer", CSS_VAL_POINTER},
+#line 72 "cssvalues.gperf"
+ {"fantasy", CSS_VAL_FANTASY},
#line 24 "cssvalues.gperf"
{"dashed", CSS_VAL_DASHED},
+#line 81 "cssvalues.gperf"
+ {"green", CSS_VAL_GREEN},
#line 222 "cssvalues.gperf"
{"collapse", CSS_VAL_COLLAPSE},
#line 227 "cssvalues.gperf"
{"nowrap", CSS_VAL_NOWRAP},
-#line 268 "cssvalues.gperf"
+#line 269 "cssvalues.gperf"
{"content-box", CSS_VAL_CONTENT_BOX},
#line 73 "cssvalues.gperf"
{"monospace", CSS_VAL_MONOSPACE},
+#line 233 "cssvalues.gperf"
+ {"above", CSS_VAL_ABOVE},
#line 208 "cssvalues.gperf"
{"n-resize", CSS_VAL_N_RESIZE},
-#line 260 "cssvalues.gperf"
+#line 261 "cssvalues.gperf"
{"show", CSS_VAL_SHOW},
#line 199 "cssvalues.gperf"
{"auto", CSS_VAL_AUTO},
@@ -444,137 +466,131 @@ findValue (register const char *str, register unsigned int len)
{"ridge", CSS_VAL_RIDGE},
#line 212 "cssvalues.gperf"
{"w-resize", CSS_VAL_W_RESIZE},
-#line 256 "cssvalues.gperf"
+#line 257 "cssvalues.gperf"
{"portrait", CSS_VAL_PORTRAIT},
#line 211 "cssvalues.gperf"
{"s-resize", CSS_VAL_S_RESIZE},
-#line 271 "cssvalues.gperf"
- {"forwards", CSS_VAL_FORWARDS},
#line 87 "cssvalues.gperf"
{"orange", CSS_VAL_ORANGE},
-#line 228 "cssvalues.gperf"
- {"pre", CSS_VAL_PRE},
-#line 80 "cssvalues.gperf"
- {"gray", CSS_VAL_GRAY},
+#line 107 "cssvalues.gperf"
+ {"inactivecaption", CSS_VAL_INACTIVECAPTION},
#line 205 "cssvalues.gperf"
{"e-resize", CSS_VAL_E_RESIZE},
-#line 255 "cssvalues.gperf"
- {"overline", CSS_VAL_OVERLINE},
#line 215 "cssvalues.gperf"
{"help", CSS_VAL_HELP},
#line 53 "cssvalues.gperf"
{"large", CSS_VAL_LARGE},
-#line 140 "cssvalues.gperf"
- {"justify", CSS_VAL_JUSTIFY},
-#line 240 "cssvalues.gperf"
+#line 241 "cssvalues.gperf"
{"crop", CSS_VAL_CROP},
-#line 257 "cssvalues.gperf"
- {"relative", CSS_VAL_RELATIVE},
+#line 121 "cssvalues.gperf"
+ {"grey", CSS_VAL_GREY},
#line 50 "cssvalues.gperf"
{"x-small", CSS_VAL_X_SMALL},
#line 188 "cssvalues.gperf"
{"inline-block", CSS_VAL_INLINE_BLOCK},
+#line 114 "cssvalues.gperf"
+ {"threedface", CSS_VAL_THREEDFACE},
#line 64 "cssvalues.gperf"
{"semi-condensed", CSS_VAL_SEMI_CONDENSED},
-#line 272 "cssvalues.gperf"
+#line 273 "cssvalues.gperf"
{"backwards", CSS_VAL_BACKWARDS},
#line 138 "cssvalues.gperf"
{"right", CSS_VAL_RIGHT},
-#line 119 "cssvalues.gperf"
- {"windowframe", CSS_VAL_WINDOWFRAME},
+#line 108 "cssvalues.gperf"
+ {"inactivecaptiontext", CSS_VAL_INACTIVECAPTIONTEXT},
#line 27 "cssvalues.gperf"
{"caption", CSS_VAL_CAPTION},
-#line 132 "cssvalues.gperf"
- {"text-bottom", CSS_VAL_TEXT_BOTTOM},
-#line 103 "cssvalues.gperf"
- {"graytext", CSS_VAL_GRAYTEXT},
-#line 106 "cssvalues.gperf"
- {"inactiveborder", CSS_VAL_INACTIVEBORDER},
-#line 72 "cssvalues.gperf"
- {"fantasy", CSS_VAL_FANTASY},
-#line 235 "cssvalues.gperf"
- {"avoid", CSS_VAL_AVOID},
+#line 274 "cssvalues.gperf"
+ {"ahead", CSS_VAL_AHEAD},
+#line 126 "cssvalues.gperf"
+ {"no-repeat", CSS_VAL_NO_REPEAT},
+#line 80 "cssvalues.gperf"
+ {"gray", CSS_VAL_GRAY},
#line 197 "cssvalues.gperf"
{"table-cell", CSS_VAL_TABLE_CELL},
#line 39 "cssvalues.gperf"
{"lighter", CSS_VAL_LIGHTER},
-#line 248 "cssvalues.gperf"
+#line 98 "cssvalues.gperf"
+ {"buttonface", CSS_VAL_BUTTONFACE},
+#line 79 "cssvalues.gperf"
+ {"fuchsia", CSS_VAL_FUCHSIA},
+#line 249 "cssvalues.gperf"
{"landscape", CSS_VAL_LANDSCAPE},
#line 102 "cssvalues.gperf"
{"captiontext", CSS_VAL_CAPTIONTEXT},
#line 58 "cssvalues.gperf"
{"larger", CSS_VAL_LARGER},
+#line 132 "cssvalues.gperf"
+ {"text-bottom", CSS_VAL_TEXT_BOTTOM},
#line 186 "cssvalues.gperf"
{"run-in", CSS_VAL_RUN_IN},
-#line 267 "cssvalues.gperf"
+#line 55 "cssvalues.gperf"
+ {"xx-large", CSS_VAL_XX_LARGE},
+#line 103 "cssvalues.gperf"
+ {"graytext", CSS_VAL_GRAYTEXT},
+#line 268 "cssvalues.gperf"
{"border-box", CSS_VAL_BORDER_BOX},
-#line 281 "cssvalues.gperf"
+#line 282 "cssvalues.gperf"
{"alternate", CSS_VAL_ALTERNATE},
#line 174 "cssvalues.gperf"
{"lower-latin", CSS_VAL_LOWER_LATIN},
-#line 81 "cssvalues.gperf"
- {"green", CSS_VAL_GREEN},
#line 194 "cssvalues.gperf"
{"table-row", CSS_VAL_TABLE_ROW},
-#line 232 "cssvalues.gperf"
- {"above", CSS_VAL_ABOVE},
+#line 94 "cssvalues.gperf"
+ {"activeborder", CSS_VAL_ACTIVEBORDER},
#line 66 "cssvalues.gperf"
{"expanded", CSS_VAL_EXPANDED},
#line 74 "cssvalues.gperf"
{"transparent", CSS_VAL_TRANSPARENT},
-#line 121 "cssvalues.gperf"
- {"grey", CSS_VAL_GREY},
#line 88 "cssvalues.gperf"
{"purple", CSS_VAL_PURPLE},
#line 190 "cssvalues.gperf"
{"inline-table", CSS_VAL_INLINE_TABLE},
-#line 107 "cssvalues.gperf"
- {"inactivecaption", CSS_VAL_INACTIVECAPTION},
#line 34 "cssvalues.gperf"
{"oblique", CSS_VAL_OBLIQUE},
-#line 131 "cssvalues.gperf"
- {"text-top", CSS_VAL_TEXT_TOP},
+#line 20 "cssvalues.gperf"
+ {"groove", CSS_VAL_GROOVE},
#line 201 "cssvalues.gperf"
{"default", CSS_VAL_DEFAULT},
+#line 148 "cssvalues.gperf"
+ {"square", CSS_VAL_SQUARE},
#line 130 "cssvalues.gperf"
{"super", CSS_VAL_SUPER},
+#line 70 "cssvalues.gperf"
+ {"sans-serif", CSS_VAL_SANS_SERIF},
+#line 75 "cssvalues.gperf"
+ {"aqua", CSS_VAL_AQUA},
#line 123 "cssvalues.gperf"
{"repeat", CSS_VAL_REPEAT},
-#line 108 "cssvalues.gperf"
- {"inactivecaptiontext", CSS_VAL_INACTIVECAPTIONTEXT},
-#line 114 "cssvalues.gperf"
- {"threedface", CSS_VAL_THREEDFACE},
-#line 126 "cssvalues.gperf"
- {"no-repeat", CSS_VAL_NO_REPEAT},
-#line 282 "cssvalues.gperf"
+#line 230 "cssvalues.gperf"
+ {"pre-line", CSS_VAL_PRE_LINE},
+#line 283 "cssvalues.gperf"
{"unfurl", CSS_VAL_UNFURL},
-#line 273 "cssvalues.gperf"
- {"ahead", CSS_VAL_AHEAD},
+#line 238 "cssvalues.gperf"
+ {"bidi-override", CSS_VAL_BIDI_OVERRIDE},
#line 196 "cssvalues.gperf"
{"table-column", CSS_VAL_TABLE_COLUMN},
+#line 131 "cssvalues.gperf"
+ {"text-top", CSS_VAL_TEXT_TOP},
#line 218 "cssvalues.gperf"
{"capitalize", CSS_VAL_CAPITALIZE},
#line 159 "cssvalues.gperf"
{"lower-roman", CSS_VAL_LOWER_ROMAN},
-#line 287 "cssvalues.gperf"
+#line 288 "cssvalues.gperf"
{"padding", CSS_VAL_PADDING},
+#line 95 "cssvalues.gperf"
+ {"activecaption", CSS_VAL_ACTIVECAPTION},
#line 117 "cssvalues.gperf"
{"threedshadow", CSS_VAL_THREEDSHADOW},
-#line 98 "cssvalues.gperf"
- {"buttonface", CSS_VAL_BUTTONFACE},
-#line 79 "cssvalues.gperf"
- {"fuchsia", CSS_VAL_FUCHSIA},
-#line 55 "cssvalues.gperf"
- {"xx-large", CSS_VAL_XX_LARGE},
#line 200 "cssvalues.gperf"
{"crosshair", CSS_VAL_CROSSHAIR},
-#line 246 "cssvalues.gperf"
+#line 247 "cssvalues.gperf"
{"higher", CSS_VAL_HIGHER},
#line 100 "cssvalues.gperf"
{"buttonshadow", CSS_VAL_BUTTONSHADOW},
-#line 94 "cssvalues.gperf"
- {"activeborder", CSS_VAL_ACTIVEBORDER},
-#line 253 "cssvalues.gperf"
+#line 232 "cssvalues.gperf"
+ {"break-word", CSS_VAL_BREAK_WORD},
+#line 254 "cssvalues.gperf"
{"marquee", CSS_VAL_MARQUEE},
#line 31 "cssvalues.gperf"
{"small-caption", CSS_VAL_SMALL_CAPTION},
@@ -582,32 +598,20 @@ findValue (register const char *str, register unsigned int len)
{"small-caps", CSS_VAL_SMALL_CAPS},
#line 122 "cssvalues.gperf"
{"-khtml-text", CSS_VAL__KHTML_TEXT},
-#line 20 "cssvalues.gperf"
- {"groove", CSS_VAL_GROOVE},
+#line 141 "cssvalues.gperf"
+ {"-khtml-left", CSS_VAL__KHTML_LEFT},
#line 97 "cssvalues.gperf"
{"background", CSS_VAL_BACKGROUND},
#line 178 "cssvalues.gperf"
{"katakana", CSS_VAL_KATAKANA},
-#line 148 "cssvalues.gperf"
- {"square", CSS_VAL_SQUARE},
-#line 259 "cssvalues.gperf"
+#line 260 "cssvalues.gperf"
{"separate", CSS_VAL_SEPARATE},
-#line 75 "cssvalues.gperf"
- {"aqua", CSS_VAL_AQUA},
-#line 70 "cssvalues.gperf"
- {"sans-serif", CSS_VAL_SANS_SERIF},
#line 32 "cssvalues.gperf"
{"status-bar", CSS_VAL_STATUS_BAR},
#line 65 "cssvalues.gperf"
{"semi-expanded", CSS_VAL_SEMI_EXPANDED},
-#line 230 "cssvalues.gperf"
- {"pre-line", CSS_VAL_PRE_LINE},
-#line 237 "cssvalues.gperf"
- {"bidi-override", CSS_VAL_BIDI_OVERRIDE},
#line 62 "cssvalues.gperf"
{"extra-condensed", CSS_VAL_EXTRA_CONDENSED},
-#line 95 "cssvalues.gperf"
- {"activecaption", CSS_VAL_ACTIVECAPTION},
#line 198 "cssvalues.gperf"
{"table-caption", CSS_VAL_TABLE_CAPTION},
#line 154 "cssvalues.gperf"
@@ -620,40 +624,42 @@ findValue (register const char *str, register unsigned int len)
{"message-box", CSS_VAL_MESSAGE_BOX},
#line 203 "cssvalues.gperf"
{"progress", CSS_VAL_PROGRESS},
+#line 16 "cssvalues.gperf"
+ {"-khtml-native", CSS_VAL__KHTML_NATIVE},
#line 177 "cssvalues.gperf"
{"hiragana", CSS_VAL_HIRAGANA},
#line 171 "cssvalues.gperf"
{"lower-greek", CSS_VAL_LOWER_GREEK},
#line 150 "cssvalues.gperf"
{"-khtml-diamond", CSS_VAL__KHTML_DIAMOND},
-#line 141 "cssvalues.gperf"
- {"-khtml-left", CSS_VAL__KHTML_LEFT},
+#line 224 "cssvalues.gperf"
+ {"no-close-quote", CSS_VAL_NO_CLOSE_QUOTE},
#line 61 "cssvalues.gperf"
{"ultra-condensed", CSS_VAL_ULTRA_CONDENSED},
#line 158 "cssvalues.gperf"
{"-khtml-tibetan", CSS_VAL__KHTML_TIBETAN},
#line 124 "cssvalues.gperf"
{"repeat-x", CSS_VAL_REPEAT_X},
-#line 265 "cssvalues.gperf"
+#line 266 "cssvalues.gperf"
{"-khtml-normal", CSS_VAL__KHTML_NORMAL},
#line 113 "cssvalues.gperf"
{"threeddarkshadow", CSS_VAL_THREEDDARKSHADOW},
#line 219 "cssvalues.gperf"
{"uppercase", CSS_VAL_UPPERCASE},
-#line 125 "cssvalues.gperf"
- {"repeat-y", CSS_VAL_REPEAT_Y},
#line 136 "cssvalues.gperf"
{"-khtml-auto", CSS_VAL__KHTML_AUTO},
#line 163 "cssvalues.gperf"
{"georgian", CSS_VAL_GEORGIAN},
+#line 229 "cssvalues.gperf"
+ {"pre-wrap", CSS_VAL_PRE_WRAP},
+#line 125 "cssvalues.gperf"
+ {"repeat-y", CSS_VAL_REPEAT_Y},
#line 109 "cssvalues.gperf"
{"infobackground", CSS_VAL_INFOBACKGROUND},
-#line 16 "cssvalues.gperf"
- {"-khtml-native", CSS_VAL__KHTML_NATIVE},
#line 157 "cssvalues.gperf"
{"-khtml-thai", CSS_VAL__KHTML_THAI},
-#line 224 "cssvalues.gperf"
- {"no-close-quote", CSS_VAL_NO_CLOSE_QUOTE},
+#line 226 "cssvalues.gperf"
+ {"open-quote", CSS_VAL_OPEN_QUOTE},
#line 173 "cssvalues.gperf"
{"lower-alpha", CSS_VAL_LOWER_ALPHA},
#line 156 "cssvalues.gperf"
@@ -662,6 +668,8 @@ findValue (register const char *str, register unsigned int len)
{"close-quote", CSS_VAL_CLOSE_QUOTE},
#line 104 "cssvalues.gperf"
{"highlight", CSS_VAL_HIGHLIGHT},
+#line 225 "cssvalues.gperf"
+ {"no-open-quote", CSS_VAL_NO_OPEN_QUOTE},
#line 231 "cssvalues.gperf"
{"-khtml-nowrap", CSS_VAL__KHTML_NOWRAP},
#line 67 "cssvalues.gperf"
@@ -672,24 +680,18 @@ findValue (register const char *str, register unsigned int len)
{"-khtml-persian", CSS_VAL__KHTML_PERSIAN},
#line 116 "cssvalues.gperf"
{"threedlightshadow", CSS_VAL_THREEDLIGHTSHADOW},
-#line 229 "cssvalues.gperf"
- {"pre-wrap", CSS_VAL_PRE_WRAP},
#line 96 "cssvalues.gperf"
{"appworkspace", CSS_VAL_APPWORKSPACE},
-#line 226 "cssvalues.gperf"
- {"open-quote", CSS_VAL_OPEN_QUOTE},
#line 68 "cssvalues.gperf"
{"ultra-expanded", CSS_VAL_ULTRA_EXPANDED},
#line 176 "cssvalues.gperf"
{"upper-latin", CSS_VAL_UPPER_LATIN},
-#line 225 "cssvalues.gperf"
- {"no-open-quote", CSS_VAL_NO_OPEN_QUOTE},
-#line 250 "cssvalues.gperf"
+#line 164 "cssvalues.gperf"
+ {"cjk-ideographic", CSS_VAL_CJK_IDEOGRAPHIC},
+#line 251 "cssvalues.gperf"
{"line-through", CSS_VAL_LINE_THROUGH},
#line 142 "cssvalues.gperf"
{"-khtml-right", CSS_VAL__KHTML_RIGHT},
-#line 164 "cssvalues.gperf"
- {"cjk-ideographic", CSS_VAL_CJK_IDEOGRAPHIC},
#line 160 "cssvalues.gperf"
{"upper-roman", CSS_VAL_UPPER_ROMAN},
#line 135 "cssvalues.gperf"
@@ -706,30 +708,28 @@ findValue (register const char *str, register unsigned int len)
{"buttonhighlight", CSS_VAL_BUTTONHIGHLIGHT},
#line 56 "cssvalues.gperf"
{"-khtml-xxx-large", CSS_VAL__KHTML_XXX_LARGE},
+#line 267 "cssvalues.gperf"
+ {"-khtml-around-floats", CSS_VAL__KHTML_AROUND_FLOATS},
#line 191 "cssvalues.gperf"
{"table-row-group", CSS_VAL_TABLE_ROW_GROUP},
#line 182 "cssvalues.gperf"
{"-khtml-close-quote", CSS_VAL__KHTML_CLOSE_QUOTE},
#line 179 "cssvalues.gperf"
{"hiragana-iroha", CSS_VAL_HIRAGANA_IROHA},
+#line 193 "cssvalues.gperf"
+ {"table-footer-group", CSS_VAL_TABLE_FOOTER_GROUP},
#line 195 "cssvalues.gperf"
{"table-column-group", CSS_VAL_TABLE_COLUMN_GROUP},
-#line 266 "cssvalues.gperf"
- {"-khtml-around-floats", CSS_VAL__KHTML_AROUND_FLOATS},
#line 175 "cssvalues.gperf"
{"upper-alpha", CSS_VAL_UPPER_ALPHA},
#line 181 "cssvalues.gperf"
{"-khtml-open-quote", CSS_VAL__KHTML_OPEN_QUOTE},
-#line 193 "cssvalues.gperf"
- {"table-footer-group", CSS_VAL_TABLE_FOOTER_GROUP},
-#line 192 "cssvalues.gperf"
- {"table-header-group", CSS_VAL_TABLE_HEADER_GROUP},
#line 165 "cssvalues.gperf"
{"-khtml-japanese-formal", CSS_VAL__KHTML_JAPANESE_FORMAL},
#line 166 "cssvalues.gperf"
{"-khtml-japanese-informal", CSS_VAL__KHTML_JAPANESE_INFORMAL},
-#line 172 "cssvalues.gperf"
- {"-khtml-upper-greek", CSS_VAL__KHTML_UPPER_GREEK},
+#line 192 "cssvalues.gperf"
+ {"table-header-group", CSS_VAL_TABLE_HEADER_GROUP},
#line 169 "cssvalues.gperf"
{"-khtml-trad-chinese-formal", CSS_VAL__KHTML_TRAD_CHINESE_FORMAL},
#line 170 "cssvalues.gperf"
@@ -737,7 +737,9 @@ findValue (register const char *str, register unsigned int len)
#line 167 "cssvalues.gperf"
{"-khtml-simp-chinese-formal", CSS_VAL__KHTML_SIMP_CHINESE_FORMAL},
#line 168 "cssvalues.gperf"
- {"-khtml-simp-chinese-informal", CSS_VAL__KHTML_SIMP_CHINESE_INFORMAL}
+ {"-khtml-simp-chinese-informal", CSS_VAL__KHTML_SIMP_CHINESE_INFORMAL},
+#line 172 "cssvalues.gperf"
+ {"-khtml-upper-greek", CSS_VAL__KHTML_UPPER_GREEK}
};
static const short lookup[] =
@@ -746,243 +748,227 @@ findValue (register const char *str, register unsigned int len)
2, -1, -1, -1, -1, 3, -1, -1, -1, -1,
4, -1, -1, -1, -1, 5, -1, -1, 6, -1,
7, -1, -1, -1, -1, 8, -1, -1, -1, -1,
- 9, -1, -1, -1, -1, 10, -1, -1, -1, -1,
- 11, -1, -1, -1, -1, 12, -1, -1, -1, -1,
- 13, 14, -1, -1, -1, 15, -1, -1, -1, -1,
- 16, -1, -1, -1, -1, 17, -1, -1, -1, -1,
- 18, -1, -1, -1, -1, 19, -1, -1, -1, -1,
+ 9, -1, -1, 10, -1, 11, -1, -1, -1, -1,
+ 12, -1, -1, -1, -1, 13, -1, -1, -1, -1,
+ 14, 15, -1, -1, -1, 16, -1, -1, -1, -1,
+ 17, 18, -1, -1, -1, 19, -1, -1, -1, -1,
20, -1, -1, -1, -1, 21, -1, -1, 22, -1,
- 23, -1, -1, 24, -1, 25, -1, -1, 26, -1,
- 27, -1, -1, -1, -1, 28, -1, -1, -1, 29,
- 30, -1, -1, 31, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 32, -1, -1, -1, -1, -1, -1,
- 33, -1, -1, -1, -1, 34, -1, -1, -1, -1,
- 35, -1, -1, 36, -1, -1, -1, -1, 37, -1,
- 38, -1, -1, -1, -1, 39, 40, -1, 41, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 42, -1, -1, -1, -1,
- 43, -1, -1, -1, -1, -1, -1, -1, 44, -1,
- 45, -1, -1, -1, -1, -1, -1, -1, 46, -1,
- -1, -1, -1, -1, -1, 47, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 48, -1, -1, -1, -1,
- 49, -1, -1, -1, -1, 50, -1, -1, 51, -1,
- 52, -1, -1, -1, -1, -1, -1, -1, 53, -1,
- 54, -1, -1, -1, -1, -1, 55, -1, -1, -1,
- 56, -1, -1, -1, -1, 57, -1, -1, -1, -1,
- 58, -1, -1, 59, -1, -1, -1, -1, -1, -1,
- 60, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 61, -1, -1, -1, -1, -1, -1, -1, 62, -1,
- 63, -1, -1, 64, -1, 65, 66, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 67, -1, -1, 68, -1,
- 69, -1, -1, -1, -1, 70, -1, -1, 71, -1,
- -1, -1, -1, 72, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 73, -1, -1, -1, -1, -1, -1,
- 74, -1, -1, -1, -1, 75, -1, -1, 76, -1,
- -1, -1, -1, 77, -1, -1, -1, -1, 78, -1,
- 79, -1, -1, -1, -1, 80, 81, -1, 82, -1,
- 83, -1, -1, 84, -1, 85, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 86, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 87, -1, -1, -1, -1, -1, -1, -1, 88, -1,
- 89, -1, -1, -1, -1, 90, -1, -1, -1, -1,
- 91, 92, -1, -1, -1, 93, 94, -1, 95, -1,
- 96, -1, -1, 97, -1, -1, -1, -1, 98, -1,
- 99, 100, -1, 101, -1, 102, -1, -1, -1, -1,
- 103, -1, -1, 104, -1, 105, -1, -1, -1, -1,
- -1, -1, -1, 106, -1, 107, -1, -1, -1, -1,
- 108, -1, -1, -1, -1, 109, -1, -1, -1, -1,
- 110, -1, -1, -1, -1, -1, -1, -1, 111, -1,
- -1, -1, -1, -1, -1, 112, -1, -1, 113, -1,
- -1, -1, -1, -1, -1, 114, -1, -1, -1, -1,
- 115, -1, -1, 116, -1, 117, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 118, -1, -1, 119, -1,
- -1, -1, -1, 120, -1, 121, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 122, -1, -1, 123, -1,
- 124, -1, -1, -1, -1, 125, -1, -1, 126, -1,
- 127, -1, -1, -1, -1, 128, -1, -1, 129, -1,
- 130, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 131, -1, -1, -1, -1, -1, -1, -1, 132, -1,
- 133, -1, -1, 134, -1, 135, -1, -1, -1, -1,
- 136, -1, -1, -1, -1, -1, 137, -1, -1, -1,
- 138, -1, -1, 139, -1, -1, -1, -1, 140, -1,
- 141, -1, -1, -1, -1, 142, -1, -1, 143, -1,
- 144, 145, -1, -1, -1, 146, -1, -1, 147, -1,
- -1, -1, -1, -1, -1, -1, 148, -1, -1, -1,
- -1, -1, -1, 149, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 150, -1, -1, -1, -1, 151, -1,
- 152, -1, -1, -1, -1, 153, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 154, -1, -1, -1, -1,
- -1, -1, -1, 155, -1, -1, -1, -1, -1, -1,
- 156, -1, -1, -1, -1, 157, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 158, -1,
- 159, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 160, -1,
- 161, -1, -1, 162, -1, -1, -1, -1, 163, -1,
- -1, -1, -1, 164, -1, 165, -1, -1, -1, -1,
- -1, -1, -1, 166, -1, -1, -1, -1, -1, -1,
- 167, -1, -1, -1, -1, 168, -1, -1, 169, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 170, -1, -1, -1, -1, -1, -1, -1, 171, -1,
- 172, -1, -1, -1, -1, 173, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 174, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 175, -1, -1, -1,
- 176, -1, -1, -1, -1, 177, -1, -1, -1, -1,
- 178, -1, -1, -1, -1, 179, -1, -1, -1, -1,
- 180, -1, -1, -1, -1, 181, -1, -1, 182, -1,
- 183, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 184, -1,
- -1, -1, -1, -1, -1, 185, -1, -1, -1, -1,
- 186, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 187, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 188, -1, -1, -1, -1,
- 189, -1, -1, 190, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 191, -1, -1, -1, -1, -1, -1,
- 192, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 193, -1, -1, -1, -1, 194, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 195, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 196, -1,
- 197, -1, -1, -1, -1, 198, -1, -1, 199, -1,
- 200, -1, -1, -1, -1, -1, -1, -1, 201, -1,
- -1, -1, -1, -1, -1, 202, -1, -1, -1, -1,
+ 23, -1, -1, -1, -1, 24, -1, -1, 25, -1,
+ 26, -1, -1, 27, -1, 28, -1, -1, 29, -1,
+ 30, -1, -1, -1, -1, 31, -1, -1, -1, 32,
+ 33, -1, -1, 34, -1, -1, -1, -1, 35, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 36, -1,
+ 37, -1, -1, -1, -1, 38, -1, -1, 39, -1,
+ 40, -1, -1, 41, -1, -1, -1, -1, 42, -1,
+ 43, -1, -1, 44, -1, 45, -1, -1, 46, -1,
+ -1, -1, -1, 47, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 48, -1, -1, 49, -1,
+ 50, 51, -1, 52, -1, -1, 53, -1, 54, -1,
+ 55, -1, -1, 56, -1, -1, -1, -1, 57, -1,
+ -1, -1, -1, -1, -1, 58, -1, -1, -1, -1,
+ -1, 59, -1, 60, -1, 61, -1, -1, -1, -1,
+ 62, 63, -1, -1, -1, 64, -1, -1, -1, -1,
+ 65, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 66, -1, -1, -1, -1, -1, -1, -1, -1, 67,
+ 68, 69, -1, -1, -1, 70, -1, -1, 71, -1,
+ 72, -1, -1, -1, -1, -1, -1, -1, 73, -1,
+ 74, 75, -1, -1, -1, -1, -1, -1, -1, -1,
+ 76, -1, -1, 77, -1, -1, -1, -1, 78, -1,
+ 79, -1, -1, 80, -1, 81, -1, -1, -1, -1,
+ -1, -1, -1, 82, -1, -1, -1, -1, -1, -1,
+ -1, 83, -1, -1, -1, -1, -1, -1, -1, -1,
+ 84, -1, -1, -1, -1, 85, 86, -1, 87, -1,
+ -1, -1, -1, 88, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 89, -1, -1, -1, 90, 91, -1, -1, 92, -1,
+ -1, 93, -1, -1, -1, -1, -1, -1, -1, -1,
+ 94, -1, -1, 95, -1, 96, -1, -1, -1, -1,
+ 97, -1, -1, 98, -1, 99, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 100, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 101, -1, -1, -1, -1, 102, -1,
+ 103, -1, -1, -1, 104, 105, -1, -1, -1, -1,
+ 106, -1, -1, -1, -1, 107, -1, -1, 108, -1,
+ 109, -1, -1, -1, -1, -1, -1, -1, 110, -1,
+ 111, -1, -1, -1, -1, 112, -1, -1, 113, -1,
+ 114, -1, -1, 115, -1, 116, -1, -1, -1, -1,
+ -1, -1, -1, 117, -1, 118, -1, -1, -1, -1,
+ 119, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 120, -1, -1, -1, -1, -1, 121, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 122, -1,
+ -1, -1, -1, -1, -1, 123, -1, -1, -1, -1,
+ 124, 125, -1, -1, -1, 126, -1, -1, -1, -1,
+ -1, -1, -1, 127, -1, 128, -1, -1, 129, -1,
+ -1, -1, -1, 130, -1, 131, -1, -1, -1, -1,
+ -1, -1, -1, 132, -1, 133, -1, -1, 134, -1,
+ 135, -1, -1, -1, -1, 136, -1, -1, 137, -1,
+ 138, -1, -1, -1, -1, 139, -1, -1, -1, -1,
+ 140, -1, -1, 141, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 142, -1, -1, -1, -1, 143, -1, -1, -1, -1,
+ 144, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 145, 146, -1, -1, -1, -1, -1, -1, 147, -1,
+ 148, -1, -1, 149, -1, 150, -1, -1, 151, -1,
+ 152, 153, -1, -1, -1, 154, -1, -1, 155, -1,
+ -1, -1, -1, 156, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 157, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 158, -1, -1, -1, -1, 159, -1, -1, 160, -1,
+ -1, -1, -1, 161, -1, 162, -1, -1, -1, -1,
+ -1, -1, -1, 163, -1, -1, -1, -1, -1, -1,
+ 164, -1, -1, 165, -1, 166, -1, -1, -1, 167,
+ -1, 168, -1, -1, -1, -1, -1, -1, 169, -1,
+ 170, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 171, -1,
+ -1, -1, -1, 172, -1, -1, -1, -1, 173, -1,
+ -1, -1, -1, 174, -1, 175, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 203, -1, -1, 204, -1, -1, -1, -1, -1, -1,
- 205, -1, -1, -1, -1, -1, -1, -1, 206, -1,
+ 176, -1, -1, -1, -1, 177, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 207, -1, -1, -1, -1, 208, -1,
- 209, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 178, -1, -1, 179, -1, -1, -1, -1, -1, -1,
+ 180, -1, -1, 181, -1, 182, -1, -1, 183, -1,
+ -1, -1, -1, 184, -1, 185, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 186, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 210, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 211, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 212, -1,
+ 187, -1, -1, 188, -1, -1, -1, -1, -1, -1,
+ 189, -1, -1, 190, -1, 191, -1, -1, 192, -1,
+ 193, -1, -1, 194, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 195, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 213, -1, 214, -1, -1, -1, -1,
- 215, -1, -1, -1, -1, -1, -1, -1, 216, -1,
- 217, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 218, -1, -1, -1, -1,
- 219, -1, -1, -1, -1, 220, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 221, -1,
- -1, -1, -1, -1, -1, 222, -1, -1, 223, -1,
+ -1, -1, -1, -1, -1, 196, -1, -1, -1, -1,
+ 197, -1, -1, 198, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 199, -1, -1, -1,
+ 200, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 201, -1, -1, -1, -1, 202, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 203, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 204, -1,
+ 205, -1, -1, -1, -1, 206, -1, -1, -1, -1,
+ 207, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 208, -1, -1, 209, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 224, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 225, -1, -1, -1, -1, -1, -1,
- 226, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 210, -1, -1, -1, -1, -1, -1,
+ 211, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 227, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 212, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 213, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 214, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 228, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 229, -1, 230, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 215, -1, 216, -1, -1, 217, -1,
+ 218, -1, -1, -1, -1, -1, -1, -1, 219, -1,
+ 220, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 231, -1, -1, -1, -1,
+ -1, -1, -1, 221, -1, -1, -1, -1, -1, -1,
+ 222, -1, -1, -1, -1, 223, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 224, -1,
+ -1, -1, -1, -1, -1, 225, -1, -1, 226, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 232, -1,
- 233, -1, -1, -1, -1, 234, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 235, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 236, -1,
- -1, 237, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 238, -1, -1, -1, -1, -1, -1,
+ 227, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 228, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 239, -1, -1, -1, -1, -1, -1, -1, 240, -1,
- -1, -1, -1, 241, -1, -1, -1, -1, -1, -1,
+ 229, -1, -1, -1, -1, -1, 230, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 242, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 231, -1,
+ 232, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 233, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 234, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 243, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 244, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 235, -1,
+ 236, -1, -1, -1, -1, 237, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 238, -1, -1, 239, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 245, -1, -1, -1, -1,
- 246, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 247, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 248, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 240, -1,
+ -1, 241, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 242, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 243, -1, -1, -1, -1, -1, -1, -1, 244, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 245, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 249, -1, 250, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 246, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 251, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 247, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 248, -1, -1, -1, -1, -1, -1,
+ 249, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 250, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 252, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 253, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 251, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 254, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 255, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 252, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 256, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 257,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 253, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 254, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 258, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 259, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 260, -1, -1, -1, -1,
+ 255, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 256, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 257, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 258,
+ -1, -1, -1, -1, -1, -1, -1, -1, 259, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 261, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 260, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 261, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, 262, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 263, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 263, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 264, -1, -1, -1, -1, 265, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 264, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
@@ -995,10 +981,13 @@ findValue (register const char *str, register unsigned int len)
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 265, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 266, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 267, -1, -1, -1, -1, 268, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
@@ -1008,7 +997,6 @@ findValue (register const char *str, register unsigned int len)
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 266, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
@@ -1017,19 +1005,14 @@ findValue (register const char *str, register unsigned int len)
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 267, -1,
- -1, -1, -1, 268, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 269, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 269, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
@@ -1041,13 +1024,14 @@ findValue (register const char *str, register unsigned int len)
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 270, -1,
+ -1, -1, -1, 271, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 272, -1, -1, -1, -1, 273, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 270, -1, -1, -1, -1,
- 271, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 272, -1, -1, -1, -1, 273
+ -1, -1, -1, -1, -1, 274
};
if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
@@ -1069,7 +1053,7 @@ findValue (register const char *str, register unsigned int len)
}
return 0;
}
-#line 288 "cssvalues.gperf"
+#line 289 "cssvalues.gperf"
static const char * const valueList[] = {
"",
@@ -1291,6 +1275,7 @@ static const char * const valueList[] = {
"pre-wrap",
"pre-line",
"-khtml-nowrap",
+"break-word",
"above",
"absolute",
"always",
diff --git a/khtml/css/cssvalues.h b/khtml/css/cssvalues.h
index 0e0442c79..36a365754 100644
--- a/khtml/css/cssvalues.h
+++ b/khtml/css/cssvalues.h
@@ -227,63 +227,64 @@ DOM::DOMString getValueName(unsigned short id) KDE_NO_EXPORT;
#define CSS_VAL_PRE_WRAP 216
#define CSS_VAL_PRE_LINE 217
#define CSS_VAL__KHTML_NOWRAP 218
-#define CSS_VAL_ABOVE 219
-#define CSS_VAL_ABSOLUTE 220
-#define CSS_VAL_ALWAYS 221
-#define CSS_VAL_AVOID 222
-#define CSS_VAL_BELOW 223
-#define CSS_VAL_BIDI_OVERRIDE 224
-#define CSS_VAL_BLINK 225
-#define CSS_VAL_BOTH 226
-#define CSS_VAL_CROP 227
-#define CSS_VAL_CROSS 228
-#define CSS_VAL_EMBED 229
-#define CSS_VAL_FIXED 230
-#define CSS_VAL_HAND 231
-#define CSS_VAL_HIDE 232
-#define CSS_VAL_HIGHER 233
-#define CSS_VAL_INVERT 234
-#define CSS_VAL_LANDSCAPE 235
-#define CSS_VAL_LEVEL 236
-#define CSS_VAL_LINE_THROUGH 237
-#define CSS_VAL_LOUD 238
-#define CSS_VAL_LOWER 239
-#define CSS_VAL_MARQUEE 240
-#define CSS_VAL_MIX 241
-#define CSS_VAL_OVERLINE 242
-#define CSS_VAL_PORTRAIT 243
-#define CSS_VAL_RELATIVE 244
-#define CSS_VAL_SCROLL 245
-#define CSS_VAL_SEPARATE 246
-#define CSS_VAL_SHOW 247
-#define CSS_VAL_STATIC 248
-#define CSS_VAL_THICK 249
-#define CSS_VAL_THIN 250
-#define CSS_VAL_UNDERLINE 251
-#define CSS_VAL__KHTML_NORMAL 252
-#define CSS_VAL__KHTML_AROUND_FLOATS 253
-#define CSS_VAL_BORDER_BOX 254
-#define CSS_VAL_CONTENT_BOX 255
-#define CSS_VAL_ENABLED 256
-#define CSS_VAL_DISABLED 257
-#define CSS_VAL_FORWARDS 258
-#define CSS_VAL_BACKWARDS 259
-#define CSS_VAL_AHEAD 260
-#define CSS_VAL_REVERSE 261
-#define CSS_VAL_UP 262
-#define CSS_VAL_DOWN 263
-#define CSS_VAL_SLOW 264
-#define CSS_VAL_FAST 265
-#define CSS_VAL_INFINITE 266
-#define CSS_VAL_SLIDE 267
-#define CSS_VAL_ALTERNATE 268
-#define CSS_VAL_UNFURL 269
-#define CSS_VAL_CLIP 270
-#define CSS_VAL_ELLIPSIS 271
-#define CSS_VAL_BORDER 272
-#define CSS_VAL_CONTENT 273
-#define CSS_VAL_PADDING 274
+#define CSS_VAL_BREAK_WORD 219
+#define CSS_VAL_ABOVE 220
+#define CSS_VAL_ABSOLUTE 221
+#define CSS_VAL_ALWAYS 222
+#define CSS_VAL_AVOID 223
+#define CSS_VAL_BELOW 224
+#define CSS_VAL_BIDI_OVERRIDE 225
+#define CSS_VAL_BLINK 226
+#define CSS_VAL_BOTH 227
+#define CSS_VAL_CROP 228
+#define CSS_VAL_CROSS 229
+#define CSS_VAL_EMBED 230
+#define CSS_VAL_FIXED 231
+#define CSS_VAL_HAND 232
+#define CSS_VAL_HIDE 233
+#define CSS_VAL_HIGHER 234
+#define CSS_VAL_INVERT 235
+#define CSS_VAL_LANDSCAPE 236
+#define CSS_VAL_LEVEL 237
+#define CSS_VAL_LINE_THROUGH 238
+#define CSS_VAL_LOUD 239
+#define CSS_VAL_LOWER 240
+#define CSS_VAL_MARQUEE 241
+#define CSS_VAL_MIX 242
+#define CSS_VAL_OVERLINE 243
+#define CSS_VAL_PORTRAIT 244
+#define CSS_VAL_RELATIVE 245
+#define CSS_VAL_SCROLL 246
+#define CSS_VAL_SEPARATE 247
+#define CSS_VAL_SHOW 248
+#define CSS_VAL_STATIC 249
+#define CSS_VAL_THICK 250
+#define CSS_VAL_THIN 251
+#define CSS_VAL_UNDERLINE 252
+#define CSS_VAL__KHTML_NORMAL 253
+#define CSS_VAL__KHTML_AROUND_FLOATS 254
+#define CSS_VAL_BORDER_BOX 255
+#define CSS_VAL_CONTENT_BOX 256
+#define CSS_VAL_ENABLED 257
+#define CSS_VAL_DISABLED 258
+#define CSS_VAL_FORWARDS 259
+#define CSS_VAL_BACKWARDS 260
+#define CSS_VAL_AHEAD 261
+#define CSS_VAL_REVERSE 262
+#define CSS_VAL_UP 263
+#define CSS_VAL_DOWN 264
+#define CSS_VAL_SLOW 265
+#define CSS_VAL_FAST 266
+#define CSS_VAL_INFINITE 267
+#define CSS_VAL_SLIDE 268
+#define CSS_VAL_ALTERNATE 269
+#define CSS_VAL_UNFURL 270
+#define CSS_VAL_CLIP 271
+#define CSS_VAL_ELLIPSIS 272
+#define CSS_VAL_BORDER 273
+#define CSS_VAL_CONTENT 274
+#define CSS_VAL_PADDING 275
-#define CSS_VAL_TOTAL 275
+#define CSS_VAL_TOTAL 276
#endif
diff --git a/khtml/css/cssvalues.in b/khtml/css/cssvalues.in
index 86db77670..1ad99c38d 100644
--- a/khtml/css/cssvalues.in
+++ b/khtml/css/cssvalues.in
@@ -309,6 +309,11 @@ pre-wrap
pre-line
-khtml-nowrap
#
+# CSS_PROP_WORD_WRAP
+#
+#normal
+break-word
+#
# Unordered rest
#
above
diff --git a/khtml/rendering/bidi.cpp b/khtml/rendering/bidi.cpp
index 19de828a0..bd010047a 100644
--- a/khtml/rendering/bidi.cpp
+++ b/khtml/rendering/bidi.cpp
@@ -44,10 +44,10 @@ namespace khtml {
// an iterator which goes through a BidiParagraph
struct BidiIterator
{
- BidiIterator() : par(0), obj(0), pos(0) {}
- BidiIterator(RenderBlock *_par, RenderObject *_obj, unsigned int _pos) : par(_par), obj(_obj), pos(_pos) {}
+ BidiIterator() : par(0), obj(0), pos(0), endOfInline(0) {}
+ BidiIterator(RenderBlock *_par, RenderObject *_obj, unsigned int _pos, bool eoi=false) : par(_par), obj(_obj), pos(_pos), endOfInline(eoi) {}
- void increment( BidiState &bidi );
+ void increment( BidiState &bidi, bool skipInlines=true );
bool atEnd() const;
@@ -57,6 +57,7 @@ struct BidiIterator
RenderBlock *par;
RenderObject *obj;
unsigned int pos;
+ bool endOfInline;
};
@@ -128,21 +129,6 @@ static int getBorderPaddingMargin(RenderObject* child, bool endOfInline)
return result;
}
-static int inlineWidth(RenderObject* child, bool start = true, bool end = true)
-{
- int extraWidth = 0;
- RenderObject* parent = child->parent();
- while (parent->isInline() && !parent->isInlineBlockOrInlineTable()) {
- if (start && parent->firstChild() == child)
- extraWidth += getBorderPaddingMargin(parent, false);
- if (end && parent->lastChild() == child)
- extraWidth += getBorderPaddingMargin(parent, true);
- child = parent;
- parent = child->parent();
- }
- return extraWidth;
-}
-
#ifndef NDEBUG
static bool inBidiRunDetach;
#endif
@@ -241,15 +227,19 @@ inline bool operator!=( const BidiIterator &it1, const BidiIterator &it2 )
return false;
}
+// when modifying this function, make sure you check InlineMinMaxIterator::next() as well.
static inline RenderObject *Bidinext(RenderObject *par, RenderObject *current, BidiState &bidi,
- bool skipInlines = true)
+ bool skipInlines = true, bool *endOfInline = 0 )
{
RenderObject *next = 0;
+ bool oldEndOfInline = endOfInline ? *endOfInline : false;
+ if (oldEndOfInline)
+ *endOfInline = false;
while(current != 0)
{
//kdDebug( 6040 ) << "current = " << current << endl;
- if (!current->isFloating() && !current->isReplaced() && !current->isPositioned()) {
+ if (!oldEndOfInline && !current->isFloating() && !current->isReplaced() && !current->isPositioned()) {
next = current->firstChild();
if ( next && adjustEmbedding ) {
EUnicodeBidi ub = next->style()->unicodeBidi();
@@ -262,6 +252,12 @@ static inline RenderObject *Bidinext(RenderObject *par, RenderObject *current, B
}
}
if (!next) {
+ if (!skipInlines && !oldEndOfInline && current->isInlineFlow() && endOfInline) {
+ next = current;
+ *endOfInline = true;
+ break;
+ }
+
while (current && current != par) {
next = current->nextSibling();
if (next) break;
@@ -269,6 +265,11 @@ static inline RenderObject *Bidinext(RenderObject *par, RenderObject *current, B
embed( TQChar::DirPDF, bidi );
}
current = current->parent();
+ if (!skipInlines && current && current != par && current->isInlineFlow() && endOfInline) {
+ next = current;
+ *endOfInline = true;
+ break;
+ }
}
}
@@ -300,17 +301,17 @@ static RenderObject *first( RenderObject *par, BidiState &bidi, bool skipInlines
return o;
}
-inline void BidiIterator::increment (BidiState &bidi)
+inline void BidiIterator::increment (BidiState &bidi, bool skipInlines)
{
if(!obj) return;
if(obj->isText()) {
pos++;
if(pos >= static_cast<RenderText *>(obj)->stringLength()) {
- obj = Bidinext( par, obj, bidi );
+ obj = Bidinext( par, obj, bidi, skipInlines );
pos = 0;
}
} else {
- obj = Bidinext( par, obj, bidi );
+ obj = Bidinext( par, obj, bidi, skipInlines, &endOfInline );
pos = 0;
}
}
@@ -1322,45 +1323,6 @@ void RenderBlock::bidiReorderLine(const BidiIterator &start, const BidiIterator
#endif
}
-#ifdef APPLE_CHANGES // KDE handles compact blocks differently
-static void buildCompactRuns(RenderObject* compactObj, BidiState &bidi)
-{
- sBuildingCompactRuns = true;
- if (!compactObj->isRenderBlock()) {
- // Just append a run for our object.
- isLineEmpty = false;
- addRun(new (compactObj->renderArena()) BidiRun(0, compactObj->length(), compactObj, bidi.context, dir));
- }
- else {
- // Format the compact like it is its own single line. We build up all the runs for
- // the little compact and then reorder them for bidi.
- RenderBlock* compactBlock = static_cast<RenderBlock*>(compactObj);
- adjustEmbedding = true;
- BidiIterator start(compactBlock, first(compactBlock, bidi), 0);
- adjustEmbedding = false;
- BidiIterator end = start;
-
- betweenMidpoints = false;
- isLineEmpty = true;
- previousLineBrokeAtBR = true;
-
- end = compactBlock->findNextLineBreak(start, bidi);
- if (!isLineEmpty)
- compactBlock->bidiReorderLine(start, end, bidi);
- }
-
-
- sCompactFirstBidiRun = sFirstBidiRun;
- sCompactLastBidiRun = sLastBidiRun;
- sCompactBidiRunCount = sBidiRunCount;
-
- sNumMidpoints = 0;
- sCurrMidpoint = 0;
- betweenMidpoints = false;
- sBuildingCompactRuns = false;
-}
-#endif
-
void RenderBlock::layoutInlineChildren(bool relayoutChildren, int breakBeforeLine)
{
BidiState bidi;
@@ -1470,13 +1432,6 @@ void RenderBlock::layoutInlineChildren(bool relayoutChildren, int breakBeforeLin
oldStart = start;
oldBidi = bidi;
}
-#ifdef APPLE_CHANGES // KDE handles compact blocks differently
- if (m_firstLine && firstChild() && firstChild()->isCompact()) {
- buildCompactRuns(firstChild(), bidi);
- start.obj = firstChild()->nextSibling();
- end = start;
- }
-#endif
if (lineCount == breakBeforeLine) {
m_height = pageTopAfter(oldPos);
pagebreakHint = true;
@@ -1491,15 +1446,6 @@ redo_linebreak:
// At the same time we figure out where border/padding/margin should be applied for
// inline flow boxes.
-#ifdef APPLE_CHANGES // KDE handles compact blocks differently
- if (sCompactFirstBidiRun) {
- // We have a compact line sharing this line. Link the compact runs
- // to our runs to create a single line of runs.
- sCompactLastBidiRun->nextRun = sFirstBidiRun;
- sFirstBidiRun = sCompactFirstBidiRun;
- sBidiRunCount += sCompactBidiRunCount;
- }
-#endif
if (sBidiRunCount) {
InlineFlowBox* lineBox = constructLine(start, end);
if (lineBox) {
@@ -1698,7 +1644,7 @@ BidiIterator RenderBlock::findNextLineBreak(BidiIterator &start, BidiState &bidi
}
}
adjustEmbedding = true;
- start.increment(bidi);
+ start.increment(bidi, false /*skipInlines*/);
adjustEmbedding = false;
}
@@ -1714,6 +1660,11 @@ BidiIterator RenderBlock::findNextLineBreak(BidiIterator &start, BidiState &bidi
return start;
}
+ // This variable says we have encountered an object after which initial whitespace should be ignored (e.g. InlineFlows at the begining of a line).
+ // Either we have nothing to do, if there is no whitespace after the object... or we have to enter the ignoringSpaces state.
+ // This dilemma will be resolved when we have a peek at the next object.
+ bool checkShouldIgnoreInitialWhitespace = false;
+
// This variable is used only if whitespace isn't set to PRE, and it tells us whether
// or not we are currently ignoring whitespace.
bool ignoringSpaces = false;
@@ -1727,13 +1678,14 @@ BidiIterator RenderBlock::findNextLineBreak(BidiIterator &start, BidiState &bidi
BidiIterator lBreak = start;
- RenderObject *o = start.obj;
- RenderObject *last = o;
+ InlineMinMaxIterator it(start.par, start.obj, start.endOfInline, false /*skipPositioned*/);
+ InlineMinMaxIterator lastIt = it;
int pos = start.pos;
bool prevLineBrokeCleanly = previousLineBrokeAtBR;
previousLineBrokeAtBR = false;
+ RenderObject* o = it.current;
while( o ) {
#ifdef DEBUG_LINEBREAKS
kdDebug(6041) << "new object "<< o <<" width = " << w <<" tmpw = " << tmpW << endl;
@@ -1742,6 +1694,7 @@ BidiIterator RenderBlock::findNextLineBreak(BidiIterator &start, BidiState &bidi
if( w + tmpW <= width ) {
lBreak.obj = o;
lBreak.pos = 0;
+ lBreak.endOfInline = it.endOfInline;
// A <br> always breaks a line, so don't let the line be collapsed
// away. Also, the space at the end of a line with a <br> does not
@@ -1792,13 +1745,22 @@ BidiIterator RenderBlock::findNextLineBreak(BidiIterator &start, BidiState &bidi
}
}
} else if (o->isInlineFlow()) {
- // Only empty inlines matter. We treat those similarly to replaced elements.
- KHTMLAssert(!o->firstChild());
- tmpW += o->marginLeft()+o->borderLeft()+o->paddingLeft()+
- o->marginRight()+o->borderRight()+o->paddingRight();
+ tmpW += getBorderPaddingMargin(o, it.endOfInline);
+ if (isLineEmpty) isLineEmpty = !tmpW;
+ if (o->isWordBreak()) { // #### shouldn't be an InlineFlow!
+ w += tmpW;
+ tmpW = 0;
+ lBreak.obj = o;
+ lBreak.pos = 0;
+ lBreak.endOfInline = it.endOfInline;
+ } else if (!it.endOfInline) {
+ // this is the beginning of the line (other non-initial inline flows are handled directly when
+ // incrementing the iterator below). We want to skip initial whitespace as much as possible.
+ checkShouldIgnoreInitialWhitespace = true;
+ }
} else if ( o->isReplaced() || o->isGlyph() ) {
EWhiteSpace currWS = o->style()->whiteSpace();
- EWhiteSpace lastWS = last->style()->whiteSpace();
+ EWhiteSpace lastWS = lastIt.current->style()->whiteSpace();
// WinIE marquees have different whitespace characteristics by default when viewed from
// the outside vs. the inside. Text inside is NOWRAP, and so we altered the marquee's
@@ -1806,8 +1768,8 @@ BidiIterator RenderBlock::findNextLineBreak(BidiIterator &start, BidiState &bidi
// for the marquee when checking for line breaking.
if (o->isHTMLMarquee() && o->layer() && o->layer()->marquee())
currWS = o->layer()->marquee()->whiteSpace();
- if (last->isHTMLMarquee() && last->layer() && last->layer()->marquee())
- lastWS = last->layer()->marquee()->whiteSpace();
+ if (lastIt.current->isHTMLMarquee() && lastIt.current->layer() && lastIt.current->layer()->marquee())
+ lastWS = lastIt.current->layer()->marquee()->whiteSpace();
// Break on replaced elements if either has normal white-space.
if (currWS == NORMAL || lastWS == NORMAL) {
@@ -1815,9 +1777,10 @@ BidiIterator RenderBlock::findNextLineBreak(BidiIterator &start, BidiState &bidi
tmpW = 0;
lBreak.obj = o;
lBreak.pos = 0;
+ lBreak.endOfInline = false;
}
- tmpW += o->width()+o->marginLeft()+o->marginRight()+inlineWidth(o);
+ tmpW += o->width()+o->marginLeft()+o->marginRight();
if (ignoringSpaces) {
BidiIterator startMid( 0, o, 0 );
addMidpoint(startMid);
@@ -1828,21 +1791,7 @@ BidiIterator RenderBlock::findNextLineBreak(BidiIterator &start, BidiState &bidi
trailingSpaceObject = 0;
if (o->isListMarker() && o->style()->listStylePosition() == OUTSIDE) {
- // The marker must not have an effect on whitespace at the start
- // of the line. We start ignoring spaces to make sure that any additional
- // spaces we see will be discarded.
- //
- // Optimize for a common case. If we can't find whitespace after the list
- // item, then this is all moot. -dwh
- RenderObject* next = Bidinext( start.par, o, bidi );
- if (!style()->preserveWS() && next && next->isText() && static_cast<RenderText*>(next)->stringLength() > 0 &&
- (static_cast<RenderText*>(next)->text()[0].category() == TQChar::Separator_Space ||
- static_cast<RenderText*>(next)->text()[0] == '\n')) {
- currentCharacterIsSpace = true;
- ignoringSpaces = true;
- BidiIterator endMid( 0, o, 0 );
- addMidpoint(endMid);
- }
+ checkShouldIgnoreInitialWhitespace = true;
}
} else if ( o->isText() ) {
RenderText *t = static_cast<RenderText *>(o);
@@ -1859,10 +1808,8 @@ BidiIterator RenderBlock::findNextLineBreak(BidiIterator &start, BidiState &bidi
#ifdef APPLE_CHANGES
int wordSpacing = o->style()->wordSpacing();
#endif
- bool appliedStartWidth = pos > 0; // If the span originated on a previous line,
- // then assume the start width has been applied.
- bool appliedEndWidth = false;
bool nextIsSoftBreakable = false;
+ bool checkBreakWord = autoWrap && (o->style()->wordWrap() == WWBREAKWORD);
while(len) {
bool previousCharacterIsSpace = currentCharacterIsSpace;
@@ -1870,6 +1817,8 @@ BidiIterator RenderBlock::findNextLineBreak(BidiIterator &start, BidiState &bidi
nextIsSoftBreakable = false;
const TQChar c = str[pos];
currentCharacterIsSpace = c == ' ';
+ checkBreakWord &= !w; // only break words when no other breaking opportunity exists earlier
+ // on the line (even within the text object we are currently processing)
if (preserveWS || !currentCharacterIsSpace)
isLineEmpty = false;
@@ -1921,13 +1870,11 @@ BidiIterator RenderBlock::findNextLineBreak(BidiIterator &start, BidiState &bidi
}
}
- if ( (preserveLF && c == '\n') || (autoWrap && (isBreakable( str, pos, strlen ) || isSoftBreakable)) ) {
+ const bool isbreakablePosition = (preserveLF && c == '\n') || (autoWrap &&
+ (isBreakable( str, pos, strlen ) || isSoftBreakable));
+ if ( isbreakablePosition || checkBreakWord ) {
tmpW += t->width(lastSpace, pos - lastSpace, f);
- if (!appliedStartWidth) {
- tmpW += inlineWidth(o, true, false);
- appliedStartWidth = true;
- }
#ifdef APPLE_CHANGES
applyWordSpacing = (wordSpacing && currentCharacterIsSpace && !previousCharacterIsSpace &&
!t->containsOnlyWhitespace(pos+1, strlen-(pos+1)));
@@ -1957,9 +1904,14 @@ BidiIterator RenderBlock::findNextLineBreak(BidiIterator &start, BidiState &bidi
}
if (autoWrap) {
- if (w+tmpW > width)
+ if (w+tmpW > width) {
+ if (checkBreakWord && pos) {
+ lBreak.obj = o;
+ lBreak.pos = pos-1;
+ lBreak.endOfInline = false;
+ }
goto end;
- else if ( (pos > 1 && str[pos-1].unicode() == SOFT_HYPHEN) )
+ } else if ( (pos > 1 && str[pos-1].unicode() == SOFT_HYPHEN) )
// Subtract the width of the soft hyphen out since we fit on a line.
tmpW -= t->width(pos-1, 1, f);
}
@@ -1967,6 +1919,7 @@ BidiIterator RenderBlock::findNextLineBreak(BidiIterator &start, BidiState &bidi
if( preserveLF && *(str+pos) == '\n' ) {
lBreak.obj = o;
lBreak.pos = pos;
+ lBreak.endOfInline = false;
#ifdef DEBUG_LINEBREAKS
kdDebug(6041) << "forced break sol: " << start.obj << " " << start.pos << " end: " << lBreak.obj << " " << lBreak.pos << " width=" << w << endl;
@@ -1974,11 +1927,12 @@ BidiIterator RenderBlock::findNextLineBreak(BidiIterator &start, BidiState &bidi
return lBreak;
}
- if ( autoWrap ) {
+ if ( autoWrap && isbreakablePosition ) {
w += tmpW;
tmpW = 0;
lBreak.obj = o;
lBreak.pos = pos;
+ lBreak.endOfInline = false;
}
lastSpace = pos;
@@ -2016,31 +1970,63 @@ BidiIterator RenderBlock::findNextLineBreak(BidiIterator &start, BidiState &bidi
len--;
}
- // IMPORTANT: pos is > length here!
- if (!ignoringSpaces)
+ if (!ignoringSpaces) {
+ // We didn't find any space that would be beyond the line |width|.
+ // Lets add to |tmpW| the remaining width since the last space we found.
+ // Before we test this new |tmpW| however, we will have to look ahead to check
+ // if the next object/position can serve as a line breaking opportunity.
tmpW += t->width(lastSpace, pos - lastSpace, f);
- if (!appliedStartWidth)
- tmpW += inlineWidth(o, true, false);
- if (!appliedEndWidth)
- tmpW += inlineWidth(o, false, true);
+ if (checkBreakWord && !w && pos && tmpW > width) {
+ // Avoid doing the costly lookahead for break-word,
+ // since we know we are allowed to break.
+ lBreak.obj = o;
+ lBreak.pos = pos-1;
+ lBreak.endOfInline = false;
+ goto end;
+ }
+ }
} else
KHTMLAssert( false );
- RenderObject* next = Bidinext(start.par, o, bidi);
- bool autoWrap = o->style()->autoWrap();
+ InlineMinMaxIterator savedIt = lastIt;
+ lastIt = it;
+ o = it.next();
+
+ // advance the iterator to the next non-inline-flow
+ while (o && o->isInlineFlow() && !o->isWordBreak()) {
+ tmpW += getBorderPaddingMargin(o, it.endOfInline);
+ if (isLineEmpty) isLineEmpty = !tmpW;
+ o = it.next();
+ }
+
+ if (checkShouldIgnoreInitialWhitespace) {
+ // Check if we should switch to ignoringSpaces state
+ if (!style()->preserveWS() && it.current && it.current->isText()) {
+ const RenderText* rt = static_cast<RenderText*>(it.current);
+ if (rt->stringLength() > 0 && (rt->text()[0].category() == TQChar::Separator_Space || rt->text()[0] == '\n')) {
+ currentCharacterIsSpace = true;
+ ignoringSpaces = true;
+ BidiIterator endMid( 0, lastIt.current, 0 );
+ addMidpoint(endMid);
+ }
+ }
+ checkShouldIgnoreInitialWhitespace = false;
+ }
+
+ bool autoWrap = lastIt.current->style()->autoWrap();
bool checkForBreak = autoWrap;
- if (w && w + tmpW > width && lBreak.obj && !o->style()->preserveLF() && !autoWrap)
+ if (w && w + tmpW > width && lBreak.obj && !lastIt.current->style()->preserveLF() && !autoWrap)
checkForBreak = true;
- else if (next && o->isText() && next->isText() && !next->isBR()) {
- if (autoWrap || next->style()->autoWrap()) {
+ else if (it.current && lastIt.current->isText() && it.current->isText() && !it.current->isBR()) {
+ if (autoWrap || it.current->style()->autoWrap()) {
if (currentCharacterIsSpace)
checkForBreak = true;
else {
checkForBreak = false;
- RenderText* nextText = static_cast<RenderText*>(next);
+ RenderText* nextText = static_cast<RenderText*>(it.current);
if (nextText->stringLength() != 0) {
TQChar c = nextText->text()[0];
- if (c == ' ' || c == '\t' || (c == '\n' && !next->style()->preserveLF())) {
+ if (c == ' ' || c == '\t' || (c == '\n' && !it.current->style()->preserveLF())) {
// If the next item on the line is text, and if we did not end with
// a space, then the next text run continues our word (and so it needs to
// keep adding to |tmpW|. Just update and continue.
@@ -2052,8 +2038,9 @@ BidiIterator RenderBlock::findNextLineBreak(BidiIterator &start, BidiState &bidi
if (canPlaceOnLine && checkForBreak) {
w += tmpW;
tmpW = 0;
- lBreak.obj = next;
+ lBreak.obj = it.current;
lBreak.pos = 0;
+ lBreak.endOfInline = it.endOfInline;
}
}
}
@@ -2063,7 +2050,7 @@ BidiIterator RenderBlock::findNextLineBreak(BidiIterator &start, BidiState &bidi
//kdDebug() << " too wide w=" << w << " tmpW = " << tmpW << " width = " << width << endl;
//kdDebug() << "start=" << start.obj << " current=" << o << endl;
// if we have floats, try to get below them.
- if (currentCharacterIsSpace && !ignoringSpaces && !o->style()->preserveWS())
+ if (currentCharacterIsSpace && !ignoringSpaces && !lastIt.current->style()->preserveWS())
trailingSpaceObject = 0;
int fb = nearestFloatBottom(m_height);
@@ -2087,24 +2074,26 @@ BidiIterator RenderBlock::findNextLineBreak(BidiIterator &start, BidiState &bidi
// |width| may have been adjusted because we got shoved down past a float (thus
// giving us more room), so we need to retest, and only jump to
// the end label if we still don't fit on the line. -dwh
- if (w + tmpW > width)
+ if (w + tmpW > width) {
+ it = lastIt;
+ lastIt = savedIt;
+ o = it.current;
goto end;
+ }
}
- last = o;
- o = next;
-
- if (!last->isFloatingOrPositioned() && last->isReplaced() && last->style()->autoWrap()) {
+ if (!lastIt.current->isFloatingOrPositioned() && lastIt.current->isReplaced() && lastIt.current->style()->autoWrap()) {
// Go ahead and add in tmpW.
w += tmpW;
tmpW = 0;
lBreak.obj = o;
lBreak.pos = 0;
+ lBreak.endOfInline = it.endOfInline;
}
// Clear out our character space bool, since inline <pre>s don't collapse whitespace
// with adjacent inline normal/nowrap spans.
- if (last->style()->preserveWS())
+ if (lastIt.current->style()->preserveWS())
currentCharacterIsSpace = false;
pos = 0;
@@ -2113,9 +2102,10 @@ BidiIterator RenderBlock::findNextLineBreak(BidiIterator &start, BidiState &bidi
#ifdef DEBUG_LINEBREAKS
kdDebug( 6041 ) << "end of par, width = " << width << " linewidth = " << w + tmpW << endl;
#endif
- if( w + tmpW <= width || (last && !last->style()->autoWrap())) {
+ if( w + tmpW <= width || (lastIt.current && !lastIt.current->style()->autoWrap())) {
lBreak.obj = 0;
lBreak.pos = 0;
+ lBreak.endOfInline = false;
}
end:
@@ -2127,21 +2117,25 @@ BidiIterator RenderBlock::findNextLineBreak(BidiIterator &start, BidiState &bidi
if(pos != 0) {
lBreak.obj = o;
lBreak.pos = pos - 1;
+ lBreak.endOfInline = it.endOfInline;
} else {
- lBreak.obj = last;
- lBreak.pos = last->isText() ? last->length() : 0;
+ lBreak.obj = lastIt.current;
+ lBreak.pos = lastIt.current->isText() ? lastIt.current->length() : 0;
+ lBreak.endOfInline = lastIt.endOfInline;
}
} else if( lBreak.obj ) {
- if( last != o ) {
+ if( lastIt.current != o ) {
// better to break between object boundaries than in the middle of a word
lBreak.obj = o;
lBreak.pos = 0;
+ lBreak.endOfInline = it.endOfInline;
} else {
// Don't ever break in the middle of a word if we can help it.
// There's no room at all. We just have to be on this line,
// even though we'll spill out.
lBreak.obj = o;
lBreak.pos = pos;
+ lBreak.endOfInline = it.endOfInline;
}
}
}
@@ -2150,8 +2144,11 @@ BidiIterator RenderBlock::findNextLineBreak(BidiIterator &start, BidiState &bidi
start = posStart;
// make sure we consume at least one char/object.
- if( lBreak == start )
+ // and avoid returning an InlineFlow
+ // (FIXME: turn those wordbreaks into empty text objects - they shouldn't be inline flows!)
+ if( lBreak == start || (lBreak.obj && lBreak.obj->isInlineFlow() && !lBreak.obj->isWordBreak())) {
lBreak.increment(bidi);
+ }
#ifdef DEBUG_LINEBREAKS
kdDebug(6041) << "regular break sol: " << start.obj << " " << start.pos << " end: " << lBreak.obj << " " << lBreak.pos << " width=" << w << endl;
diff --git a/khtml/rendering/bidi.h b/khtml/rendering/bidi.h
index 15a9ab906..c8776ce19 100644
--- a/khtml/rendering/bidi.h
+++ b/khtml/rendering/bidi.h
@@ -24,6 +24,7 @@
#define BIDI_H
#include <tqstring.h>
+#include "rendering/render_object.h"
namespace khtml {
class RenderArena;
@@ -101,6 +102,71 @@ public:
struct BidiIterator;
struct BidiState;
+ struct InlineMinMaxIterator
+ {
+ /* InlineMinMaxIterator is a class that will iterate over all render objects that contribute to
+ inline min/max width calculations. Note the following about the way it walks:
+ (1) Positioned content is skipped (since it does not contribute to min/max width of a block)
+ (2) We do not drill into the children of floats or replaced elements, since you can't break
+ in the middle of such an element.
+ (3) Inline flows (e.g., <a>, <span>, <i>) are walked twice, since each side can have
+ distinct borders/margin/padding that contribute to the min/max width.
+ */
+ RenderObject* parent;
+ RenderObject* current;
+ bool endOfInline;
+ bool skipPositioned;
+ InlineMinMaxIterator(RenderObject* p, RenderObject* o, bool eOI=false, bool skipPos=true)
+ :parent(p), current(o), endOfInline(eOI), skipPositioned(skipPos) {}
+ inline RenderObject* next();
+ };
+
+ inline RenderObject* InlineMinMaxIterator::next()
+ {
+ RenderObject* result = 0;
+ bool oldEndOfInline = endOfInline;
+ endOfInline = false;
+ while (current != 0 || (current == parent))
+ {
+ //kDebug( 6040 ) << "current = " << current;
+ if (!oldEndOfInline &&
+ (current == parent ||
+ (!current->isFloating() && !current->isReplaced() && !current->isPositioned())))
+ result = current->firstChild();
+ if (!result) {
+ // We hit the end of our inline. (It was empty, e.g., <span></span>.)
+ if (!oldEndOfInline && current->isInlineFlow()) {
+ result = current;
+ endOfInline = true;
+ break;
+ }
+ while (current && current != parent) {
+ result = current->nextSibling();
+ if (result) break;
+ current = current->parent();
+ if (current && current != parent && current->isInlineFlow()) {
+ result = current;
+ endOfInline = true;
+ break;
+ }
+ }
+ }
+
+ if (!result) break;
+
+ if ((!skipPositioned || !result->isPositioned()) && (result->isText() || result->isBR() ||
+ result->isFloatingOrPositioned() || result->isReplaced() || result->isGlyph() || result->isInlineFlow()))
+ break;
+
+ current = result;
+ result = 0;
+ }
+
+ // Update our position.
+ current = result;
+ return current;
+ }
+
}
#endif
diff --git a/khtml/rendering/render_block.cpp b/khtml/rendering/render_block.cpp
index d036b9d09..ccbb6fad0 100644
--- a/khtml/rendering/render_block.cpp
+++ b/khtml/rendering/render_block.cpp
@@ -2623,74 +2623,6 @@ void RenderBlock::calcMinMaxWidth()
// ### compare with min/max width set in style sheet...
}
-struct InlineMinMaxIterator
-{
-/* InlineMinMaxIterator is a class that will iterate over all render objects that contribute to
- inline min/max width calculations. Note the following about the way it walks:
- (1) Positioned content is skipped (since it does not contribute to min/max width of a block)
- (2) We do not drill into the children of floats or replaced elements, since you can't break
- in the middle of such an element.
- (3) Inline flows (e.g., <a>, <span>, <i>) are walked twice, since each side can have
- distinct borders/margin/padding that contribute to the min/max width.
-*/
- RenderObject* parent;
- RenderObject* current;
- bool endOfInline;
-
- InlineMinMaxIterator(RenderObject* p, RenderObject* o, bool end = false)
- :parent(p), current(o), endOfInline(end) {}
-
- RenderObject* next();
-};
-
-RenderObject* InlineMinMaxIterator::next()
-{
- RenderObject* result = 0;
- bool oldEndOfInline = endOfInline;
- endOfInline = false;
- while (current != 0 || (current == parent))
- {
- //kdDebug( 6040 ) << "current = " << current << endl;
- if (!oldEndOfInline &&
- (current == parent ||
- (!current->isFloating() && !current->isReplaced() && !current->isPositioned())))
- result = current->firstChild();
- if (!result) {
- // We hit the end of our inline. (It was empty, e.g., <span></span>.)
- if (!oldEndOfInline && current->isInlineFlow()) {
- result = current;
- endOfInline = true;
- break;
- }
-
- while (current && current != parent) {
- result = current->nextSibling();
- if (result) break;
- current = current->parent();
- if (current && current != parent && current->isInlineFlow()) {
- result = current;
- endOfInline = true;
- break;
- }
- }
- }
-
- if (!result) break;
-
- if (!result->isPositioned() && (result->isText() || result->isBR() ||
- result->isFloating() || result->isReplaced() ||
- result->isInlineFlow()))
- break;
-
- current = result;
- result = 0;
- }
-
- // Update our position.
- current = result;
- return current;
-}
-
// bidi.cpp defines the following functions too.
// Maybe these should not be static, after all...
diff --git a/khtml/rendering/render_line.cpp b/khtml/rendering/render_line.cpp
index f3b769e9c..2bcbe366e 100644
--- a/khtml/rendering/render_line.cpp
+++ b/khtml/rendering/render_line.cpp
@@ -271,8 +271,8 @@ bool InlineFlowBox::onEndChain(RenderObject* endObject)
RenderObject* curr = endObject;
RenderObject* parent = curr->parent();
- while (parent && !parent->isRenderBlock() || parent == object()) {
- if (parent->lastChild() != curr)
+ while (parent && !parent->isRenderBlock()) {
+ if (parent->lastChild() != curr || parent == object())
return false;
curr = parent;
diff --git a/khtml/rendering/render_object.cpp b/khtml/rendering/render_object.cpp
index c1f7fd754..c5ee68720 100644
--- a/khtml/rendering/render_object.cpp
+++ b/khtml/rendering/render_object.cpp
@@ -244,6 +244,11 @@ bool RenderObject::isHR() const
return element() && element()->id() == ID_HR;
}
+bool RenderObject::isWordBreak() const
+{
+ return element() && element()->id() == ID_WBR;
+}
+
bool RenderObject::isHTMLMarquee() const
{
return element() && element()->renderer() == this && element()->id() == ID_MARQUEE;
diff --git a/khtml/rendering/render_object.h b/khtml/rendering/render_object.h
index 1242f8e87..f7f772387 100644
--- a/khtml/rendering/render_object.h
+++ b/khtml/rendering/render_object.h
@@ -282,6 +282,7 @@ public:
virtual bool isApplet() const { return false; }
bool isHTMLMarquee() const;
+ bool isWordBreak() const;
bool isAnonymous() const { return m_isAnonymous; }
void setIsAnonymous(bool b) { m_isAnonymous = b; }
diff --git a/khtml/rendering/render_style.cpp b/khtml/rendering/render_style.cpp
index 18c520ad4..a71dd4116 100644
--- a/khtml/rendering/render_style.cpp
+++ b/khtml/rendering/render_style.cpp
@@ -429,7 +429,7 @@ bool StyleCSS3NonInheritedData::operator==(const StyleCSS3NonInheritedData& o) c
}
StyleCSS3InheritedData::StyleCSS3InheritedData()
-:Shared<StyleCSS3InheritedData>(), textShadow(0)
+:Shared<StyleCSS3InheritedData>(), textShadow(0), wordWrap(RenderStyle::initialWordWrap())
#ifdef APPLE_CHANGES
, userModify(READ_ONLY), textSizeAdjust(RenderStyle::initialTextSizeAdjust())
#endif
@@ -441,6 +441,7 @@ StyleCSS3InheritedData::StyleCSS3InheritedData(const StyleCSS3InheritedData& o)
:Shared<StyleCSS3InheritedData>()
{
textShadow = o.textShadow ? new ShadowData(*o.textShadow) : 0;
+ wordWrap = o.wordWrap;
#ifdef APPLE_CHANGES
userModify = o.userModify;
textSizeAdjust = o.textSizeAdjust;
@@ -454,7 +455,7 @@ StyleCSS3InheritedData::~StyleCSS3InheritedData()
bool StyleCSS3InheritedData::operator==(const StyleCSS3InheritedData& o) const
{
- return shadowDataEquivalent(o)
+ return shadowDataEquivalent(o) && (wordWrap == o.wordWrap)
#ifdef APPLE_CHANGES
&& (userModify == o.userModify) && (textSizeAdjust == o.textSizeAdjust)
#endif
diff --git a/khtml/rendering/render_style.h b/khtml/rendering/render_style.h
index b1c1e5306..29b369ca1 100644
--- a/khtml/rendering/render_style.h
+++ b/khtml/rendering/render_style.h
@@ -192,6 +192,9 @@ enum EFloat {
FNONE = 0, FLEFT = 0x01, FRIGHT = 0x02, FLEFT_ALIGN = 0x05, FRIGHT_ALIGN = 0x06
};
+enum EWordWrap {
+ WWNORMAL = 0, WWBREAKWORD = 0x01
+};
//------------------------------------------------
// Border attributes. Not inherited.
@@ -702,6 +705,7 @@ class StyleCSS3InheritedData : public Shared<StyleCSS3InheritedData>
EUserModify userModify : 2; // Flag used for editing state
bool textSizeAdjust : 1; // An Apple extension. Not really CSS3 but not worth making a new struct over.
#endif
+ EWordWrap wordWrap : 1;
private:
StyleCSS3InheritedData &operator=(const StyleCSS3InheritedData &);
};
@@ -1195,6 +1199,7 @@ public:
return background->m_outline._offset;
}
ShadowData* textShadow() const { return css3InheritedData->textShadow; }
+ EWordWrap wordWrap() const { return css3InheritedData->wordWrap; }
float opacity() { return css3NonInheritedData->opacity; }
EUserInput userInput() const { return inherited_flags.f._user_input; }
@@ -1346,6 +1351,7 @@ public:
// CSS3 Setters
void setBoxSizing( EBoxSizing b ) { SET_VAR(box,box_sizing,b); }
void setOutlineOffset(unsigned short v) { SET_VAR(background,m_outline._offset,v) }
+ void setWordWrap(EWordWrap w) { SET_VAR(css3InheritedData, wordWrap, w); }
void setTextShadow(ShadowData* val, bool add=false);
void setOpacity(float f) { SET_VAR(css3NonInheritedData, opacity, f); }
void setUserInput(EUserInput ui) { inherited_flags.f._user_input = ui; }
@@ -1424,6 +1430,7 @@ public:
static EDisplay initialDisplay() { return INLINE; }
static EEmptyCell initialEmptyCells() { return SHOW; }
static EFloat initialFloating() { return FNONE; }
+ static EWordWrap initialWordWrap() { return WWNORMAL; }
static EListStylePosition initialListStylePosition() { return OUTSIDE; }
static EListStyleType initialListStyleType() { return LDISC; }
static EOverflow initialOverflowX() { return OVISIBLE; }