<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>3654</bug_id>
          
          <creation_ts>2005-06-22 15:16:10 -0700</creation_ts>
          <short_desc>cursor position accessors on KWQTextArea require \n</short_desc>
          <delta_ts>2005-07-03 08:12:57 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Forms</component>
          <version>412</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.4</op_sys>
          <bug_status>VERIFIED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Trivial</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>3401</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Kevin Ballard">kevin</reporter>
          <assigned_to name="Kevin Ballard">kevin</assigned_to>
          <cc>darin</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>12856</commentid>
    <comment_count>0</comment_count>
    <who name="Kevin Ballard">kevin</who>
    <bug_when>2005-06-22 15:16:10 -0700</bug_when>
    <thetext>The accessors for the cursor position on KWQTextArea are not line ending-agnostic - they require \n (and 
work with \r\n simply because you can&apos;t put the cursor between the \r and the \n). This is actually only 
used to save the cursor position when changing the text value of the field, so the only way to test it is to 
give the field a text value using carriage returns, set the selection, then change the text value to 
something else with newlines, and check the selection. The cursor will be stuck in the first line of the field 
instead of where it should be.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>12857</commentid>
    <comment_count>1</comment_count>
    <who name="Kevin Ballard">kevin</who>
    <bug_when>2005-06-22 15:17:16 -0700</bug_when>
    <thetext>The reason this depends on 3401 is simply for the testcase - it requires the ability to get/set the 
selection.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>12858</commentid>
    <comment_count>2</comment_count>
      <attachid>2554</attachid>
    <who name="Kevin Ballard">kevin</who>
    <bug_when>2005-06-22 15:18:21 -0700</bug_when>
    <thetext>Created attachment 2554
A testcase for the bug</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>12860</commentid>
    <comment_count>3</comment_count>
    <who name="Kevin Ballard">kevin</who>
    <bug_when>2005-06-22 15:19:50 -0700</bug_when>
    <thetext>I have a fix for this already, but I can&apos;t create a proper patch until bug 3401 is committed, because I have a 
lot of changes in the same file for bug 3401 which cause problems with generating a patch just for this 
file.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>13023</commentid>
    <comment_count>4</comment_count>
      <attachid>2614</attachid>
    <who name="Kevin Ballard">kevin</who>
    <bug_when>2005-06-24 00:08:17 -0700</bug_when>
    <thetext>Created attachment 2614
A patch for this problem</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>13088</commentid>
    <comment_count>5</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2005-06-24 08:35:14 -0700</bug_when>
    <thetext>I don&apos;t understand how the test case works. I thought that you changed the setter so that it would convert 
non-standard line endings to standard ones. If so, then this doesn&apos;t test the code in KWQTextArea, does 
it?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>13101</commentid>
    <comment_count>6</comment_count>
    <who name="Kevin Ballard">kevin</who>
    <bug_when>2005-06-24 12:10:07 -0700</bug_when>
    <thetext>No, I stopped doing that when I added the updateFromElement() call - instead I just invalidated the 
cached value, so the next retrieve would get the translated value, but the textarea still has the newline 
style of the input text.

What this does is it sets the textarea text to be all carriage returns, so the textarea&apos;s cursor functions 
thinks it&apos;s a single paragraph (pre-patch). It then sets the textarea text to be all newlines (plus the 
exclamation mark - otherwise it will think it&apos;s the same text and not bother calling 
updateFromElement), which calls updateFromElement. That fetches the cursor position, gets a large 
index in paragraph 0 (assuming the selection is past a carriage return), sets the text to use newlines, 
and then tries setting the cursor position again. The cursor ends up being in the last position in 
paragraph 0, which in the testcase means it will be in index 7 instead of index 10 where it belongs.

The fix makes the getCursorPosition... actually return the right paragraph/index, so when setting it 
again it works.

And I just realized that this doesn&apos;t actually test the line ending-agnostic behaviour of 
setCursorPosition..., just getCursorPosition.... Let me see if I can get a testcase working for 
setCursorPosition... as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>13102</commentid>
    <comment_count>7</comment_count>
      <attachid>2631</attachid>
    <who name="Kevin Ballard">kevin</who>
    <bug_when>2005-06-24 12:26:05 -0700</bug_when>
    <thetext>Created attachment 2631
A better testcase

Ok, this testcase tests both getCursorPosition... and setCursorPosition... (and
hence, RangeOfParagraph() as well).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>13115</commentid>
    <comment_count>8</comment_count>
      <attachid>2614</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2005-06-24 21:23:35 -0700</bug_when>
    <thetext>Comment on attachment 2614
A patch for this problem

Looks good, r=me.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>2554</attachid>
            <date>2005-06-22 15:18:21 -0700</date>
            <delta_ts>2005-06-24 12:26:05 -0700</delta_ts>
            <desc>A testcase for the bug</desc>
            <filename>cursor-position.html</filename>
            <type>text/html</type>
            <size>1369</size>
            <attacher name="Kevin Ballard">kevin</attacher>
            
              <data encoding="base64">PGh0bWw+CiAgICA8aGVhZD4KICAgICAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+
CiAgICAgICAgICAgIGZ1bmN0aW9uIHByaW50KG1lc3NhZ2UpCiAgICAgICAgICAgIHsKICAgICAg
ICAgICAgICAgIHZhciBwYXJhZ3JhcGggPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJsaSIpOwog
ICAgICAgICAgICAgICAgcGFyYWdyYXBoLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHRO
b2RlKG1lc3NhZ2UpKTsKICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJj
b25zb2xlIikuYXBwZW5kQ2hpbGQocGFyYWdyYXBoKTsKICAgICAgICAgICAgfQogICAgICAgICAg
ICBmdW5jdGlvbiB0ZXN0KCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgaWYgKHdpbmRv
dy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewogICAgICAgICAgICAgICAgICAgIGxheW91dFRlc3RD
b250cm9sbGVyLmR1bXBBc1RleHQoKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg
IHZhciBlbHQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGV4dCIpOwogICAgICAgICAgICAg
ICAgdHh0ID0gInRoaXMgaXNccmEgdGVzdFxyb2YgY3Vyc29yIjsKICAgICAgICAgICAgICAgIHR4
dDIgPSAidGhpcyBpc1xuYSB0ZXN0XG5vZiBjdXJzb3IhIjsKICAgICAgICAgICAgICAgIGVsdC52
YWx1ZSA9IHR4dDsKICAgICAgICAgICAgICAgIGVsdC5zZXRTZWxlY3Rpb25SYW5nZSgxMCwgMTQp
OwogICAgICAgICAgICAgICAgZWx0LmZvY3VzKCk7CiAgICAgICAgICAgICAgICBlbHQudmFsdWUg
PSB0eHQyOwogICAgICAgICAgICAgICAgZWx0LmZvY3VzKCk7CiAgICAgICAgICAgICAgICBwcmlu
dChlbHQuc2VsZWN0aW9uU3RhcnQudG9TdHJpbmcoKSArICIsICIgKyBlbHQuc2VsZWN0aW9uRW5k
LnRvU3RyaW5nKCkpOwogICAgICAgICAgICB9CiAgICAgICAgPC9zY3JpcHQ+CiAgICA8L2hlYWQ+
CiAgICA8Ym9keSBvbmxvYWQ9InRlc3QoKTsiPgogICAgICAgIDxwPlRoaXMgdGVzdCBzZXRzIGEg
bm9uLXN0YW5kYXJkIGxpbmUgZW5kaW5ncywgc2V0cyBzZWxlY3Rpb24sIHRoZW4gc2V0cyBhIHN0
YW5kYXJkIGxpbmUgZW5kaW5nIHN0cmluZywgYW5kIGNoZWNrcyBzZWxlY3Rpb24uPC9wPgogICAg
ICAgIDxwPklmIHRoaXMgdGVzdCBzdWNjZWVkZWQsIHlvdSBzaG91bGQgc2VlICIxMCwgMTAiIGJl
bG93LjwvcD4KICAgICAgICA8aHIgLz4KICAgICAgICA8Zm9ybT4KICAgICAgICAgICAgPHRleHRh
cmVhIGlkPSJ0ZXh0Ij48L3RleHRhcmVhPgogICAgICAgIDwvZm9ybT4KICAgICAgICA8aHIgLz4K
ICAgICAgICA8cD48b2wgaWQ9ImNvbnNvbGUiPjwvb2w+PC9wPgogICAgPC9ib2R5Pgo8L2h0bWw+
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>2614</attachid>
            <date>2005-06-24 00:08:17 -0700</date>
            <delta_ts>2005-06-24 21:23:35 -0700</delta_ts>
            <desc>A patch for this problem</desc>
            <filename>CursorPatch.txt</filename>
            <type>text/plain</type>
            <size>6189</size>
            <attacher name="Kevin Ballard">kevin</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9D
aGFuZ2VMb2csdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuNDMxMQpkaWZmIC1wIC11IC1yMS40MzEx
IENoYW5nZUxvZwotLS0gQ2hhbmdlTG9nCTIwMDUvMDYvMjQgMDU6NTk6MDUJMS40MzExCisrKyBD
aGFuZ2VMb2cJMjAwNS8wNi8yNCAwNjo1ODowOQpAQCAtMSwzICsxLDE5IEBACisyMDA1LTA2LTI0
ICBLZXZpbiBCYWxsYXJkICA8a2V2aW5Ac2Iub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3QgY2FzZXMgYWRkZWQ6CisgICAgICAgICogY3Js
Zi5odG1sIChJIGNhbid0IGN2cyBhZGQsIHNvIHB1dCB0aGlzIHNvbWV3aGVyZSwgcHJvYmFibHkg
ZmFzdC9mb3JtcykKKyAgICAgICAgCisgICAgICAgIC0gRml4ZXMgPGh0dHA6Ly9idWd6aWxsYS5v
cGVuZGFyd2luLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzY1ND4KKyAgICAgICAgVXBkYXRpbmcgdGhl
IHZhbHVlIG9mIGEgdGV4dGFyZWEgd2Fzbid0IHNhdmluZyB0aGUgY3Vyc29yIHBvc2l0aW9uIGlu
CisgICAgICAgIGEgbGluZSBlbmRpbmctYWdub3N0aWMgZmFzaGlvbi4KKworICAgICAgICAqIGt3
cS9LV1FUZXh0QXJlYS5tbToKKyAgICAgICAgKC1bS1dRVGV4dEFyZWEgZ2V0Q3Vyc29yUG9zaXRp
b25Bc0luZGV4OmluUGFyYWdyYXBoOl0pOgorICAgICAgICAoUmFuZ2VPZlBhcmFncmFwaCk6Cisg
ICAgICAgICgtW0tXUVRleHRBcmVhIHNldEN1cnNvclBvc2l0aW9uVG9JbmRleDppblBhcmFncmFw
aDpdKToKKwogMjAwNS0wNi0yMyAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CiAKICAg
ICAgICAgKiBraHRtbC9odG1sL2h0bWxfZm9ybWltcGwuY3BwOiAoRE9NOjpIVE1MVGV4dEFyZWFF
bGVtZW50SW1wbDo6c2V0VmFsdWUpOgpJbmRleDogLi9rd3EvS1dRVGV4dEFyZWEubW0KPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUva3dxL0tXUVRleHRBcmVhLm1tLHYKcmV0
cmlldmluZyByZXZpc2lvbiAxLjgzCmRpZmYgLXAgLXUgLXIxLjgzIC4va3dxL0tXUVRleHRBcmVh
Lm1tCi0tLSAuL2t3cS9LV1FUZXh0QXJlYS5tbQkyMDA1LzA2LzI0IDA1OjUzOjI5CTEuODMKKysr
IC4va3dxL0tXUVRleHRBcmVhLm1tCTIwMDUvMDYvMjQgMDY6NTg6NDMKQEAgLTQ0Myw2ICs0NDMs
OSBAQCBjb25zdCBmbG9hdCBMYXJnZU51bWJlckZvclRleHQgPSAxLjBlNzsKIAogLSAodm9pZCln
ZXRDdXJzb3JQb3NpdGlvbkFzSW5kZXg6KGludCAqKWluZGV4IGluUGFyYWdyYXBoOihpbnQgKilw
YXJhZ3JhcGgKIHsKKyAgICBhc3NlcnQocGFyYWdyYXBoICE9IE5VTEwpOworICAgIGFzc2VydChp
bmRleCAhPSBOVUxMKTsKKyAgICAKICAgICBOU1N0cmluZyAqdGV4dCA9IFt0ZXh0VmlldyBzdHJp
bmddOwogICAgIE5TUmFuZ2Ugc2VsZWN0ZWRSYW5nZSA9IFt0ZXh0VmlldyBzZWxlY3RlZFJhbmdl
XTsKICAgICAKQEAgLTQ1Myw2NCArNDU2LDY5IEBAIGNvbnN0IGZsb2F0IExhcmdlTnVtYmVyRm9y
VGV4dCA9IDEuMGU3OwogICAgIH0KICAgICAKICAgICBpbnQgcGFyYWdyYXBoU29GYXIgPSAwOwot
ICAgIE5TUmFuZ2Ugc2VhcmNoUmFuZ2UgPSBOU01ha2VSYW5nZSgwLCBbdGV4dCBsZW5ndGhdKTsK
KyAgICBpbnQgcGFyYWdyYXBoU3RhcnQgPSAwOwogICAgIAorICAgIE5TU2Nhbm5lciAqc2Nhbm5l
ciA9IFtOU1NjYW5uZXIgc2Nhbm5lcldpdGhTdHJpbmc6dGV4dF07CisgICAgW3NjYW5uZXIgc2V0
Q2hhcmFjdGVyc1RvQmVTa2lwcGVkOm5pbF07CisgICAgTlNDaGFyYWN0ZXJTZXQgKm5ld2xpbmVT
ZXQgPSBbTlNDaGFyYWN0ZXJTZXQgY2hhcmFjdGVyU2V0V2l0aENoYXJhY3RlcnNJblN0cmluZzpA
IlxyXG4iXTsKKwogICAgIHdoaWxlICh0cnVlKSB7Ci0gICAgICAgIC8vIEZJWE1FOiBEb2Vzbid0
IHdvcmsgZm9yIENSLXNlcGFyYXRlZCBvciBDUkxGLXNlcGFyYXRlZCB0ZXh0LgotCU5TUmFuZ2Ug
bmV3bGluZVJhbmdlID0gW3RleHQgcmFuZ2VPZlN0cmluZzpAIlxuIiBvcHRpb25zOk5TTGl0ZXJh
bFNlYXJjaCByYW5nZTpzZWFyY2hSYW5nZV07Ci0JaWYgKG5ld2xpbmVSYW5nZS5sb2NhdGlvbiA9
PSBOU05vdEZvdW5kIHx8IHNlbGVjdGVkUmFuZ2UubG9jYXRpb24gPD0gbmV3bGluZVJhbmdlLmxv
Y2F0aW9uKSB7Ci0JICAgIGJyZWFrOwotCX0KKyAgICAgICAgW3NjYW5uZXIgc2NhblVwVG9DaGFy
YWN0ZXJzRnJvbVNldDpuZXdsaW5lU2V0IGludG9TdHJpbmc6TlVMTF07CiAgICAgICAgIAotCXBh
cmFncmFwaFNvRmFyKys7CisgICAgICAgIGlmIChbc2Nhbm5lciBpc0F0RW5kXSB8fCBzZWxlY3Rl
ZFJhbmdlLmxvY2F0aW9uIDw9IFtzY2FubmVyIHNjYW5Mb2NhdGlvbl0pIHsKKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICB9CiAgICAgICAgIAotICAgICAgICB1bnNpZ25lZCBhZHZhbmNlID0g
bmV3bGluZVJhbmdlLmxvY2F0aW9uICsgMSAtIHNlYXJjaFJhbmdlLmxvY2F0aW9uOworICAgICAg
ICBwYXJhZ3JhcGhTb0ZhcisrOwogICAgICAgICAKLQlzZWFyY2hSYW5nZS5sZW5ndGggLT0gYWR2
YW5jZTsKLQlzZWFyY2hSYW5nZS5sb2NhdGlvbiArPSBhZHZhbmNlOworICAgICAgICB1bmljaGFy
IGMgPSBbdGV4dCBjaGFyYWN0ZXJBdEluZGV4OltzY2FubmVyIHNjYW5Mb2NhdGlvbl1dOworICAg
ICAgICBbc2Nhbm5lciBzZXRTY2FuTG9jYXRpb246W3NjYW5uZXIgc2NhbkxvY2F0aW9uXSsxXTsg
Ly8gc2tpcCBvdmVyIHRoZSBmb3VuZCBjaGFyCisgICAgICAgIGlmIChjID09ICdccicpIHsKKyAg
ICAgICAgICAgIFtzY2FubmVyIHNjYW5TdHJpbmc6QCJcbiIgaW50b1N0cmluZzpOVUxMXTsgLy8g
Z2V0IHRoZSBlbnRpcmUgY3JsZiBpZiBpdCBpcyBvbmUKKyAgICAgICAgfQorICAgICAgICAKKyAg
ICAgICAgcGFyYWdyYXBoU3RhcnQgPSBbc2Nhbm5lciBzY2FuTG9jYXRpb25dOwogICAgIH0KICAg
ICAKICAgICAqcGFyYWdyYXBoID0gcGFyYWdyYXBoU29GYXI7Ci0gICAgKmluZGV4ID0gc2VsZWN0
ZWRSYW5nZS5sb2NhdGlvbiAtIHNlYXJjaFJhbmdlLmxvY2F0aW9uOworICAgIC8vIEl0IHNob3Vs
ZG4ndCBoYXBwZW4sIGJ1dCBpdCBtaWdodCBiZSBwb3NzaWJsZSBmb3IgdGhlIHNlbGVjdGlvbgor
ICAgIC8vIHRvIGJlIGJldHdlZW4gdGhlIGNyIGFuZCBsZiBpZiB0aGVyZSdzIGEgY3JsZiBzZXF1
ZW5jZQorICAgIC8vIHRoYXQgd291bGQgcmVzdWx0IGluIGEgLTEgaW5kZXggd2hlbiBpdCBzaG91
bGQgYmUgMC4gTGV0cyBoYW5kbGUgdGhhdAorICAgICppbmRleCA9IE1BWChzZWxlY3RlZFJhbmdl
LmxvY2F0aW9uIC0gcGFyYWdyYXBoU3RhcnQsIDApOwogfQogCiBzdGF0aWMgTlNSYW5nZSBSYW5n
ZU9mUGFyYWdyYXBoKE5TU3RyaW5nICp0ZXh0LCBpbnQgcGFyYWdyYXBoKQogewogICAgIGludCBw
YXJhZ3JhcGhTb0ZhciA9IDA7Ci0gICAgTlNSYW5nZSBzZWFyY2hSYW5nZSA9IE5TTWFrZVJhbmdl
KDAsIFt0ZXh0IGxlbmd0aF0pOworICAgIGludCBwYXJhZ3JhcGhTdGFydCA9IDA7CiAgICAgCi0g
ICAgTlNSYW5nZSBuZXdsaW5lUmFuZ2U7CisgICAgTlNTY2FubmVyICpzY2FubmVyID0gW05TU2Nh
bm5lciBzY2FubmVyV2l0aFN0cmluZzp0ZXh0XTsKKyAgICBbc2Nhbm5lciBzZXRDaGFyYWN0ZXJz
VG9CZVNraXBwZWQ6bmlsXTsKKyAgICBOU0NoYXJhY3RlclNldCAqbmV3bGluZVNldCA9IFtOU0No
YXJhY3RlclNldCBjaGFyYWN0ZXJTZXRXaXRoQ2hhcmFjdGVyc0luU3RyaW5nOkAiXHJcbiJdOwor
CiAgICAgd2hpbGUgKHRydWUpIHsKLSAgICAgICAgLy8gRklYTUU6IERvZXNuJ3Qgd29yayBmb3Ig
Q1Itc2VwYXJhdGVkIG9yIENSTEYtc2VwYXJhdGVkIHRleHQuCi0JbmV3bGluZVJhbmdlID0gW3Rl
eHQgcmFuZ2VPZlN0cmluZzpAIlxuIiBvcHRpb25zOk5TTGl0ZXJhbFNlYXJjaCByYW5nZTpzZWFy
Y2hSYW5nZV07Ci0JaWYgKG5ld2xpbmVSYW5nZS5sb2NhdGlvbiA9PSBOU05vdEZvdW5kKSB7Ci0J
ICAgIGJyZWFrOwotCX0KLSAgICAgICAgCi0JaWYgKHBhcmFncmFwaFNvRmFyID09IHBhcmFncmFw
aCkgewotCSAgICBicmVhazsKLQl9Ci0gICAgICAgIAotCXBhcmFncmFwaFNvRmFyKys7Ci0gICAg
ICAgIAotICAgICAgICB1bnNpZ25lZCBhZHZhbmNlID0gbmV3bGluZVJhbmdlLmxvY2F0aW9uICsg
MSAtIHNlYXJjaFJhbmdlLmxvY2F0aW9uOwotCWlmIChzZWFyY2hSYW5nZS5sZW5ndGggPD0gYWR2
YW5jZSkgewotCSAgICBzZWFyY2hSYW5nZS5sb2NhdGlvbiA9IE5TTm90Rm91bmQ7Ci0JICAgIHNl
YXJjaFJhbmdlLmxlbmd0aCA9IDA7Ci0JICAgIGJyZWFrOwotCX0KKyAgICAgICAgW3NjYW5uZXIg
c2NhblVwVG9DaGFyYWN0ZXJzRnJvbVNldDpuZXdsaW5lU2V0IGludG9TdHJpbmc6TlVMTF07CiAg
ICAgICAgIAotCXNlYXJjaFJhbmdlLmxlbmd0aCAtPSBhZHZhbmNlOwotCXNlYXJjaFJhbmdlLmxv
Y2F0aW9uICs9IGFkdmFuY2U7CisgICAgICAgIGlmIChbc2Nhbm5lciBpc0F0RW5kXSB8fCBwYXJh
Z3JhcGhTb0ZhciA9PSBwYXJhZ3JhcGgpIHsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9
CisgICAgICAgIAorICAgICAgICBwYXJhZ3JhcGhTb0ZhcisrOworICAgICAgICAKKyAgICAgICAg
dW5pY2hhciBjID0gW3RleHQgY2hhcmFjdGVyQXRJbmRleDpbc2Nhbm5lciBzY2FuTG9jYXRpb25d
XTsKKyAgICAgICAgW3NjYW5uZXIgc2V0U2NhbkxvY2F0aW9uOltzY2FubmVyIHNjYW5Mb2NhdGlv
bl0rMV07IC8vIHNraXAgb3ZlciB0aGUgZm91bmQgY2hhcgorICAgICAgICBpZiAoYyA9PSAnXHIn
KSB7CisgICAgICAgICAgICBbc2Nhbm5lciBzY2FuU3RyaW5nOkAiXG4iIGludG9TdHJpbmc6TlVM
TF07IC8vIGdldCB0aGUgZW50aXJlIGNybGYgaWYgaXQgaXMgb25lCisgICAgICAgIH0KKyAgICAg
ICAgCisgICAgICAgIHBhcmFncmFwaFN0YXJ0ID0gW3NjYW5uZXIgc2NhbkxvY2F0aW9uXTsKICAg
ICB9CiAgICAgCiAgICAgaWYgKHBhcmFncmFwaFNvRmFyIDwgcGFyYWdyYXBoKSB7CiAgICAgICAg
IHJldHVybiBOU01ha2VSYW5nZShOU05vdEZvdW5kLCAwKTsKLSAgICB9Ci0gICAgaWYgKHNlYXJj
aFJhbmdlLmxvY2F0aW9uID09IE5TTm90Rm91bmQgfHwgbmV3bGluZVJhbmdlLmxvY2F0aW9uID09
IE5TTm90Rm91bmQpIHsKLSAgICAgICAgcmV0dXJuIHNlYXJjaFJhbmdlOwogICAgIH0KLSAgICBy
ZXR1cm4gTlNNYWtlUmFuZ2Uoc2VhcmNoUmFuZ2UubG9jYXRpb24sIG5ld2xpbmVSYW5nZS5sb2Nh
dGlvbiAtIHNlYXJjaFJhbmdlLmxvY2F0aW9uKTsKKyAgICAKKyAgICByZXR1cm4gTlNNYWtlUmFu
Z2UocGFyYWdyYXBoU3RhcnQsIFtzY2FubmVyIHNjYW5Mb2NhdGlvbl0pOwogfQogCiAtICh2b2lk
KXNldEN1cnNvclBvc2l0aW9uVG9JbmRleDooaW50KWluZGV4IGluUGFyYWdyYXBoOihpbnQpcGFy
YWdyYXBoCkBAIC01MTgsMTQgKzUyNiwxNCBAQCBzdGF0aWMgTlNSYW5nZSBSYW5nZU9mUGFyYWdy
YXBoKE5TU3RyaW5nCiAgICAgTlNTdHJpbmcgKnRleHQgPSBbdGV4dFZpZXcgc3RyaW5nXTsKICAg
ICBOU1JhbmdlIHJhbmdlID0gUmFuZ2VPZlBhcmFncmFwaCh0ZXh0LCBwYXJhZ3JhcGgpOwogICAg
IGlmIChyYW5nZS5sb2NhdGlvbiA9PSBOU05vdEZvdW5kKSB7Ci0JW3RleHRWaWV3IHNldFNlbGVj
dGVkUmFuZ2U6TlNNYWtlUmFuZ2UoW3RleHQgbGVuZ3RoXSwgMCldOworICAgICAgICBbdGV4dFZp
ZXcgc2V0U2VsZWN0ZWRSYW5nZTpOU01ha2VSYW5nZShbdGV4dCBsZW5ndGhdLCAwKV07CiAgICAg
fSBlbHNlIHsKICAgICAgICAgaWYgKGluZGV4IDwgMCkgewogICAgICAgICAgICAgaW5kZXggPSAw
OwogICAgICAgICB9IGVsc2UgaWYgKCh1bnNpZ25lZClpbmRleCA+IHJhbmdlLmxlbmd0aCkgewog
ICAgICAgICAgICAgaW5kZXggPSByYW5nZS5sZW5ndGg7CiAgICAgICAgIH0KLQlbdGV4dFZpZXcg
c2V0U2VsZWN0ZWRSYW5nZTpOU01ha2VSYW5nZShyYW5nZS5sb2NhdGlvbiArIGluZGV4LCAwKV07
CisgICAgICAgIFt0ZXh0VmlldyBzZXRTZWxlY3RlZFJhbmdlOk5TTWFrZVJhbmdlKHJhbmdlLmxv
Y2F0aW9uICsgaW5kZXgsIDApXTsKICAgICB9CiB9CiAK
</data>
<flag name="review"
          id="98"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>2631</attachid>
            <date>2005-06-24 12:26:05 -0700</date>
            <delta_ts>2005-06-24 12:26:05 -0700</delta_ts>
            <desc>A better testcase</desc>
            <filename>cursor-position.html</filename>
            <type>text/html</type>
            <size>1771</size>
            <attacher name="Kevin Ballard">kevin</attacher>
            
              <data encoding="base64">PGh0bWw+CiAgICA8aGVhZD4KICAgICAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+
CiAgICAgICAgICAgIGZ1bmN0aW9uIHByaW50KG1lc3NhZ2UpCiAgICAgICAgICAgIHsKICAgICAg
ICAgICAgICAgIHZhciBwYXJhZ3JhcGggPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJsaSIpOwog
ICAgICAgICAgICAgICAgcGFyYWdyYXBoLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHRO
b2RlKG1lc3NhZ2UpKTsKICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJj
b25zb2xlIikuYXBwZW5kQ2hpbGQocGFyYWdyYXBoKTsKICAgICAgICAgICAgfQogICAgICAgICAg
ICBmdW5jdGlvbiB0ZXN0KCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgaWYgKHdpbmRv
dy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewogICAgICAgICAgICAgICAgICAgIGxheW91dFRlc3RD
b250cm9sbGVyLmR1bXBBc1RleHQoKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg
IHZhciBlbHQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGV4dCIpOwogICAgICAgICAgICAg
ICAgdHh0ID0gInRoaXMgaXNccmEgdGVzdFxyb2YgY3Vyc29yIjsKICAgICAgICAgICAgICAgIHR4
dDIgPSAidGhpcyBpc1xuYSB0ZXN0XG5vZiBjdXJzb3IhIjsKICAgICAgICAgICAgICAgIAogICAg
ICAgICAgICAgICAgLy8gdGVzdCBnZXRDdXJzb3JQb3NpdGlvbi4uLgogICAgICAgICAgICAgICAg
ZWx0LnZhbHVlID0gdHh0OwogICAgICAgICAgICAgICAgZWx0LnNldFNlbGVjdGlvblJhbmdlKDEw
LCAxNCk7CiAgICAgICAgICAgICAgICBlbHQuZm9jdXMoKTsKICAgICAgICAgICAgICAgIGVsdC52
YWx1ZSA9IHR4dDI7CiAgICAgICAgICAgICAgICBlbHQuZm9jdXMoKTsKICAgICAgICAgICAgICAg
IHByaW50KGVsdC5zZWxlY3Rpb25TdGFydC50b1N0cmluZygpICsgIiwgIiArIGVsdC5zZWxlY3Rp
b25FbmQudG9TdHJpbmcoKSk7CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIC8vIHRl
c3Qgc2V0Q3Vyc29yUG9zaXRpb24uLi4KICAgICAgICAgICAgICAgIGVsdC52YWx1ZSA9IHR4dDI7
CiAgICAgICAgICAgICAgICBlbHQuc2V0U2VsZWN0aW9uUmFuZ2UoMTAsIDE0KTsKICAgICAgICAg
ICAgICAgIGVsdC5mb2N1cygpOwogICAgICAgICAgICAgICAgZWx0LnZhbHVlID0gdHh0OwogICAg
ICAgICAgICAgICAgZWx0LmZvY3VzKCk7CiAgICAgICAgICAgICAgICBwcmludChlbHQuc2VsZWN0
aW9uU3RhcnQudG9TdHJpbmcoKSArICIsICIgKyBlbHQuc2VsZWN0aW9uRW5kLnRvU3RyaW5nKCkp
OwogICAgICAgICAgICB9CiAgICAgICAgPC9zY3JpcHQ+CiAgICA8L2hlYWQ+CiAgICA8Ym9keSBv
bmxvYWQ9InRlc3QoKTsiPgogICAgICAgIDxwPlRoaXMgdGVzdCBzZXRzIGEgbm9uLXN0YW5kYXJk
IGxpbmUgZW5kaW5ncywgc2V0cyBzZWxlY3Rpb24sIHRoZW4gc2V0cyBhIHN0YW5kYXJkIGxpbmUg
ZW5kaW5nIHN0cmluZywgYW5kIGNoZWNrcyBzZWxlY3Rpb24uPC9wPgogICAgICAgIDxwPklmIHRo
aXMgdGVzdCBzdWNjZWVkZWQsIHlvdSBzaG91bGQgc2VlIDIgbGluZXMgc2F5aW5nICIxMCwgMTAi
IGJlbG93LjwvcD4KICAgICAgICA8aHIgLz4KICAgICAgICA8Zm9ybT4KICAgICAgICAgICAgPHRl
eHRhcmVhIGlkPSJ0ZXh0Ij48L3RleHRhcmVhPgogICAgICAgIDwvZm9ybT4KICAgICAgICA8aHIg
Lz4KICAgICAgICA8cD48b2wgaWQ9ImNvbnNvbGUiPjwvb2w+PC9wPgogICAgPC9ib2R5Pgo8L2h0
bWw+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>