Changeset 71566 in webkit
- Timestamp:
- Nov 8, 2010 1:35:58 PM (13 years ago)
- Location:
- trunk
- Files:
-
- 4 added
- 13 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r71563 r71566 1 2010-11-08 Xiaomei Ji <xji@chromium.org> 2 3 Reviewed by Dan Bernstein. 4 5 Fix Unicode explicit bidi control characters are removed in editing operations, 6 such as insert/copy/cut/paste. 7 https://bugs.webkit.org/show_bug.cgi?id=25321 8 9 Unicode explicit bidi control characters were excluded in BidiRun and 10 consequently from InlineTextBoxes due to their effect on rendering complex 11 text with ATSUI. 12 The fix is including those characters in BidiRun and remove them from 13 ComplexTextRun with ATSUI. 14 15 * editing/inserting/insert-paste-bidi-control-expected.txt: Added. 16 * editing/inserting/insert-paste-bidi-control.html: Added. 17 * editing/selection/extend-selection-expected.txt: 18 * editing/selection/home-end-expected.txt: 19 * fast/text/atsui-bidi-control-expected.txt: Added. 20 * fast/text/atsui-bidi-control.html: Added. 21 * platform/mac/fast/css/text-overflow-ellipsis-bidi-expected.txt: 22 * platform/mac/fast/text/international/bidi-LDB-2-formatting-characters-expected.txt: 23 * platform/mac/fast/text/international/bidi-control-chars-treated-as-ZWS-expected.txt: 24 * platform/mac/fast/text/international/bidi-explicit-embedding-expected.txt: 25 * platform/mac/fast/text/international/bidi-ignored-for-first-child-inline-expected.txt: 26 * platform/mac/fast/text/international/bidi-neutral-run-expected.txt: 27 * platform/mac/fast/text/international/bidi-override-expected.txt: 28 1 29 2010-11-08 David Hyatt <hyatt@apple.com> 2 30 -
trunk/LayoutTests/editing/selection/extend-selection-expected.txt
r56639 r71566 21 21 Just testing what ever 22 22 car means אבג. 23 car דהו אבג. 24 he said " car דהו אבג."25 זחט יךכ לםמ ' he said " car דהו אבג "'?23 car דהו אבג. 24 he said "car דהו אבג." 25 זחט יךכ לםמ 'he said "car דהו אבג"'? 26 26 אבג abc דהו 27 27 edf זחט abrebg … … 491 491 Extending backward: "car means ABC."[(0,14)] 492 492 Test 17, LTR: 493 Extending forward: "car DEF ABC."[( 1,1), (1,13)]494 Extending backward: "car DEF ABC."[( 1,13)]493 Extending forward: "car DEF ABC."[(0,0), (0,14)] 494 Extending backward: "car DEF ABC."[(0,14)] 495 495 Test 17, RTL: 496 Extending forward: "car DEF ABC."[( 1,1), (1,13)]497 Extending backward: "car DEF ABC."[( 1,13)]496 Extending forward: "car DEF ABC."[(0,0), (0,14)] 497 Extending backward: "car DEF ABC."[(0,14)] 498 498 Test 18, LTR: 499 499 Extending forward: "he said "car DEF ABC.""[(0,0), (0,24)] -
trunk/LayoutTests/editing/selection/home-end-expected.txt
r43032 r71566 90 90 Moving backward: "car means ABC."[14, 0] 91 91 Test 16, LTR: 92 Moving forward: "car DEF ABC."[ 1, 13]93 Moving backward: "car DEF ABC."[1 3, 1]92 Moving forward: "car DEF ABC."[0, 14] 93 Moving backward: "car DEF ABC."[14, 0] 94 94 Test 16, RTL: 95 Moving forward: "car DEF ABC."[ 1, 13]96 Moving backward: "car DEF ABC."[1 3, 1]95 Moving forward: "car DEF ABC."[0, 14] 96 Moving backward: "car DEF ABC."[14, 0] 97 97 Test 17, LTR: 98 98 Moving forward: "he said "car DEF ABC.""[0, 24] -
trunk/LayoutTests/platform/mac/fast/css/text-overflow-ellipsis-bidi-expected.txt
r43664 r71566 21 21 RenderBlock {DIV} at (0,72) size 207x19 22 22 RenderText {#text} at (-154,1) size 361x18 23 text run at (-154,1) width 0 RTL: "\x{202C}" 23 24 text run at (-154,1) width 276 RTL: " \x{5D8}\x{5E7}\x{5E1}\x{5D8} \x{5E2}\x{5D1}\x{5E8}\x{5D9} \x{5DC}\x{5D3}\x{5D5}\x{5D2}\x{5DE}\x{5D0} \x{5D8}\x{5E7}\x{5E1}\x{5D8} \x{5E2}\x{5D1}\x{5E8}\x{5D9} \x{5DC}\x{5D3}\x{5D5}\x{5D2}\x{5DE}\x{5D0} " 24 25 text run at (122,1) width 81: "English Text" 25 text run at (203,1) width 4 RTL: " "26 text run at (203,1) width 4 RTL: "\x{202B} " 26 27 layer at (8,99) size 207x19 scrollX 154 scrollWidth 361 27 28 RenderBlock {DIV} at (0,91) size 207x19 28 29 RenderText {#text} at (-154,1) size 361x18 30 text run at (-154,1) width 0 RTL: "\x{202C}" 29 31 text run at (-154,1) width 276 RTL: " \x{5D8}\x{5E7}\x{5E1}\x{5D8} \x{5E2}\x{5D1}\x{5E8}\x{5D9} \x{5DC}\x{5D3}\x{5D5}\x{5D2}\x{5DE}\x{5D0} \x{5D8}\x{5E7}\x{5E1}\x{5D8} \x{5E2}\x{5D1}\x{5E8}\x{5D9} \x{5DC}\x{5D3}\x{5D5}\x{5D2}\x{5DE}\x{5D0} " 30 32 text run at (122,1) width 81: "English Text" 31 text run at (203,1) width 4 RTL: " "33 text run at (203,1) width 4 RTL: "\x{202B} " 32 34 layer at (8,154) size 207x19 scrollWidth 262 33 35 RenderBlock {DIV} at (0,146) size 207x19 -
trunk/LayoutTests/platform/mac/fast/text/international/bidi-LDB-2-formatting-characters-expected.txt
r42379 r71566 43 43 RenderBlock {P} at (4,22) size 94x18 44 44 RenderText {#text} at (0,0) size 94x18 45 text run at (0,0) width 94: "ABCDEFGHI" 45 text run at (0,0) width 0 RTL: "\x{202C}" 46 text run at (0,0) width 94: "\x{202B}ABCDEFGHI" 46 47 RenderBlock {P} at (4,40) size 94x18 47 48 RenderText {#text} at (0,0) size 34x18 48 text run at (0,0) width 34: " ABC"49 text run at (0,0) width 34: "\x{202B}ABC" 49 50 RenderInline {SPAN} at (0,0) size 31x18 50 51 RenderText {#text} at (34,0) size 31x18 51 52 text run at (34,0) width 31: "DEF" 52 RenderText {#text} at (65,0) size 29x18 53 RenderText {#text} at (0,0) size 94x18 54 text run at (0,0) width 0 RTL: "\x{202C}" 53 55 text run at (65,0) width 29: "GHI" 54 56 RenderBlock {P} at (4,58) size 94x18 55 57 RenderText {#text} at (0,0) size 94x18 56 text run at (0,0) width 94 RTL override: "IHGFEDCBA" 58 text run at (0,0) width 0 RTL: "\x{202C}" 59 text run at (0,0) width 94 RTL override: "\x{202E}IHGFEDCBA" 57 60 RenderBlock {P} at (4,76) size 94x18 58 61 RenderText {#text} at (65,0) size 29x18 59 text run at (65,0) width 29 RTL override: " IHG"62 text run at (65,0) width 29 RTL override: "\x{202E}IHG" 60 63 RenderInline {SPAN} at (0,0) size 31x18 61 64 RenderText {#text} at (34,0) size 31x18 62 65 text run at (34,0) width 31 RTL override: "FED" 63 66 RenderText {#text} at (0,0) size 34x18 67 text run at (0,0) width 0 RTL: "\x{202C}" 64 68 text run at (0,0) width 34 RTL override: "CBA" 65 69 RenderBlock {P} at (4,94) size 94x18 66 70 RenderText {#text} at (0,0) size 94x18 67 text run at (0,0) width 34 RTL override: "CBA" 68 text run at (34,0) width 31: "DEF" 69 text run at (65,0) width 29 RTL override: "IHG" 71 text run at (0,0) width 0 RTL: "\x{202C}" 72 text run at (0,0) width 34 RTL override: "\x{202C}CBA" 73 text run at (34,0) width 31: "\x{202B}DEF" 74 text run at (65,0) width 29 RTL override: "\x{202E}IHG" 70 75 RenderBlock {P} at (4,112) size 94x18 71 76 RenderText {#text} at (0,0) size 94x18 72 text run at (0,0) width 34 RTL override: "CBA" 73 text run at (34,0) width 31 RTL override: "FED" 74 text run at (65,0) width 29 RTL override: "IHG" 77 text run at (0,0) width 0 RTL: "\x{202C}" 78 text run at (0,0) width 34 RTL override: "\x{202C}CBA" 79 text run at (34,0) width 31 RTL override: "\x{202E}FED" 80 text run at (65,0) width 29 RTL override: "\x{202E}IHG" 75 81 RenderBlock {P} at (4,130) size 94x18 76 82 RenderText {#text} at (0,0) size 94x18 77 text run at (0,0) width 34 RTL override: "CBA" 78 text run at (34,0) width 31 RTL override: "FED" 79 text run at (65,0) width 29 RTL override: "IHG" 83 text run at (0,0) width 0 RTL: "\x{202C}" 84 text run at (0,0) width 34 RTL override: "\x{202C}CBA" 85 text run at (34,0) width 31 RTL override: "\x{202E}FED" 86 text run at (65,0) width 29 RTL override: "\x{202E}IHG" 80 87 RenderBlock {P} at (4,148) size 94x18 81 88 RenderText {#text} at (0,0) size 94x18 82 text run at (0,0) width 34 RTL override: "CBA" 83 text run at (34,0) width 31 LTR override: "DEF" 84 text run at (65,0) width 29 RTL override: "IHG" 89 text run at (0,0) width 0 RTL: "\x{202C}" 90 text run at (0,0) width 34 RTL override: "\x{202C}CBA" 91 text run at (34,0) width 31 LTR override: "\x{202D}DEF" 92 text run at (65,0) width 29 RTL override: "\x{202E}IHG" 85 93 RenderText {#text} at (108,81) size 4x18 86 94 text run at (108,81) width 4: " " … … 103 111 RenderBlock {P} at (4,42) size 28x19 104 112 RenderText {#text} at (0,1) size 27x18 105 text run at (0,1) width 27 RTL: "\x{5D0}\x{5D1}\x{5D2}" 113 text run at (0,1) width 27 RTL: "\x{202A}\x{5D0}\x{5D1}\x{5D2}" 114 text run at (27,1) width 0: "\x{202C}" 106 115 RenderBlock {P} at (4,61) size 28x19 107 116 RenderText {#text} at (0,1) size 27x18 108 text run at (0,1) width 27 LTR override: "\x{5D2}\x{5D1}\x{5D0}" 117 text run at (0,1) width 27 LTR override: "\x{202D}\x{5D2}\x{5D1}\x{5D0}" 118 text run at (27,1) width 0: "\x{202C}" 109 119 RenderText {#text} at (154,81) size 4x18 110 120 text run at (154,81) width 4: " " … … 241 251 text run at (0,1) width 27 RTL: "\x{5D0}\x{5D1}\x{5D2}" 242 252 text run at (27,1) width 4: " " 243 text run at (31,1) width 38: " ABC "253 text run at (31,1) width 38: "\x{202A}ABC " 244 254 text run at (69,1) width 25 RTL: "\x{5D3}\x{5D4}\x{5D5}" 245 255 text run at (94,1) width 35: " DEF" 246 text run at (129,1) width 4: " "256 text run at (129,1) width 4: "\x{202C} " 247 257 text run at (133,1) width 28 RTL: "\x{5D6}\x{5D7}\x{5D8}" 248 258 RenderBlock {P} at (4,80) size 165x19 249 259 RenderText {#text} at (0,1) size 161x18 250 text run at (0,1) width 31 RTL: " \x{5D0}\x{5D1}\x{5D2}"260 text run at (0,1) width 31 RTL: "\x{202C} \x{5D0}\x{5D1}\x{5D2}" 251 261 text run at (31,1) width 34: "ABC" 252 262 text run at (65,1) width 33 RTL: " \x{5D3}\x{5D4}\x{5D5} " 253 text run at (98,1) width 31: " DEF"263 text run at (98,1) width 31: "\x{202B}DEF" 254 264 text run at (129,1) width 32 RTL: "\x{5D6}\x{5D7}\x{5D8} " 255 265 RenderBlock {P} at (4,99) size 165x19 256 266 RenderText {#text} at (0,1) size 161x18 257 267 text run at (0,1) width 31 RTL: " \x{5D0}\x{5D1}\x{5D2}" 258 text run at (31,1) width 34: " ABC"268 text run at (31,1) width 34: "\x{202B}ABC" 259 269 text run at (65,1) width 29 RTL: "\x{5D3}\x{5D4}\x{5D5} " 260 text run at (94,1) width 39: " DEF "270 text run at (94,1) width 39: "\x{202C} DEF " 261 271 text run at (133,1) width 28 RTL: "\x{5D6}\x{5D7}\x{5D8}" 262 272 RenderBlock {P} at (4,118) size 165x19 263 273 RenderText {#text} at (0,1) size 161x18 264 text run at (0,1) width 65 RTL override: " CBA \x{5D0}\x{5D1}\x{5D2}"274 text run at (0,1) width 65 RTL override: "\x{202E}CBA \x{5D0}\x{5D1}\x{5D2}" 265 275 text run at (65,1) width 29 RTL: "\x{5D3}\x{5D4}\x{5D5} " 266 text run at (94,1) width 39: " DEF "276 text run at (94,1) width 39: "\x{202C} DEF " 267 277 text run at (133,1) width 28 RTL: "\x{5D6}\x{5D7}\x{5D8}" 268 278 RenderBlock {P} at (4,137) size 165x19 … … 270 280 text run at (0,1) width 27 RTL: "\x{5D0}\x{5D1}\x{5D2}" 271 281 text run at (27,1) width 4: " " 272 text run at (31,1) width 63 LTR override: " ABC \x{5D5}\x{5D4}\x{5D3}"273 text run at (94,1) width 39: " DEF "282 text run at (31,1) width 63 LTR override: "\x{202D}ABC \x{5D5}\x{5D4}\x{5D3}" 283 text run at (94,1) width 39: "\x{202C} DEF " 274 284 text run at (133,1) width 28 RTL: "\x{5D6}\x{5D7}\x{5D8}" 275 285 RenderBlock {P} at (4,156) size 165x19 276 286 RenderText {#text} at (0,1) size 161x18 277 287 text run at (0,1) width 31 RTL: " \x{5D0}\x{5D1}\x{5D2}" 278 text run at (31,1) width 63 LTR override: " ABC \x{5D5}\x{5D4}\x{5D3}"279 text run at (94,1) width 35: " DEF"288 text run at (31,1) width 63 LTR override: "\x{202D}ABC \x{5D5}\x{5D4}\x{5D3}" 289 text run at (94,1) width 35: "\x{202C} DEF" 280 290 text run at (129,1) width 32 RTL: "\x{5D6}\x{5D7}\x{5D8} " 281 291 RenderText {#text} at (452,81) size 4x18 … … 439 449 RenderBlock {P} at (4,23) size 198x19 440 450 RenderText {#text} at (0,1) size 194x18 441 text run at (0,1) width 98 RTL override: " ABC \x{5D3}\x{5D4}\x{5D5} DEF"451 text run at (0,1) width 98 RTL override: "\x{202E}ABC \x{5D3}\x{5D4}\x{5D5} DEF" 442 452 text run at (98,1) width 31 RTL: "\x{5D0}\x{5D1}\x{5D2} " 443 text run at (129,1) width 37: " GHI "453 text run at (129,1) width 37: "\x{202C} GHI " 444 454 text run at (166,1) width 28 RTL: "\x{5D6}\x{5D7}\x{5D8}" 445 455 RenderText {#text} at (212,200) size 4x18 … … 522 532 text run at (0,1) width 27 RTL: "\x{5D0}\x{5D1}\x{5D2}" 523 533 text run at (27,1) width 42: " ABC " 524 text run at (69,1) width 60 RTL override: "\x{ 5D3}\x{5D4}\x{5D5} DEF"525 text run at (129,1) width 37: " GHI "534 text run at (69,1) width 60 RTL override: "\x{202E}\x{5D3}\x{5D4}\x{5D5} DEF" 535 text run at (129,1) width 37: "\x{202C} GHI " 526 536 text run at (166,1) width 28 RTL: "\x{5D6}\x{5D7}\x{5D8}" 527 537 RenderText {#text} at (0,0) size 0x0 -
trunk/LayoutTests/platform/mac/fast/text/international/bidi-control-chars-treated-as-ZWS-expected.txt
r30635 r71566 11 11 RenderText {#text} at (0,0) size 14x17 12 12 text run at (0,0) width 7: "a" 13 text run at (7,0) width 7 LTR override: " e\x{300}"13 text run at (7,0) width 7 LTR override: "\x{202D}e\x{300}" 14 14 RenderBR {BR} at (14,14) size 0x0 15 15 RenderText {#text} at (0,18) size 14x17 -
trunk/LayoutTests/platform/mac/fast/text/international/bidi-explicit-embedding-expected.txt
r25970 r71566 48 48 text run at (60,0) width 5 RTL: " " 49 49 text run at (65,0) width 21: "45" 50 text run at (86,0) width 6 RTL: " ("51 text run at (92,0) width 31: " fgh"50 text run at (86,0) width 6 RTL: "\x{202B}(" 51 text run at (92,0) width 31: "\x{202C} fgh" 52 52 RenderBlock {P} at (0,206) size 784x18 53 53 RenderText {#text} at (0,0) size 110x18 … … 55 55 text run at (33,0) width 6 RTL: "]" 56 56 text run at (39,0) width 40: "de fg" 57 text run at (79,0) width 6 RTL: " ("58 text run at (85,0) width 25: " hij"57 text run at (79,0) width 6 RTL: "\x{202B}(" 58 text run at (85,0) width 25: "\x{202C} hij" 59 59 RenderBlock {P} at (0,240) size 784x18 60 60 RenderText {#text} at (0,0) size 11x18 … … 82 82 text run at (11,0) width 6 RTL: "]" 83 83 text run at (17,0) width 11: "2" 84 text run at (28,0) width 6 RTL: "(" 84 text run at (28,0) width 6 RTL: "\x{202B}(" 85 text run at (34,0) width 0: "\x{202C}" 85 86 RenderText {#text} at (0,0) size 0x0 86 87 RenderBlock {P} at (0,342) size 784x18 … … 91 92 text run at (11,0) width 6 RTL: "]" 92 93 text run at (17,0) width 9: "a" 93 text run at (26,0) width 6 RTL: "(" 94 text run at (26,0) width 6 RTL: "\x{202B}(" 95 text run at (32,0) width 0: "\x{202C}" 94 96 RenderText {#text} at (0,0) size 0x0 95 97 RenderBlock {P} at (0,376) size 784x18 … … 98 100 text run at (11,0) width 26 RTL: " \x{5D2}\x{5D3}]" 99 101 text run at (37,0) width 19: "ab" 100 text run at (56,0) width 6 RTL: "(" 102 text run at (56,0) width 6 RTL: "\x{202B}(" 103 text run at (62,0) width 0: "\x{202C}" 101 104 RenderBlock {P} at (0,410) size 784x18 102 105 RenderInline {SPAN} at (0,0) size 102x18 … … 114 117 text run at (34,0) width 37 RTL: " \x{5D0}\x{5D1}\x{5D2} " 115 118 text run at (71,0) width 25: "def" 116 text run at (96,0) width 6 RTL: "(" 119 text run at (96,0) width 6 RTL: "\x{202B}(" 120 text run at (102,0) width 0: "\x{202C}" -
trunk/LayoutTests/platform/mac/fast/text/international/bidi-ignored-for-first-child-inline-expected.txt
r42379 r71566 87 87 text run at (0,1) width 25 RTL: "\x{5D3}\x{5D4}\x{5D5}" 88 88 text run at (25,1) width 10: "([" 89 text run at (35,1) width 27 RTL: "\x{5D0}\x{5D1}\x{5D2}" 89 text run at (35,1) width 27 RTL: "\x{202C}\x{5D0}\x{5D1}\x{5D2}" 90 text run at (62,1) width 0: "\x{202A}" 90 91 RenderBlock {P} at (0,421) size 784x19 91 92 RenderText {#text} at (0,1) size 35x18 -
trunk/LayoutTests/platform/mac/fast/text/international/bidi-neutral-run-expected.txt
r42389 r71566 49 49 RenderBlock {P} at (0,318) size 769x18 50 50 RenderText {#text} at (0,0) size 35x18 51 text run at (0,0) width 7: " ?"52 text run at (7,0) width 28: " (^cd"51 text run at (0,0) width 7: "\x{202A}?" 52 text run at (7,0) width 28: "\x{202C}(^cd" 53 53 RenderBlock {P} at (0,352) size 769x18 54 54 RenderText {#text} at (0,0) size 35x18 55 text run at (0,0) width 7 RTL: " ?"56 text run at (7,0) width 28: " (^cd"55 text run at (0,0) width 7 RTL: "\x{202B}?" 56 text run at (7,0) width 28: "\x{202C}(^cd" 57 57 RenderBlock {P} at (0,386) size 769x19 58 58 RenderText {#text} at (0,1) size 43x18 … … 96 96 RenderBlock {P} at (0,706) size 769x19 97 97 RenderText {#text} at (0,1) size 35x18 98 text run at (0,1) width 7: " ?"99 text run at (7,1) width 13: " (^"98 text run at (0,1) width 7: "\x{202A}?" 99 text run at (7,1) width 13: "\x{202C}(^" 100 100 text run at (20,1) width 15 RTL: "\x{5D2}\x{5D3}" 101 101 RenderBlock {P} at (0,741) size 769x19 102 102 RenderText {#text} at (0,1) size 35x18 103 text run at (0,1) width 28 RTL: " (^\x{5D2}\x{5D3}"104 text run at (28,1) width 7 RTL: " ?"103 text run at (0,1) width 28 RTL: "\x{202C}(^\x{5D2}\x{5D3}" 104 text run at (28,1) width 7 RTL: "\x{202B}?" 105 105 RenderBlock {P} at (0,776) size 769x20 106 106 RenderText {#text} at (0,2) size 45x18 … … 144 144 RenderBlock {P} at (0,1100) size 769x20 145 145 RenderText {#text} at (0,2) size 37x18 146 text run at (0,2) width 7: " ?"147 text run at (7,2) width 13: " (^"146 text run at (0,2) width 7: "\x{202A}?" 147 text run at (7,2) width 13: "\x{202C}(^" 148 148 text run at (20,2) width 17 RTL: "\x{62C}\x{62F}" 149 149 RenderBlock {P} at (0,1136) size 769x20 150 150 RenderText {#text} at (0,2) size 37x18 151 text run at (0,2) width 30 RTL: " (^\x{62C}\x{62F}"152 text run at (30,2) width 7 RTL: " ?"151 text run at (0,2) width 30 RTL: "\x{202C}(^\x{62C}\x{62F}" 152 text run at (30,2) width 7 RTL: "\x{202B}?" 153 153 RenderBlock {P} at (0,1172) size 769x19 154 154 RenderText {#text} at (0,1) size 63x18 … … 214 214 RenderBlock {P} at (0,1492) size 769x19 215 215 RenderText {#text} at (0,1) size 55x18 216 text run at (0,1) width 7: " ?"217 text run at (7,1) width 29: " (^34"216 text run at (0,1) width 7: "\x{202A}?" 217 text run at (7,1) width 29: "\x{202C}(^34" 218 218 text run at (36,1) width 12 RTL: "\x{5E9}" 219 219 text run at (48,1) width 7: "z" … … 222 222 text run at (0,1) width 12 RTL: "\x{5E9}" 223 223 text run at (12,1) width 16: "34" 224 text run at (28,1) width 13 RTL: " (^"225 text run at (41,1) width 7 RTL: " ?"224 text run at (28,1) width 13 RTL: "\x{202C}(^" 225 text run at (41,1) width 7 RTL: "\x{202B}?" 226 226 text run at (48,1) width 7: "z" 227 227 RenderBlock {P} at (0,1562) size 769x20 … … 291 291 RenderBlock {P} at (0,1886) size 769x20 292 292 RenderText {#text} at (0,2) size 55x18 293 text run at (0,2) width 7: " ?"294 text run at (7,2) width 13: " (^"293 text run at (0,2) width 7: "\x{202A}?" 294 text run at (7,2) width 13: "\x{202C}(^" 295 295 text run at (20,2) width 12 RTL: "\x{5E9}" 296 296 text run at (32,2) width 16: "\x{663}\x{664}" … … 300 300 text run at (0,2) width 12 RTL: "\x{5E9}" 301 301 text run at (12,2) width 16: "\x{663}\x{664}" 302 text run at (28,2) width 13 RTL: " (^"303 text run at (41,2) width 7 RTL: " ?"302 text run at (28,2) width 13 RTL: "\x{202C}(^" 303 text run at (41,2) width 7 RTL: "\x{202B}?" 304 304 text run at (48,2) width 7: "z" 305 305 RenderBlock {P} at (0,1958) size 769x18 306 306 RenderText {#text} at (0,0) size 33x18 307 307 text run at (0,0) width 28: "ab(^" 308 text run at (28,0) width 5: "!" 308 text run at (28,0) width 5: "\x{202A}!" 309 text run at (33,0) width 0: "\x{202C}" 309 310 RenderBlock {P} at (0,1992) size 769x19 310 311 RenderText {#text} at (0,1) size 38x18 311 312 text run at (0,1) width 20 RTL: "\x{5D0}\x{5D1}" 312 313 text run at (20,1) width 13: "(^" 313 text run at (33,1) width 5: "!" 314 text run at (33,1) width 5: "\x{202A}!" 315 text run at (38,1) width 0: "\x{202C}" 314 316 RenderBlock {P} at (0,2027) size 769x20 315 317 RenderText {#text} at (0,2) size 33x18 316 318 text run at (0,2) width 15 RTL: "\x{627}\x{628}" 317 319 text run at (15,2) width 13: "(^" 318 text run at (28,2) width 5: "!" 320 text run at (28,2) width 5: "\x{202A}!" 321 text run at (33,2) width 0: "\x{202C}" 319 322 RenderBlock {P} at (0,2063) size 769x18 320 323 RenderText {#text} at (0,0) size 49x18 321 324 text run at (0,0) width 44: "ab12(^" 322 text run at (44,0) width 5: "!" 325 text run at (44,0) width 5: "\x{202A}!" 326 text run at (49,0) width 0: "\x{202C}" 323 327 RenderBlock {P} at (0,2097) size 769x19 324 328 RenderText {#text} at (0,1) size 54x18 … … 326 330 text run at (16,1) width 20 RTL: "\x{5D0}\x{5D1}" 327 331 text run at (36,1) width 13: "(^" 328 text run at (49,1) width 5: "!" 332 text run at (49,1) width 5: "\x{202A}!" 333 text run at (54,1) width 0: "\x{202C}" 329 334 RenderBlock {P} at (0,2132) size 769x20 330 335 RenderText {#text} at (0,2) size 49x18 … … 332 337 text run at (16,2) width 15 RTL: "\x{627}\x{628}" 333 338 text run at (31,2) width 13: "(^" 334 text run at (44,2) width 5: "!" 339 text run at (44,2) width 5: "\x{202A}!" 340 text run at (49,2) width 0: "\x{202C}" 335 341 RenderBlock {P} at (0,2168) size 769x20 336 342 RenderText {#text} at (0,2) size 49x18 … … 338 344 text run at (15,2) width 16: "\x{661}\x{662}" 339 345 text run at (31,2) width 13: "(^" 340 text run at (44,2) width 5: "!" 346 text run at (44,2) width 5: "\x{202A}!" 347 text run at (49,2) width 0: "\x{202C}" 341 348 RenderBlock {P} at (0,2204) size 769x20 342 349 RenderText {#text} at (0,2) size 54x18 … … 344 351 text run at (16,2) width 20 RTL: "\x{5D0}\x{5D1}" 345 352 text run at (36,2) width 13: "(^" 346 text run at (49,2) width 5: "!" 353 text run at (49,2) width 5: "\x{202A}!" 354 text run at (54,2) width 0: "\x{202C}" 347 355 RenderBlock {P} at (0,2240) size 769x20 348 356 RenderText {#text} at (0,2) size 49x18 … … 350 358 text run at (16,2) width 15 RTL: "\x{627}\x{628}" 351 359 text run at (31,2) width 13: "(^" 352 text run at (44,2) width 5: "!" 360 text run at (44,2) width 5: "\x{202A}!" 361 text run at (49,2) width 0: "\x{202C}" 353 362 RenderBlock {P} at (0,2276) size 769x18 354 363 RenderText {#text} at (0,0) size 25x18 355 text run at (0,0) width 7: "?" 356 text run at (7,0) width 13: "(^" 357 text run at (20,0) width 5: "!" 364 text run at (0,0) width 7: "\x{202A}?" 365 text run at (7,0) width 13: "\x{202C}(^" 366 text run at (20,0) width 5: "\x{202A}!" 367 text run at (25,0) width 0: "\x{202C}" 358 368 RenderBlock {P} at (0,2310) size 769x18 359 369 RenderText {#text} at (0,0) size 25x18 360 text run at (0,0) width 7 RTL: "?" 361 text run at (7,0) width 13: "(^" 362 text run at (20,0) width 5: "!" 370 text run at (0,0) width 7 RTL: "\x{202B}?" 371 text run at (7,0) width 13: "\x{202C}(^" 372 text run at (20,0) width 5: "\x{202A}!" 373 text run at (25,0) width 0: "\x{202C}" 363 374 RenderBlock {P} at (0,2344) size 769x18 364 375 RenderText {#text} at (0,0) size 33x18 365 376 text run at (0,0) width 28: "ab(^" 366 text run at (28,0) width 5 RTL: "!" 377 text run at (28,0) width 5 RTL: "\x{202B}!" 378 text run at (33,0) width 0: "\x{202C}" 367 379 RenderBlock {P} at (0,2378) size 769x19 368 380 RenderText {#text} at (0,1) size 38x18 369 text run at (0,1) width 5 RTL: " !"381 text run at (0,1) width 5 RTL: "\x{202B}!" 370 382 text run at (5,1) width 33 RTL: "\x{5D0}\x{5D1}(^" 383 text run at (38,1) width 0: "\x{202C}" 371 384 RenderBlock {P} at (0,2413) size 769x20 372 385 RenderText {#text} at (0,2) size 33x18 373 text run at (0,2) width 5 RTL: " !"386 text run at (0,2) width 5 RTL: "\x{202B}!" 374 387 text run at (5,2) width 28 RTL: "\x{627}\x{628}(^" 388 text run at (33,2) width 0: "\x{202C}" 375 389 RenderBlock {P} at (0,2449) size 769x18 376 390 RenderText {#text} at (0,0) size 49x18 377 391 text run at (0,0) width 44: "ab12(^" 378 text run at (44,0) width 5 RTL: "!" 392 text run at (44,0) width 5 RTL: "\x{202B}!" 393 text run at (49,0) width 0: "\x{202C}" 379 394 RenderBlock {P} at (0,2483) size 769x19 380 395 RenderText {#text} at (0,1) size 54x18 381 text run at (0,1) width 5 RTL: " !"396 text run at (0,1) width 5 RTL: "\x{202B}!" 382 397 text run at (5,1) width 13 RTL: "(^" 383 398 text run at (18,1) width 16: "12" 384 399 text run at (34,1) width 20 RTL: "\x{5D0}\x{5D1}" 400 text run at (54,1) width 0: "\x{202C}" 385 401 RenderBlock {P} at (0,2518) size 769x20 386 402 RenderText {#text} at (0,2) size 49x18 387 text run at (0,2) width 5 RTL: " !"403 text run at (0,2) width 5 RTL: "\x{202B}!" 388 404 text run at (5,2) width 13 RTL: "(^" 389 405 text run at (18,2) width 16: "12" 390 406 text run at (34,2) width 15 RTL: "\x{627}\x{628}" 407 text run at (49,2) width 0: "\x{202C}" 391 408 RenderBlock {P} at (0,2554) size 769x20 392 409 RenderText {#text} at (0,2) size 49x18 393 410 text run at (0,2) width 15: "ab" 394 text run at (15,2) width 5 RTL: " !"411 text run at (15,2) width 5 RTL: "\x{202B}!" 395 412 text run at (20,2) width 13 RTL: "(^" 396 413 text run at (33,2) width 16: "\x{661}\x{662}" 414 text run at (49,2) width 0: "\x{202C}" 397 415 RenderBlock {P} at (0,2590) size 769x20 398 416 RenderText {#text} at (0,2) size 54x18 399 text run at (0,2) width 5 RTL: " !"417 text run at (0,2) width 5 RTL: "\x{202B}!" 400 418 text run at (5,2) width 13 RTL: "(^" 401 419 text run at (18,2) width 16: "\x{661}\x{662}" 402 420 text run at (34,2) width 20 RTL: "\x{5D0}\x{5D1}" 421 text run at (54,2) width 0: "\x{202C}" 403 422 RenderBlock {P} at (0,2626) size 769x20 404 423 RenderText {#text} at (0,2) size 49x18 405 text run at (0,2) width 5 RTL: " !"424 text run at (0,2) width 5 RTL: "\x{202B}!" 406 425 text run at (5,2) width 13 RTL: "(^" 407 426 text run at (18,2) width 16: "\x{661}\x{662}" 408 427 text run at (34,2) width 15 RTL: "\x{627}\x{628}" 428 text run at (49,2) width 0: "\x{202C}" 409 429 RenderBlock {P} at (0,2662) size 769x18 410 430 RenderText {#text} at (0,0) size 25x18 411 text run at (0,0) width 7: "?" 412 text run at (7,0) width 13: "(^" 413 text run at (20,0) width 5 RTL: "!" 431 text run at (0,0) width 7: "\x{202A}?" 432 text run at (7,0) width 13: "\x{202C}(^" 433 text run at (20,0) width 5 RTL: "\x{202B}!" 434 text run at (25,0) width 0: "\x{202C}" 414 435 RenderBlock {P} at (0,2696) size 769x18 415 436 RenderText {#text} at (0,0) size 25x18 416 text run at (0,0) width 5 RTL: "!" 417 text run at (5,0) width 13 RTL: "(^" 418 text run at (18,0) width 7 RTL: "?" 437 text run at (0,0) width 5 RTL: "\x{202B}!" 438 text run at (5,0) width 13 RTL: "\x{202C}(^" 439 text run at (18,0) width 7 RTL: "\x{202B}?" 440 text run at (25,0) width 0: "\x{202C}" 419 441 RenderBlock {P} at (0,2730) size 769x18 420 442 RenderText {#text} at (0,0) size 28x18 421 text run at (0,0) width 28: "ab(^" 443 text run at (0,0) width 28: "\x{202A}ab(^" 444 text run at (28,0) width 0: "\x{202C}" 422 445 RenderBlock {P} at (0,2764) size 769x19 423 446 RenderText {#text} at (0,1) size 33x18 424 text run at (0,1) width 20 RTL: "\x{ 5D0}\x{5D1}"447 text run at (0,1) width 20 RTL: "\x{202A}\x{5D0}\x{5D1}" 425 448 text run at (20,1) width 13: "(^" 449 text run at (33,1) width 0: "\x{202C}" 426 450 RenderBlock {P} at (0,2799) size 769x20 427 451 RenderText {#text} at (0,2) size 28x18 428 text run at (0,2) width 15 RTL: "\x{ 627}\x{628}"452 text run at (0,2) width 15 RTL: "\x{202A}\x{627}\x{628}" 429 453 text run at (15,2) width 13: "(^" 454 text run at (28,2) width 0: "\x{202C}" 430 455 RenderBlock {P} at (0,2835) size 769x18 431 456 RenderText {#text} at (0,0) size 44x18 432 text run at (0,0) width 44: "ab12(^" 457 text run at (0,0) width 44: "\x{202A}ab12(^" 458 text run at (44,0) width 0: "\x{202C}" 433 459 RenderBlock {P} at (0,2869) size 769x19 434 460 RenderText {#text} at (0,1) size 49x18 435 461 text run at (0,1) width 16: "12" 436 text run at (16,1) width 20 RTL: "\x{ 5D0}\x{5D1}"462 text run at (16,1) width 20 RTL: "\x{202A}\x{5D0}\x{5D1}" 437 463 text run at (36,1) width 13: "(^" 464 text run at (49,1) width 0: "\x{202C}" 438 465 RenderBlock {P} at (0,2904) size 769x20 439 466 RenderText {#text} at (0,2) size 44x18 440 467 text run at (0,2) width 16: "12" 441 text run at (16,2) width 15 RTL: "\x{ 627}\x{628}"468 text run at (16,2) width 15 RTL: "\x{202A}\x{627}\x{628}" 442 469 text run at (31,2) width 13: "(^" 470 text run at (44,2) width 0: "\x{202C}" 443 471 RenderBlock {P} at (0,2940) size 769x20 444 472 RenderText {#text} at (0,2) size 44x18 445 text run at (0,2) width 15: " ab"473 text run at (0,2) width 15: "\x{202A}ab" 446 474 text run at (15,2) width 16: "\x{661}\x{662}" 447 475 text run at (31,2) width 13: "(^" 476 text run at (44,2) width 0: "\x{202C}" 448 477 RenderBlock {P} at (0,2976) size 769x20 449 478 RenderText {#text} at (0,2) size 49x18 450 479 text run at (0,2) width 16: "\x{661}\x{662}" 451 text run at (16,2) width 20 RTL: "\x{ 5D0}\x{5D1}"480 text run at (16,2) width 20 RTL: "\x{202A}\x{5D0}\x{5D1}" 452 481 text run at (36,2) width 13: "(^" 482 text run at (49,2) width 0: "\x{202C}" 453 483 RenderBlock {P} at (0,3012) size 769x20 454 484 RenderText {#text} at (0,2) size 44x18 455 485 text run at (0,2) width 16: "\x{661}\x{662}" 456 text run at (16,2) width 15 RTL: "\x{ 627}\x{628}"486 text run at (16,2) width 15 RTL: "\x{202A}\x{627}\x{628}" 457 487 text run at (31,2) width 13: "(^" 488 text run at (44,2) width 0: "\x{202C}" 458 489 RenderBlock {P} at (0,3048) size 769x18 459 490 RenderText {#text} at (0,0) size 20x18 460 text run at (0,0) width 7: "?" 461 text run at (7,0) width 13: "(^" 491 text run at (0,0) width 0: "\x{202A}" 492 text run at (0,0) width 7: "\x{202A}?" 493 text run at (7,0) width 13: "\x{202C}(^" 494 text run at (20,0) width 0: "\x{202C}" 462 495 RenderBlock {P} at (0,3082) size 769x18 463 496 RenderText {#text} at (0,0) size 20x18 464 text run at (0,0) width 7 RTL: "?" 465 text run at (7,0) width 13: "(^" 497 text run at (0,0) width 0: "\x{202A}" 498 text run at (0,0) width 7 RTL: "\x{202B}?" 499 text run at (7,0) width 13: "\x{202C}(^" 500 text run at (20,0) width 0: "\x{202C}" 466 501 RenderBlock {DIV} at (0,3150) size 769x3100 467 502 RenderBlock {P} at (0,0) size 769x18 … … 510 545 RenderBlock {P} at (0,318) size 769x18 511 546 RenderText {#text} at (0,0) size 35x18 512 text run at (0,0) width 7: " ?"513 text run at (7,0) width 28: " (^cd"547 text run at (0,0) width 7: "\x{202A}?" 548 text run at (7,0) width 28: "\x{202C}(^cd" 514 549 RenderBlock {P} at (0,352) size 769x18 515 550 RenderText {#text} at (0,0) size 35x18 516 551 text run at (0,0) width 15: "cd" 517 text run at (15,0) width 13 RTL: " (^"518 text run at (28,0) width 7 RTL: " ?"552 text run at (15,0) width 13 RTL: "\x{202C}(^" 553 text run at (28,0) width 7 RTL: "\x{202B}?" 519 554 RenderBlock {P} at (0,386) size 769x19 520 555 RenderText {#text} at (0,1) size 43x18 … … 557 592 RenderBlock {P} at (0,706) size 769x19 558 593 RenderText {#text} at (0,1) size 35x18 559 text run at (0,1) width 28 RTL: " (^\x{5D2}\x{5D3}"560 text run at (28,1) width 7: " ?"594 text run at (0,1) width 28 RTL: "\x{202C}(^\x{5D2}\x{5D3}" 595 text run at (28,1) width 7: "\x{202A}?" 561 596 RenderBlock {P} at (0,741) size 769x19 562 597 RenderText {#text} at (0,1) size 35x18 563 text run at (0,1) width 28 RTL: " (^\x{5D2}\x{5D3}"564 text run at (28,1) width 7 RTL: " ?"598 text run at (0,1) width 28 RTL: "\x{202C}(^\x{5D2}\x{5D3}" 599 text run at (28,1) width 7 RTL: "\x{202B}?" 565 600 RenderBlock {P} at (0,776) size 769x20 566 601 RenderText {#text} at (0,2) size 45x18 … … 603 638 RenderBlock {P} at (0,1100) size 769x20 604 639 RenderText {#text} at (0,2) size 37x18 605 text run at (0,2) width 30 RTL: " (^\x{62C}\x{62F}"606 text run at (30,2) width 7: " ?"640 text run at (0,2) width 30 RTL: "\x{202C}(^\x{62C}\x{62F}" 641 text run at (30,2) width 7: "\x{202A}?" 607 642 RenderBlock {P} at (0,1136) size 769x20 608 643 RenderText {#text} at (0,2) size 37x18 609 text run at (0,2) width 30 RTL: " (^\x{62C}\x{62F}"610 text run at (30,2) width 7 RTL: " ?"644 text run at (0,2) width 30 RTL: "\x{202C}(^\x{62C}\x{62F}" 645 text run at (30,2) width 7 RTL: "\x{202B}?" 611 646 RenderBlock {P} at (0,1172) size 769x19 612 647 RenderText {#text} at (0,1) size 63x18 … … 674 709 text run at (0,1) width 7: "z" 675 710 text run at (7,1) width 12 RTL: "\x{5E9}" 676 text run at (19,1) width 7: " ?"677 text run at (26,1) width 29: " (^34"711 text run at (19,1) width 7: "\x{202A}?" 712 text run at (26,1) width 29: "\x{202C}(^34" 678 713 RenderBlock {P} at (0,1527) size 769x19 679 714 RenderText {#text} at (0,1) size 55x18 … … 681 716 text run at (7,1) width 12 RTL: "\x{5E9}" 682 717 text run at (19,1) width 16: "34" 683 text run at (35,1) width 13 RTL: " (^"684 text run at (48,1) width 7 RTL: " ?"718 text run at (35,1) width 13 RTL: "\x{202C}(^" 719 text run at (48,1) width 7 RTL: "\x{202B}?" 685 720 RenderBlock {P} at (0,1562) size 769x20 686 721 RenderText {#text} at (0,2) size 63x18 … … 753 788 text run at (7,2) width 12 RTL: "\x{5E9}" 754 789 text run at (19,2) width 16: "\x{663}\x{664}" 755 text run at (35,2) width 13 RTL: " (^"756 text run at (48,2) width 7: " ?"790 text run at (35,2) width 13 RTL: "\x{202C}(^" 791 text run at (48,2) width 7: "\x{202A}?" 757 792 RenderBlock {P} at (0,1922) size 769x20 758 793 RenderText {#text} at (0,2) size 55x18 … … 760 795 text run at (7,2) width 12 RTL: "\x{5E9}" 761 796 text run at (19,2) width 16: "\x{663}\x{664}" 762 text run at (35,2) width 13 RTL: " (^"763 text run at (48,2) width 7 RTL: " ?"797 text run at (35,2) width 13 RTL: "\x{202C}(^" 798 text run at (48,2) width 7 RTL: "\x{202B}?" 764 799 RenderBlock {P} at (0,1958) size 769x18 765 800 RenderText {#text} at (0,0) size 33x18 801 text run at (0,0) width 0 RTL: "\x{202C}" 766 802 text run at (0,0) width 28: "ab(^" 767 text run at (28,0) width 5: " !"803 text run at (28,0) width 5: "\x{202A}!" 768 804 RenderBlock {P} at (0,1992) size 769x19 769 805 RenderText {#text} at (0,1) size 38x18 770 text run at (0,1) width 5: "!" 806 text run at (0,1) width 0 RTL: "\x{202C}" 807 text run at (0,1) width 5: "\x{202A}!" 771 808 text run at (5,1) width 33 RTL: "\x{5D0}\x{5D1}(^" 772 809 RenderBlock {P} at (0,2027) size 769x20 773 810 RenderText {#text} at (0,2) size 33x18 774 text run at (0,2) width 5: "!" 811 text run at (0,2) width 0 RTL: "\x{202C}" 812 text run at (0,2) width 5: "\x{202A}!" 775 813 text run at (5,2) width 28 RTL: "\x{627}\x{628}(^" 776 814 RenderBlock {P} at (0,2063) size 769x18 777 815 RenderText {#text} at (0,0) size 49x18 816 text run at (0,0) width 0 RTL: "\x{202C}" 778 817 text run at (0,0) width 44: "ab12(^" 779 text run at (44,0) width 5: " !"818 text run at (44,0) width 5: "\x{202A}!" 780 819 RenderBlock {P} at (0,2097) size 769x19 781 820 RenderText {#text} at (0,1) size 54x18 782 text run at (0,1) width 5: "!" 821 text run at (0,1) width 0 RTL: "\x{202C}" 822 text run at (0,1) width 5: "\x{202A}!" 783 823 text run at (5,1) width 13 RTL: "(^" 784 824 text run at (18,1) width 16: "12" … … 786 826 RenderBlock {P} at (0,2132) size 769x20 787 827 RenderText {#text} at (0,2) size 49x18 788 text run at (0,2) width 5: "!" 828 text run at (0,2) width 0 RTL: "\x{202C}" 829 text run at (0,2) width 5: "\x{202A}!" 789 830 text run at (5,2) width 13 RTL: "(^" 790 831 text run at (18,2) width 16: "12" … … 792 833 RenderBlock {P} at (0,2168) size 769x20 793 834 RenderText {#text} at (0,2) size 49x18 794 text run at (0,2) width 5: "!" 835 text run at (0,2) width 0 RTL: "\x{202C}" 836 text run at (0,2) width 5: "\x{202A}!" 795 837 text run at (5,2) width 13 RTL: "(^" 796 838 text run at (18,2) width 31: "ab\x{661}\x{662}" 797 839 RenderBlock {P} at (0,2204) size 769x20 798 840 RenderText {#text} at (0,2) size 54x18 799 text run at (0,2) width 5: "!" 841 text run at (0,2) width 0 RTL: "\x{202C}" 842 text run at (0,2) width 5: "\x{202A}!" 800 843 text run at (5,2) width 13 RTL: "(^" 801 844 text run at (18,2) width 16: "\x{661}\x{662}" … … 803 846 RenderBlock {P} at (0,2240) size 769x20 804 847 RenderText {#text} at (0,2) size 49x18 805 text run at (0,2) width 5: "!" 848 text run at (0,2) width 0 RTL: "\x{202C}" 849 text run at (0,2) width 5: "\x{202A}!" 806 850 text run at (5,2) width 13 RTL: "(^" 807 851 text run at (18,2) width 16: "\x{661}\x{662}" … … 809 853 RenderBlock {P} at (0,2276) size 769x18 810 854 RenderText {#text} at (0,0) size 25x18 811 text run at (0,0) width 7: "?" 812 text run at (7,0) width 13: "(^" 813 text run at (20,0) width 5: "!" 855 text run at (0,0) width 0 RTL: "\x{202C}" 856 text run at (0,0) width 7: "\x{202A}?" 857 text run at (7,0) width 13: "\x{202C}(^" 858 text run at (20,0) width 5: "\x{202A}!" 814 859 RenderBlock {P} at (0,2310) size 769x18 815 860 RenderText {#text} at (0,0) size 25x18 816 text run at (0,0) width 5: "!" 817 text run at (5,0) width 13 RTL: "(^" 818 text run at (18,0) width 7 RTL: "?" 861 text run at (0,0) width 0 RTL: "\x{202C}" 862 text run at (0,0) width 5: "\x{202A}!" 863 text run at (5,0) width 13 RTL: "\x{202C}(^" 864 text run at (18,0) width 7 RTL: "\x{202B}?" 819 865 RenderBlock {P} at (0,2344) size 769x18 820 866 RenderText {#text} at (0,0) size 33x18 821 text run at (0,0) width 5 RTL: "!" 867 text run at (0,0) width 0 RTL: "\x{202C}" 868 text run at (0,0) width 5 RTL: "\x{202B}!" 822 869 text run at (5,0) width 13 RTL: "(^" 823 870 text run at (18,0) width 15: "ab" 824 871 RenderBlock {P} at (0,2378) size 769x19 825 872 RenderText {#text} at (0,1) size 38x18 826 text run at (0,1) width 5 RTL: "!" 873 text run at (0,1) width 0 RTL: "\x{202C}" 874 text run at (0,1) width 5 RTL: "\x{202B}!" 827 875 text run at (5,1) width 33 RTL: "\x{5D0}\x{5D1}(^" 828 876 RenderBlock {P} at (0,2413) size 769x20 829 877 RenderText {#text} at (0,2) size 33x18 830 text run at (0,2) width 5 RTL: "!" 878 text run at (0,2) width 0 RTL: "\x{202C}" 879 text run at (0,2) width 5 RTL: "\x{202B}!" 831 880 text run at (5,2) width 28 RTL: "\x{627}\x{628}(^" 832 881 RenderBlock {P} at (0,2449) size 769x18 833 882 RenderText {#text} at (0,0) size 49x18 834 text run at (0,0) width 5 RTL: "!" 883 text run at (0,0) width 0 RTL: "\x{202C}" 884 text run at (0,0) width 5 RTL: "\x{202B}!" 835 885 text run at (5,0) width 13 RTL: "(^" 836 886 text run at (18,0) width 31: "ab12" 837 887 RenderBlock {P} at (0,2483) size 769x19 838 888 RenderText {#text} at (0,1) size 54x18 839 text run at (0,1) width 5 RTL: "!" 889 text run at (0,1) width 0 RTL: "\x{202C}" 890 text run at (0,1) width 5 RTL: "\x{202B}!" 840 891 text run at (5,1) width 13 RTL: "(^" 841 892 text run at (18,1) width 16: "12" … … 843 894 RenderBlock {P} at (0,2518) size 769x20 844 895 RenderText {#text} at (0,2) size 49x18 845 text run at (0,2) width 5 RTL: "!" 896 text run at (0,2) width 0 RTL: "\x{202C}" 897 text run at (0,2) width 5 RTL: "\x{202B}!" 846 898 text run at (5,2) width 13 RTL: "(^" 847 899 text run at (18,2) width 16: "12" … … 849 901 RenderBlock {P} at (0,2554) size 769x20 850 902 RenderText {#text} at (0,2) size 49x18 851 text run at (0,2) width 5 RTL: "!" 903 text run at (0,2) width 0 RTL: "\x{202C}" 904 text run at (0,2) width 5 RTL: "\x{202B}!" 852 905 text run at (5,2) width 13 RTL: "(^" 853 906 text run at (18,2) width 31: "ab\x{661}\x{662}" 854 907 RenderBlock {P} at (0,2590) size 769x20 855 908 RenderText {#text} at (0,2) size 54x18 856 text run at (0,2) width 5 RTL: "!" 909 text run at (0,2) width 0 RTL: "\x{202C}" 910 text run at (0,2) width 5 RTL: "\x{202B}!" 857 911 text run at (5,2) width 13 RTL: "(^" 858 912 text run at (18,2) width 16: "\x{661}\x{662}" … … 860 914 RenderBlock {P} at (0,2626) size 769x20 861 915 RenderText {#text} at (0,2) size 49x18 862 text run at (0,2) width 5 RTL: "!" 916 text run at (0,2) width 0 RTL: "\x{202C}" 917 text run at (0,2) width 5 RTL: "\x{202B}!" 863 918 text run at (5,2) width 13 RTL: "(^" 864 919 text run at (18,2) width 16: "\x{661}\x{662}" … … 866 921 RenderBlock {P} at (0,2662) size 769x18 867 922 RenderText {#text} at (0,0) size 25x18 868 text run at (0,0) width 5 RTL: "!" 869 text run at (5,0) width 13 RTL: "(^" 870 text run at (18,0) width 7: "?" 923 text run at (0,0) width 0 RTL: "\x{202C}" 924 text run at (0,0) width 5 RTL: "\x{202B}!" 925 text run at (5,0) width 13 RTL: "\x{202C}(^" 926 text run at (18,0) width 7: "\x{202A}?" 871 927 RenderBlock {P} at (0,2696) size 769x18 872 928 RenderText {#text} at (0,0) size 25x18 873 text run at (0,0) width 5 RTL: "!" 874 text run at (5,0) width 13 RTL: "(^" 875 text run at (18,0) width 7 RTL: "?" 929 text run at (0,0) width 0 RTL: "\x{202C}" 930 text run at (0,0) width 5 RTL: "\x{202B}!" 931 text run at (5,0) width 13 RTL: "\x{202C}(^" 932 text run at (18,0) width 7 RTL: "\x{202B}?" 876 933 RenderBlock {P} at (0,2730) size 769x18 877 934 RenderText {#text} at (0,0) size 28x18 878 text run at (0,0) width 28: "ab(^" 935 text run at (0,0) width 0 RTL: "\x{202C}" 936 text run at (0,0) width 28: "\x{202A}ab(^" 879 937 RenderBlock {P} at (0,2764) size 769x19 880 938 RenderText {#text} at (0,1) size 33x18 881 text run at (0,1) width 20 RTL: "\x{5D0}\x{5D1}" 939 text run at (0,1) width 0 RTL: "\x{202C}" 940 text run at (0,1) width 20 RTL: "\x{202A}\x{5D0}\x{5D1}" 882 941 text run at (20,1) width 13: "(^" 883 942 RenderBlock {P} at (0,2799) size 769x20 884 943 RenderText {#text} at (0,2) size 28x18 885 text run at (0,2) width 15 RTL: "\x{627}\x{628}" 944 text run at (0,2) width 0 RTL: "\x{202C}" 945 text run at (0,2) width 15 RTL: "\x{202A}\x{627}\x{628}" 886 946 text run at (15,2) width 13: "(^" 887 947 RenderBlock {P} at (0,2835) size 769x18 888 948 RenderText {#text} at (0,0) size 44x18 889 text run at (0,0) width 44: "ab12(^" 949 text run at (0,0) width 0 RTL: "\x{202C}" 950 text run at (0,0) width 44: "\x{202A}ab12(^" 890 951 RenderBlock {P} at (0,2869) size 769x19 891 952 RenderText {#text} at (0,1) size 49x18 953 text run at (0,1) width 0 RTL: "\x{202C}" 892 954 text run at (0,1) width 16: "12" 893 text run at (16,1) width 20 RTL: "\x{ 5D0}\x{5D1}"955 text run at (16,1) width 20 RTL: "\x{202A}\x{5D0}\x{5D1}" 894 956 text run at (36,1) width 13: "(^" 895 957 RenderBlock {P} at (0,2904) size 769x20 896 958 RenderText {#text} at (0,2) size 44x18 959 text run at (0,2) width 0 RTL: "\x{202C}" 897 960 text run at (0,2) width 16: "12" 898 text run at (16,2) width 15 RTL: "\x{ 627}\x{628}"961 text run at (16,2) width 15 RTL: "\x{202A}\x{627}\x{628}" 899 962 text run at (31,2) width 13: "(^" 900 963 RenderBlock {P} at (0,2940) size 769x20 901 964 RenderText {#text} at (0,2) size 44x18 902 text run at (0,2) width 15: "ab" 965 text run at (0,2) width 0 RTL: "\x{202C}" 966 text run at (0,2) width 15: "\x{202A}ab" 903 967 text run at (15,2) width 16: "\x{661}\x{662}" 904 968 text run at (31,2) width 13: "(^" 905 969 RenderBlock {P} at (0,2976) size 769x20 906 970 RenderText {#text} at (0,2) size 49x18 971 text run at (0,2) width 0 RTL: "\x{202C}" 907 972 text run at (0,2) width 16: "\x{661}\x{662}" 908 text run at (16,2) width 20 RTL: "\x{ 5D0}\x{5D1}"973 text run at (16,2) width 20 RTL: "\x{202A}\x{5D0}\x{5D1}" 909 974 text run at (36,2) width 13: "(^" 910 975 RenderBlock {P} at (0,3012) size 769x20 911 976 RenderText {#text} at (0,2) size 44x18 977 text run at (0,2) width 0 RTL: "\x{202C}" 912 978 text run at (0,2) width 16: "\x{661}\x{662}" 913 text run at (16,2) width 15 RTL: "\x{ 627}\x{628}"979 text run at (16,2) width 15 RTL: "\x{202A}\x{627}\x{628}" 914 980 text run at (31,2) width 13: "(^" 915 981 RenderBlock {P} at (0,3048) size 769x18 916 982 RenderText {#text} at (0,0) size 20x18 917 text run at (0,0) width 7: "?" 918 text run at (7,0) width 13: "(^" 983 text run at (0,0) width 0 RTL: "\x{202C}" 984 text run at (0,0) width 0: "\x{202A}" 985 text run at (0,0) width 7: "\x{202A}?" 986 text run at (7,0) width 13: "\x{202C}(^" 919 987 RenderBlock {P} at (0,3082) size 769x18 920 988 RenderText {#text} at (0,0) size 20x18 921 text run at (0,0) width 7 RTL: "?" 922 text run at (7,0) width 13: "(^" 989 text run at (0,0) width 0 RTL: "\x{202C}" 990 text run at (0,0) width 0: "\x{202A}" 991 text run at (0,0) width 7 RTL: "\x{202B}?" 992 text run at (7,0) width 13: "\x{202C}(^" -
trunk/LayoutTests/platform/mac/fast/text/international/bidi-override-expected.txt
r42379 r71566 111 111 RenderText {#text} at (5,6) size 233x18 112 112 text run at (5,6) width 22: "abc" 113 text run at (27,6) width 67 RTL override: " ihg\x{5D0}\x{5D1}\x{5D2}fed"114 text run at (94,6) width 20: " jkl "115 text run at (114,6) width 23 RTL: "\x{ 5D9}\x{5DB}\x{5DC}"116 text run at (137,6) width 74 LTR override: "\x{ 5D8}\x{5D7}\x{5D6}abc\x{5D5}\x{5D4}\x{5D3}"113 text run at (27,6) width 67 RTL override: "\x{202E}ihg\x{5D0}\x{5D1}\x{5D2}fed" 114 text run at (94,6) width 20: "\x{202C}jkl " 115 text run at (114,6) width 23 RTL: "\x{202C}\x{5D9}\x{5DB}\x{5DC}" 116 text run at (137,6) width 74 LTR override: "\x{202D}\x{5D8}\x{5D7}\x{5D6}abc\x{5D5}\x{5D4}\x{5D3}" 117 117 text run at (211,6) width 27 RTL: "\x{5D0}\x{5D1}\x{5D2}" 118 118 RenderTableCell {TD} at (339,84) size 242x28 [border: (1px solid #008000)] [r=3 c=2 rs=1 cs=1] 119 119 RenderText {#text} at (5,6) size 233x18 120 text run at (5,6) width 23 RTL: "\x{ 5D9}\x{5DB}\x{5DC}"121 text run at (28,6) width 74 LTR override: "\x{ 5D8}\x{5D7}\x{5D6}abc\x{5D5}\x{5D4}\x{5D3}"120 text run at (5,6) width 23 RTL: "\x{202C}\x{5D9}\x{5DB}\x{5DC}" 121 text run at (28,6) width 74 LTR override: "\x{202D}\x{5D8}\x{5D7}\x{5D6}abc\x{5D5}\x{5D4}\x{5D3}" 122 122 text run at (102,6) width 27 RTL: "\x{5D0}\x{5D1}\x{5D2}" 123 123 text run at (129,6) width 4 RTL: " " 124 124 text run at (133,6) width 22: "abc" 125 text run at (155,6) width 67 RTL override: " ihg\x{5D0}\x{5D1}\x{5D2}fed"126 text run at (222,6) width 16: " jkl"125 text run at (155,6) width 67 RTL override: "\x{202E}ihg\x{5D0}\x{5D1}\x{5D2}fed" 126 text run at (222,6) width 16: "\x{202C}jkl" 127 127 RenderBlock {P} at (0,163) size 784x18 128 128 RenderText {#text} at (0,0) size 387x18 -
trunk/WebCore/ChangeLog
r71563 r71566 1 2010-11-08 Xiaomei Ji <xji@chromium.org> 2 3 Reviewed by Dan Bernstein. 4 5 Fix Unicode explicit bidi control characters are removed in editing operations, 6 such as insert/copy/cut/paste. 7 https://bugs.webkit.org/show_bug.cgi?id=25321 8 9 Unicode explicit bidi control characters were excluded in BidiRun and 10 consequently from InlineTextBoxes due to their effect on rendering complex 11 text with ATSUI. 12 The fix is including those characters in BidiRun and remove them from 13 ComplexTextRun with ATSUI. 14 15 Test: editing/inserting/insert-paste-bidi-control.html 16 fast/text/atsui-bidi-control.html 17 18 * platform/graphics/mac/ComplexTextControllerATSUI.cpp: 19 (WebCore::ComplexTextController::ComplexTextRun::ComplexTextRun): 20 * platform/text/BidiResolver.h: 21 (WebCore::::checkDirectionInLowerRaiseEmbeddingLevel): 22 (WebCore::::lowerExplicitEmbeddingLevel): 23 (WebCore::::raiseExplicitEmbeddingLevel): 24 (WebCore::::createBidiRunsForLine): 25 1 26 2010-11-08 David Hyatt <hyatt@apple.com> 2 27 -
trunk/WebCore/platform/graphics/mac/ComplexTextControllerATSUI.cpp
r54729 r71566 31 31 32 32 #ifdef __LP64__ 33 // ATSUTextInserted() is SPI in 64-bit.34 33 extern "C" { 35 34 OSStatus ATSUTextInserted(ATSUTextLayout iTextLayout, UniCharArrayOffset iInsertionLocation, UniCharCount iInsertionLength); 35 OSStatus ATSUTextDeleted(ATSUTextLayout iTextLayout, UniCharArrayOffset iInsertionLocation, UniCharCount iInsertionLength); 36 36 } 37 37 #endif … … 189 189 } 190 190 191 // Remove the leading character if it is one of explicit Unicode bidi control characters. 192 // Explicit Unicode bidi control character, if present, is always the leading 193 // character in a run. And it could be the leading character in a LTR run. 194 // For example, "a‫x!Êc;y", the last run "‬y" is a LTR run 195 // and begins with an explicit Unicode bidi control character. 196 if (stringLength > 0) { 197 UChar leadingCharacter; 198 if (substituteCharacters.isEmpty()) 199 leadingCharacter = characters[0]; 200 else 201 leadingCharacter = substituteCharacters[0]; 202 if (leadingCharacter == leftToRightEmbed 203 || leadingCharacter == leftToRightOverride 204 || leadingCharacter == rightToLeftEmbed 205 || leadingCharacter == rightToLeftOverride 206 || leadingCharacter == popDirectionalFormatting) 207 if (substituteCharacters.isEmpty()) { 208 substituteCharacters.grow(stringLength - 1); 209 memcpy(substituteCharacters.data(), characters + 1, (stringLength - 1) * sizeof(UChar)); 210 ATSUTextMoved(atsuTextLayout, substituteCharacters.data()); 211 } else { 212 substituteCharacters.remove(0); 213 ATSUTextDeleted(atsuTextLayout, 0, 1); 214 } 215 } 216 191 217 if (directionalOverride) { 192 218 UChar override = ltr ? leftToRightOverride : rightToLeftOverride; … … 215 241 216 242 ItemCount boundsCount; 217 status = ATSUGetGlyphBounds(atsuTextLayout, 0, 0, 0, m_stringLength, kATSUseFractionalOrigins, 0, 0, &boundsCount);243 status = ATSUGetGlyphBounds(atsuTextLayout, 0, 0, 0, kATSUToTextEnd, kATSUseFractionalOrigins, 0, 0, &boundsCount); 218 244 219 245 status = ATSUDisposeTextLayout(atsuTextLayout); -
trunk/WebCore/platform/text/BidiResolver.h
r61921 r71566 202 202 void raiseExplicitEmbeddingLevel(WTF::Unicode::Direction from, WTF::Unicode::Direction to); 203 203 void lowerExplicitEmbeddingLevel(WTF::Unicode::Direction from); 204 void checkDirectionInLowerRaiseEmbeddingLevel(); 204 205 205 206 Vector<WTF::Unicode::Direction, 8> m_currentExplicitEmbeddingSequence; … … 309 310 310 311 template <class Iterator, class Run> 312 void BidiResolver<Iterator, Run>::checkDirectionInLowerRaiseEmbeddingLevel() 313 { 314 using namespace WTF::Unicode; 315 316 ASSERT(m_status.eor != OtherNeutral || eor.atEnd()); 317 // bidi.sor ... bidi.eor ... bidi.last eor; need to append the bidi.sor-bidi.eor run or extend it through bidi.last 318 // Bidi control characters are included into BidiRun, so last direction 319 // could be one of the bidi embeddings when there are nested embeddings. 320 // For example: "‪‫....." 321 ASSERT(m_status.last == EuropeanNumberSeparator 322 || m_status.last == EuropeanNumberTerminator 323 || m_status.last == CommonNumberSeparator 324 || m_status.last == BoundaryNeutral 325 || m_status.last == BlockSeparator 326 || m_status.last == SegmentSeparator 327 || m_status.last == WhiteSpaceNeutral 328 || m_status.last == OtherNeutral 329 || m_status.last == RightToLeftEmbedding 330 || m_status.last == LeftToRightEmbedding 331 || m_status.last == RightToLeftOverride 332 || m_status.last == LeftToRightOverride 333 || m_status.last == PopDirectionalFormat); 334 if (m_direction == OtherNeutral) 335 m_direction = m_status.lastStrong == LeftToRight ? LeftToRight : RightToLeft; 336 } 337 338 template <class Iterator, class Run> 311 339 void BidiResolver<Iterator, Run>::lowerExplicitEmbeddingLevel(WTF::Unicode::Direction from) 312 340 { … … 314 342 315 343 if (!emptyRun && eor != last) { 316 ASSERT(m_status.eor != OtherNeutral || eor.atEnd()); 317 // bidi.sor ... bidi.eor ... bidi.last eor; need to append the bidi.sor-bidi.eor run or extend it through bidi.last 318 ASSERT(m_status.last == EuropeanNumberSeparator 319 || m_status.last == EuropeanNumberTerminator 320 || m_status.last == CommonNumberSeparator 321 || m_status.last == BoundaryNeutral 322 || m_status.last == BlockSeparator 323 || m_status.last == SegmentSeparator 324 || m_status.last == WhiteSpaceNeutral 325 || m_status.last == OtherNeutral); 326 if (m_direction == OtherNeutral) 327 m_direction = m_status.lastStrong == LeftToRight ? LeftToRight : RightToLeft; 344 checkDirectionInLowerRaiseEmbeddingLevel(); 328 345 if (from == LeftToRight) { 329 346 // bidi.sor ... bidi.eor ... bidi.last L … … 360 377 361 378 if (!emptyRun && eor != last) { 362 ASSERT(m_status.eor != OtherNeutral || eor.atEnd()); 363 // bidi.sor ... bidi.eor ... bidi.last eor; need to append the bidi.sor-bidi.eor run or extend it through bidi.last 364 ASSERT(m_status.last == EuropeanNumberSeparator 365 || m_status.last == EuropeanNumberTerminator 366 || m_status.last == CommonNumberSeparator 367 || m_status.last == BoundaryNeutral 368 || m_status.last == BlockSeparator 369 || m_status.last == SegmentSeparator 370 || m_status.last == WhiteSpaceNeutral 371 || m_status.last == OtherNeutral); 372 if (m_direction == OtherNeutral) 373 m_direction = m_status.lastStrong == LeftToRight ? LeftToRight : RightToLeft; 379 checkDirectionInLowerRaiseEmbeddingLevel(); 374 380 if (to == LeftToRight) { 375 381 // bidi.sor ... bidi.eor ... bidi.last L … … 569 575 break; 570 576 571 577 // strong types 572 578 case LeftToRight: 573 579 switch(m_status.last) { … … 861 867 case NonSpacingMark: 862 868 case BoundaryNeutral: 863 case RightToLeftEmbedding:864 case LeftToRightEmbedding:865 case RightToLeftOverride:866 case LeftToRightOverride:867 case PopDirectionalFormat:868 869 // ignore these 869 870 break; … … 876 877 last = current; 877 878 878 if (emptyRun && !(dirCurrent == RightToLeftEmbedding 879 || dirCurrent == LeftToRightEmbedding 880 || dirCurrent == RightToLeftOverride 881 || dirCurrent == LeftToRightOverride 882 || dirCurrent == PopDirectionalFormat)) { 879 if (emptyRun) { 883 880 sor = current; 884 881 emptyRun = false; … … 900 897 break; 901 898 } 902 }903 904 if (emptyRun && (dirCurrent == RightToLeftEmbedding905 || dirCurrent == LeftToRightEmbedding906 || dirCurrent == RightToLeftOverride907 || dirCurrent == LeftToRightOverride908 || dirCurrent == PopDirectionalFormat)) {909 // exclude the embedding char itself from the new run so that ATSUI will never see it910 eor = Iterator();911 last = current;912 sor = current;913 899 } 914 900
Note: See TracChangeset
for help on using the changeset viewer.