<?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>37122</bug_id>
          
          <creation_ts>2010-04-05 16:00:25 -0700</creation_ts>
          <short_desc>check-webkit-style: exits when encountering a deleted file</short_desc>
          <delta_ts>2010-04-19 22:42:16 -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>Tools / Tests</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Jerdonek">cjerdonek</reporter>
          <assigned_to name="Shinichiro Hamaji">hamaji</assigned_to>
          <cc>cjerdonek</cc>
    
    <cc>hamaji</cc>
    
    <cc>levin</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>208762</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2010-04-05 16:00:25 -0700</bug_when>
    <thetext>See here for an example:

https://bugs.webkit.org/show_bug.cgi?id=35811#c50

I&apos;m not sure of all the circumstances in which this issue can arise.  Ideally, the error would be preserved at least when invoking with the path syntax.  Otherwise, the quickest fix would be to change this sys.exit() to a return statement:

http://trac.webkit.org/browser/trunk/WebKitTools/Scripts/webkitpy/style/checker.py#L680</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>208764</commentid>
    <comment_count>1</comment_count>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2010-04-05 16:03:03 -0700</bug_when>
    <thetext>(In reply to comment #0)
&gt; Otherwise, the quickest fix would be to change this sys.exit() to a return
&gt; statement:

And change the log.error() to log.warn() probably.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>208866</commentid>
    <comment_count>2</comment_count>
      <attachid>52600</attachid>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2010-04-05 20:04:17 -0700</bug_when>
    <thetext>Created attachment 52600
Proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>208877</commentid>
    <comment_count>3</comment_count>
      <attachid>52600</attachid>
    <who name="Shinichiro Hamaji">hamaji</who>
    <bug_when>2010-04-05 20:41:46 -0700</bug_when>
    <thetext>Comment on attachment 52600
Proposed patch

Though this doesn&apos;t mark as r? (I guess Chris just forgot to set the flag), I&apos;d r+ and cq+ this patch as this fixes the regression. Thanks Chris for the quick fix and sorry for my bad review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>208882</commentid>
    <comment_count>4</comment_count>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2010-04-05 20:55:02 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 52600 [details])
&gt; Though this doesn&apos;t mark as r? (I guess Chris just forgot to set the flag), I&apos;d
&gt; r+ and cq+ this patch as this fixes the regression. Thanks Chris for the quick
&gt; fix and sorry for my bad review.

Thanks, Shinichiro.  I didn&apos;t question the change, so I bear some responsibility, too. :)

By the way, it looks like the _check_directory() method can probably use similar logic.  It&apos;s less critical though, so it can wait.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>208884</commentid>
    <comment_count>5</comment_count>
      <attachid>52600</attachid>
    <who name="Shinichiro Hamaji">hamaji</who>
    <bug_when>2010-04-05 20:58:38 -0700</bug_when>
    <thetext>Comment on attachment 52600
Proposed patch

I&apos;d land this manually</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>208885</commentid>
    <comment_count>6</comment_count>
    <who name="Shinichiro Hamaji">hamaji</who>
    <bug_when>2010-04-05 20:59:31 -0700</bug_when>
    <thetext>Committed r57119: &lt;http://trac.webkit.org/changeset/57119&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>208887</commentid>
    <comment_count>7</comment_count>
    <who name="Shinichiro Hamaji">hamaji</who>
    <bug_when>2010-04-05 21:12:24 -0700</bug_when>
    <thetext>Reopening this bug because I agree it&apos;s better to terminate the program if a user specifies paths explicitly. I think we should not call check_file when a file deletion is detected in check_patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>208889</commentid>
    <comment_count>8</comment_count>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2010-04-05 21:21:46 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; I think we should not call check_file when a file deletion is detected in check_patch.

Yes, I agree.  I was thinking this, too.

We should also double-check what happens if check_patch() encounters a directory path in the patch (e.g. a removed or added directory).  I&apos;m not sure if this can happen, but depending on the behavior, we may want to have check_file() also check that the path is a file rather than a directory (or at least have check_patch() check that the path is a file before calling check_file()).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>208891</commentid>
    <comment_count>9</comment_count>
      <attachid>52603</attachid>
    <who name="Shinichiro Hamaji">hamaji</who>
    <bug_when>2010-04-05 21:34:56 -0700</bug_when>
    <thetext>Created attachment 52603
Ignore file deletions in a patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>208894</commentid>
    <comment_count>10</comment_count>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2010-04-05 22:13:15 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; Created an attachment (id=52603) [details]
&gt; Ignore file deletions in a patch

-            check_file(file_path=file_path, line_numbers=line_numbers)
+            if line_numbers:
+                check_file(file_path=file_path, line_numbers=line_numbers)

Before landing, do you think you could add a comment explaining the reasons
for the if clause and the cases in which it can come into play?

Thanks for fixing this the right way!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>208918</commentid>
    <comment_count>11</comment_count>
      <attachid>52611</attachid>
    <who name="Shinichiro Hamaji">hamaji</who>
    <bug_when>2010-04-05 23:33:00 -0700</bug_when>
    <thetext>Created attachment 52611
Added a comment and updated the ChangeLog</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>208921</commentid>
    <comment_count>12</comment_count>
    <who name="Shinichiro Hamaji">hamaji</who>
    <bug_when>2010-04-05 23:36:27 -0700</bug_when>
    <thetext>CCing David Levin to ask a review.

&gt; Before landing, do you think you could add a comment explaining the reasons
&gt; for the if clause and the cases in which it can come into play?

Yeah, thanks for your comment. I&apos;ve updated my patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>209011</commentid>
    <comment_count>13</comment_count>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2010-04-06 06:25:15 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; Created an attachment (id=52611) [details]
&gt; Added a comment and updated the ChangeLog

Thanks for adding a comment.

-            check_file(file_path=file_path, line_numbers=line_numbers)
+            # If line_numbers is empty, file_path was deleted.
+            # In this case, we should not call check_file because it
+            # terminates the program for a nonexistent file.
+            if line_numbers:
+                check_file(file_path=file_path, line_numbers=line_numbers)

Not a big deal, but it&apos;s probably better to say there that the patch has only line deletions for the file, which includes the case of the entire file being deleted.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>209026</commentid>
    <comment_count>14</comment_count>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2010-04-06 06:54:54 -0700</bug_when>
    <thetext>(In reply to comment #13)
&gt; (In reply to comment #11)
&gt; &gt; Created an attachment (id=52611) [details] [details]
&gt; &gt; Added a comment and updated the ChangeLog
&gt; 
&gt; Thanks for adding a comment.
&gt; 
&gt; -            check_file(file_path=file_path, line_numbers=line_numbers)
&gt; +            # If line_numbers is empty, file_path was deleted.
&gt; +            # In this case, we should not call check_file because it
&gt; +            # terminates the program for a nonexistent file.
&gt; +            if line_numbers:
&gt; +                check_file(file_path=file_path, line_numbers=line_numbers)
&gt; 
&gt; Not a big deal, but it&apos;s probably better to say there that the patch has only
&gt; line deletions for the file, which includes the case of the entire file being
&gt; deleted.

Actually, thinking about this caused me to notice some subtle issues I hadn&apos;t noticed before.  Because check-webkit-style only reports errors occurring exactly on added lines, it can miss certain style issues caused by the contributor.  Here is one example I constructed:

&gt; --- a/WebKitTools/Scripts/webkitpy/style/error_handlers.py
&gt; +++ b/WebKitTools/Scripts/webkitpy/style/error_handlers.py
&gt; @@ -51,7 +51,6 @@ Methods:
&gt;  
&gt;  import sys
&gt;  
&gt; -
&gt;  class DefaultStyleErrorHandler(object):
&gt;  
&gt;      &quot;&quot;&quot;The default style error handler.&quot;&quot;&quot;

In this case we would want the following error to be reported:

WebKitTools/Scripts/webkitpy/style/error_handlers.py:54:  expected 2 blank lines, found 1  [pep8/E302] [5]

Similarly, this error won&apos;t get reported:

&gt; --- a/WebKitTools/Scripts/webkitpy/style/error_handlers.py
&gt; +++ b/WebKitTools/Scripts/webkitpy/style/error_handlers.py
&gt; @@ -98,6 +98,7 @@ class DefaultStyleErrorHandler(object):
&gt;  
&gt;          return self._category_totals[category]
&gt;  
&gt; +
&gt;      def _max_reports(self, category):
&gt;          &quot;&quot;&quot;Return the maximum number of errors to report.&quot;&quot;&quot;
&gt;          if not category in self._configuration.max_reports_per_category:

Here we would want this to be reported:

WebKitTools/Scripts/webkitpy/style/error_handlers.py:102:  too many blank lines (2)  [pep8/E303] [5]

So it might be better if the algorithm also reports errors in the line (or two?) immediately after an addition or deletion.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>209034</commentid>
    <comment_count>15</comment_count>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2010-04-06 07:11:14 -0700</bug_when>
    <thetext>(In reply to comment #14)
&gt; So it might be better if the algorithm also reports errors in the line (or
&gt; two?) immediately after an addition or deletion.

Here is a constructed example of an error caused by a contributor happening two lines after the added line:

&gt; --- a/WebKitTools/Scripts/webkitpy/style/error_handlers.py
&gt; +++ b/WebKitTools/Scripts/webkitpy/style/error_handlers.py
&gt; @@ -50,7 +50,7 @@ Methods:
&gt;  
&gt;  
&gt;  import sys
&gt; -
&gt; +import webkitpy
&gt;  
&gt;  class DefaultStyleErrorHandler(object):

(Sorry for cluttering this report with comments about something not directly related to the original subject.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>209413</commentid>
    <comment_count>16</comment_count>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2010-04-06 19:48:09 -0700</bug_when>
    <thetext>(In reply to comment #15)
&gt; (In reply to comment #14)
&gt; &gt; So it might be better if the algorithm also reports errors in the line (or
&gt; &gt; two?) immediately after an addition or deletion.
&gt; ... 
&gt; (Sorry for cluttering this report with comments about something not directly
&gt; related to the original subject.)

Filed a bug for this here:

https://bugs.webkit.org/show_bug.cgi?id=37185</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>212698</commentid>
    <comment_count>17</comment_count>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2010-04-14 19:16:10 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; Created an attachment (id=52611) [details]

Thanks for making this better!  Since this patch has languished, I&apos;ll take a crack at &quot;reviewing&quot; it in the hopes that a real reviewer can act on it more quickly.  It&apos;s good on the whole though I see some potential improvements described below.

diff --git a/WebKitTools/Scripts/webkitpy/style/checker.py b/WebKitTools/Scripts/webkitpy/style/checker.py
index 258a0b3..df21a0f 100644
--- a/WebKitTools/Scripts/webkitpy/style/checker.py
+++ b/WebKitTools/Scripts/webkitpy/style/checker.py
@@ -678,8 +678,8 @@ class StyleChecker(object):
                         mock_process_file)
 
         if not os_path_exists(file_path):
-            _log.warn(&quot;Skipping non-existent file: %s&quot; % file_path)
-            return
+            _log.error(&quot;File does not exist: %s&quot; % file_path)
+            sys.exit(1)
 
I would consider adding a &quot;Raises:\n  SystemExit&quot; section to check_file()&apos;s docstring since with this change the caller becomes responsible for verifying the file&apos;s existence.

I would also consider moving the logic above to an appropriate &quot;except&quot; block inside the read_lines() method.  This way the &quot;if&quot; block will only execute when an exception occurs and not during normal code flow.  Otherwise, it seems that in some cases the above or a similar check will need to execute twice during normal code flow -- both in the calling code when the caller is checking and above at the beginning of the method itself.

@@ -734,4 +734,8 @@ class StyleChecker(object):
             _log.debug(&apos;Found %s modified lines in patch for: %s&apos;
                        % (len(line_numbers), file_path))
 
-            check_file(file_path=file_path, line_numbers=line_numbers)
+            # If line_numbers is empty, file_path was deleted.
+            # In this case, we should not call check_file because it
+            # terminates the program for a nonexistent file.
+            if line_numbers:
+                check_file(file_path=file_path, line_numbers=line_numbers)

In the comment, I would clarify that line_numbers False means that the file has no new (or modified) lines.  In particular, a deleted file is a special case rather than the complete case.  For this reason, the &quot;if&quot; block is also an optimization and not there just to cover the case of a deleted file.  Maybe the comment can mention that.

Do we know whether parse_patch() can yield paths corresponding to directories and not just files (e.g. in cases where the patch creates or deletes a directory)?  Perhaps that possibility should also be mentioned in the comments as a case covered by the if block.

diff --git a/WebKitTools/Scripts/webkitpy/style/checker_unittest.py b/WebKitTools/Scripts/webkitpy/style/checker_unittest.py
 
+    _deletion_patch_string = &quot;&quot;&quot;Index: __init__.py
+===================================================================
+--- __init__.py  (revision 3593)
++++ __init__.py  (working copy)
+@@ -1 +0,0 @@
+-foobar
+&quot;&quot;&quot;
+
     def setUp(self):
         StyleCheckerCheckFileBase.setUp(self)
         self._got_file_path = None
@@ -738,19 +745,24 @@ index ef65bee..e3db70e 100644
         self._got_file_path = file_path
         self._got_line_numbers = line_numbers
 
-    def test_check_patch(self):
-        patch_files = parse_patch(self._patch_string)
-        diff = patch_files[self._file_path]
-
+    def assert_check_patch(self, patch_string,
+                           expected_got_file_path, expected_got_line_numbers):
         configuration = self._style_checker_configuration()
 
         style_checker = StyleChecker(configuration)
 
-        style_checker.check_patch(patch_string=self._patch_string,
+        style_checker.check_patch(patch_string=patch_string,
                                   mock_check_file=self._mock_check_file)
 
-        self.assertEquals(self._got_file_path, &quot;__init__.py&quot;)
-        self.assertEquals(self._got_line_numbers, set([2]))
+        self.assertEquals(self._got_file_path, expected_got_file_path)
+        self.assertEquals(self._got_line_numbers, expected_got_line_numbers)
+
+    def test_check_patch(self):
+        self.assert_check_patch(self._patch_string, &quot;__init__.py&quot;, set([2]))
+
+    def test_check_patch_with_deletion(self):
+        # _mock_check_file should not be called for the deletion patch.
+        self.assert_check_patch(self._deletion_patch_string, None, None)
 
I believe the code above will simplify somewhat after rebasing because of the changes in this patch:

https://bugs.webkit.org/show_bug.cgi?id=37065

I would recommend that a reviewer r- this patch to consider the suggestions above and also so that the patch can be seen after rebasing.  Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>213448</commentid>
    <comment_count>18</comment_count>
      <attachid>52611</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2010-04-16 15:14:49 -0700</bug_when>
    <thetext>Comment on attachment 52611
Added a comment and updated the ChangeLog

Please consider Chris&apos;s comments (which by far more thorough/informed than I would have been able to do on this).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>213877</commentid>
    <comment_count>19</comment_count>
      <attachid>53649</attachid>
    <who name="Shinichiro Hamaji">hamaji</who>
    <bug_when>2010-04-18 19:29:56 -0700</bug_when>
    <thetext>Created attachment 53649
Ignore file deletions in a patch 2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>213878</commentid>
    <comment_count>20</comment_count>
    <who name="Shinichiro Hamaji">hamaji</who>
    <bug_when>2010-04-18 19:37:43 -0700</bug_when>
    <thetext>Thanks Chris for your thorough review! I think I addressed all comments except the following two comments:

&gt; I would also consider moving the logic above to an appropriate &quot;except&quot; block
&gt; inside the read_lines() method.  This way the &quot;if&quot; block will only execute when
&gt; an exception occurs and not during normal code flow.  Otherwise, it seems that
&gt; in some cases the above or a similar check will need to execute twice during
&gt; normal code flow -- both in the calling code when the caller is checking and
&gt; above at the beginning of the method itself.

I think we want to check the existence of the file here. Otherwise, we cannot detect an error for files which are ignored because of dispatcher.should_skip_(with|without)_warning. For example, we may want to terminate the program when a user specifies

% check-webkit-style does_not_exist.png

What do you think?

&gt; Do we know whether parse_patch() can yield paths corresponding to directories
&gt; and not just files (e.g. in cases where the patch creates or deletes a
&gt; directory)?  Perhaps that possibility should also be mentioned in the comments
&gt; as a case covered by the if block.

I&apos;m not sure, but I think (svn|git) diff output nothing for directory creation/deletion?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>213889</commentid>
    <comment_count>21</comment_count>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2010-04-18 20:31:52 -0700</bug_when>
    <thetext>(In reply to comment #20)
&gt; I think we want to check the existence of the file here. Otherwise, we cannot
&gt; detect an error for files which are ignored because of
&gt; dispatcher.should_skip_(with|without)_warning. For example, we may want to
&gt; terminate the program when a user specifies
&gt; 
&gt; % check-webkit-style does_not_exist.png
&gt; 
&gt; What do you think?

Yes, I also debated this issue when putting together the patch for--

https://bugs.webkit.org/show_bug.cgi?id=37754

which you r+&apos;ed, by the way. :)

My thought process in the end is that check-webkit-style isn&apos;t meant to be a file-verification system, so it&apos;s not that bad if it doesn&apos;t exit when checking &quot;does_not_exist.png&quot;.  If the file really did exist, it would be skipped anyways and the result would be the same, so it doesn&apos;t seem like there is any harm in the behavior.

A bigger issue is that calling os.path.exists() isn&apos;t sufficient to say that the file is okay, so it&apos;s a false assurance in any case.  For example, why aren&apos;t we also calling &quot;not os.path.isdir()&quot; to verify that the file is a file rather than a directory?  It seems that the only surefire way to check may be to attempt to open the file for reading, but that seems excessive since you&apos;d be doing it twice.  So in the end, I thought it would be better to take the laziest approach and let check-webkit-style attempt to check style as it normally does.
 
(By the way, in my original comment I suggested putting the logic in a try-block in read_lines(), but there is already a try-block around the code calling read_lines which is probably the more appropriate spot.)

In any case, whatever you did there should be fine for now.  We can revisit the issue in the patch to activate the TextFileReader code of bug 37754.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>213893</commentid>
    <comment_count>22</comment_count>
    <who name="Shinichiro Hamaji">hamaji</who>
    <bug_when>2010-04-18 20:55:18 -0700</bug_when>
    <thetext>&gt; My thought process in the end is that check-webkit-style isn&apos;t meant to be a
&gt; file-verification system, so it&apos;s not that bad if it doesn&apos;t exit when checking
&gt; &quot;does_not_exist.png&quot;.  If the file really did exist, it would be skipped
&gt; anyways and the result would be the same, so it doesn&apos;t seem like there is any
&gt; harm in the behavior.

Maybe &quot;WebCore/rendering/RenderTheme.cp&quot; (this lacks a trailing &quot;p&quot;) would be a better example than &quot;does_not_exist.png&quot;. I think this case can be a bit more harmful?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>213898</commentid>
    <comment_count>23</comment_count>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2010-04-18 21:15:30 -0700</bug_when>
    <thetext>(In reply to comment #22)
&gt; Maybe &quot;WebCore/rendering/RenderTheme.cp&quot; (this lacks a trailing &quot;p&quot;) would be a
&gt; better example than &quot;does_not_exist.png&quot;. I think this case can be a bit more
&gt; harmful?

Good example.  I think you convinced me for now. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>213905</commentid>
    <comment_count>24</comment_count>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2010-04-18 21:45:10 -0700</bug_when>
    <thetext>(In reply to comment #19)
&gt; Created an attachment (id=53649) [details]

Thanks for addressing my comments and also for covering the &quot;-&quot; case.

This looks good to me.  I would r+ it if I could.

I would just fix this PEP8 nit prior to landing (two spaces after a period).

&gt; +            # modified lines. In this case, we don&apos;t check the file</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>213959</commentid>
    <comment_count>25</comment_count>
      <attachid>53660</attachid>
    <who name="Shinichiro Hamaji">hamaji</who>
    <bug_when>2010-04-19 01:53:30 -0700</bug_when>
    <thetext>Created attachment 53660
Ignore file deletions in a patch 3</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>213961</commentid>
    <comment_count>26</comment_count>
    <who name="Shinichiro Hamaji">hamaji</who>
    <bug_when>2010-04-19 01:54:51 -0700</bug_when>
    <thetext>&gt; I would just fix this PEP8 nit prior to landing (two spaces after a period).

Thanks. Done in the patch 3.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>214484</commentid>
    <comment_count>27</comment_count>
      <attachid>53660</attachid>
    <who name="Shinichiro Hamaji">hamaji</who>
    <bug_when>2010-04-19 22:42:06 -0700</bug_when>
    <thetext>Comment on attachment 53660
Ignore file deletions in a patch 3

Clearing flags on attachment: 53660

Committed r57870: &lt;http://trac.webkit.org/changeset/57870&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>214485</commentid>
    <comment_count>28</comment_count>
    <who name="Shinichiro Hamaji">hamaji</who>
    <bug_when>2010-04-19 22:42:16 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>52600</attachid>
            <date>2010-04-05 20:04:17 -0700</date>
            <delta_ts>2010-04-05 21:34:51 -0700</delta_ts>
            <desc>Proposed patch</desc>
            <filename>_patch-37122-1.diff</filename>
            <type>text/plain</type>
            <size>2554</size>
            <attacher name="Chris Jerdonek">cjerdonek</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCA0NGY3Zjg0Li4yNjJmM2ZhIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9DaGFuZ2VM
b2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMjIgQEAKIDIwMTAtMDQt
MDUgIENocmlzIEplcmRvbmVrICA8Y2plcmRvbmVrQHdlYmtpdC5vcmc+CiAKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRml4ZWQgY2hlY2std2Via2l0LXN0
eWxlIGlzc3VlIHdoZXJlIHRoZSBzY3JpcHQgd2FzIHByZW1hdHVyZWx5CisgICAgICAgIGV4aXRp
bmcgd2hlbiBlbmNvdW50ZXJpbmcgZGVsZXRlZCBmaWxlcyBpbiBwYXRjaGVzLgorCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNzEyMgorCisgICAgICAg
ICogU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2VyLnB5OgorICAgICAgICAgIC0gQ2hhbmdl
ZCBub24tZXhpc3RlbnQgZmlsZSBtZXNzYWdlIGZyb20gRVJST1IgdG8gV0FSTi4KKyAgICAgICAg
ICAtIFN0eWxlQ2hlY2tlci5jaGVja19maWxlKCkgbm8gbG9uZ2VyIHJhaXNlcyBhbiBleGNlcHRp
b24gd2hlbgorICAgICAgICAgICAgYSBmaWxlIGlzIG5vdCBmb3VuZC4KKworICAgICAgICAqIFNj
cmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlcl91bml0dGVzdC5weToKKyAgICAgICAgICAtIFVw
ZGF0ZWQgdW5pdCB0ZXN0cyBhcyBuZWNlc3NhcnkuCisKKzIwMTAtMDQtMDUgIENocmlzIEplcmRv
bmVrICA8Y2plcmRvbmVrQHdlYmtpdC5vcmc+CisKICAgICAgICAgVW5yZXZpZXdlZCBhZnRlciBk
aXNjdXNzaW9uIHdpdGggQWRhbSwgRGFyaW4sIGFuZCBFcmljLgogCiAgICAgICAgIERlbGV0ZWQg
dGhlIGF1dG8taW5zdGFsbCBkaXJlY3Rvcnkgc2luY2UgaXQgaXMgbm8gbG9uZ2VyIG5lZWRlZCBp
bgpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2Vy
LnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2VyLnB5CmluZGV4
IGY1ZmFlNDEuLjI1OGEwYjMgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0
cHkvc3R5bGUvY2hlY2tlci5weQorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3N0
eWxlL2NoZWNrZXIucHkKQEAgLTY3OCw4ICs2NzgsOCBAQCBjbGFzcyBTdHlsZUNoZWNrZXIob2Jq
ZWN0KToKICAgICAgICAgICAgICAgICAgICAgICAgIG1vY2tfcHJvY2Vzc19maWxlKQogCiAgICAg
ICAgIGlmIG5vdCBvc19wYXRoX2V4aXN0cyhmaWxlX3BhdGgpOgotICAgICAgICAgICAgX2xvZy5l
cnJvcigiRmlsZSBkb2VzIG5vdCBleGlzdDogJXMiICUgZmlsZV9wYXRoKQotICAgICAgICAgICAg
c3lzLmV4aXQoMSkKKyAgICAgICAgICAgIF9sb2cud2FybigiU2tpcHBpbmcgbm9uLWV4aXN0ZW50
IGZpbGU6ICVzIiAlIGZpbGVfcGF0aCkKKyAgICAgICAgICAgIHJldHVybgogCiAgICAgICAgIF9s
b2cuZGVidWcoIkNoZWNraW5nOiAiICsgZmlsZV9wYXRoKQogCmRpZmYgLS1naXQgYS9XZWJLaXRU
b29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXJfdW5pdHRlc3QucHkgYi9XZWJLaXRU
b29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXJfdW5pdHRlc3QucHkKaW5kZXggZDYz
MmYwNS4uZmQyODlhYSAxMDA3NTUKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9z
dHlsZS9jaGVja2VyX3VuaXR0ZXN0LnB5CisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0
cHkvc3R5bGUvY2hlY2tlcl91bml0dGVzdC5weQpAQCAtNjQxLDkgKzY0MSwxMCBAQCBjbGFzcyBT
dHlsZUNoZWNrZXJDaGVja0ZpbGVUZXN0KFN0eWxlQ2hlY2tlckNoZWNrRmlsZUJhc2UpOgogICAg
ICAgICBzZWxmLmFzc2VydEZhbHNlKHNlbGYubW9ja19vc19wYXRoX2V4aXN0cyhmaWxlX3BhdGgp
KQogCiAgICAgICAgICMgQ2hlY2sgdGhlIG91dGNvbWUuCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFp
c2VzKFN5c3RlbUV4aXQsIHNlbGYuY2FsbF9jaGVja19maWxlLCBmaWxlX3BhdGgpCi0gICAgICAg
IHNlbGYuYXNzZXJ0TG9nKFsiRVJST1I6IEZpbGUgZG9lcyBub3QgZXhpc3Q6ICIKLSAgICAgICAg
ICAgICAgICAgICAgICAgICJmaWxlX2RvZXNfbm90X2V4aXN0LnR4dFxuIl0pCisgICAgICAgIHNl
bGYuY2FsbF9jaGVja19maWxlKGZpbGVfcGF0aCkKKyAgICAgICAgc2VsZi5hc3NlcnRfYXR0cmli
dXRlcyhOb25lLCBOb25lLCBOb25lLCAiIikKKyAgICAgICAgc2VsZi5hc3NlcnRMb2coWydXQVJO
SU5HOiBTa2lwcGluZyBub24tZXhpc3RlbnQgZmlsZTogJworICAgICAgICAgICAgICAgICAgICAg
ICAgJ2ZpbGVfZG9lc19ub3RfZXhpc3QudHh0XG4nXSkKIAogICAgIGRlZiB0ZXN0X2NoZWNrX2Zp
bGVfb25fc2tpcF93aXRob3V0X3dhcm5pbmcoc2VsZik6CiAgICAgICAgICIiIlRlc3QgY2hlY2tf
ZmlsZSgpIGZvciBhIHNraXBwZWQtd2l0aG91dC13YXJuaW5nIGZpbGUuIiIiCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>52603</attachid>
            <date>2010-04-05 21:34:56 -0700</date>
            <delta_ts>2010-04-05 23:32:55 -0700</delta_ts>
            <desc>Ignore file deletions in a patch</desc>
            <filename>bug-37122-20100406133454.patch</filename>
            <type>text/plain</type>
            <size>4280</size>
            <attacher name="Shinichiro Hamaji">hamaji</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCBjNmM2NjMzLi4wZjQ3MjMyIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9DaGFuZ2VM
b2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTAtMDQt
MDUgIFNoaW5pY2hpcm8gSGFtYWppICA8aGFtYWppQGNocm9taXVtLm9yZz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBjaGVjay13ZWJraXQtc3R5bGU6
IGV4aXRzIHdoZW4gZW5jb3VudGVyaW5nIGEgZGVsZXRlZCBmaWxlCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNzEyMgorCisgICAgICAgICogU2NyaXB0
cy93ZWJraXRweS9zdHlsZS9jaGVja2VyLnB5OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkv
c3R5bGUvY2hlY2tlcl91bml0dGVzdC5weToKKwogMjAxMC0wNC0wNSAgQ2hyaXMgSmVyZG9uZWsg
IDxjamVyZG9uZWtAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBTaGluaWNoaXJv
IEhhbWFqaS4KZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUv
Y2hlY2tlci5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlci5w
eQppbmRleCAyNThhMGIzLi4yNjUxZjJkIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRz
L3dlYmtpdHB5L3N0eWxlL2NoZWNrZXIucHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9zdHlsZS9jaGVja2VyLnB5CkBAIC02NzgsOCArNjc4LDggQEAgY2xhc3MgU3R5bGVDaGVj
a2VyKG9iamVjdCk6CiAgICAgICAgICAgICAgICAgICAgICAgICBtb2NrX3Byb2Nlc3NfZmlsZSkK
IAogICAgICAgICBpZiBub3Qgb3NfcGF0aF9leGlzdHMoZmlsZV9wYXRoKToKLSAgICAgICAgICAg
IF9sb2cud2FybigiU2tpcHBpbmcgbm9uLWV4aXN0ZW50IGZpbGU6ICVzIiAlIGZpbGVfcGF0aCkK
LSAgICAgICAgICAgIHJldHVybgorICAgICAgICAgICAgX2xvZy5lcnJvcigiRmlsZSBkb2VzIG5v
dCBleGlzdDogJXMiICUgZmlsZV9wYXRoKQorICAgICAgICAgICAgc3lzLmV4aXQoMSkKIAogICAg
ICAgICBfbG9nLmRlYnVnKCJDaGVja2luZzogIiArIGZpbGVfcGF0aCkKIApAQCAtNzM0LDQgKzcz
NCw1IEBAIGNsYXNzIFN0eWxlQ2hlY2tlcihvYmplY3QpOgogICAgICAgICAgICAgX2xvZy5kZWJ1
ZygnRm91bmQgJXMgbW9kaWZpZWQgbGluZXMgaW4gcGF0Y2ggZm9yOiAlcycKICAgICAgICAgICAg
ICAgICAgICAgICAgJSAobGVuKGxpbmVfbnVtYmVycyksIGZpbGVfcGF0aCkpCiAKLSAgICAgICAg
ICAgIGNoZWNrX2ZpbGUoZmlsZV9wYXRoPWZpbGVfcGF0aCwgbGluZV9udW1iZXJzPWxpbmVfbnVt
YmVycykKKyAgICAgICAgICAgIGlmIGxpbmVfbnVtYmVyczoKKyAgICAgICAgICAgICAgICBjaGVj
a19maWxlKGZpbGVfcGF0aD1maWxlX3BhdGgsIGxpbmVfbnVtYmVycz1saW5lX251bWJlcnMpCmRp
ZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXJfdW5p
dHRlc3QucHkgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXJfdW5p
dHRlc3QucHkKaW5kZXggZmQyODlhYS4uOTU0MzkyMyAxMDA3NTUKLS0tIGEvV2ViS2l0VG9vbHMv
U2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2VyX3VuaXR0ZXN0LnB5CisrKyBiL1dlYktpdFRv
b2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlcl91bml0dGVzdC5weQpAQCAtNjQxLDEw
ICs2NDEsOSBAQCBjbGFzcyBTdHlsZUNoZWNrZXJDaGVja0ZpbGVUZXN0KFN0eWxlQ2hlY2tlckNo
ZWNrRmlsZUJhc2UpOgogICAgICAgICBzZWxmLmFzc2VydEZhbHNlKHNlbGYubW9ja19vc19wYXRo
X2V4aXN0cyhmaWxlX3BhdGgpKQogCiAgICAgICAgICMgQ2hlY2sgdGhlIG91dGNvbWUuCi0gICAg
ICAgIHNlbGYuY2FsbF9jaGVja19maWxlKGZpbGVfcGF0aCkKLSAgICAgICAgc2VsZi5hc3NlcnRf
YXR0cmlidXRlcyhOb25lLCBOb25lLCBOb25lLCAiIikKLSAgICAgICAgc2VsZi5hc3NlcnRMb2co
WydXQVJOSU5HOiBTa2lwcGluZyBub24tZXhpc3RlbnQgZmlsZTogJwotICAgICAgICAgICAgICAg
ICAgICAgICAgJ2ZpbGVfZG9lc19ub3RfZXhpc3QudHh0XG4nXSkKKyAgICAgICAgc2VsZi5hc3Nl
cnRSYWlzZXMoU3lzdGVtRXhpdCwgc2VsZi5jYWxsX2NoZWNrX2ZpbGUsIGZpbGVfcGF0aCkKKyAg
ICAgICAgc2VsZi5hc3NlcnRMb2coWyJFUlJPUjogRmlsZSBkb2VzIG5vdCBleGlzdDogIgorICAg
ICAgICAgICAgICAgICAgICAgICAgImZpbGVfZG9lc19ub3RfZXhpc3QudHh0XG4iXSkKIAogICAg
IGRlZiB0ZXN0X2NoZWNrX2ZpbGVfb25fc2tpcF93aXRob3V0X3dhcm5pbmcoc2VsZik6CiAgICAg
ICAgICIiIlRlc3QgY2hlY2tfZmlsZSgpIGZvciBhIHNraXBwZWQtd2l0aG91dC13YXJuaW5nIGZp
bGUuIiIiCkBAIC03MjksNiArNzI4LDE0IEBAIGluZGV4IGVmNjViZWUuLmUzZGI3MGUgMTAwNjQ0
CiArIyBOZXcgbGluZQogIiIiCiAKKyAgICBfZGVsZXRpb25fcGF0Y2hfc3RyaW5nID0gIiIiSW5k
ZXg6IF9faW5pdF9fLnB5Cis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gX19pbml0X18ucHkgIChyZXZpc2lvbiAz
NTkzKQorKysrIF9faW5pdF9fLnB5ICAod29ya2luZyBjb3B5KQorQEAgLTEgKzAsMCBAQAorLWZv
b2JhcgorIiIiCisKICAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgIFN0eWxlQ2hlY2tlckNo
ZWNrRmlsZUJhc2Uuc2V0VXAoc2VsZikKICAgICAgICAgc2VsZi5fZ290X2ZpbGVfcGF0aCA9IE5v
bmUKQEAgLTczOCwxOSArNzQ1LDI0IEBAIGluZGV4IGVmNjViZWUuLmUzZGI3MGUgMTAwNjQ0CiAg
ICAgICAgIHNlbGYuX2dvdF9maWxlX3BhdGggPSBmaWxlX3BhdGgKICAgICAgICAgc2VsZi5fZ290
X2xpbmVfbnVtYmVycyA9IGxpbmVfbnVtYmVycwogCi0gICAgZGVmIHRlc3RfY2hlY2tfcGF0Y2go
c2VsZik6Ci0gICAgICAgIHBhdGNoX2ZpbGVzID0gcGFyc2VfcGF0Y2goc2VsZi5fcGF0Y2hfc3Ry
aW5nKQotICAgICAgICBkaWZmID0gcGF0Y2hfZmlsZXNbc2VsZi5fZmlsZV9wYXRoXQotCisgICAg
ZGVmIGFzc2VydF9jaGVja19wYXRjaChzZWxmLCBwYXRjaF9zdHJpbmcsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICBleHBlY3RlZF9nb3RfZmlsZV9wYXRoLCBleHBlY3RlZF9nb3RfbGluZV9u
dW1iZXJzKToKICAgICAgICAgY29uZmlndXJhdGlvbiA9IHNlbGYuX3N0eWxlX2NoZWNrZXJfY29u
ZmlndXJhdGlvbigpCiAKICAgICAgICAgc3R5bGVfY2hlY2tlciA9IFN0eWxlQ2hlY2tlcihjb25m
aWd1cmF0aW9uKQogCi0gICAgICAgIHN0eWxlX2NoZWNrZXIuY2hlY2tfcGF0Y2gocGF0Y2hfc3Ry
aW5nPXNlbGYuX3BhdGNoX3N0cmluZywKKyAgICAgICAgc3R5bGVfY2hlY2tlci5jaGVja19wYXRj
aChwYXRjaF9zdHJpbmc9cGF0Y2hfc3RyaW5nLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIG1vY2tfY2hlY2tfZmlsZT1zZWxmLl9tb2NrX2NoZWNrX2ZpbGUpCiAKLSAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbHMoc2VsZi5fZ290X2ZpbGVfcGF0aCwgIl9faW5pdF9fLnB5IikKLSAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoc2VsZi5fZ290X2xpbmVfbnVtYmVycywgc2V0KFsyXSkp
CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHNlbGYuX2dvdF9maWxlX3BhdGgsIGV4cGVjdGVk
X2dvdF9maWxlX3BhdGgpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHNlbGYuX2dvdF9saW5l
X251bWJlcnMsIGV4cGVjdGVkX2dvdF9saW5lX251bWJlcnMpCisKKyAgICBkZWYgdGVzdF9jaGVj
a19wYXRjaChzZWxmKToKKyAgICAgICAgc2VsZi5hc3NlcnRfY2hlY2tfcGF0Y2goc2VsZi5fcGF0
Y2hfc3RyaW5nLCAiX19pbml0X18ucHkiLCBzZXQoWzJdKSkKKworICAgIGRlZiB0ZXN0X2NoZWNr
X3BhdGNoX3dpdGhfZGVsZXRpb24oc2VsZik6CisgICAgICAgICMgX21vY2tfY2hlY2tfZmlsZSBz
aG91bGQgbm90IGJlIGNhbGxlZCBmb3IgdGhlIGRlbGV0aW9uIHBhdGNoLgorICAgICAgICBzZWxm
LmFzc2VydF9jaGVja19wYXRjaChzZWxmLl9kZWxldGlvbl9wYXRjaF9zdHJpbmcsIE5vbmUsIE5v
bmUpCiAKIAogY2xhc3MgU3R5bGVDaGVja2VyQ2hlY2tQYXRoc1Rlc3QodW5pdHRlc3QuVGVzdENh
c2UpOgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>52611</attachid>
            <date>2010-04-05 23:33:00 -0700</date>
            <delta_ts>2010-04-18 19:29:51 -0700</delta_ts>
            <desc>Added a comment and updated the ChangeLog</desc>
            <filename>bug-37122-20100406153258.patch</filename>
            <type>text/plain</type>
            <size>4599</size>
            <attacher name="Shinichiro Hamaji">hamaji</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCBjNmM2NjMzLi44NGJlMTc1IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9DaGFuZ2VM
b2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTAtMDQt
MDUgIFNoaW5pY2hpcm8gSGFtYWppICA8aGFtYWppQGNocm9taXVtLm9yZz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBjaGVjay13ZWJraXQtc3R5bGU6
IGV4aXRzIHdoZW4gZW5jb3VudGVyaW5nIGEgZGVsZXRlZCBmaWxlCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNzEyMgorCisgICAgICAgIFRoaXMgcmV2
ZXJ0cyB0aGUgcXVpY2sgZml4IGRvbmUgYnkgcjU3MTE5IGFuZCBtYWtlcyBjaGVja19wYXRjaAor
ICAgICAgICBub3QgY2FsbCBjaGVja19maWxlIGZvciBkZWxldGVkIGZpbGVzLgorCisgICAgICAg
ICogU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2VyLnB5OgorICAgICAgICAqIFNjcmlwdHMv
d2Via2l0cHkvc3R5bGUvY2hlY2tlcl91bml0dGVzdC5weToKKwogMjAxMC0wNC0wNSAgQ2hyaXMg
SmVyZG9uZWsgIDxjamVyZG9uZWtAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBT
aGluaWNoaXJvIEhhbWFqaS4KZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0
cHkvc3R5bGUvY2hlY2tlci5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUv
Y2hlY2tlci5weQppbmRleCAyNThhMGIzLi5kZjIxYTBmIDEwMDY0NAotLS0gYS9XZWJLaXRUb29s
cy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXIucHkKKysrIGIvV2ViS2l0VG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2VyLnB5CkBAIC02NzgsOCArNjc4LDggQEAgY2xhc3Mg
U3R5bGVDaGVja2VyKG9iamVjdCk6CiAgICAgICAgICAgICAgICAgICAgICAgICBtb2NrX3Byb2Nl
c3NfZmlsZSkKIAogICAgICAgICBpZiBub3Qgb3NfcGF0aF9leGlzdHMoZmlsZV9wYXRoKToKLSAg
ICAgICAgICAgIF9sb2cud2FybigiU2tpcHBpbmcgbm9uLWV4aXN0ZW50IGZpbGU6ICVzIiAlIGZp
bGVfcGF0aCkKLSAgICAgICAgICAgIHJldHVybgorICAgICAgICAgICAgX2xvZy5lcnJvcigiRmls
ZSBkb2VzIG5vdCBleGlzdDogJXMiICUgZmlsZV9wYXRoKQorICAgICAgICAgICAgc3lzLmV4aXQo
MSkKIAogICAgICAgICBfbG9nLmRlYnVnKCJDaGVja2luZzogIiArIGZpbGVfcGF0aCkKIApAQCAt
NzM0LDQgKzczNCw4IEBAIGNsYXNzIFN0eWxlQ2hlY2tlcihvYmplY3QpOgogICAgICAgICAgICAg
X2xvZy5kZWJ1ZygnRm91bmQgJXMgbW9kaWZpZWQgbGluZXMgaW4gcGF0Y2ggZm9yOiAlcycKICAg
ICAgICAgICAgICAgICAgICAgICAgJSAobGVuKGxpbmVfbnVtYmVycyksIGZpbGVfcGF0aCkpCiAK
LSAgICAgICAgICAgIGNoZWNrX2ZpbGUoZmlsZV9wYXRoPWZpbGVfcGF0aCwgbGluZV9udW1iZXJz
PWxpbmVfbnVtYmVycykKKyAgICAgICAgICAgICMgSWYgbGluZV9udW1iZXJzIGlzIGVtcHR5LCBm
aWxlX3BhdGggd2FzIGRlbGV0ZWQuCisgICAgICAgICAgICAjIEluIHRoaXMgY2FzZSwgd2Ugc2hv
dWxkIG5vdCBjYWxsIGNoZWNrX2ZpbGUgYmVjYXVzZSBpdAorICAgICAgICAgICAgIyB0ZXJtaW5h
dGVzIHRoZSBwcm9ncmFtIGZvciBhIG5vbmV4aXN0ZW50IGZpbGUuCisgICAgICAgICAgICBpZiBs
aW5lX251bWJlcnM6CisgICAgICAgICAgICAgICAgY2hlY2tfZmlsZShmaWxlX3BhdGg9ZmlsZV9w
YXRoLCBsaW5lX251bWJlcnM9bGluZV9udW1iZXJzKQpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMv
U2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2VyX3VuaXR0ZXN0LnB5IGIvV2ViS2l0VG9vbHMv
U2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2VyX3VuaXR0ZXN0LnB5CmluZGV4IGZkMjg5YWEu
Ljk1NDM5MjMgMTAwNzU1Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUv
Y2hlY2tlcl91bml0dGVzdC5weQorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3N0
eWxlL2NoZWNrZXJfdW5pdHRlc3QucHkKQEAgLTY0MSwxMCArNjQxLDkgQEAgY2xhc3MgU3R5bGVD
aGVja2VyQ2hlY2tGaWxlVGVzdChTdHlsZUNoZWNrZXJDaGVja0ZpbGVCYXNlKToKICAgICAgICAg
c2VsZi5hc3NlcnRGYWxzZShzZWxmLm1vY2tfb3NfcGF0aF9leGlzdHMoZmlsZV9wYXRoKSkKIAog
ICAgICAgICAjIENoZWNrIHRoZSBvdXRjb21lLgotICAgICAgICBzZWxmLmNhbGxfY2hlY2tfZmls
ZShmaWxlX3BhdGgpCi0gICAgICAgIHNlbGYuYXNzZXJ0X2F0dHJpYnV0ZXMoTm9uZSwgTm9uZSwg
Tm9uZSwgIiIpCi0gICAgICAgIHNlbGYuYXNzZXJ0TG9nKFsnV0FSTklORzogU2tpcHBpbmcgbm9u
LWV4aXN0ZW50IGZpbGU6ICcKLSAgICAgICAgICAgICAgICAgICAgICAgICdmaWxlX2RvZXNfbm90
X2V4aXN0LnR4dFxuJ10pCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFN5c3RlbUV4aXQsIHNl
bGYuY2FsbF9jaGVja19maWxlLCBmaWxlX3BhdGgpCisgICAgICAgIHNlbGYuYXNzZXJ0TG9nKFsi
RVJST1I6IEZpbGUgZG9lcyBub3QgZXhpc3Q6ICIKKyAgICAgICAgICAgICAgICAgICAgICAgICJm
aWxlX2RvZXNfbm90X2V4aXN0LnR4dFxuIl0pCiAKICAgICBkZWYgdGVzdF9jaGVja19maWxlX29u
X3NraXBfd2l0aG91dF93YXJuaW5nKHNlbGYpOgogICAgICAgICAiIiJUZXN0IGNoZWNrX2ZpbGUo
KSBmb3IgYSBza2lwcGVkLXdpdGhvdXQtd2FybmluZyBmaWxlLiIiIgpAQCAtNzI5LDYgKzcyOCwx
NCBAQCBpbmRleCBlZjY1YmVlLi5lM2RiNzBlIDEwMDY0NAogKyMgTmV3IGxpbmUKICIiIgogCisg
ICAgX2RlbGV0aW9uX3BhdGNoX3N0cmluZyA9ICIiIkluZGV4OiBfX2luaXRfXy5weQorPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQorLS0tIF9faW5pdF9fLnB5ICAocmV2aXNpb24gMzU5MykKKysrKyBfX2luaXRfXy5weSAg
KHdvcmtpbmcgY29weSkKK0BAIC0xICswLDAgQEAKKy1mb29iYXIKKyIiIgorCiAgICAgZGVmIHNl
dFVwKHNlbGYpOgogICAgICAgICBTdHlsZUNoZWNrZXJDaGVja0ZpbGVCYXNlLnNldFVwKHNlbGYp
CiAgICAgICAgIHNlbGYuX2dvdF9maWxlX3BhdGggPSBOb25lCkBAIC03MzgsMTkgKzc0NSwyNCBA
QCBpbmRleCBlZjY1YmVlLi5lM2RiNzBlIDEwMDY0NAogICAgICAgICBzZWxmLl9nb3RfZmlsZV9w
YXRoID0gZmlsZV9wYXRoCiAgICAgICAgIHNlbGYuX2dvdF9saW5lX251bWJlcnMgPSBsaW5lX251
bWJlcnMKIAotICAgIGRlZiB0ZXN0X2NoZWNrX3BhdGNoKHNlbGYpOgotICAgICAgICBwYXRjaF9m
aWxlcyA9IHBhcnNlX3BhdGNoKHNlbGYuX3BhdGNoX3N0cmluZykKLSAgICAgICAgZGlmZiA9IHBh
dGNoX2ZpbGVzW3NlbGYuX2ZpbGVfcGF0aF0KLQorICAgIGRlZiBhc3NlcnRfY2hlY2tfcGF0Y2go
c2VsZiwgcGF0Y2hfc3RyaW5nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhwZWN0ZWRf
Z290X2ZpbGVfcGF0aCwgZXhwZWN0ZWRfZ290X2xpbmVfbnVtYmVycyk6CiAgICAgICAgIGNvbmZp
Z3VyYXRpb24gPSBzZWxmLl9zdHlsZV9jaGVja2VyX2NvbmZpZ3VyYXRpb24oKQogCiAgICAgICAg
IHN0eWxlX2NoZWNrZXIgPSBTdHlsZUNoZWNrZXIoY29uZmlndXJhdGlvbikKIAotICAgICAgICBz
dHlsZV9jaGVja2VyLmNoZWNrX3BhdGNoKHBhdGNoX3N0cmluZz1zZWxmLl9wYXRjaF9zdHJpbmcs
CisgICAgICAgIHN0eWxlX2NoZWNrZXIuY2hlY2tfcGF0Y2gocGF0Y2hfc3RyaW5nPXBhdGNoX3N0
cmluZywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb2NrX2NoZWNrX2ZpbGU9
c2VsZi5fbW9ja19jaGVja19maWxlKQogCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHNlbGYu
X2dvdF9maWxlX3BhdGgsICJfX2luaXRfXy5weSIpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxz
KHNlbGYuX2dvdF9saW5lX251bWJlcnMsIHNldChbMl0pKQorICAgICAgICBzZWxmLmFzc2VydEVx
dWFscyhzZWxmLl9nb3RfZmlsZV9wYXRoLCBleHBlY3RlZF9nb3RfZmlsZV9wYXRoKQorICAgICAg
ICBzZWxmLmFzc2VydEVxdWFscyhzZWxmLl9nb3RfbGluZV9udW1iZXJzLCBleHBlY3RlZF9nb3Rf
bGluZV9udW1iZXJzKQorCisgICAgZGVmIHRlc3RfY2hlY2tfcGF0Y2goc2VsZik6CisgICAgICAg
IHNlbGYuYXNzZXJ0X2NoZWNrX3BhdGNoKHNlbGYuX3BhdGNoX3N0cmluZywgIl9faW5pdF9fLnB5
Iiwgc2V0KFsyXSkpCisKKyAgICBkZWYgdGVzdF9jaGVja19wYXRjaF93aXRoX2RlbGV0aW9uKHNl
bGYpOgorICAgICAgICAjIF9tb2NrX2NoZWNrX2ZpbGUgc2hvdWxkIG5vdCBiZSBjYWxsZWQgZm9y
IHRoZSBkZWxldGlvbiBwYXRjaC4KKyAgICAgICAgc2VsZi5hc3NlcnRfY2hlY2tfcGF0Y2goc2Vs
Zi5fZGVsZXRpb25fcGF0Y2hfc3RyaW5nLCBOb25lLCBOb25lKQogCiAKIGNsYXNzIFN0eWxlQ2hl
Y2tlckNoZWNrUGF0aHNUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>53649</attachid>
            <date>2010-04-18 19:29:56 -0700</date>
            <delta_ts>2010-04-19 01:53:24 -0700</delta_ts>
            <desc>Ignore file deletions in a patch 2</desc>
            <filename>bug-37122-20100419112954.patch</filename>
            <type>text/plain</type>
            <size>5285</size>
            <attacher name="Shinichiro Hamaji">hamaji</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCBkMWM1NzZkLi5jMjRiNjMyIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9DaGFuZ2VM
b2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTAtMDQt
MTggIFNoaW5pY2hpcm8gSGFtYWppICA8aGFtYWppQGNocm9taXVtLm9yZz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBjaGVjay13ZWJraXQtc3R5bGU6
IGV4aXRzIHdoZW4gZW5jb3VudGVyaW5nIGEgZGVsZXRlZCBmaWxlCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNzEyMgorCisgICAgICAgIFRoaXMgcmV2
ZXJ0cyB0aGUgcXVpY2sgZml4IGRvbmUgYnkgcjU3MTE5IGFuZCBtYWtlcyBjaGVja19wYXRjaAor
ICAgICAgICBub3QgY2FsbCBjaGVja19maWxlIGZvciBkZWxldGVkIGZpbGVzLgorCisgICAgICAg
IEFsc28gdGhpcyBjaGFuZ2UgZml4ZXMgdGhlIGJlaGF2aW9yIGZvciAiLSIsIHdoaWNoIHNob3Vs
ZCBtZWFuCisgICAgICAgIHN0ZGluLiAgQmVmb3JlIHRoaXMgY2hhbmdlLCB0aGUgc3R5bGUgY2hl
Y2tlciBqdXN0IGlnbm9yZWQgIi0iCisgICAgICAgIHdpdGggYSB3YXJuaW5nIG1lc3NhZ2UuCisK
KyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXIucHk6CisgICAgICAgICog
U2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2VyX3VuaXR0ZXN0LnB5OgorCiAyMDEwLTA0LTE4
ICBFcmljIFNlaWRlbCAgPGVyaWNAd2Via2l0Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLCBm
aXhpbmcgdGhlIFF0IGJvdC4KZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0
cHkvc3R5bGUvY2hlY2tlci5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUv
Y2hlY2tlci5weQppbmRleCAyNDlhYjRjLi42MjdiM2I1IDEwMDY0NAotLS0gYS9XZWJLaXRUb29s
cy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXIucHkKKysrIGIvV2ViS2l0VG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2VyLnB5CkBAIC02NjEsNiArNjYxLDkgQEAgY2xhc3Mg
U3R5bGVDaGVja2VyKG9iamVjdCk6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERlZmF1
bHRzIHRvIHRoZSBmaWxlIHByb2Nlc3NpbmcgbWV0aG9kIG9mIHRoaXMKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgY2xhc3MuCiAKKyAgICAgICAgUmFpc2VzOgorICAgICAgICAgIFN5c3Rl
bUV4aXQ6IGlmIHRoZSBmaWxlIGRvZXMgbm90IGV4aXN0LgorCiAgICAgICAgICIiIgogICAgICAg
ICBpZiBtb2NrX2hhbmRsZV9zdHlsZV9lcnJvciBpcyBOb25lOgogICAgICAgICAgICAgaW5jcmVt
ZW50ID0gc2VsZi5faW5jcmVtZW50X2Vycm9yX2NvdW50CkBAIC02NzcsOSArNjgwLDkgQEAgY2xh
c3MgU3R5bGVDaGVja2VyKG9iamVjdCk6CiAgICAgICAgIHByb2Nlc3NfZmlsZSA9IChzZWxmLl9w
cm9jZXNzX2ZpbGUgaWYgbW9ja19wcm9jZXNzX2ZpbGUgaXMgTm9uZSBlbHNlCiAgICAgICAgICAg
ICAgICAgICAgICAgICBtb2NrX3Byb2Nlc3NfZmlsZSkKIAotICAgICAgICBpZiBub3Qgb3NfcGF0
aF9leGlzdHMoZmlsZV9wYXRoKToKLSAgICAgICAgICAgIF9sb2cud2FybigiU2tpcHBpbmcgbm9u
LWV4aXN0ZW50IGZpbGU6ICVzIiAlIGZpbGVfcGF0aCkKLSAgICAgICAgICAgIHJldHVybgorICAg
ICAgICBpZiBub3Qgb3NfcGF0aF9leGlzdHMoZmlsZV9wYXRoKSBhbmQgZmlsZV9wYXRoICE9ICIt
IjoKKyAgICAgICAgICAgIF9sb2cuZXJyb3IoIkZpbGUgZG9lcyBub3QgZXhpc3Q6ICVzIiAlIGZp
bGVfcGF0aCkKKyAgICAgICAgICAgIHN5cy5leGl0KDEpCiAKICAgICAgICAgX2xvZy5kZWJ1Zygi
Q2hlY2tpbmc6ICIgKyBmaWxlX3BhdGgpCiAKQEAgLTczNyw1ICs3NDAsMTEgQEAgY2xhc3MgUGF0
Y2hDaGVja2VyKG9iamVjdCk6CiAgICAgICAgICAgICBfbG9nLmRlYnVnKCdGb3VuZCAlcyBuZXcg
b3IgbW9kaWZpZWQgbGluZXMgaW46ICVzJwogICAgICAgICAgICAgICAgICAgICAgICAlIChsZW4o
bGluZV9udW1iZXJzKSwgcGF0aCkpCiAKLSAgICAgICAgICAgIHNlbGYuX2ZpbGVfY2hlY2tlci5j
aGVja19maWxlKGZpbGVfcGF0aD1wYXRoLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgbGluZV9udW1iZXJzPWxpbmVfbnVtYmVycykKKyAgICAgICAgICAgICMgSWYg
bGluZV9udW1iZXJzIGlzIGVtcHR5LCB0aGUgZmlsZSBoYXMgbm8gbmV3IG9yCisgICAgICAgICAg
ICAjIG1vZGlmaWVkIGxpbmVzLiBJbiB0aGlzIGNhc2UsIHdlIGRvbid0IGNoZWNrIHRoZSBmaWxl
CisgICAgICAgICAgICAjIGJlY2F1c2Ugd2UnbGwgbmV2ZXIgb3V0cHV0IGVycm9ycyBmb3IgdGhl
IGZpbGUuCisgICAgICAgICAgICAjIFRoaXMgb3B0aW1pemF0aW9uIGFsc28gcHJldmVudHMgdGhl
IHByb2dyYW0gZnJvbSBleGl0aW5nCisgICAgICAgICAgICAjIGR1ZSB0byBhIGRlbGV0ZWQgZmls
ZS4KKyAgICAgICAgICAgIGlmIGxpbmVfbnVtYmVyczoKKyAgICAgICAgICAgICAgICBzZWxmLl9m
aWxlX2NoZWNrZXIuY2hlY2tfZmlsZShmaWxlX3BhdGg9cGF0aCwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5lX251bWJlcnM9bGluZV9udW1iZXJzKQpk
aWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2VyX3Vu
aXR0ZXN0LnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2VyX3Vu
aXR0ZXN0LnB5CmluZGV4IGU2NDU3ZjIuLjQwMWE3YjMgMTAwNzU1Ci0tLSBhL1dlYktpdFRvb2xz
L1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlcl91bml0dGVzdC5weQorKysgYi9XZWJLaXRU
b29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXJfdW5pdHRlc3QucHkKQEAgLTYzMSw5
ICs2MzEsNyBAQCBjbGFzcyBTdHlsZUNoZWNrZXJDaGVja0ZpbGVUZXN0KFN0eWxlQ2hlY2tlckNo
ZWNrRmlsZUJhc2UpOgogICAgICAgICAgICAgbW9ja19vc19wYXRoX2V4aXN0cz1zZWxmLm1vY2tf
b3NfcGF0aF9leGlzdHMsCiAgICAgICAgICAgICBtb2NrX3Byb2Nlc3NfZmlsZT1zZWxmLm1vY2tf
cHJvY2Vzc19maWxlKQogCi0gICAgICAgIGZpbGVfY291bnQgPSAxIGlmIHNlbGYubW9ja19vc19w
YXRoX2V4aXN0cyhmaWxlX3BhdGgpIGVsc2UgMAotCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxz
KGZpbGVfY291bnQsIHN0eWxlX2NoZWNrZXIuZmlsZV9jb3VudCkKKyAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbHMoc3R5bGVfY2hlY2tlci5maWxlX2NvdW50LCAxKQogCiAgICAgZGVmIHRlc3RfY2hl
Y2tfZmlsZV9kb2VzX25vdF9leGlzdChzZWxmKToKICAgICAgICAgZmlsZV9wYXRoID0gImZpbGVf
ZG9lc19ub3RfZXhpc3QudHh0IgpAQCAtNjQyLDEwICs2NDAsMjUgQEAgY2xhc3MgU3R5bGVDaGVj
a2VyQ2hlY2tGaWxlVGVzdChTdHlsZUNoZWNrZXJDaGVja0ZpbGVCYXNlKToKICAgICAgICAgc2Vs
Zi5hc3NlcnRGYWxzZShzZWxmLm1vY2tfb3NfcGF0aF9leGlzdHMoZmlsZV9wYXRoKSkKIAogICAg
ICAgICAjIENoZWNrIHRoZSBvdXRjb21lLgorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhTeXN0
ZW1FeGl0LCBzZWxmLmNhbGxfY2hlY2tfZmlsZSwgZmlsZV9wYXRoKQorICAgICAgICBzZWxmLmFz
c2VydExvZyhbIkVSUk9SOiBGaWxlIGRvZXMgbm90IGV4aXN0OiAiCisgICAgICAgICAgICAgICAg
ICAgICAgICAiZmlsZV9kb2VzX25vdF9leGlzdC50eHRcbiJdKQorCisgICAgZGVmIHRlc3RfY2hl
Y2tfZmlsZV9zdGRpbihzZWxmKToKKyAgICAgICAgZmlsZV9wYXRoID0gIi0iCisKKyAgICAgICAg
IyBDb25maXJtIHRoYXQgdGhlIGZpbGUgZG9lcyBub3QgZXhpc3QuCisgICAgICAgIHNlbGYuYXNz
ZXJ0RmFsc2Uoc2VsZi5tb2NrX29zX3BhdGhfZXhpc3RzKGZpbGVfcGF0aCkpCisKKyAgICAgICAg
IyBDaGVjayB0aGUgb3V0Y29tZS4KICAgICAgICAgc2VsZi5jYWxsX2NoZWNrX2ZpbGUoZmlsZV9w
YXRoKQotICAgICAgICBzZWxmLmFzc2VydF9hdHRyaWJ1dGVzKE5vbmUsIE5vbmUsIE5vbmUsICIi
KQotICAgICAgICBzZWxmLmFzc2VydExvZyhbJ1dBUk5JTkc6IFNraXBwaW5nIG5vbi1leGlzdGVu
dCBmaWxlOiAnCi0gICAgICAgICAgICAgICAgICAgICAgICAnZmlsZV9kb2VzX25vdF9leGlzdC50
eHRcbiddKQorICAgICAgICBleHBlY3RlZF9wcm9jZXNzb3IgPSBDcHBQcm9jZXNzb3IoZmlsZV9w
YXRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiIsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLm1vY2tfaGFuZGxlX3N0
eWxlX2Vycm9yLCAzKQorICAgICAgICBzZWxmLmFzc2VydF9hdHRyaWJ1dGVzKGZpbGVfcGF0aCwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLm1vY2tfaGFuZGxlX3N0eWxlX2Vy
cm9yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4cGVjdGVkX3Byb2Nlc3NvciwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIikKIAogICAgIGRlZiB0ZXN0X2NoZWNr
X2ZpbGVfb25fc2tpcF93aXRob3V0X3dhcm5pbmcoc2VsZik6CiAgICAgICAgICIiIlRlc3QgY2hl
Y2tfZmlsZSgpIGZvciBhIHNraXBwZWQtd2l0aG91dC13YXJuaW5nIGZpbGUuIiIiCkBAIC03ODIs
MyArNzk1LDE0IEBAIGluZGV4IGVmNjViZWUuLmUzZGI3MGUgMTAwNjQ0CiArIyBOZXcgbGluZQog
IiIiKQogICAgICAgICBzZWxmLl9hc3NlcnRfY2hlY2tlZChbKCJfX2luaXRfXy5weSIsIHNldChb
Ml0pKV0pCisKKyAgICBkZWYgdGVzdF9jaGVja19wYXRjaF93aXRoX2RlbGV0aW9uKHNlbGYpOgor
ICAgICAgICBzZWxmLl9jYWxsX2NoZWNrX3BhdGNoKCIiIkluZGV4OiBfX2luaXRfXy5weQorPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQorLS0tIF9faW5pdF9fLnB5ICAocmV2aXNpb24gMzU5MykKKysrKyBfX2luaXRfXy5w
eSAgKHdvcmtpbmcgY29weSkKK0BAIC0xICswLDAgQEAKKy1mb29iYXIKKyIiIikKKyAgICAgICAg
IyBfbW9ja19jaGVja19maWxlIHNob3VsZCBub3QgYmUgY2FsbGVkIGZvciB0aGUgZGVsZXRpb24g
cGF0Y2guCisgICAgICAgIHNlbGYuX2Fzc2VydF9jaGVja2VkKFtdKQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>53660</attachid>
            <date>2010-04-19 01:53:30 -0700</date>
            <delta_ts>2010-04-19 22:42:06 -0700</delta_ts>
            <desc>Ignore file deletions in a patch 3</desc>
            <filename>bug-37122-20100419175328.patch</filename>
            <type>text/plain</type>
            <size>5286</size>
            <attacher name="Shinichiro Hamaji">hamaji</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCBkMWM1NzZkLi5jMjRiNjMyIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9DaGFuZ2VM
b2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTAtMDQt
MTggIFNoaW5pY2hpcm8gSGFtYWppICA8aGFtYWppQGNocm9taXVtLm9yZz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBjaGVjay13ZWJraXQtc3R5bGU6
IGV4aXRzIHdoZW4gZW5jb3VudGVyaW5nIGEgZGVsZXRlZCBmaWxlCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNzEyMgorCisgICAgICAgIFRoaXMgcmV2
ZXJ0cyB0aGUgcXVpY2sgZml4IGRvbmUgYnkgcjU3MTE5IGFuZCBtYWtlcyBjaGVja19wYXRjaAor
ICAgICAgICBub3QgY2FsbCBjaGVja19maWxlIGZvciBkZWxldGVkIGZpbGVzLgorCisgICAgICAg
IEFsc28gdGhpcyBjaGFuZ2UgZml4ZXMgdGhlIGJlaGF2aW9yIGZvciAiLSIsIHdoaWNoIHNob3Vs
ZCBtZWFuCisgICAgICAgIHN0ZGluLiAgQmVmb3JlIHRoaXMgY2hhbmdlLCB0aGUgc3R5bGUgY2hl
Y2tlciBqdXN0IGlnbm9yZWQgIi0iCisgICAgICAgIHdpdGggYSB3YXJuaW5nIG1lc3NhZ2UuCisK
KyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXIucHk6CisgICAgICAgICog
U2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2VyX3VuaXR0ZXN0LnB5OgorCiAyMDEwLTA0LTE4
ICBFcmljIFNlaWRlbCAgPGVyaWNAd2Via2l0Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLCBm
aXhpbmcgdGhlIFF0IGJvdC4KZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0
cHkvc3R5bGUvY2hlY2tlci5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUv
Y2hlY2tlci5weQppbmRleCAyNDlhYjRjLi41YTQyN2Y5IDEwMDY0NAotLS0gYS9XZWJLaXRUb29s
cy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXIucHkKKysrIGIvV2ViS2l0VG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2VyLnB5CkBAIC02NjEsNiArNjYxLDkgQEAgY2xhc3Mg
U3R5bGVDaGVja2VyKG9iamVjdCk6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERlZmF1
bHRzIHRvIHRoZSBmaWxlIHByb2Nlc3NpbmcgbWV0aG9kIG9mIHRoaXMKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgY2xhc3MuCiAKKyAgICAgICAgUmFpc2VzOgorICAgICAgICAgIFN5c3Rl
bUV4aXQ6IGlmIHRoZSBmaWxlIGRvZXMgbm90IGV4aXN0LgorCiAgICAgICAgICIiIgogICAgICAg
ICBpZiBtb2NrX2hhbmRsZV9zdHlsZV9lcnJvciBpcyBOb25lOgogICAgICAgICAgICAgaW5jcmVt
ZW50ID0gc2VsZi5faW5jcmVtZW50X2Vycm9yX2NvdW50CkBAIC02NzcsOSArNjgwLDkgQEAgY2xh
c3MgU3R5bGVDaGVja2VyKG9iamVjdCk6CiAgICAgICAgIHByb2Nlc3NfZmlsZSA9IChzZWxmLl9w
cm9jZXNzX2ZpbGUgaWYgbW9ja19wcm9jZXNzX2ZpbGUgaXMgTm9uZSBlbHNlCiAgICAgICAgICAg
ICAgICAgICAgICAgICBtb2NrX3Byb2Nlc3NfZmlsZSkKIAotICAgICAgICBpZiBub3Qgb3NfcGF0
aF9leGlzdHMoZmlsZV9wYXRoKToKLSAgICAgICAgICAgIF9sb2cud2FybigiU2tpcHBpbmcgbm9u
LWV4aXN0ZW50IGZpbGU6ICVzIiAlIGZpbGVfcGF0aCkKLSAgICAgICAgICAgIHJldHVybgorICAg
ICAgICBpZiBub3Qgb3NfcGF0aF9leGlzdHMoZmlsZV9wYXRoKSBhbmQgZmlsZV9wYXRoICE9ICIt
IjoKKyAgICAgICAgICAgIF9sb2cuZXJyb3IoIkZpbGUgZG9lcyBub3QgZXhpc3Q6ICVzIiAlIGZp
bGVfcGF0aCkKKyAgICAgICAgICAgIHN5cy5leGl0KDEpCiAKICAgICAgICAgX2xvZy5kZWJ1Zygi
Q2hlY2tpbmc6ICIgKyBmaWxlX3BhdGgpCiAKQEAgLTczNyw1ICs3NDAsMTEgQEAgY2xhc3MgUGF0
Y2hDaGVja2VyKG9iamVjdCk6CiAgICAgICAgICAgICBfbG9nLmRlYnVnKCdGb3VuZCAlcyBuZXcg
b3IgbW9kaWZpZWQgbGluZXMgaW46ICVzJwogICAgICAgICAgICAgICAgICAgICAgICAlIChsZW4o
bGluZV9udW1iZXJzKSwgcGF0aCkpCiAKLSAgICAgICAgICAgIHNlbGYuX2ZpbGVfY2hlY2tlci5j
aGVja19maWxlKGZpbGVfcGF0aD1wYXRoLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgbGluZV9udW1iZXJzPWxpbmVfbnVtYmVycykKKyAgICAgICAgICAgICMgSWYg
bGluZV9udW1iZXJzIGlzIGVtcHR5LCB0aGUgZmlsZSBoYXMgbm8gbmV3IG9yCisgICAgICAgICAg
ICAjIG1vZGlmaWVkIGxpbmVzLiAgSW4gdGhpcyBjYXNlLCB3ZSBkb24ndCBjaGVjayB0aGUgZmls
ZQorICAgICAgICAgICAgIyBiZWNhdXNlIHdlJ2xsIG5ldmVyIG91dHB1dCBlcnJvcnMgZm9yIHRo
ZSBmaWxlLgorICAgICAgICAgICAgIyBUaGlzIG9wdGltaXphdGlvbiBhbHNvIHByZXZlbnRzIHRo
ZSBwcm9ncmFtIGZyb20gZXhpdGluZworICAgICAgICAgICAgIyBkdWUgdG8gYSBkZWxldGVkIGZp
bGUuCisgICAgICAgICAgICBpZiBsaW5lX251bWJlcnM6CisgICAgICAgICAgICAgICAgc2VsZi5f
ZmlsZV9jaGVja2VyLmNoZWNrX2ZpbGUoZmlsZV9wYXRoPXBhdGgsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGluZV9udW1iZXJzPWxpbmVfbnVtYmVycykK
ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlcl91
bml0dGVzdC5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlcl91
bml0dGVzdC5weQppbmRleCBlNjQ1N2YyLi40MDFhN2IzIDEwMDc1NQotLS0gYS9XZWJLaXRUb29s
cy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXJfdW5pdHRlc3QucHkKKysrIGIvV2ViS2l0
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2VyX3VuaXR0ZXN0LnB5CkBAIC02MzEs
OSArNjMxLDcgQEAgY2xhc3MgU3R5bGVDaGVja2VyQ2hlY2tGaWxlVGVzdChTdHlsZUNoZWNrZXJD
aGVja0ZpbGVCYXNlKToKICAgICAgICAgICAgIG1vY2tfb3NfcGF0aF9leGlzdHM9c2VsZi5tb2Nr
X29zX3BhdGhfZXhpc3RzLAogICAgICAgICAgICAgbW9ja19wcm9jZXNzX2ZpbGU9c2VsZi5tb2Nr
X3Byb2Nlc3NfZmlsZSkKIAotICAgICAgICBmaWxlX2NvdW50ID0gMSBpZiBzZWxmLm1vY2tfb3Nf
cGF0aF9leGlzdHMoZmlsZV9wYXRoKSBlbHNlIDAKLQotICAgICAgICBzZWxmLmFzc2VydEVxdWFs
cyhmaWxlX2NvdW50LCBzdHlsZV9jaGVja2VyLmZpbGVfY291bnQpCisgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWxzKHN0eWxlX2NoZWNrZXIuZmlsZV9jb3VudCwgMSkKIAogICAgIGRlZiB0ZXN0X2No
ZWNrX2ZpbGVfZG9lc19ub3RfZXhpc3Qoc2VsZik6CiAgICAgICAgIGZpbGVfcGF0aCA9ICJmaWxl
X2RvZXNfbm90X2V4aXN0LnR4dCIKQEAgLTY0MiwxMCArNjQwLDI1IEBAIGNsYXNzIFN0eWxlQ2hl
Y2tlckNoZWNrRmlsZVRlc3QoU3R5bGVDaGVja2VyQ2hlY2tGaWxlQmFzZSk6CiAgICAgICAgIHNl
bGYuYXNzZXJ0RmFsc2Uoc2VsZi5tb2NrX29zX3BhdGhfZXhpc3RzKGZpbGVfcGF0aCkpCiAKICAg
ICAgICAgIyBDaGVjayB0aGUgb3V0Y29tZS4KKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoU3lz
dGVtRXhpdCwgc2VsZi5jYWxsX2NoZWNrX2ZpbGUsIGZpbGVfcGF0aCkKKyAgICAgICAgc2VsZi5h
c3NlcnRMb2coWyJFUlJPUjogRmlsZSBkb2VzIG5vdCBleGlzdDogIgorICAgICAgICAgICAgICAg
ICAgICAgICAgImZpbGVfZG9lc19ub3RfZXhpc3QudHh0XG4iXSkKKworICAgIGRlZiB0ZXN0X2No
ZWNrX2ZpbGVfc3RkaW4oc2VsZik6CisgICAgICAgIGZpbGVfcGF0aCA9ICItIgorCisgICAgICAg
ICMgQ29uZmlybSB0aGF0IHRoZSBmaWxlIGRvZXMgbm90IGV4aXN0LgorICAgICAgICBzZWxmLmFz
c2VydEZhbHNlKHNlbGYubW9ja19vc19wYXRoX2V4aXN0cyhmaWxlX3BhdGgpKQorCisgICAgICAg
ICMgQ2hlY2sgdGhlIG91dGNvbWUuCiAgICAgICAgIHNlbGYuY2FsbF9jaGVja19maWxlKGZpbGVf
cGF0aCkKLSAgICAgICAgc2VsZi5hc3NlcnRfYXR0cmlidXRlcyhOb25lLCBOb25lLCBOb25lLCAi
IikKLSAgICAgICAgc2VsZi5hc3NlcnRMb2coWydXQVJOSU5HOiBTa2lwcGluZyBub24tZXhpc3Rl
bnQgZmlsZTogJwotICAgICAgICAgICAgICAgICAgICAgICAgJ2ZpbGVfZG9lc19ub3RfZXhpc3Qu
dHh0XG4nXSkKKyAgICAgICAgZXhwZWN0ZWRfcHJvY2Vzc29yID0gQ3BwUHJvY2Vzc29yKGZpbGVf
cGF0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIiLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5tb2NrX2hhbmRsZV9z
dHlsZV9lcnJvciwgMykKKyAgICAgICAgc2VsZi5hc3NlcnRfYXR0cmlidXRlcyhmaWxlX3BhdGgs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5tb2NrX2hhbmRsZV9zdHlsZV9l
cnJvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHBlY3RlZF9wcm9jZXNzb3Is
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiIpCiAKICAgICBkZWYgdGVzdF9jaGVj
a19maWxlX29uX3NraXBfd2l0aG91dF93YXJuaW5nKHNlbGYpOgogICAgICAgICAiIiJUZXN0IGNo
ZWNrX2ZpbGUoKSBmb3IgYSBza2lwcGVkLXdpdGhvdXQtd2FybmluZyBmaWxlLiIiIgpAQCAtNzgy
LDMgKzc5NSwxNCBAQCBpbmRleCBlZjY1YmVlLi5lM2RiNzBlIDEwMDY0NAogKyMgTmV3IGxpbmUK
ICIiIikKICAgICAgICAgc2VsZi5fYXNzZXJ0X2NoZWNrZWQoWygiX19pbml0X18ucHkiLCBzZXQo
WzJdKSldKQorCisgICAgZGVmIHRlc3RfY2hlY2tfcGF0Y2hfd2l0aF9kZWxldGlvbihzZWxmKToK
KyAgICAgICAgc2VsZi5fY2FsbF9jaGVja19wYXRjaCgiIiJJbmRleDogX19pbml0X18ucHkKKz09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KKy0tLSBfX2luaXRfXy5weSAgKHJldmlzaW9uIDM1OTMpCisrKysgX19pbml0X18u
cHkgICh3b3JraW5nIGNvcHkpCitAQCAtMSArMCwwIEBACistZm9vYmFyCisiIiIpCisgICAgICAg
ICMgX21vY2tfY2hlY2tfZmlsZSBzaG91bGQgbm90IGJlIGNhbGxlZCBmb3IgdGhlIGRlbGV0aW9u
IHBhdGNoLgorICAgICAgICBzZWxmLl9hc3NlcnRfY2hlY2tlZChbXSkK
</data>

          </attachment>
      

    </bug>

</bugzilla>