Author: jhm
Date: Tue Jul 18 01:28:25 2006
New Revision: 423009

URL: http://svn.apache.org/viewvc?rev=423009&view=rev
Log:
Bug 21042 "Setting XSL parameter to input filename when processed whole 
directory."
* changed from File.getParent() to String.substring() to avoid changing between 
/ and \
* "dir" defaults to '.' instead of empty string, so dir+'/'+name would not 
result in an absolute path

Modified:
    ant/core/trunk/docs/manual/CoreTasks/style.html
    ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/XSLTProcess.java
    ant/core/trunk/src/testcases/org/apache/tools/ant/taskdefs/StyleTest.java

Modified: ant/core/trunk/docs/manual/CoreTasks/style.html
URL: 
http://svn.apache.org/viewvc/ant/core/trunk/docs/manual/CoreTasks/style.html?rev=423009&r1=423008&r2=423009&view=diff
==============================================================================
--- ant/core/trunk/docs/manual/CoreTasks/style.html (original)
+++ ant/core/trunk/docs/manual/CoreTasks/style.html Tue Jul 18 01:28:25 2006
@@ -191,8 +191,8 @@
   </tr>
   <tr>
     <td valign="top">filenameparameter</td>
-    <td valign="top">Specifies a xsl parameter for accessing the name 
-    of the current processed file. If not set, the file name is not 
+    <td valign="top">Specifies a xsl parameter for accessing the name
+    of the current processed file. If not set, the file name is not
     passed to the transformation.
     <em>Since Ant 1.7</em>.</td>
     <td valign="top" align="center">No</td>
@@ -200,8 +200,9 @@
   <tr>
     <td valign="top">filedirparameter</td>
     <td valign="top">Specifies a xsl parameter for accessing the directory
-    of the current processed file. If not set, the directory is not 
-    passed to the transformation.
+    of the current processed file. For files in the current directory a
+    value of '.' will be passed to the transformation.
+    If not set, the directory is not passed to the transformation. 
     <em>Since Ant 1.7</em>.</td>
     <td valign="top" align="center">No</td>
   </tr>
@@ -454,7 +455,7 @@
 &lt;/xsl:template&gt;
 
 &lt;/xsl:stylesheet&gt;
-</pre>  
+</pre>
 
 </blockquote>
 <hr>

Modified: ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/XSLTProcess.java
URL: 
http://svn.apache.org/viewvc/ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/XSLTProcess.java?rev=423009&r1=423008&r2=423009&view=diff
==============================================================================
--- ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/XSLTProcess.java 
(original)
+++ ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/XSLTProcess.java Tue 
Jul 18 01:28:25 2006
@@ -1037,13 +1037,23 @@
         File inFile
     ) throws Exception {
         String fileName = FileUtils.getRelativePath(baseDir, inFile);
-        File file = new File(fileName);
-
+        
+        String name;
+        String dir;
+        int lastDirSep = fileName.lastIndexOf("/");
+        if (lastDirSep > -1) {
+            name = fileName.substring(lastDirSep + 1);
+            dir  = fileName.substring(0, lastDirSep);
+        } else {
+            name = fileName;
+            dir  = ".";      // so a dir+"/"+name would not result in an 
absolute path
+        }
+        
         if (fileNameParameter != null) {
-            liaison.addParam(fileNameParameter, inFile.getName());
+            liaison.addParam(fileNameParameter, name);
         }
         if (fileDirParameter != null) {
-            liaison.addParam(fileDirParameter, (file.getParent()!=null) ? 
file.getParent() : "" );
+            liaison.addParam(fileDirParameter, dir);
         }
     }
 

Modified: 
ant/core/trunk/src/testcases/org/apache/tools/ant/taskdefs/StyleTest.java
URL: 
http://svn.apache.org/viewvc/ant/core/trunk/src/testcases/org/apache/tools/ant/taskdefs/StyleTest.java?rev=423009&r1=423008&r2=423009&view=diff
==============================================================================
--- ant/core/trunk/src/testcases/org/apache/tools/ant/taskdefs/StyleTest.java 
(original)
+++ ant/core/trunk/src/testcases/org/apache/tools/ant/taskdefs/StyleTest.java 
Tue Jul 18 01:28:25 2006
@@ -168,7 +168,7 @@
     public void testFilenameAndFiledirAsParam() throws Exception {
         executeTarget("testFilenameAndFiledirAsParam");
         assertFileContains("out/out/one.txt",      "filename='one.xml'");
-        assertFileContains("out/out/one.txt",      "filedir =''");
+        assertFileContains("out/out/one.txt",      "filedir ='.'");
         assertFileContains("out/out/dir/four.txt", "filename='four.xml'");
         assertFileContains("out/out/dir/four.txt", "filedir ='dir'");
     }



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

Reply via email to