From af0809b04df338fa2553b2d5c27d3f70cf31c929 Mon Sep 17 00:00:00 2001
From: Peter Reilly
Date: Mon, 19 Jan 2004 09:51:02 +0000
Subject: [PATCH] macrodef element names are case insensentive due to use of
DynamicConfigurator PR: 26225 Reported by: John Sichi
git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@275929 13f79535-47bb-0310-9956-ffa450edef68
---
docs/manual/CoreTasks/macrodef.html | 3 +++
src/etc/testcases/taskdefs/macrodef.xml | 15 +++++++++++++++
.../org/apache/tools/ant/taskdefs/MacroDef.java | 2 +-
.../apache/tools/ant/taskdefs/MacroInstance.java | 2 +-
.../apache/tools/ant/taskdefs/MacroDefTest.java | 6 ++++++
5 files changed, 26 insertions(+), 2 deletions(-)
diff --git a/docs/manual/CoreTasks/macrodef.html b/docs/manual/CoreTasks/macrodef.html
index 97c0a1b6c..0fb7e384b 100644
--- a/docs/manual/CoreTasks/macrodef.html
+++ b/docs/manual/CoreTasks/macrodef.html
@@ -98,6 +98,9 @@
The contents of the nested elements of the task instance
are placed in the templated task at the tag name.
+
+ The case of the element name is ignored.
+
Parameters
diff --git a/src/etc/testcases/taskdefs/macrodef.xml b/src/etc/testcases/taskdefs/macrodef.xml
index b9fca2666..671bdad35 100644
--- a/src/etc/testcases/taskdefs/macrodef.xml
+++ b/src/etc/testcases/taskdefs/macrodef.xml
@@ -86,4 +86,19 @@
+
+
+
+
+
+
+
+
+
+
+
+ nested element
+
+
+
diff --git a/src/main/org/apache/tools/ant/taskdefs/MacroDef.java b/src/main/org/apache/tools/ant/taskdefs/MacroDef.java
index 3e7e0e941..69d9353b8 100644
--- a/src/main/org/apache/tools/ant/taskdefs/MacroDef.java
+++ b/src/main/org/apache/tools/ant/taskdefs/MacroDef.java
@@ -395,7 +395,7 @@ public class MacroDef extends AntlibDefinition {
throw new BuildException(
"Illegal name [" + name + "] for attribute");
}
- this.name = name;
+ this.name = name.toLowerCase(Locale.US);
}
/**
diff --git a/src/main/org/apache/tools/ant/taskdefs/MacroInstance.java b/src/main/org/apache/tools/ant/taskdefs/MacroInstance.java
index 639bb5d13..102420617 100644
--- a/src/main/org/apache/tools/ant/taskdefs/MacroInstance.java
+++ b/src/main/org/apache/tools/ant/taskdefs/MacroInstance.java
@@ -277,7 +277,7 @@ public class MacroInstance extends Task implements DynamicConfigurator {
while (e.hasMoreElements()) {
RuntimeConfigurable r = (RuntimeConfigurable) e.nextElement();
UnknownElement unknownElement = (UnknownElement) r.getProxy();
- String tag = unknownElement.getTaskType();
+ String tag = unknownElement.getTaskType().toLowerCase(Locale.US);
MacroDef.TemplateElement templateElement =
(MacroDef.TemplateElement) getNsElements().get(tag);
if (templateElement == null) {
diff --git a/src/testcases/org/apache/tools/ant/taskdefs/MacroDefTest.java b/src/testcases/org/apache/tools/ant/taskdefs/MacroDefTest.java
index 73b4a1c44..8bb2131a6 100644
--- a/src/testcases/org/apache/tools/ant/taskdefs/MacroDefTest.java
+++ b/src/testcases/org/apache/tools/ant/taskdefs/MacroDefTest.java
@@ -109,5 +109,11 @@ public class MacroDefTest extends BuildFileTest {
"ignorecase",
"a is ab is b");
}
+
+ public void testIgnoreElementCase() {
+ expectLog(
+ "ignore-element-case",
+ "nested elementnested element");
+ }
}