Fix submitted by: Andrew Wellington <proton@wiretapped.net>
authorbdakin <bdakin@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 27 Jul 2005 23:41:41 +0000 (23:41 +0000)
committerbdakin <bdakin@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 27 Jul 2005 23:41:41 +0000 (23:41 +0000)
        Reviewed by Beth Dakin.

This is a fix for http://bugzilla.opendarwin.org/show_bug.cgi?id=3406 and
<rdar://problem/3204011>. It does not solve all of the problems with
text-transform: capitalize, but it does fix some of the more notable
problems regarding apostrophes (like on amazon.com), and does not cause
any regressions (i.e., some things about text-transform are still wrong and some
of those things are wrong in different ways than they were wrong before, but
the patch does not seem to cause anything that was right to be newly
wrong.

        Test cases added: another text-transform test, see below

        * khtml/xml/dom_stringimpl.cpp: Here is the fix.
        (DOM::DOMStringImpl::capitalize):
        * layout-tests/css1/text_properties/text-transCapitalize-expected.txt: Added. New test case.
        * layout-tests/css1/text_properties/text-transCapitalize.html: Added. New test case.
        * layout-tests/css1/text_properties/text_transform-expected.txt: New expected results...
here are some instances where things were wrong before but are
wrong in new ways now.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@9931 268f45cc-cd09-0410-ab3c-d52691b4dbfc

LayoutTests/css1/text_properties/text-transCapitalize-expected.txt [new file with mode: 0644]
LayoutTests/css1/text_properties/text-transCapitalize.html [new file with mode: 0644]
LayoutTests/css1/text_properties/text_transform-expected.txt
WebCore/ChangeLog-2005-08-23
WebCore/khtml/xml/dom_stringimpl.cpp

diff --git a/LayoutTests/css1/text_properties/text-transCapitalize-expected.txt b/LayoutTests/css1/text_properties/text-transCapitalize-expected.txt
new file mode 100644 (file)
index 0000000..b69ccaa
--- /dev/null
@@ -0,0 +1,484 @@
+layer at (0,0) size 800x1186
+  RenderCanvas at (0,0) size 800x600
+layer at (0,0) size 800x1186
+  RenderBlock {HTML} at (0,0) size 800x1186
+    RenderBody {BODY} at (8,8) size 784x1170
+      RenderBlock (anonymous) at (0,0) size 784x90
+        RenderText {TEXT} at (0,0) size 346x18
+          text run at (0,0) width 346: "This test was provided by open-source contributors on "
+        RenderInline {A} at (0,0) size 53x18 [color=#0000EE]
+          RenderText {TEXT} at (346,0) size 53x18
+            text run at (346,0) width 53: "Bugzilla"
+        RenderText {TEXT} at (399,0) size 781x72
+          text run at (399,0) width 382: ". Currently, the \"Browser rendering\" results are not expected"
+          text run at (0,18) width 684: "to match the \"Correct output sample\" results. In fact, I do not entirely agree with all of the given test cases in "
+          text run at (684,18) width 83: "terms of their"
+          text run at (0,36) width 768: "expected results, nor do I think that the browser should yet be expected to match all of the cases in the different languages,"
+          text run at (0,54) width 56: "but I am "
+          text run at (56,54) width 286: "(at least temporarily) adding the test anyway. "
+        RenderBR {BR} at (0,0) size 0x0
+        RenderBR {BR} at (0,72) size 0x18
+      RenderTable {TABLE} at (0,90) size 784x360
+        RenderBlock {CAPTION} at (0,0) size 769x18
+          RenderText {TEXT} at (345,0) size 78x18
+            text run at (345,0) width 78: "Input source"
+        RenderTableSection {TBODY} at (0,18) size 0x342
+          RenderTableRow {TR} at (0,0) size 0x0
+            RenderTableCell {TH} at (2,20) size 53x22 [bgcolor=#F8F8F8] [border: (1px solid #EEEEEE)] [r=0 c=0 rs=1 cs=1]
+              RenderText {TEXT} at (2,2) size 49x18
+                text run at (2,2) width 49: "generic"
+            RenderTableCell {TD} at (57,2) size 725x58 [border: (1px solid #EEEEEE)] [r=0 c=1 rs=1 cs=1]
+              RenderText {TEXT} at (2,2) size 721x54
+                text run at (2,2) width 16: "lip"
+                text run at (18,2) width 52: "smackin"
+                text run at (70,2) width 31: "thirst"
+                text run at (101,2) width 58: "quenchin"
+                text run at (159,2) width 54: "acetastin"
+                text run at (213,2) width 59: "motivatin"
+                text run at (272,2) width 32: "good"
+                text run at (304,2) width 42: "buzzin"
+                text run at (346,2) width 27: "cool"
+                text run at (373,2) width 35: "talkin"
+                text run at (408,2) width 28: "high"
+                text run at (436,2) width 43: "walkin"
+                text run at (479,2) width 22: "fast"
+                text run at (501,2) width 28: "livin"
+                text run at (529,2) width 27: "ever"
+                text run at (556,2) width 32: "givin"
+                text run at (588,2) width 27: "cool"
+                text run at (615,2) width 35: "fizzin"
+                text run at (650,2) width 16: "lip"
+                text run at (666,2) width 57: "smackin\x{AD}"
+                text run at (2,20) width 31: "thirst"
+                text run at (33,20) width 58: "quenchin"
+                text run at (91,20) width 54: "acetastin"
+                text run at (145,20) width 59: "motivatin"
+                text run at (204,20) width 32: "good"
+                text run at (236,20) width 42: "buzzin"
+                text run at (278,20) width 27: "cool"
+                text run at (305,20) width 35: "talkin"
+                text run at (340,20) width 28: "high"
+                text run at (368,20) width 43: "walkin"
+                text run at (411,20) width 22: "fast"
+                text run at (433,20) width 28: "livin"
+                text run at (461,20) width 27: "ever"
+                text run at (488,20) width 32: "givin"
+                text run at (520,20) width 27: "cool"
+                text run at (547,20) width 35: "fizzin"
+                text run at (582,20) width 16: "lip"
+                text run at (598,20) width 52: "smackin"
+                text run at (650,20) width 36: "thirst\x{AD}"
+                text run at (2,38) width 58: "quenchin"
+                text run at (60,38) width 54: "acetastin"
+                text run at (114,38) width 59: "motivatin"
+                text run at (173,38) width 32: "good"
+                text run at (205,38) width 42: "buzzin"
+                text run at (247,38) width 27: "cool"
+                text run at (274,38) width 35: "talkin"
+                text run at (309,38) width 28: "high"
+                text run at (337,38) width 43: "walkin"
+                text run at (380,38) width 22: "fast"
+                text run at (402,38) width 28: "livin"
+                text run at (430,38) width 27: "ever"
+                text run at (457,38) width 32: "givin"
+                text run at (489,38) width 27: "cool"
+                text run at (516,38) width 35: "fizzin"
+          RenderTableRow {TR} at (0,0) size 0x0
+            RenderTableCell {TH} at (2,62) size 53x22 [bgcolor=#F8F8F8] [border: (1px solid #EEEEEE)] [r=1 c=0 rs=1 cs=1]
+              RenderText {TEXT} at (19,2) size 15x18
+                text run at (19,2) width 15: "cy"
+            RenderTableCell {TD} at (57,62) size 725x22 [border: (1px solid #EEEEEE)] [r=1 c=1 rs=1 cs=1]
+              RenderText {TEXT} at (2,2) size 24x18
+                text run at (2,2) width 24: "\x{175}yl"
+          RenderTableRow {TR} at (0,0) size 0x0
+            RenderTableCell {TH} at (2,86) size 53x22 [bgcolor=#F8F8F8] [border: (1px solid #EEEEEE)] [r=2 c=0 rs=1 cs=1]
+              RenderText {TEXT} at (21,2) size 11x18
+                text run at (21,2) width 11: "el"
+            RenderTableCell {TD} at (57,86) size 725x22 [border: (1px solid #EEEEEE)] [r=2 c=1 rs=1 cs=1]
+              RenderText {TEXT} at (2,2) size 224x18
+                text run at (2,2) width 224: "\x{3B3}\x{3B5}\x{3C9}\x{3B3}\x{3C1}\x{3B1}\x{3C6}\x{3B9}\x{3BA}\x{3AC}\x{2010}\x{3C3}\x{3C5}\x{3C3}\x{3C7}\x{3B5}\x{3C4}\x{3B9}\x{3C3}\x{3BC}\x{3AD}\x{3BD}\x{3B5}\x{3C2} \x{3AE}\x{3C4}\x{3B1}"
+          RenderTableRow {TR} at (0,0) size 0x0
+            RenderTableCell {TH} at (2,128) size 53x22 [bgcolor=#F8F8F8] [border: (1px solid #EEEEEE)] [r=3 c=0 rs=1 cs=1]
+              RenderText {TEXT} at (18,2) size 16x18
+                text run at (18,2) width 16: "en"
+            RenderTableCell {TD} at (57,110) size 725x58 [border: (1px solid #EEEEEE)] [r=3 c=1 rs=1 cs=1]
+              RenderText {TEXT} at (2,2) size 426x18
+                text run at (2,2) width 426: "'cept nut'in safari\x{2019}s \x{2018}sure\x{2019} nai\x{308}ve r\x{E9}sum\x{E9}\x{2014}h\x{E1}c\x{30C}ek full\x{2010}time one-to-one"
+              RenderBR {BR} at (0,0) size 0x0
+              RenderText {TEXT} at (2,20) size 315x18
+                text run at (2,20) width 315: "\"newcastle\x{2011}upon\x{2011}tyne\" washington\x{2011}on\x{2011}the\x{2011}brazos"
+              RenderBR {BR} at (0,0) size 0x0
+              RenderInline {SPAN} at (0,0) size 31x18
+                RenderText {TEXT} at (2,38) size 31x18
+                  text run at (2,38) width 31: "earth"
+              RenderText {TEXT} at (33,38) size 73x18
+                text run at (33,38) width 73: "quake earth"
+              RenderInline {SPAN} at (0,0) size 37x18
+                RenderText {TEXT} at (106,38) size 37x18
+                  text run at (106,38) width 37: "worm"
+              RenderText {TEXT} at (143,38) size 4x18
+                text run at (143,38) width 4: " "
+              RenderInline {SPAN} at (0,0) size 42x18
+                RenderText {TEXT} at (147,38) size 42x18
+                  text run at (147,38) width 42: "cheese"
+              RenderInline {SPAN} at (0,0) size 41x18
+                RenderText {TEXT} at (189,38) size 41x18
+                  text run at (189,38) width 41: "burger"
+              RenderText {TEXT} at (230,38) size 116x18
+                text run at (230,38) width 116: " [house] ~six -big-"
+          RenderTableRow {TR} at (0,0) size 0x0
+            RenderTableCell {TH} at (2,170) size 53x22 [bgcolor=#F8F8F8] [border: (1px solid #EEEEEE)] [r=4 c=0 rs=1 cs=1]
+              RenderText {TEXT} at (20,2) size 13x18
+                text run at (20,2) width 13: "es"
+            RenderTableCell {TD} at (57,170) size 725x22 [border: (1px solid #EEEEEE)] [r=4 c=1 rs=1 cs=1]
+              RenderText {TEXT} at (2,2) size 63x18
+                text run at (2,2) width 63: "\x{A1}jalape\x{F1}o!"
+          RenderTableRow {TR} at (0,0) size 0x0
+            RenderTableCell {TH} at (2,196) size 53x22 [bgcolor=#F8F8F8] [border: (1px solid #EEEEEE)] [r=5 c=0 rs=1 cs=1]
+              RenderText {TEXT} at (20,2) size 12x18
+                text run at (20,2) width 12: "fr"
+            RenderTableCell {TD} at (57,194) size 725x26 [border: (1px solid #EEEEEE)] [r=5 c=1 rs=1 cs=1]
+              RenderText {TEXT} at (2,6) size 207x18
+                text run at (2,6) width 207: "quelqu'un l\x{2019}amour t'appelles\x{2011}tu 3"
+              RenderInline {SUP} at (0,0) size 22x15
+                RenderText {TEXT} at (209,2) size 22x15
+                  text run at (209,2) width 22: "eme"
+          RenderTableRow {TR} at (0,0) size 0x0
+            RenderTableCell {TH} at (2,222) size 53x22 [bgcolor=#F8F8F8] [border: (1px solid #EEEEEE)] [r=6 c=0 rs=1 cs=1]
+              RenderText {TEXT} at (17,2) size 18x18
+                text run at (17,2) width 18: "hu"
+            RenderTableCell {TD} at (57,222) size 725x22 [border: (1px solid #EEEEEE)] [r=6 c=1 rs=1 cs=1]
+              RenderText {TEXT} at (2,2) size 109x18
+                text run at (2,2) width 109: "11-ei london\x{2011}ban"
+          RenderTableRow {TR} at (0,0) size 0x0
+            RenderTableCell {TH} at (2,246) size 53x22 [bgcolor=#F8F8F8] [border: (1px solid #EEEEEE)] [r=7 c=0 rs=1 cs=1]
+              RenderText {TEXT} at (20,2) size 13x18
+                text run at (20,2) width 13: "nl"
+            RenderTableCell {TD} at (57,246) size 725x22 [border: (1px solid #EEEEEE)] [r=7 c=1 rs=1 cs=1]
+              RenderText {TEXT} at (2,2) size 69x18
+                text run at (2,2) width 69: "'s ochtends"
+          RenderTableRow {TR} at (0,0) size 0x0
+            RenderTableCell {TH} at (2,270) size 53x22 [bgcolor=#F8F8F8] [border: (1px solid #EEEEEE)] [r=8 c=0 rs=1 cs=1]
+              RenderText {TEXT} at (20,2) size 13x18
+                text run at (20,2) width 13: "pl"
+            RenderTableCell {TD} at (57,270) size 725x22 [border: (1px solid #EEEEEE)] [r=8 c=1 rs=1 cs=1]
+              RenderText {TEXT} at (2,2) size 92x18
+                text run at (2,2) width 92: "wzi\x{119}\x{142}a bie\x{17C}\x{105}ce"
+          RenderTableRow {TR} at (0,0) size 0x0
+            RenderTableCell {TH} at (2,294) size 53x22 [bgcolor=#F8F8F8] [border: (1px solid #EEEEEE)] [r=9 c=0 rs=1 cs=1]
+              RenderText {TEXT} at (18,2) size 16x18
+                text run at (18,2) width 16: "ru"
+            RenderTableCell {TD} at (57,294) size 725x22 [border: (1px solid #EEEEEE)] [r=9 c=1 rs=1 cs=1]
+              RenderText {TEXT} at (2,2) size 191x18
+                text run at (2,2) width 191: "\x{43D}\x{44C}\x{44E}-\x{439}\x{43E}\x{440}\x{43A} 1990-\x{445} 14-vii-1789"
+          RenderTableRow {TR} at (0,0) size 0x0
+            RenderTableCell {TH} at (2,318) size 53x22 [bgcolor=#F8F8F8] [border: (1px solid #EEEEEE)] [r=10 c=0 rs=1 cs=1]
+              RenderText {TEXT} at (17,2) size 18x18
+                text run at (17,2) width 18: "tlh"
+            RenderTableCell {TD} at (57,318) size 725x22 [border: (1px solid #EEEEEE)] [r=10 c=1 rs=1 cs=1]
+              RenderText {TEXT} at (2,2) size 187x18
+                text run at (2,2) width 187: "tlhIngan Hol wa''uy' loghqam"
+      RenderTable {TABLE} at (0,450) size 784x360
+        RenderBlock {CAPTION} at (0,0) size 769x18
+          RenderText {TEXT} at (315,0) size 139x18
+            text run at (315,0) width 139: "Correct output sample"
+        RenderTableSection {TBODY} at (0,18) size 0x342
+          RenderTableRow {TR} at (0,0) size 0x0
+            RenderTableCell {TH} at (2,20) size 53x22 [bgcolor=#F8F8F8] [border: (1px solid #EEEEEE)] [r=0 c=0 rs=1 cs=1]
+              RenderText {TEXT} at (2,2) size 49x18
+                text run at (2,2) width 49: "generic"
+            RenderTableCell {TD} at (57,2) size 725x58 [border: (1px solid #EEEEEE)] [r=0 c=1 rs=1 cs=1]
+              RenderText {TEXT} at (2,2) size 705x54
+                text run at (2,2) width 22: "Lip"
+                text run at (24,2) width 52: "smackin"
+                text run at (76,2) width 31: "thirst"
+                text run at (107,2) width 58: "quenchin"
+                text run at (165,2) width 54: "acetastin"
+                text run at (219,2) width 59: "motivatin"
+                text run at (278,2) width 32: "good"
+                text run at (310,2) width 42: "buzzin"
+                text run at (352,2) width 27: "cool"
+                text run at (379,2) width 35: "talkin"
+                text run at (414,2) width 28: "high"
+                text run at (442,2) width 43: "walkin"
+                text run at (485,2) width 22: "fast"
+                text run at (507,2) width 28: "livin"
+                text run at (535,2) width 27: "ever"
+                text run at (562,2) width 32: "givin"
+                text run at (594,2) width 27: "cool"
+                text run at (621,2) width 35: "fizzin"
+                text run at (656,2) width 21: "lip\x{AD}"
+                text run at (2,20) width 52: "smackin"
+                text run at (54,20) width 31: "thirst"
+                text run at (85,20) width 58: "quenchin"
+                text run at (143,20) width 54: "acetastin"
+                text run at (197,20) width 59: "motivatin"
+                text run at (256,20) width 32: "good"
+                text run at (288,20) width 42: "buzzin"
+                text run at (330,20) width 27: "cool"
+                text run at (357,20) width 35: "talkin"
+                text run at (392,20) width 28: "high"
+                text run at (420,20) width 43: "walkin"
+                text run at (463,20) width 22: "fast"
+                text run at (485,20) width 28: "livin"
+                text run at (513,20) width 27: "ever"
+                text run at (540,20) width 32: "givin"
+                text run at (572,20) width 27: "cool"
+                text run at (599,20) width 35: "fizzin"
+                text run at (634,20) width 16: "lip"
+                text run at (650,20) width 57: "smackin\x{AD}"
+                text run at (2,38) width 31: "thirst"
+                text run at (33,38) width 58: "quenchin"
+                text run at (91,38) width 54: "acetastin"
+                text run at (145,38) width 59: "motivatin"
+                text run at (204,38) width 32: "good"
+                text run at (236,38) width 42: "buzzin"
+                text run at (278,38) width 27: "cool"
+                text run at (305,38) width 35: "talkin"
+                text run at (340,38) width 28: "high"
+                text run at (368,38) width 43: "walkin"
+                text run at (411,38) width 22: "fast"
+                text run at (433,38) width 28: "livin"
+                text run at (461,38) width 27: "ever"
+                text run at (488,38) width 32: "givin"
+                text run at (520,38) width 27: "cool"
+                text run at (547,38) width 35: "fizzin"
+          RenderTableRow {TR} at (0,0) size 0x0
+            RenderTableCell {TH} at (2,62) size 53x22 [bgcolor=#F8F8F8] [border: (1px solid #EEEEEE)] [r=1 c=0 rs=1 cs=1]
+              RenderText {TEXT} at (19,2) size 15x18
+                text run at (19,2) width 15: "cy"
+            RenderTableCell {TD} at (57,62) size 725x22 [border: (1px solid #EEEEEE)] [r=1 c=1 rs=1 cs=1]
+              RenderText {TEXT} at (2,2) size 27x18
+                text run at (2,2) width 27: "\x{174}yl"
+          RenderTableRow {TR} at (0,0) size 0x0
+            RenderTableCell {TH} at (2,86) size 53x22 [bgcolor=#F8F8F8] [border: (1px solid #EEEEEE)] [r=2 c=0 rs=1 cs=1]
+              RenderText {TEXT} at (21,2) size 11x18
+                text run at (21,2) width 11: "el"
+            RenderTableCell {TD} at (57,86) size 725x22 [border: (1px solid #EEEEEE)] [r=2 c=1 rs=1 cs=1]
+              RenderText {TEXT} at (2,2) size 236x18
+                text run at (2,2) width 236: "\x{393}\x{3B5}\x{3C9}\x{3B3}\x{3C1}\x{3B1}\x{3C6}\x{3B9}\x{3BA}\x{3AC}\x{2010}\x{3A3}\x{3C5}\x{3C3}\x{3C7}\x{3B5}\x{3C4}\x{3B9}\x{3C3}\x{3BC}\x{3AD}\x{3BD}\x{3B5}\x{3C2} \x{389}\x{3C4}\x{3B1}"
+          RenderTableRow {TR} at (0,0) size 0x0
+            RenderTableCell {TH} at (2,128) size 53x22 [bgcolor=#F8F8F8] [border: (1px solid #EEEEEE)] [r=3 c=0 rs=1 cs=1]
+              RenderText {TEXT} at (18,2) size 16x18
+                text run at (18,2) width 16: "en"
+            RenderTableCell {TD} at (57,110) size 725x58 [border: (1px solid #EEEEEE)] [r=3 c=1 rs=1 cs=1]
+              RenderText {TEXT} at (2,2) size 467x18
+                text run at (2,2) width 467: "'Cept Nut'in Safari\x{2019}s \x{2018}Sure\x{2019} Na\x{EF}ve R\x{E9}sum\x{E9}\x{2014}H\x{E1}\x{10D}ek Full\x{2010}time One-to-One"
+              RenderBR {BR} at (0,0) size 0x0
+              RenderText {TEXT} at (2,20) size 330x18
+                text run at (2,20) width 330: "\"Newcastle-upon-Tyne\" Washington\x{2011}on\x{2011}the\x{2011}Brazos"
+              RenderBR {BR} at (0,0) size 0x0
+              RenderText {TEXT} at (2,38) size 364x18
+                text run at (2,38) width 364: "Earthquake Earthworm Cheeseburger [House] ~Six -Big-"
+          RenderTableRow {TR} at (0,0) size 0x0
+            RenderTableCell {TH} at (2,170) size 53x22 [bgcolor=#F8F8F8] [border: (1px solid #EEEEEE)] [r=4 c=0 rs=1 cs=1]
+              RenderText {TEXT} at (20,2) size 13x18
+                text run at (20,2) width 13: "es"
+            RenderTableCell {TD} at (57,170) size 725x22 [border: (1px solid #EEEEEE)] [r=4 c=1 rs=1 cs=1]
+              RenderText {TEXT} at (2,2) size 65x18
+                text run at (2,2) width 65: "\x{A1}Jalape\x{F1}o!"
+          RenderTableRow {TR} at (0,0) size 0x0
+            RenderTableCell {TH} at (2,196) size 53x22 [bgcolor=#F8F8F8] [border: (1px solid #EEEEEE)] [r=5 c=0 rs=1 cs=1]
+              RenderText {TEXT} at (20,2) size 12x18
+                text run at (20,2) width 12: "fr"
+            RenderTableCell {TD} at (57,194) size 725x26 [border: (1px solid #EEEEEE)] [r=5 c=1 rs=1 cs=1]
+              RenderText {TEXT} at (2,6) size 227x18
+                text run at (2,6) width 227: "Quelqu'un l\x{2019}Amour t'Appelles\x{2011}Tu 3"
+              RenderInline {SUP} at (0,0) size 22x15
+                RenderText {TEXT} at (229,2) size 22x15
+                  text run at (229,2) width 22: "eme"
+          RenderTableRow {TR} at (0,0) size 0x0
+            RenderTableCell {TH} at (2,222) size 53x22 [bgcolor=#F8F8F8] [border: (1px solid #EEEEEE)] [r=6 c=0 rs=1 cs=1]
+              RenderText {TEXT} at (17,2) size 18x18
+                text run at (17,2) width 18: "hu"
+            RenderTableCell {TD} at (57,222) size 725x22 [border: (1px solid #EEEEEE)] [r=6 c=1 rs=1 cs=1]
+              RenderText {TEXT} at (2,2) size 115x18
+                text run at (2,2) width 115: "11-ei London\x{2011}ban"
+          RenderTableRow {TR} at (0,0) size 0x0
+            RenderTableCell {TH} at (2,246) size 53x22 [bgcolor=#F8F8F8] [border: (1px solid #EEEEEE)] [r=7 c=0 rs=1 cs=1]
+              RenderText {TEXT} at (20,2) size 13x18
+                text run at (20,2) width 13: "nl"
+            RenderTableCell {TD} at (57,246) size 725x22 [border: (1px solid #EEEEEE)] [r=7 c=1 rs=1 cs=1]
+              RenderText {TEXT} at (2,2) size 73x18
+                text run at (2,2) width 73: "'s Ochtends"
+          RenderTableRow {TR} at (0,0) size 0x0
+            RenderTableCell {TH} at (2,270) size 53x22 [bgcolor=#F8F8F8] [border: (1px solid #EEEEEE)] [r=8 c=0 rs=1 cs=1]
+              RenderText {TEXT} at (20,2) size 13x18
+                text run at (20,2) width 13: "pl"
+            RenderTableCell {TD} at (57,270) size 725x22 [border: (1px solid #EEEEEE)] [r=8 c=1 rs=1 cs=1]
+              RenderText {TEXT} at (2,2) size 98x18
+                text run at (2,2) width 98: "Wzi\x{119}\x{142}a Bie\x{17C}\x{105}ce"
+          RenderTableRow {TR} at (0,0) size 0x0
+            RenderTableCell {TH} at (2,294) size 53x22 [bgcolor=#F8F8F8] [border: (1px solid #EEEEEE)] [r=9 c=0 rs=1 cs=1]
+              RenderText {TEXT} at (18,2) size 16x18
+                text run at (18,2) width 16: "ru"
+            RenderTableCell {TD} at (57,294) size 725x22 [border: (1px solid #EEEEEE)] [r=9 c=1 rs=1 cs=1]
+              RenderText {TEXT} at (2,2) size 199x18
+                text run at (2,2) width 199: "\x{41D}\x{44C}\x{44E}-\x{419}\x{43E}\x{440}\x{43A} 1990-\x{445} 14-vii-1789"
+          RenderTableRow {TR} at (0,0) size 0x0
+            RenderTableCell {TH} at (2,318) size 53x22 [bgcolor=#F8F8F8] [border: (1px solid #EEEEEE)] [r=10 c=0 rs=1 cs=1]
+              RenderText {TEXT} at (17,2) size 18x18
+                text run at (17,2) width 18: "tlh"
+            RenderTableCell {TD} at (57,318) size 725x22 [border: (1px solid #EEEEEE)] [r=10 c=1 rs=1 cs=1]
+              RenderText {TEXT} at (2,2) size 187x18
+                text run at (2,2) width 187: "tlhIngan Hol wa''uy' loghqam"
+      RenderTable {TABLE} at (0,810) size 784x360
+        RenderBlock {CAPTION} at (0,0) size 769x18
+          RenderText {TEXT} at (325,0) size 118x18
+            text run at (325,0) width 118: "Browser rendering"
+        RenderTableSection {TBODY} at (0,18) size 0x342
+          RenderTableRow {TR} at (0,0) size 0x0
+            RenderTableCell {TH} at (2,20) size 53x22 [bgcolor=#F8F8F8] [border: (1px solid #EEEEEE)] [r=0 c=0 rs=1 cs=1]
+              RenderText {TEXT} at (2,2) size 49x18
+                text run at (2,2) width 49: "generic"
+            RenderTableCell {TD} at (57,2) size 725x58 [border: (1px solid #EEEEEE)] [r=0 c=1 rs=1 cs=1]
+              RenderText {TEXT} at (2,2) size 705x54
+                text run at (2,2) width 22: "Lip"
+                text run at (24,2) width 52: "smackin"
+                text run at (76,2) width 31: "thirst"
+                text run at (107,2) width 58: "quenchin"
+                text run at (165,2) width 54: "acetastin"
+                text run at (219,2) width 59: "motivatin"
+                text run at (278,2) width 32: "good"
+                text run at (310,2) width 42: "buzzin"
+                text run at (352,2) width 27: "cool"
+                text run at (379,2) width 35: "talkin"
+                text run at (414,2) width 28: "high"
+                text run at (442,2) width 43: "walkin"
+                text run at (485,2) width 22: "fast"
+                text run at (507,2) width 28: "livin"
+                text run at (535,2) width 27: "ever"
+                text run at (562,2) width 32: "givin"
+                text run at (594,2) width 27: "cool"
+                text run at (621,2) width 35: "fizzin"
+                text run at (656,2) width 21: "lip\x{AD}"
+                text run at (2,20) width 52: "smackin"
+                text run at (54,20) width 31: "thirst"
+                text run at (85,20) width 58: "quenchin"
+                text run at (143,20) width 54: "acetastin"
+                text run at (197,20) width 59: "motivatin"
+                text run at (256,20) width 32: "good"
+                text run at (288,20) width 42: "buzzin"
+                text run at (330,20) width 27: "cool"
+                text run at (357,20) width 35: "talkin"
+                text run at (392,20) width 28: "high"
+                text run at (420,20) width 43: "walkin"
+                text run at (463,20) width 22: "fast"
+                text run at (485,20) width 28: "livin"
+                text run at (513,20) width 27: "ever"
+                text run at (540,20) width 32: "givin"
+                text run at (572,20) width 27: "cool"
+                text run at (599,20) width 35: "fizzin"
+                text run at (634,20) width 16: "lip"
+                text run at (650,20) width 57: "smackin\x{AD}"
+                text run at (2,38) width 31: "thirst"
+                text run at (33,38) width 58: "quenchin"
+                text run at (91,38) width 54: "acetastin"
+                text run at (145,38) width 59: "motivatin"
+                text run at (204,38) width 32: "good"
+                text run at (236,38) width 42: "buzzin"
+                text run at (278,38) width 27: "cool"
+                text run at (305,38) width 35: "talkin"
+                text run at (340,38) width 28: "high"
+                text run at (368,38) width 43: "walkin"
+                text run at (411,38) width 22: "fast"
+                text run at (433,38) width 28: "livin"
+                text run at (461,38) width 27: "ever"
+                text run at (488,38) width 32: "givin"
+                text run at (520,38) width 27: "cool"
+                text run at (547,38) width 35: "fizzin"
+          RenderTableRow {TR} at (0,0) size 0x0
+            RenderTableCell {TH} at (2,62) size 53x22 [bgcolor=#F8F8F8] [border: (1px solid #EEEEEE)] [r=1 c=0 rs=1 cs=1]
+              RenderText {TEXT} at (19,2) size 15x18
+                text run at (19,2) width 15: "cy"
+            RenderTableCell {TD} at (57,62) size 725x22 [border: (1px solid #EEEEEE)] [r=1 c=1 rs=1 cs=1]
+              RenderText {TEXT} at (2,2) size 27x18
+                text run at (2,2) width 27: "\x{174}yl"
+          RenderTableRow {TR} at (0,0) size 0x0
+            RenderTableCell {TH} at (2,86) size 53x22 [bgcolor=#F8F8F8] [border: (1px solid #EEEEEE)] [r=2 c=0 rs=1 cs=1]
+              RenderText {TEXT} at (21,2) size 11x18
+                text run at (21,2) width 11: "el"
+            RenderTableCell {TD} at (57,86) size 725x22 [border: (1px solid #EEEEEE)] [r=2 c=1 rs=1 cs=1]
+              RenderText {TEXT} at (2,2) size 235x18
+                text run at (2,2) width 235: "\x{393}\x{3B5}\x{3C9}\x{3B3}\x{3C1}\x{3B1}\x{3C6}\x{3B9}\x{3BA}\x{3AC}\x{2010}\x{3C3}\x{3C5}\x{3C3}\x{3C7}\x{3B5}\x{3C4}\x{3B9}\x{3C3}\x{3BC}\x{3AD}\x{3BD}\x{3B5}\x{3C2} \x{389}\x{3C4}\x{3B1}"
+          RenderTableRow {TR} at (0,0) size 0x0
+            RenderTableCell {TH} at (2,128) size 53x22 [bgcolor=#F8F8F8] [border: (1px solid #EEEEEE)] [r=3 c=0 rs=1 cs=1]
+              RenderText {TEXT} at (18,2) size 16x18
+                text run at (18,2) width 16: "en"
+            RenderTableCell {TD} at (57,110) size 725x58 [border: (1px solid #EEEEEE)] [r=3 c=1 rs=1 cs=1]
+              RenderText {TEXT} at (2,2) size 458x18
+                text run at (2,2) width 458: "'Cept Nut'in Safari\x{2019}s \x{2018}Sure\x{2019} Nai\x{308}ve R\x{E9}sum\x{E9}\x{2014}h\x{E1}c\x{30C}ek Full\x{2010}time One-to-one"
+              RenderBR {BR} at (0,0) size 0x0
+              RenderText {TEXT} at (2,20) size 322x18
+                text run at (2,20) width 322: "\"Newcastle\x{2011}upon\x{2011}tyne\" Washington\x{2011}on\x{2011}the\x{2011}brazos"
+              RenderBR {BR} at (0,0) size 0x0
+              RenderInline {SPAN} at (0,0) size 34x18
+                RenderText {TEXT} at (2,38) size 34x18
+                  text run at (2,38) width 34: "Earth"
+              RenderText {TEXT} at (36,38) size 80x18
+                text run at (36,38) width 80: "Quake Earth"
+              RenderInline {SPAN} at (0,0) size 40x18
+                RenderText {TEXT} at (116,38) size 40x18
+                  text run at (116,38) width 40: "Worm"
+              RenderText {TEXT} at (156,38) size 4x18
+                text run at (156,38) width 4: " "
+              RenderInline {SPAN} at (0,0) size 46x18
+                RenderText {TEXT} at (160,38) size 46x18
+                  text run at (160,38) width 46: "Cheese"
+              RenderInline {SPAN} at (0,0) size 44x18
+                RenderText {TEXT} at (206,38) size 44x18
+                  text run at (206,38) width 44: "Burger"
+              RenderText {TEXT} at (250,38) size 126x18
+                text run at (250,38) width 126: " [House] ~Six -Big-"
+          RenderTableRow {TR} at (0,0) size 0x0
+            RenderTableCell {TH} at (2,170) size 53x22 [bgcolor=#F8F8F8] [border: (1px solid #EEEEEE)] [r=4 c=0 rs=1 cs=1]
+              RenderText {TEXT} at (20,2) size 13x18
+                text run at (20,2) width 13: "es"
+            RenderTableCell {TD} at (57,170) size 725x22 [border: (1px solid #EEEEEE)] [r=4 c=1 rs=1 cs=1]
+              RenderText {TEXT} at (2,2) size 65x18
+                text run at (2,2) width 65: "\x{A1}Jalape\x{F1}o!"
+          RenderTableRow {TR} at (0,0) size 0x0
+            RenderTableCell {TH} at (2,196) size 53x22 [bgcolor=#F8F8F8] [border: (1px solid #EEEEEE)] [r=5 c=0 rs=1 cs=1]
+              RenderText {TEXT} at (20,2) size 12x18
+                text run at (20,2) width 12: "fr"
+            RenderTableCell {TD} at (57,194) size 725x26 [border: (1px solid #EEEEEE)] [r=5 c=1 rs=1 cs=1]
+              RenderText {TEXT} at (2,6) size 223x18
+                text run at (2,6) width 223: "Quelqu'un L\x{2019}amour T'appelles\x{2011}tu 3"
+              RenderInline {SUP} at (0,0) size 24x15
+                RenderText {TEXT} at (225,2) size 24x15
+                  text run at (225,2) width 24: "Eme"
+          RenderTableRow {TR} at (0,0) size 0x0
+            RenderTableCell {TH} at (2,222) size 53x22 [bgcolor=#F8F8F8] [border: (1px solid #EEEEEE)] [r=6 c=0 rs=1 cs=1]
+              RenderText {TEXT} at (17,2) size 18x18
+                text run at (17,2) width 18: "hu"
+            RenderTableCell {TD} at (57,222) size 725x22 [border: (1px solid #EEEEEE)] [r=6 c=1 rs=1 cs=1]
+              RenderText {TEXT} at (2,2) size 115x18
+                text run at (2,2) width 115: "11-ei London\x{2011}ban"
+          RenderTableRow {TR} at (0,0) size 0x0
+            RenderTableCell {TH} at (2,246) size 53x22 [bgcolor=#F8F8F8] [border: (1px solid #EEEEEE)] [r=7 c=0 rs=1 cs=1]
+              RenderText {TEXT} at (20,2) size 13x18
+                text run at (20,2) width 13: "nl"
+            RenderTableCell {TD} at (57,246) size 725x22 [border: (1px solid #EEEEEE)] [r=7 c=1 rs=1 cs=1]
+              RenderText {TEXT} at (2,2) size 76x18
+                text run at (2,2) width 76: "'S Ochtends"
+          RenderTableRow {TR} at (0,0) size 0x0
+            RenderTableCell {TH} at (2,270) size 53x22 [bgcolor=#F8F8F8] [border: (1px solid #EEEEEE)] [r=8 c=0 rs=1 cs=1]
+              RenderText {TEXT} at (20,2) size 13x18
+                text run at (20,2) width 13: "pl"
+            RenderTableCell {TD} at (57,270) size 725x22 [border: (1px solid #EEEEEE)] [r=8 c=1 rs=1 cs=1]
+              RenderText {TEXT} at (2,2) size 98x18
+                text run at (2,2) width 98: "Wzi\x{119}\x{142}a Bie\x{17C}\x{105}ce"
+          RenderTableRow {TR} at (0,0) size 0x0
+            RenderTableCell {TH} at (2,294) size 53x22 [bgcolor=#F8F8F8] [border: (1px solid #EEEEEE)] [r=9 c=0 rs=1 cs=1]
+              RenderText {TEXT} at (18,2) size 16x18
+                text run at (18,2) width 16: "ru"
+            RenderTableCell {TD} at (57,294) size 725x22 [border: (1px solid #EEEEEE)] [r=9 c=1 rs=1 cs=1]
+              RenderText {TEXT} at (2,2) size 195x18
+                text run at (2,2) width 195: "\x{41D}\x{44C}\x{44E}-\x{439}\x{43E}\x{440}\x{43A} 1990-\x{445} 14-vii-1789"
+          RenderTableRow {TR} at (0,0) size 0x0
+            RenderTableCell {TH} at (2,318) size 53x22 [bgcolor=#F8F8F8] [border: (1px solid #EEEEEE)] [r=10 c=0 rs=1 cs=1]
+              RenderText {TEXT} at (17,2) size 18x18
+                text run at (17,2) width 18: "tlh"
+            RenderTableCell {TD} at (57,318) size 725x22 [border: (1px solid #EEEEEE)] [r=10 c=1 rs=1 cs=1]
+              RenderText {TEXT} at (2,2) size 202x18
+                text run at (2,2) width 202: "TlhIngan Hol Wa''uy' Loghqam"
diff --git a/LayoutTests/css1/text_properties/text-transCapitalize.html b/LayoutTests/css1/text_properties/text-transCapitalize.html
new file mode 100644 (file)
index 0000000..fb8ac9e
Binary files /dev/null and b/LayoutTests/css1/text_properties/text-transCapitalize.html differ
index 39e5f5f96b7943adaf876984b8ab5520c2d857a1..3a3b4a63e122133f60a9615a74a8843244ac808f 100644 (file)
@@ -17,10 +17,10 @@ layer at (0,0) size 800x714
         RenderText {TEXT} at (0,0) size 770x18
           text run at (0,0) width 770: "This page tests the 'text-transform' property of CSS1. This paragraph has no text transformation and should appear normal."
       RenderBlock {P} at (0,174) size 784x54
-        RenderText {TEXT} at (0,0) size 778x54
+        RenderText {TEXT} at (0,0) size 784x54
           text run at (0,0) width 778: "This Paragraph Is Capitalized And The First Letter In Each Word Should Therefore Appear In Uppercase. Words That Are"
-          text run at (0,18) width 694: "In Uppercase In The Source (E.G. USA) Should Remain So. There Should Be A Capital Letter After A Non-"
-          text run at (0,36) width 538: "Breaking Space (&Nbsp;). Both Those Characters Appear In The Previous Sentence."
+          text run at (0,18) width 784: "In Uppercase In The Source (E.g. USA) Should Remain So. There Should Be A Capital Letter After A Non-breaking space"
+          text run at (0,36) width 434: "(&Nbsp;). Both Those Characters Appear In The Previous Sentence."
       RenderBlock {P} at (0,244) size 784x36
         RenderText {TEXT} at (0,0) size 753x36
           text run at (0,0) width 753: "Words with inline elements inside them should only capitalize the first letter of the word. Therefore, the last word in this"
@@ -68,8 +68,8 @@ layer at (0,0) size 800x714
               RenderBlock {P} at (4,56) size 762x54
                 RenderText {TEXT} at (0,0) size 750x54
                   text run at (0,0) width 750: "This Paragraph Is Capitalized And The First Letter In Each Word Should Therefore Appear In Uppercase. Words That"
-                  text run at (0,18) width 722: "Are In Uppercase In The Source (E.G. USA) Should Remain So. There Should Be A Capital Letter After A Non-"
-                  text run at (0,36) width 538: "Breaking Space (&Nbsp;). Both Those Characters Appear In The Previous Sentence."
+                  text run at (0,18) width 718: "Are In Uppercase In The Source (E.g. USA) Should Remain So. There Should Be A Capital Letter After A Non-"
+                  text run at (0,36) width 532: "breaking space (&Nbsp;). Both Those Characters Appear In The Previous Sentence."
               RenderBlock {P} at (4,126) size 762x36
                 RenderText {TEXT} at (0,0) size 753x36
                   text run at (0,0) width 753: "Words with inline elements inside them should only capitalize the first letter of the word. Therefore, the last word in this"
index 834ed84ebcc8df1ac5cfecfede02a75c4edaff18..a5066be1156924525ab954403fb365b501ac2a37 100644 (file)
@@ -1,3 +1,26 @@
+2005-07-27  Beth Dakin  <bdakin@apple.com>
+       Fix submitted by: Andrew Wellington <proton@wiretapped.net>
+        Reviewed by Beth Dakin.
+
+       This is a fix for http://bugzilla.opendarwin.org/show_bug.cgi?id=3406 and 
+       <rdar://problem/3204011>. It does not solve all of the problems with
+       text-transform: capitalize, but it does fix some of the more notable 
+       problems regarding apostrophes (like on amazon.com), and does not cause 
+       any regressions (i.e., some things about text-transform are still wrong and some
+       of those things are wrong in different ways than they were wrong before, but 
+       the patch does not seem to cause anything that was right to be newly
+       wrong.
+
+        Test cases added: another text-transform test, see below
+
+        * khtml/xml/dom_stringimpl.cpp: Here is the fix.
+        (DOM::DOMStringImpl::capitalize):
+        * layout-tests/css1/text_properties/text-transCapitalize-expected.txt: Added. New test case.
+        * layout-tests/css1/text_properties/text-transCapitalize.html: Added. New test case.
+        * layout-tests/css1/text_properties/text_transform-expected.txt: New expected results...
+                               here are some instances where things were wrong before but are
+                               wrong in new ways now.
+
 2005-07-27  Geoffrey Garen  <ggaren@apple.com>
 
         Test cases added:
index 500e015d400542912cbae420c595c402a1340160..4948141cd3d3e8a0ae0403f1320e08d19af758a0 100644 (file)
@@ -373,15 +373,29 @@ DOMStringImpl *DOMStringImpl::upper() const
 DOMStringImpl *DOMStringImpl::capitalize() const
 {
     DOMStringImpl *c = new DOMStringImpl;
+    bool haveCapped = false;
     if(!l) return c;
 
     c->s = QT_ALLOC_QCHAR_VEC(l);
     c->l = l;
 
     if ( l ) c->s[0] = s[0].upper();
-    for (unsigned int i = 1; i < l; i++)
-       c->s[i] = s[i-1].isLetterOrNumber() ? s[i] : s[i].upper();
-
+    
+    // This patch takes care of a lot of the text_transform: capitalize problems, particularly
+    // with the apostrophe. But it is just a temporary fix until we implement UBreakIterator as a 
+    // way to determine when to break for words.
+    for (unsigned int i = 0; i < l; i++) {
+        if (haveCapped) {
+            if (s[i].isSpace()) 
+                haveCapped = false;
+            c->s[i] = s[i];
+        } else if (s[i].isLetterOrNumber()) {
+            c->s[i] = s[i].upper();
+            haveCapped = true;
+        } else 
+            c->s[i] = s[i];
+    }
+    
     return c;
 }