You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ant.apache.org by pe...@apache.org on 2006/09/04 00:56:35 UTC

svn commit: r439869 - in /ant/core/trunk: WHATSNEW src/etc/testcases/taskdefs/macrodef.xml src/main/org/apache/tools/ant/taskdefs/MacroInstance.java src/testcases/org/apache/tools/ant/taskdefs/MacroDefTest.java

Author: peterreilly
Date: Sun Sep  3 15:56:35 2006
New Revision: 439869

URL: http://svn.apache.org/viewvc?view=rev&rev=439869
Log:
add text for macro element. Bugzilla report 36803

Modified:
    ant/core/trunk/WHATSNEW
    ant/core/trunk/src/etc/testcases/taskdefs/macrodef.xml
    ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/MacroInstance.java
    ant/core/trunk/src/testcases/org/apache/tools/ant/taskdefs/MacroDefTest.java

Modified: ant/core/trunk/WHATSNEW
URL: http://svn.apache.org/viewvc/ant/core/trunk/WHATSNEW?view=diff&rev=439869&r1=439868&r2=439869
==============================================================================
--- ant/core/trunk/WHATSNEW (original)
+++ ant/core/trunk/WHATSNEW Sun Sep  3 15:56:35 2006
@@ -13,6 +13,7 @@
 * <zip filesonly="true"> included empty directories.  Bugzilla report 40258.
 * Invalid hash code of Target causes XmlLogger to fail.
   Bugzilla report 40207.
+* Macro element did not include top level Text. Bugzilla report 36803.
 
 Other changes:
 --------------

Modified: ant/core/trunk/src/etc/testcases/taskdefs/macrodef.xml
URL: http://svn.apache.org/viewvc/ant/core/trunk/src/etc/testcases/taskdefs/macrodef.xml?view=diff&rev=439869&r1=439868&r2=439869
==============================================================================
--- ant/core/trunk/src/etc/testcases/taskdefs/macrodef.xml (original)
+++ ant/core/trunk/src/etc/testcases/taskdefs/macrodef.xml Sun Sep  3 15:56:35 2006
@@ -256,4 +256,18 @@
     </macrodef>
     <nobacktrace/>
   </target>
+
+  <target name="top-level-text">
+    <macrodef name="top">
+      <element name="em"/>
+      <sequential>
+        <echo><em/></echo>
+      </sequential>
+    </macrodef>
+    <top>
+      <em>
+        Hello World
+      </em>
+    </top>
+  </target>
 </project>

Modified: ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/MacroInstance.java
URL: http://svn.apache.org/viewvc/ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/MacroInstance.java?view=diff&rev=439869&r1=439868&r2=439869
==============================================================================
--- ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/MacroInstance.java (original)
+++ ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/MacroInstance.java Sun Sep  3 15:56:35 2006
@@ -133,7 +133,7 @@
             if (presentElements.get(name) != null) {
                 throw new BuildException("Element " + name + " already present");
             }
-            presentElements.put(name, ue.getChildren());
+            presentElements.put(name, ue);
         }
     }
 
@@ -297,8 +297,9 @@
                     ret.addChild(child);
                 }
             } else {
-                List list = (List) presentElements.get(tag);
-                if (list == null) {
+                UnknownElement presentElement =
+                    (UnknownElement) presentElements.get(tag);
+                if (presentElement == null) {
                     if (!templateElement.isOptional()) {
                         throw new BuildException(
                             "Required nested element "
@@ -306,11 +307,19 @@
                     }
                     continue;
                 }
-                for (Iterator i = list.iterator();
-                     i.hasNext();) {
-                    UnknownElement child = copy((UnknownElement) i.next());
-                    rc.addChild(child.getWrapper());
-                    ret.addChild(child);
+                String presentText =
+                    presentElement.getWrapper().getText().toString();
+                if (!"".equals(presentText)) {
+                    rc.addText(macroSubs(presentText, localAttributes));
+                }
+                List list = presentElement.getChildren();
+                if (list != null) {
+                    for (Iterator i = list.iterator();
+                         i.hasNext();) {
+                        UnknownElement child = copy((UnknownElement) i.next());
+                        rc.addChild(child.getWrapper());
+                        ret.addChild(child);
+                    }
                 }
             }
         }

Modified: ant/core/trunk/src/testcases/org/apache/tools/ant/taskdefs/MacroDefTest.java
URL: http://svn.apache.org/viewvc/ant/core/trunk/src/testcases/org/apache/tools/ant/taskdefs/MacroDefTest.java?view=diff&rev=439869&r1=439868&r2=439869
==============================================================================
--- ant/core/trunk/src/testcases/org/apache/tools/ant/taskdefs/MacroDefTest.java (original)
+++ ant/core/trunk/src/testcases/org/apache/tools/ant/taskdefs/MacroDefTest.java Sun Sep  3 15:56:35 2006
@@ -150,5 +150,9 @@
             "Checking if a back trace is created",
             "following error occurred");
     }
+
+    public void testTopLevelText() {
+        expectLogContaining("top-level-text", "Hello World");
+    }
 }
 



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@ant.apache.org
For additional commands, e-mail: dev-help@ant.apache.org