Author: mbenson
Date: Wed May  9 10:12:26 2007
New Revision: 536592

URL: http://svn.apache.org/viewvc?view=rev&rev=536592
Log:
concat fixlastline/nested text regression; PR 42369

Modified:
    ant/core/trunk/WHATSNEW
    ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/Concat.java
    ant/core/trunk/src/tests/antunit/taskdefs/concat-test.xml

Modified: ant/core/trunk/WHATSNEW
URL: 
http://svn.apache.org/viewvc/ant/core/trunk/WHATSNEW?view=diff&rev=536592&r1=536591&r2=536592
==============================================================================
--- ant/core/trunk/WHATSNEW (original)
+++ ant/core/trunk/WHATSNEW Wed May  9 10:12:26 2007
@@ -70,6 +70,9 @@
 
 * handle null result of system getProperty(). Bugzilla 42334.
 
+* Regression: concat fixlastline="true" should not have applied to
+  nested text, but did in Ant 1.7.0. Bugzilla 42369.
+
 Other changes:
 --------------
 

Modified: ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/Concat.java
URL: 
http://svn.apache.org/viewvc/ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/Concat.java?view=diff&rev=536592&r1=536591&r2=536592
==============================================================================
--- ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/Concat.java (original)
+++ ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/Concat.java Wed May  
9 10:12:26 2007
@@ -265,7 +265,7 @@
                 int ch = getReader().read();
                 if (ch == -1) {
                     nextReader();
-                    if (fixLastLine && isMissingEndOfLine()) {
+                    if (isFixLastLine() && isMissingEndOfLine()) {
                         needAddSeparator = true;
                         lastPos = 0;
                     }
@@ -307,12 +307,12 @@
                 int nRead = getReader().read(cbuf, off, len);
                 if (nRead == -1 || nRead == 0) {
                     nextReader();
-                    if (fixLastLine && isMissingEndOfLine()) {
+                    if (isFixLastLine() && isMissingEndOfLine()) {
                         needAddSeparator = true;
                         lastPos = 0;
                     }
                 } else {
-                    if (fixLastLine) {
+                    if (isFixLastLine()) {
                         for (int i = nRead;
                                  i > (nRead - lastChars.length);
                                  --i) {
@@ -369,6 +369,10 @@
             }
             return false;
         }
+
+        private boolean isFixLastLine() {
+            return fixLastLine && textBuffer == null;
+        }
     }
 
     private class ConcatResource extends Resource {
@@ -887,10 +891,8 @@
      * for &quot;ignorable whitespace&quot; as well.</p>
      */
     private void sanitizeText() {
-        if (textBuffer != null) {
-            if (textBuffer.substring(0).trim().length() == 0) {
-                textBuffer = null;
-            }
+        if (textBuffer != null && "".equals(textBuffer.toString().trim())) {
+            textBuffer = null;
         }
     }
 

Modified: ant/core/trunk/src/tests/antunit/taskdefs/concat-test.xml
URL: 
http://svn.apache.org/viewvc/ant/core/trunk/src/tests/antunit/taskdefs/concat-test.xml?view=diff&rev=536592&r1=536591&r2=536592
==============================================================================
--- ant/core/trunk/src/tests/antunit/taskdefs/concat-test.xml (original)
+++ ant/core/trunk/src/tests/antunit/taskdefs/concat-test.xml Wed May  9 
10:12:26 2007
@@ -1,4 +1,6 @@
-<project xmlns:au="antlib:org.apache.ant.antunit">
+<project default="antunit" xmlns:au="antlib:org.apache.ant.antunit">
+  <import file="../antunit-base.xml" />
+
   <target name="tearDown">
     <delete file="binaryAppendDest" />
     <delete file="encodeStringDest" />
@@ -31,6 +33,15 @@
       <resourcesmatch astext="true">
         <file file="utf-16.expected" />
         <file file="encodeStringDest" />
+      </resourcesmatch>
+    </au:assertTrue>
+  </target>
+
+  <target name="testDoNotFixNestedText" description="Bugzilla 42369">
+    <au:assertTrue>
+      <resourcesmatch>
+        <string>foo</string>
+        <concat fixlastline="true">foo</concat>
       </resourcesmatch>
     </au:assertTrue>
   </target>



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to