diff options
Diffstat (limited to 'khtml')
-rw-r--r-- | khtml/css/cssparser.cpp | 7 | ||||
-rw-r--r-- | khtml/css/cssproperties.c | 387 | ||||
-rw-r--r-- | khtml/css/cssproperties.h | 57 | ||||
-rw-r--r-- | khtml/css/cssproperties.in | 1 | ||||
-rw-r--r-- | khtml/css/cssstyleselector.cpp | 27 | ||||
-rw-r--r-- | khtml/css/cssvalues.c | 751 | ||||
-rw-r--r-- | khtml/css/cssvalues.h | 115 | ||||
-rw-r--r-- | khtml/css/cssvalues.in | 5 | ||||
-rw-r--r-- | khtml/rendering/bidi.cpp | 279 | ||||
-rw-r--r-- | khtml/rendering/bidi.h | 66 | ||||
-rw-r--r-- | khtml/rendering/render_block.cpp | 68 | ||||
-rw-r--r-- | khtml/rendering/render_line.cpp | 4 | ||||
-rw-r--r-- | khtml/rendering/render_object.cpp | 5 | ||||
-rw-r--r-- | khtml/rendering/render_object.h | 1 | ||||
-rw-r--r-- | khtml/rendering/render_style.cpp | 5 | ||||
-rw-r--r-- | khtml/rendering/render_style.h | 7 |
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; } |