<?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>29666</bug_id>
          
          <creation_ts>2009-09-22 19:08:41 -0700</creation_ts>
          <short_desc>ClipboardWin::files() isn&apos;t implemented in Windows</short_desc>
          <delta_ts>2009-10-19 14:31:59 -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>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Windows 7</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>25924</dependson>
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Marshall Culpepper">mculpepper</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>aroben</cc>
    
    <cc>bfulgham</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>eric</cc>
    
    <cc>oliver</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>149306</commentid>
    <comment_count>0</comment_count>
    <who name="Marshall Culpepper">mculpepper</who>
    <bug_when>2009-09-22 19:08:41 -0700</bug_when>
    <thetext>When a user drags a list of files into a Win32 WebKit app, the dataTransfer.files list is always null (because it hasn&apos;t been implemented)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>149307</commentid>
    <comment_count>1</comment_count>
      <attachid>39974</attachid>
    <who name="Marshall Culpepper">mculpepper</who>
    <bug_when>2009-09-22 19:12:28 -0700</bug_when>
    <thetext>Created attachment 39974
ClipboardWin::files() patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>149585</commentid>
    <comment_count>2</comment_count>
      <attachid>39974</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-09-23 17:45:17 -0700</bug_when>
    <thetext>Comment on attachment 39974
ClipboardWin::files() patch

We don&apos;t need a manual test, this is already tested by layout tests.  We need someone to fix windows DumpRenderTree to have eventSender.beginDragWithFiles() support. :)

Your ChangeLog might confuse svn-apply, thus making this impossible to automatically land but someone could land this by hand.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>149587</commentid>
    <comment_count>3</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-09-23 17:46:38 -0700</bug_when>
    <thetext>*** Bug 26711 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>149790</commentid>
    <comment_count>4</comment_count>
      <attachid>40077</attachid>
    <who name="Marshall Culpepper">mculpepper</who>
    <bug_when>2009-09-24 11:31:49 -0700</bug_when>
    <thetext>Created attachment 40077
patch #2

Here&apos;s an updated patch that removes the manual test. I can take a look at https://bugs.webkit.org/show_bug.cgi?id=25924 after this one.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>150139</commentid>
    <comment_count>5</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-09-25 13:56:11 -0700</bug_when>
    <thetext>I believe Adam Roben and Oliver Hunt have the most experience with Windows D&amp;D patches.  They&apos;re probably better reviewers than I am, although I&apos;m happy to look.

Dan Bates has also recently worked in windows drag and drop code and might be of some help in solving  bug 25924 too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>150161</commentid>
    <comment_count>6</comment_count>
      <attachid>40077</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2009-09-25 14:41:49 -0700</bug_when>
    <thetext>Comment on attachment 40077
patch #2

&gt;  PassRefPtr&lt;FileList&gt; ClipboardWin::files() const
&gt;  {
&gt; -    notImplemented();
&gt; -    return 0;
&gt; +    if (policy() != ClipboardReadable &amp;&amp; policy() != ClipboardTypesReadable)
&gt; +        return FileList::create();
&gt; +
&gt; +    if (!m_dataObject)
&gt; +        return FileList::create();

Is returning an empty FileList preferred to returning 0?

&gt; +
&gt; +    RefPtr&lt;FileList&gt; files = FileList::create();
&gt; +    STGMEDIUM medium;
&gt; +    if (FAILED(m_dataObject-&gt;GetData(cfHDropFormat(), &amp;medium)))
&gt; +        return files.release();
&gt; +
&gt; +    HDROP hdrop = (HDROP) GlobalLock(medium.hGlobal);
&gt; +    if (!hdrop)
&gt; +        return files.release();

I think you should wait to declare files until after this point, since you haven&apos;t used it yet.

reinterpret_cast would be better than a C-style case.

&gt; +
&gt; +    WCHAR filename[MAX_PATH];
&gt; +    UINT fileCount = DragQueryFile(hdrop, (UINT)-1, 0, 0);

I think 0xFFFFFFFF would be better than (UINT)-1, since the former is what MSDN actually says (though I know they&apos;re equivalent).

&gt; +    for (UINT i = 0; i &lt; fileCount; i++) {
&gt; +        if (!DragQueryFileW(hdrop, i, filename, ARRAYSIZE(filename)))

It seems a little strange to call DragQueryFile above and then DragQueryFileW here. Let&apos;s just call DragQueryFileW in both places.

&gt; +        files-&gt;append(File::create((UChar*)filename));

Again, reinterpret_cast would be better.

Are there regression tests that will now pass because of this?

This looks really nice! Thanks for working on it! r- so we can get these little issues taken care of.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>150162</commentid>
    <comment_count>7</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-09-25 14:48:32 -0700</bug_when>
    <thetext>For better or worse .files always returns an empty file list.  That&apos;s how I implemented it on mac, and there is a comment in the Mac code:
http://trac.webkit.org/browser/trunk/WebCore/platform/mac/ClipboardMac.mm#L291

I don&apos;t know if the spec comments on this edgecase (what to return when access is disallowed, or what to return when there are not files on the clipboard, etc.).  However this patch as implemented currently matches Mac.

Until bug 25924 is fixed, this change will not affect any tests.  I agree with Adam, it would be better to fix bug 25924 first before fixing this one though. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>150766</commentid>
    <comment_count>8</comment_count>
      <attachid>40274</attachid>
    <who name="Marshall Culpepper">mculpepper</who>
    <bug_when>2009-09-28 17:47:19 -0700</bug_when>
    <thetext>Created attachment 40274
patch #3

changes to match some of aroben&apos;s suggestions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>150922</commentid>
    <comment_count>9</comment_count>
      <attachid>40274</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2009-09-29 08:09:38 -0700</bug_when>
    <thetext>Comment on attachment 40274
patch #3

&gt;  PassRefPtr&lt;FileList&gt; ClipboardWin::files() const
&gt;  {
&gt; -    notImplemented();
&gt; -    return 0;
&gt; +    if (policy() != ClipboardReadable &amp;&amp; policy() != ClipboardTypesReadable)
&gt; +      return FileList::create();
&gt; +
&gt; +    if (!m_dataObject)
&gt; +        return FileList::create();
&gt; +
&gt; +    RefPtr&lt;FileList&gt; files = FileList::create();
&gt; +    STGMEDIUM medium;
&gt; +    if (FAILED(m_dataObject-&gt;GetData(cfHDropFormat(), &amp;medium)))
&gt; +        return files.release();
&gt; +
&gt; +    HDROP hdrop = reinterpret_cast&lt;HDROP&gt;(GlobalLock(medium.hGlobal));
&gt; +    if (!hdrop)
&gt; +        return files.release();

I think it would be more consistent to move the declaration of files to the top of the function and return files.release() in all the bail-out cases.

&gt; +    WCHAR filename[MAX_PATH];
&gt; +    UINT fileCount = DragQueryFileW(hdrop, (UINT)0xFFFFFFFF, 0, 0);

I don&apos;t think you need the (UINT) cast here. If you do, please use static_cast instead of a C-style cast.

&gt; +    for (UINT i = 0; i &lt; fileCount; i++) {
&gt; +        if (!DragQueryFileW(hdrop, i, filename, ARRAYSIZE(filename)))
&gt; +            continue;
&gt; +        files-&gt;append(File::create(reinterpret_cast&lt;UChar*&gt;(filename)));
&gt; +    }
&gt; +
&gt; +    DragFinish(hdrop);
&gt; +    GlobalUnlock(medium.hGlobal);
&gt; +    return files.release();
&gt;  }

http://msdn.microsoft.com/en-us/library/bb776904(VS.85).aspx#extracting_filenames says that you should be calling ReleaseStgMedium instead of DragFinish. Other documentation on MSDN leads me to believe that DragFinish should only be called when handling the WM_DROPFILES message. Sorry for not realizing this sooner!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>155622</commentid>
    <comment_count>10</comment_count>
      <attachid>41405</attachid>
    <who name="Marshall Culpepper">mculpepper</who>
    <bug_when>2009-10-19 02:50:43 -0700</bug_when>
    <thetext>Created attachment 41405
patch #4

Following more of Adam&apos;s suggestions.. hopefully we can land this one now :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>155688</commentid>
    <comment_count>11</comment_count>
      <attachid>41405</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2009-10-19 08:33:35 -0700</bug_when>
    <thetext>Comment on attachment 41405
patch #4

&gt; +    STGMEDIUM medium;
&gt; +    if (FAILED(m_dataObject-&gt;GetData(cfHDropFormat(), &amp;medium)))
&gt; +        return files.release();
&gt; +
&gt; +    HDROP hdrop = reinterpret_cast&lt;HDROP&gt;(GlobalLock(medium.hGlobal));
&gt; +    if (!hdrop)
&gt; +        return files.release();
&gt; +
&gt; +    WCHAR filename[MAX_PATH];
&gt; +    UINT fileCount = DragQueryFileW(hdrop, 0xFFFFFFFF, 0, 0);
&gt; +    for (UINT i = 0; i &lt; fileCount; i++) {
&gt; +        if (!DragQueryFileW(hdrop, i, filename, ARRAYSIZE(filename)))
&gt; +            continue;
&gt; +        files-&gt;append(File::create(reinterpret_cast&lt;UChar*&gt;(filename)));
&gt; +    }
&gt; +
&gt; +    ReleaseStgMedium(&amp;medium);
&gt; +    GlobalUnlock(medium.hGlobal);

I think you should reverse the calls to ReleaseStgMedium and GlobalUnlock here. Otherwise you&apos;re using the medium after releasing it, which, while it may happen to work, doesn&apos;t seem like a good thing to do.

Once that&apos;s fixed, I think we&apos;re good to go!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>155876</commentid>
    <comment_count>12</comment_count>
      <attachid>41446</attachid>
    <who name="Marshall Culpepper">mculpepper</who>
    <bug_when>2009-10-19 13:49:47 -0700</bug_when>
    <thetext>Created attachment 41446
patch #5

oops -- oversight on my part. here&apos;s the updated patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>155880</commentid>
    <comment_count>13</comment_count>
      <attachid>41446</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2009-10-19 13:56:13 -0700</bug_when>
    <thetext>Comment on attachment 41446
patch #5

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>155881</commentid>
    <comment_count>14</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-10-19 13:57:10 -0700</bug_when>
    <thetext>So sad.  We still really need bug 25924 before its easy to tell if this code is correct or not. :(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>155882</commentid>
    <comment_count>15</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-10-19 13:57:41 -0700</bug_when>
    <thetext>(I&apos;m glad that windows will have this ability soon.  Just very sad it&apos;s not tested.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>155907</commentid>
    <comment_count>16</comment_count>
      <attachid>41446</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2009-10-19 14:31:42 -0700</bug_when>
    <thetext>Comment on attachment 41446
patch #5

Clearing flags on attachment: 41446

Committed r49810: &lt;http://trac.webkit.org/changeset/49810&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>155908</commentid>
    <comment_count>17</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2009-10-19 14:31:59 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>39974</attachid>
            <date>2009-09-22 19:12:28 -0700</date>
            <delta_ts>2009-09-24 11:31:49 -0700</delta_ts>
            <desc>ClipboardWin::files() patch</desc>
            <filename>0001-implement-ClipboardWin-files-and-add-a-manual-test-t.patch</filename>
            <type>text/plain</type>
            <size>4207</size>
            <attacher name="Marshall Culpepper">mculpepper</attacher>
            
              <data encoding="base64">RnJvbSA5MmQzYzQ1ODg5NzRjZjFmOGE2YTZmZDU5N2Q1Nzc2YzMxN2ZlODBiIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBtYXJzaGFsbCA8bWN1bHBlcHBlckBhcHBjZWxlcmF0b3IuY29t
PgpEYXRlOiBUdWUsIDIyIFNlcCAyMDA5IDIxOjA5OjE2IC0wNTAwClN1YmplY3Q6IFtQQVRDSF0g
aW1wbGVtZW50IENsaXBib2FyZFdpbjo6ZmlsZXMoKSwgYW5kIGFkZCBhIG1hbnVhbCB0ZXN0IHRv
IHZlcmlmeSBpdCB3b3JrcyBjb3JyZWN0bHkuCgotLS0KIFdlYkNvcmUvQ2hhbmdlTG9nICAgICAg
ICAgICAgICAgICAgICAgfCAgIDEzICsrKysrKysrKwogV2ViQ29yZS9tYW51YWwtdGVzdHMvZHJh
Zy1maWxlcy5odG1sICB8ICAgNDYgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiBX
ZWJDb3JlL3BsYXRmb3JtL3dpbi9DbGlwYm9hcmRXaW4uY3BwIHwgICAyOCArKysrKysrKysrKysr
KysrKystCiAzIGZpbGVzIGNoYW5nZWQsIDg1IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0p
CiBjcmVhdGUgbW9kZSAxMDA2NDQgV2ViQ29yZS9tYW51YWwtdGVzdHMvZHJhZy1maWxlcy5odG1s
CgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRl
eCA4NmE0N2RkLi5mNTc2MzZmIDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9X
ZWJDb3JlL0NoYW5nZUxvZwpAQCAtMiw2ICsyLDE5IEBACiAKICAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCiAKKyAgICAgICAgaW1wbGVtZW50IENsaXBib2FyZFdpbjo6ZmlsZXMo
KSwgYW5kIGFkZCBhIG1hbnVhbCB0ZXN0IHRvIHZlcmlmeSBpdCB3b3JrcyBjb3JyZWN0bHkuCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yOTY2NgorCisg
ICAgICAgIE5ldyB0ZXN0czogbWFudWFsLXRlc3RzL2RyYWctZmlsZXMuaHRtbAorCisgICAgICAg
ICogbWFudWFsLXRlc3RzL2RyYWctZmlsZXMuaHRtbDogQWRkZWQuCisgICAgICAgICogcGxhdGZv
cm0vd2luL0NsaXBib2FyZFdpbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDbGlwYm9hcmRXaW46
OmZpbGVzKToKKworMjAwOS0wOS0yMiAgTWFyc2hhbGwgQ3VscGVwcGVyICA8bWN1bHBlcHBlckBh
cHBjZWxlcmF0b3IuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CiAgICAgICAgIEFkZGVkICQoV2ViS2l0TGlicmFyaWVzRGlyKS9pbmNsdWRlL2NhaXJvIHNvIGNh
aXJvLmggaXMgZm91bmQgYnkKICAgICAgICAgZGVmYXVsdCB3aGVuIHRoZSBuZWNlc3NhcnkgZGVw
ZW5kZW5jaWVzIGFyZSBleHRyYWN0ZWQgaW50byB0aGUKICAgICAgICAgV2ViS2l0TGlicmFyaWVz
RGlyLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9tYW51YWwtdGVzdHMvZHJhZy1maWxlcy5odG1sIGIv
V2ViQ29yZS9tYW51YWwtdGVzdHMvZHJhZy1maWxlcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLmQyZTI0YTcKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL21hbnVh
bC10ZXN0cy9kcmFnLWZpbGVzLmh0bWwKQEAgLTAsMCArMSw0NiBAQAorPGh0bWw+IAorPGhlYWQ+
IAorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPiAKKyAgICBmdW5jdGlvbiBhZGRMaXN0
ZW5lcnMoKSB7CisgICAgICAgIHZhciBkcm9wVGFyZ2V0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoImRyb3AtdGFyZ2V0Iik7CisgICAgICAgIGRyb3BUYXJnZXQuYWRkRXZlbnRMaXN0ZW5lcigi
ZHJhZ2VudGVyIiwgZnVuY3Rpb24oZXZlbnQpIHsKKyAgICAgICAgICAgIGV2ZW50LnByZXZlbnRE
ZWZhdWx0KCk7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfSk7CisgICAgICAg
IGRyb3BUYXJnZXQuYWRkRXZlbnRMaXN0ZW5lcigiZHJhZ292ZXIiLCBmdW5jdGlvbihldmVudCkg
eworICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTsKKyAgICAgICAgICAgIHJldHVy
biB0cnVlOworICAgICAgICB9KTsKKyAgICAgICAgZHJvcFRhcmdldC5hZGRFdmVudExpc3RlbmVy
KCJkcm9wIiwgZnVuY3Rpb24oZXZlbnQpIHsKKyAgICAgICAgICAgIHZhciBmaWxlcyA9IGV2ZW50
LmRhdGFUcmFuc2Zlci5maWxlczsKKyAgICAgICAgICAgIGlmIChmaWxlcykgeworICAgICAgICAg
ICAgICAgIHZhciBodG1sID0gIiI7CisgICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkg
PCBmaWxlcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgICAgICBodG1sICs9ICI8Yj4i
K2ZpbGVzW2ldLmZpbGVOYW1lKyI8L2I+PGJyLz4iOworICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZmlsZXMiKS5pbm5lckhUTUwgPSBo
dG1sOworICAgICAgICAgICAgfQorICAgICAgICB9KTsKKyAgICB9CisgICAgICAgIAorPC9zY3Jp
cHQ+Cis8c3R5bGU+CisgICAgI2Ryb3AtdGFyZ2V0IHsKKyAgICAgICAgYmFja2dyb3VuZC1jb2xv
cjogI2NjYzsKKyAgICAgICAgYm9yZGVyOiAxcHggc29saWQgYmxhY2s7CisgICAgICAgIHdpZHRo
OiAxMDBweDsKKyAgICAgICAgaGVpZ2h0OiAxMDBweDsKKyAgICAgICAgZm9udC1zaXplOiAxOHB4
OworICAgICAgICBmb250LXdlaWdodDogYm9sZDsKKyAgICAgICAgcGFkZGluZzogNXB4OworICAg
ICAgICAtd2Via2l0LXVzZXItZHJvcDogZWxlbWVudDsKKyAgICB9Cis8L3N0eWxlPgorPGJvZHkg
b25sb2FkPSJhZGRMaXN0ZW5lcnMoKSI+CisgIDxkaXYgaWQ9ImRyb3AtdGFyZ2V0Ij4KKyAgICAg
RHJvcCBGaWxlcyBIZXJlCisgIDwvZGl2PgorCUEgbGlzdCBvZiBmaWxlcyBzaG91bGQgc2hvdyB1
cCBoZXJlOgorCTxkaXYgaWQ9ImZpbGVzIj4KKwk8L2Rpdj4KKzwvYm9keT4KZGlmZiAtLWdpdCBh
L1dlYkNvcmUvcGxhdGZvcm0vd2luL0NsaXBib2FyZFdpbi5jcHAgYi9XZWJDb3JlL3BsYXRmb3Jt
L3dpbi9DbGlwYm9hcmRXaW4uY3BwCmluZGV4IGIyZThlM2UuLjk5NjdhYzMgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvcGxhdGZvcm0vd2luL0NsaXBib2FyZFdpbi5jcHAKKysrIGIvV2ViQ29yZS9wbGF0
Zm9ybS93aW4vQ2xpcGJvYXJkV2luLmNwcApAQCAtNTc3LDggKzU3NywzMiBAQCBIYXNoU2V0PFN0
cmluZz4gQ2xpcGJvYXJkV2luOjp0eXBlcygpIGNvbnN0CiAKIFBhc3NSZWZQdHI8RmlsZUxpc3Q+
IENsaXBib2FyZFdpbjo6ZmlsZXMoKSBjb25zdAogewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0g
ICAgcmV0dXJuIDA7CisgICAgaWYgKHBvbGljeSgpICE9IENsaXBib2FyZFJlYWRhYmxlICYmIHBv
bGljeSgpICE9IENsaXBib2FyZFR5cGVzUmVhZGFibGUpCisgICAgICAgIHJldHVybiBGaWxlTGlz
dDo6Y3JlYXRlKCk7CisKKyAgICBpZiAoIW1fZGF0YU9iamVjdCkKKyAgICAgICAgcmV0dXJuIEZp
bGVMaXN0OjpjcmVhdGUoKTsKKworICAgIFJlZlB0cjxGaWxlTGlzdD4gZmlsZXMgPSBGaWxlTGlz
dDo6Y3JlYXRlKCk7CisgICAgU1RHTUVESVVNIG1lZGl1bTsKKyAgICBpZiAoRkFJTEVEKG1fZGF0
YU9iamVjdC0+R2V0RGF0YShjZkhEcm9wRm9ybWF0KCksICZtZWRpdW0pKSkKKyAgICAgICAgcmV0
dXJuIGZpbGVzLnJlbGVhc2UoKTsKKworICAgIEhEUk9QIGhkcm9wID0gKEhEUk9QKSBHbG9iYWxM
b2NrKG1lZGl1bS5oR2xvYmFsKTsKKyAgICBpZiAoIWhkcm9wKQorICAgICAgICByZXR1cm4gZmls
ZXMucmVsZWFzZSgpOworCisgICAgV0NIQVIgZmlsZW5hbWVbTUFYX1BBVEhdOworICAgIFVJTlQg
ZmlsZUNvdW50ID0gRHJhZ1F1ZXJ5RmlsZShoZHJvcCwgKFVJTlQpLTEsIDAsIDApOworICAgIGZv
ciAoVUlOVCBpID0gMDsgaSA8IGZpbGVDb3VudDsgaSsrKSB7CisgICAgICAgIGlmICghRHJhZ1F1
ZXJ5RmlsZVcoaGRyb3AsIGksIGZpbGVuYW1lLCBBUlJBWVNJWkUoZmlsZW5hbWUpKSkKKyAgICAg
ICAgICAgIGNvbnRpbnVlOworICAgICAgICBmaWxlcy0+YXBwZW5kKEZpbGU6OmNyZWF0ZSgoVUNo
YXIqKWZpbGVuYW1lKSk7CisgICAgfQorCisgICAgRHJhZ0ZpbmlzaChoZHJvcCk7CisgICAgR2xv
YmFsVW5sb2NrKG1lZGl1bS5oR2xvYmFsKTsKKyAgICByZXR1cm4gZmlsZXMucmVsZWFzZSgpOwog
fQogCiB2b2lkIENsaXBib2FyZFdpbjo6c2V0RHJhZ0ltYWdlKENhY2hlZEltYWdlKiBpbWFnZSwg
Tm9kZSAqbm9kZSwgY29uc3QgSW50UG9pbnQgJmxvYykKLS0gCjEuNi40LjIKCg==
</data>
<flag name="review"
          id="21128"
          type_id="1"
          status="-"
          setter="eric"
    />
    <flag name="commit-queue"
          id="21199"
          type_id="3"
          status="-"
          setter="eric"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>40077</attachid>
            <date>2009-09-24 11:31:49 -0700</date>
            <delta_ts>2009-09-28 17:47:19 -0700</delta_ts>
            <desc>patch #2</desc>
            <filename>0001-implemented-ClipboardWin-files.patch</filename>
            <type>text/plain</type>
            <size>2360</size>
            <attacher name="Marshall Culpepper">mculpepper</attacher>
            
              <data encoding="base64">RnJvbSA0N2NmMTBlZTA3YzdmOWYzZTU0MDAyMjJmZjk2MDI3Y2UyYjgzZTUzIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBtYXJzaGFsbCA8bWN1bHBlcHBlckBhcHBjZWxlcmF0b3IuY29t
PgpEYXRlOiBUdWUsIDIyIFNlcCAyMDA5IDIxOjA5OjE2IC0wNTAwClN1YmplY3Q6IFtQQVRDSF0g
aW1wbGVtZW50ZWQgQ2xpcGJvYXJkV2luOjpmaWxlcygpCgotLS0KIFdlYkNvcmUvQ2hhbmdlTG9n
ICAgICAgICAgICAgICAgICAgICAgfCAgIDEzICsrKysrKysrKysrKysKIFdlYkNvcmUvcGxhdGZv
cm0vd2luL0NsaXBib2FyZFdpbi5jcHAgfCAgIDI4ICsrKysrKysrKysrKysrKysrKysrKysrKysr
LS0KIDIgZmlsZXMgY2hhbmdlZCwgMzkgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDg2
YTQ3ZGQuLmVhNWQxOWYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNv
cmUvQ2hhbmdlTG9nCkBAIC0yLDYgKzIsMTkgQEAKIAogICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KIAorICAgICAgICBpbXBsZW1lbnRlZCBDbGlwYm9hcmRXaW46OmZpbGVzKCkK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI5NjY2CisK
KyAgICAgICAgKiBwbGF0Zm9ybS93aW4vQ2xpcGJvYXJkV2luLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkNsaXBib2FyZFdpbjo6ZmlsZXMpOgorCisyMDA5LTA5LTIyICBNYXJzaGFsbCBDdWxwZXBw
ZXIgIDxtY3VscGVwcGVyQGFwcGNlbGVyYXRvci5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKICAgICAgICAgQWRkZWQgJChXZWJLaXRMaWJyYXJpZXNEaXIpL2lu
Y2x1ZGUvY2Fpcm8gc28gY2Fpcm8uaCBpcyBmb3VuZCBieQogICAgICAgICBkZWZhdWx0IHdoZW4g
dGhlIG5lY2Vzc2FyeSBkZXBlbmRlbmNpZXMgYXJlIGV4dHJhY3RlZCBpbnRvIHRoZQogICAgICAg
ICBXZWJLaXRMaWJyYXJpZXNEaXIuCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9D
bGlwYm9hcmRXaW4uY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS93aW4vQ2xpcGJvYXJkV2luLmNwcApp
bmRleCBiMmU4ZTNlLi45OTY3YWMzIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9D
bGlwYm9hcmRXaW4uY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vd2luL0NsaXBib2FyZFdpbi5j
cHAKQEAgLTU3Nyw4ICs1NzcsMzIgQEAgSGFzaFNldDxTdHJpbmc+IENsaXBib2FyZFdpbjo6dHlw
ZXMoKSBjb25zdAogCiBQYXNzUmVmUHRyPEZpbGVMaXN0PiBDbGlwYm9hcmRXaW46OmZpbGVzKCkg
Y29uc3QKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiAwOworICAgIGlmIChw
b2xpY3koKSAhPSBDbGlwYm9hcmRSZWFkYWJsZSAmJiBwb2xpY3koKSAhPSBDbGlwYm9hcmRUeXBl
c1JlYWRhYmxlKQorICAgICAgICByZXR1cm4gRmlsZUxpc3Q6OmNyZWF0ZSgpOworCisgICAgaWYg
KCFtX2RhdGFPYmplY3QpCisgICAgICAgIHJldHVybiBGaWxlTGlzdDo6Y3JlYXRlKCk7CisKKyAg
ICBSZWZQdHI8RmlsZUxpc3Q+IGZpbGVzID0gRmlsZUxpc3Q6OmNyZWF0ZSgpOworICAgIFNUR01F
RElVTSBtZWRpdW07CisgICAgaWYgKEZBSUxFRChtX2RhdGFPYmplY3QtPkdldERhdGEoY2ZIRHJv
cEZvcm1hdCgpLCAmbWVkaXVtKSkpCisgICAgICAgIHJldHVybiBmaWxlcy5yZWxlYXNlKCk7CisK
KyAgICBIRFJPUCBoZHJvcCA9IChIRFJPUCkgR2xvYmFsTG9jayhtZWRpdW0uaEdsb2JhbCk7Cisg
ICAgaWYgKCFoZHJvcCkKKyAgICAgICAgcmV0dXJuIGZpbGVzLnJlbGVhc2UoKTsKKworICAgIFdD
SEFSIGZpbGVuYW1lW01BWF9QQVRIXTsKKyAgICBVSU5UIGZpbGVDb3VudCA9IERyYWdRdWVyeUZp
bGUoaGRyb3AsIChVSU5UKS0xLCAwLCAwKTsKKyAgICBmb3IgKFVJTlQgaSA9IDA7IGkgPCBmaWxl
Q291bnQ7IGkrKykgeworICAgICAgICBpZiAoIURyYWdRdWVyeUZpbGVXKGhkcm9wLCBpLCBmaWxl
bmFtZSwgQVJSQVlTSVpFKGZpbGVuYW1lKSkpCisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAg
ICAgZmlsZXMtPmFwcGVuZChGaWxlOjpjcmVhdGUoKFVDaGFyKilmaWxlbmFtZSkpOworICAgIH0K
KworICAgIERyYWdGaW5pc2goaGRyb3ApOworICAgIEdsb2JhbFVubG9jayhtZWRpdW0uaEdsb2Jh
bCk7CisgICAgcmV0dXJuIGZpbGVzLnJlbGVhc2UoKTsKIH0KIAogdm9pZCBDbGlwYm9hcmRXaW46
OnNldERyYWdJbWFnZShDYWNoZWRJbWFnZSogaW1hZ2UsIE5vZGUgKm5vZGUsIGNvbnN0IEludFBv
aW50ICZsb2MpCi0tIAoxLjYuNC4yCgo=
</data>
<flag name="review"
          id="21255"
          type_id="1"
          status="-"
          setter="aroben"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>40274</attachid>
            <date>2009-09-28 17:47:19 -0700</date>
            <delta_ts>2009-10-19 02:50:43 -0700</delta_ts>
            <desc>patch #3</desc>
            <filename>0001-implemented-ClipboardWin-files.patch</filename>
            <type>text/plain</type>
            <size>2284</size>
            <attacher name="Marshall Culpepper">mculpepper</attacher>
            
              <data encoding="base64">RnJvbSA5NjI2ODU0Yzc3OTJhMTc0ZGMyNWE1MTZmYTExYWZjMTFjZDQxNmQyIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXJzaGFsbCBDdWxwZXBwZXIgPG1jdWxwZXBwZXJAYXBwY2Vs
ZXJhdG9yLmNvbT4KRGF0ZTogTW9uLCAyOCBTZXAgMjAwOSAxOTozODo1NyAtMDUwMApTdWJqZWN0
OiBbUEFUQ0hdIGltcGxlbWVudGVkIENsaXBib2FyZFdpbjo6ZmlsZXMoKQoKLS0tCiBXZWJDb3Jl
L0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgIHwgICAxMCArKysrKysrKysrCiBXZWJDb3Jl
L3BsYXRmb3JtL3dpbi9DbGlwYm9hcmRXaW4uY3BwIHwgICAyOCArKysrKysrKysrKysrKysrKysr
KysrKysrKy0tCiAyIGZpbGVzIGNoYW5nZWQsIDM2IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25z
KC0pCgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwpp
bmRleCA0OGE3YzU0Li5hMGZjZWM1IDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysg
Yi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDA5LTA5LTI4ICBNYXJzaGFs
bCBDdWxwZXBwZXIgIDxtY3VscGVwcGVyQGFwcGNlbGVyYXRvci5jb20+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgaW1wbGVtZW50ZWQgQ2xpcGJvYXJk
V2luOjpmaWxlcygpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yOTY2NgorCisgICAgICAgICogcGxhdGZvcm0vd2luL0NsaXBib2FyZFdpbi5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpDbGlwYm9hcmRXaW46OmZpbGVzKToKKwogMjAwOS0wOS0yOCAgU2lt
b24gSGF1c21hbm4gIDxoYXVzbWFubkB3ZWJraXQub3JnPgogCiAgICAgICAgIFByb3NwZWN0aXZl
IFRpZ2VyIGJ1aWxkIGZpeC4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vd2luL0NsaXBi
b2FyZFdpbi5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL3dpbi9DbGlwYm9hcmRXaW4uY3BwCmluZGV4
IGIyZThlM2UuLjljNTZlZjIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vd2luL0NsaXBi
b2FyZFdpbi5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS93aW4vQ2xpcGJvYXJkV2luLmNwcApA
QCAtNTc3LDggKzU3NywzMiBAQCBIYXNoU2V0PFN0cmluZz4gQ2xpcGJvYXJkV2luOjp0eXBlcygp
IGNvbnN0CiAKIFBhc3NSZWZQdHI8RmlsZUxpc3Q+IENsaXBib2FyZFdpbjo6ZmlsZXMoKSBjb25z
dAogewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIDA7CisgICAgaWYgKHBvbGlj
eSgpICE9IENsaXBib2FyZFJlYWRhYmxlICYmIHBvbGljeSgpICE9IENsaXBib2FyZFR5cGVzUmVh
ZGFibGUpCisgICAgICByZXR1cm4gRmlsZUxpc3Q6OmNyZWF0ZSgpOworCisgICAgaWYgKCFtX2Rh
dGFPYmplY3QpCisgICAgICAgIHJldHVybiBGaWxlTGlzdDo6Y3JlYXRlKCk7CisKKyAgICBSZWZQ
dHI8RmlsZUxpc3Q+IGZpbGVzID0gRmlsZUxpc3Q6OmNyZWF0ZSgpOworICAgIFNUR01FRElVTSBt
ZWRpdW07CisgICAgaWYgKEZBSUxFRChtX2RhdGFPYmplY3QtPkdldERhdGEoY2ZIRHJvcEZvcm1h
dCgpLCAmbWVkaXVtKSkpCisgICAgICAgIHJldHVybiBmaWxlcy5yZWxlYXNlKCk7CisKKyAgICBI
RFJPUCBoZHJvcCA9IHJlaW50ZXJwcmV0X2Nhc3Q8SERST1A+KEdsb2JhbExvY2sobWVkaXVtLmhH
bG9iYWwpKTsKKyAgICBpZiAoIWhkcm9wKQorICAgICAgICByZXR1cm4gZmlsZXMucmVsZWFzZSgp
OworCisgICAgV0NIQVIgZmlsZW5hbWVbTUFYX1BBVEhdOworICAgIFVJTlQgZmlsZUNvdW50ID0g
RHJhZ1F1ZXJ5RmlsZVcoaGRyb3AsIChVSU5UKTB4RkZGRkZGRkYsIDAsIDApOworICAgIGZvciAo
VUlOVCBpID0gMDsgaSA8IGZpbGVDb3VudDsgaSsrKSB7CisgICAgICAgIGlmICghRHJhZ1F1ZXJ5
RmlsZVcoaGRyb3AsIGksIGZpbGVuYW1lLCBBUlJBWVNJWkUoZmlsZW5hbWUpKSkKKyAgICAgICAg
ICAgIGNvbnRpbnVlOworICAgICAgICBmaWxlcy0+YXBwZW5kKEZpbGU6OmNyZWF0ZShyZWludGVy
cHJldF9jYXN0PFVDaGFyKj4oZmlsZW5hbWUpKSk7CisgICAgfQorCisgICAgRHJhZ0ZpbmlzaCho
ZHJvcCk7CisgICAgR2xvYmFsVW5sb2NrKG1lZGl1bS5oR2xvYmFsKTsKKyAgICByZXR1cm4gZmls
ZXMucmVsZWFzZSgpOwogfQogCiB2b2lkIENsaXBib2FyZFdpbjo6c2V0RHJhZ0ltYWdlKENhY2hl
ZEltYWdlKiBpbWFnZSwgTm9kZSAqbm9kZSwgY29uc3QgSW50UG9pbnQgJmxvYykKLS0gCjEuNi40
LjIKCg==
</data>
<flag name="review"
          id="21481"
          type_id="1"
          status="-"
          setter="aroben"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>41405</attachid>
            <date>2009-10-19 02:50:43 -0700</date>
            <delta_ts>2009-10-19 13:49:47 -0700</delta_ts>
            <desc>patch #4</desc>
            <filename>0001-implemented-ClipboardWin-files.patch</filename>
            <type>text/plain</type>
            <size>2324</size>
            <attacher name="Marshall Culpepper">mculpepper</attacher>
            
              <data encoding="base64">RnJvbSA1ZGY0ZmIyNDNmYzczZDZjMjg3YmI1NWVjMDc4OTUxNjc1ZDdhNWU5IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXJzaGFsbCBDdWxwZXBwZXIgPG1jdWxwZXBwZXJAYXBwY2Vs
ZXJhdG9yLmNvbT4KRGF0ZTogTW9uLCAxOSBPY3QgMjAwOSAwNDo0Mzo0MyAtMDUwMApTdWJqZWN0
OiBbUEFUQ0hdIGltcGxlbWVudGVkIENsaXBib2FyZFdpbjo6ZmlsZXMoKQogaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI5NjY2CgotLS0KIFdlYkNvcmUvQ2hhbmdlTG9n
ICAgICAgICAgICAgICAgICAgICAgfCAgIDEwICsrKysrKysrKysKIFdlYkNvcmUvcGxhdGZvcm0v
d2luL0NsaXBib2FyZFdpbi5jcHAgfCAgIDI4ICsrKysrKysrKysrKysrKysrKysrKysrKysrLS0K
IDIgZmlsZXMgY2hhbmdlZCwgMzYgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYg
LS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGUyN2Nj
MjQuLjFjZmI0YTcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMDktMTAtMTkgIE1hcnNoYWxsIEN1bHBlcHBl
ciAgPG1jdWxwZXBwZXJAYXBwY2VsZXJhdG9yLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBpbXBsZW1lbnRlZCBDbGlwYm9hcmRXaW46OmZpbGVz
KCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI5NjY2
CisKKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vQ2xpcGJvYXJkV2luLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkNsaXBib2FyZFdpbjo6ZmlsZXMpOgorCiAyMDA5LTEwLTE5ICBKYWtvYiBUcnVlbHNl
biAgPGFudGlhbGl6ZUBnbWFpbC5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBCYXJ0
aC4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vd2luL0NsaXBib2FyZFdpbi5jcHAgYi9X
ZWJDb3JlL3BsYXRmb3JtL3dpbi9DbGlwYm9hcmRXaW4uY3BwCmluZGV4IGIyZThlM2UuLjBmYTYy
ODYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vd2luL0NsaXBib2FyZFdpbi5jcHAKKysr
IGIvV2ViQ29yZS9wbGF0Zm9ybS93aW4vQ2xpcGJvYXJkV2luLmNwcApAQCAtNTc3LDggKzU3Nywz
MiBAQCBIYXNoU2V0PFN0cmluZz4gQ2xpcGJvYXJkV2luOjp0eXBlcygpIGNvbnN0CiAKIFBhc3NS
ZWZQdHI8RmlsZUxpc3Q+IENsaXBib2FyZFdpbjo6ZmlsZXMoKSBjb25zdAogewotICAgIG5vdElt
cGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIDA7CisgICAgUmVmUHRyPEZpbGVMaXN0PiBmaWxlcyA9
IEZpbGVMaXN0OjpjcmVhdGUoKTsKKyAgICBpZiAocG9saWN5KCkgIT0gQ2xpcGJvYXJkUmVhZGFi
bGUgJiYgcG9saWN5KCkgIT0gQ2xpcGJvYXJkVHlwZXNSZWFkYWJsZSkKKyAgICAgICAgcmV0dXJu
IGZpbGVzLnJlbGVhc2UoKTsKKworICAgIGlmICghbV9kYXRhT2JqZWN0KQorICAgICAgICByZXR1
cm4gZmlsZXMucmVsZWFzZSgpOworCisgICAgU1RHTUVESVVNIG1lZGl1bTsKKyAgICBpZiAoRkFJ
TEVEKG1fZGF0YU9iamVjdC0+R2V0RGF0YShjZkhEcm9wRm9ybWF0KCksICZtZWRpdW0pKSkKKyAg
ICAgICAgcmV0dXJuIGZpbGVzLnJlbGVhc2UoKTsKKworICAgIEhEUk9QIGhkcm9wID0gcmVpbnRl
cnByZXRfY2FzdDxIRFJPUD4oR2xvYmFsTG9jayhtZWRpdW0uaEdsb2JhbCkpOworICAgIGlmICgh
aGRyb3ApCisgICAgICAgIHJldHVybiBmaWxlcy5yZWxlYXNlKCk7CisKKyAgICBXQ0hBUiBmaWxl
bmFtZVtNQVhfUEFUSF07CisgICAgVUlOVCBmaWxlQ291bnQgPSBEcmFnUXVlcnlGaWxlVyhoZHJv
cCwgMHhGRkZGRkZGRiwgMCwgMCk7CisgICAgZm9yIChVSU5UIGkgPSAwOyBpIDwgZmlsZUNvdW50
OyBpKyspIHsKKyAgICAgICAgaWYgKCFEcmFnUXVlcnlGaWxlVyhoZHJvcCwgaSwgZmlsZW5hbWUs
IEFSUkFZU0laRShmaWxlbmFtZSkpKQorICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIGZp
bGVzLT5hcHBlbmQoRmlsZTo6Y3JlYXRlKHJlaW50ZXJwcmV0X2Nhc3Q8VUNoYXIqPihmaWxlbmFt
ZSkpKTsKKyAgICB9CisKKyAgICBSZWxlYXNlU3RnTWVkaXVtKCZtZWRpdW0pOworICAgIEdsb2Jh
bFVubG9jayhtZWRpdW0uaEdsb2JhbCk7CisgICAgcmV0dXJuIGZpbGVzLnJlbGVhc2UoKTsKIH0K
IAogdm9pZCBDbGlwYm9hcmRXaW46OnNldERyYWdJbWFnZShDYWNoZWRJbWFnZSogaW1hZ2UsIE5v
ZGUgKm5vZGUsIGNvbnN0IEludFBvaW50ICZsb2MpCi0tIAoxLjYuNC4yCgo=
</data>
<flag name="review"
          id="22780"
          type_id="1"
          status="-"
          setter="aroben"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>41446</attachid>
            <date>2009-10-19 13:49:47 -0700</date>
            <delta_ts>2009-10-19 14:31:42 -0700</delta_ts>
            <desc>patch #5</desc>
            <filename>0001-implemented-ClipboardWin-files.patch</filename>
            <type>text/plain</type>
            <size>2324</size>
            <attacher name="Marshall Culpepper">mculpepper</attacher>
            
              <data encoding="base64">RnJvbSA1ZGY0ZmIyNDNmYzczZDZjMjg3YmI1NWVjMDc4OTUxNjc1ZDdhNWU5IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXJzaGFsbCBDdWxwZXBwZXIgPG1jdWxwZXBwZXJAYXBwY2Vs
ZXJhdG9yLmNvbT4KRGF0ZTogTW9uLCAxOSBPY3QgMjAwOSAwNDo0Mzo0MyAtMDUwMApTdWJqZWN0
OiBbUEFUQ0hdIGltcGxlbWVudGVkIENsaXBib2FyZFdpbjo6ZmlsZXMoKQogaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI5NjY2CgotLS0KIFdlYkNvcmUvQ2hhbmdlTG9n
ICAgICAgICAgICAgICAgICAgICAgfCAgIDEwICsrKysrKysrKysKIFdlYkNvcmUvcGxhdGZvcm0v
d2luL0NsaXBib2FyZFdpbi5jcHAgfCAgIDI4ICsrKysrKysrKysrKysrKysrKysrKysrKysrLS0K
IDIgZmlsZXMgY2hhbmdlZCwgMzYgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYg
LS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGUyN2Nj
MjQuLjFjZmI0YTcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMDktMTAtMTkgIE1hcnNoYWxsIEN1bHBlcHBl
ciAgPG1jdWxwZXBwZXJAYXBwY2VsZXJhdG9yLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBpbXBsZW1lbnRlZCBDbGlwYm9hcmRXaW46OmZpbGVz
KCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI5NjY2
CisKKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vQ2xpcGJvYXJkV2luLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkNsaXBib2FyZFdpbjo6ZmlsZXMpOgorCiAyMDA5LTEwLTE5ICBKYWtvYiBUcnVlbHNl
biAgPGFudGlhbGl6ZUBnbWFpbC5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBCYXJ0
aC4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vd2luL0NsaXBib2FyZFdpbi5jcHAgYi9X
ZWJDb3JlL3BsYXRmb3JtL3dpbi9DbGlwYm9hcmRXaW4uY3BwCmluZGV4IGIyZThlM2UuLjBmYTYy
ODYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vd2luL0NsaXBib2FyZFdpbi5jcHAKKysr
IGIvV2ViQ29yZS9wbGF0Zm9ybS93aW4vQ2xpcGJvYXJkV2luLmNwcApAQCAtNTc3LDggKzU3Nywz
MiBAQCBIYXNoU2V0PFN0cmluZz4gQ2xpcGJvYXJkV2luOjp0eXBlcygpIGNvbnN0CiAKIFBhc3NS
ZWZQdHI8RmlsZUxpc3Q+IENsaXBib2FyZFdpbjo6ZmlsZXMoKSBjb25zdAogewotICAgIG5vdElt
cGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIDA7CisgICAgUmVmUHRyPEZpbGVMaXN0PiBmaWxlcyA9
IEZpbGVMaXN0OjpjcmVhdGUoKTsKKyAgICBpZiAocG9saWN5KCkgIT0gQ2xpcGJvYXJkUmVhZGFi
bGUgJiYgcG9saWN5KCkgIT0gQ2xpcGJvYXJkVHlwZXNSZWFkYWJsZSkKKyAgICAgICAgcmV0dXJu
IGZpbGVzLnJlbGVhc2UoKTsKKworICAgIGlmICghbV9kYXRhT2JqZWN0KQorICAgICAgICByZXR1
cm4gZmlsZXMucmVsZWFzZSgpOworCisgICAgU1RHTUVESVVNIG1lZGl1bTsKKyAgICBpZiAoRkFJ
TEVEKG1fZGF0YU9iamVjdC0+R2V0RGF0YShjZkhEcm9wRm9ybWF0KCksICZtZWRpdW0pKSkKKyAg
ICAgICAgcmV0dXJuIGZpbGVzLnJlbGVhc2UoKTsKKworICAgIEhEUk9QIGhkcm9wID0gcmVpbnRl
cnByZXRfY2FzdDxIRFJPUD4oR2xvYmFsTG9jayhtZWRpdW0uaEdsb2JhbCkpOworICAgIGlmICgh
aGRyb3ApCisgICAgICAgIHJldHVybiBmaWxlcy5yZWxlYXNlKCk7CisKKyAgICBXQ0hBUiBmaWxl
bmFtZVtNQVhfUEFUSF07CisgICAgVUlOVCBmaWxlQ291bnQgPSBEcmFnUXVlcnlGaWxlVyhoZHJv
cCwgMHhGRkZGRkZGRiwgMCwgMCk7CisgICAgZm9yIChVSU5UIGkgPSAwOyBpIDwgZmlsZUNvdW50
OyBpKyspIHsKKyAgICAgICAgaWYgKCFEcmFnUXVlcnlGaWxlVyhoZHJvcCwgaSwgZmlsZW5hbWUs
IEFSUkFZU0laRShmaWxlbmFtZSkpKQorICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIGZp
bGVzLT5hcHBlbmQoRmlsZTo6Y3JlYXRlKHJlaW50ZXJwcmV0X2Nhc3Q8VUNoYXIqPihmaWxlbmFt
ZSkpKTsKKyAgICB9CisKKyAgICBHbG9iYWxVbmxvY2sobWVkaXVtLmhHbG9iYWwpOworICAgIFJl
bGVhc2VTdGdNZWRpdW0oJm1lZGl1bSk7CisgICAgcmV0dXJuIGZpbGVzLnJlbGVhc2UoKTsKIH0K
IAogdm9pZCBDbGlwYm9hcmRXaW46OnNldERyYWdJbWFnZShDYWNoZWRJbWFnZSogaW1hZ2UsIE5v
ZGUgKm5vZGUsIGNvbnN0IEludFBvaW50ICZsb2MpCi0tIAoxLjYuNC4yCgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>