There was some discussion last week about bug 27814.
http://issues.apache.org/bugzilla/show_bug.cgi?id=27814
Basicly, because of invalid doc for javadoc, ant generates external files
containing invalid filenames for the javadoc. - "a:\a dir with
spaces\subdir\file.name"
javadoc does like this (backspaces within a string delimited by ").
The fix that Stefan placed
in was to replace File.separatorChar with "/" - which is a valid
alternative file separator
character on windows. The fix has been tested by at least two people
(Jesse and Tom Klasse)
on windows.
The change is very small:
Index: Javadoc.java
===================================================================
RCS file:
/home/cvs/ant/src/main/org/apache/tools/ant/taskdefs/Javadoc.java,v
retrieving revision 1.124.2.8
diff -u -3 -p -r1.124.2.8 Javadoc.java
--- Javadoc.java 30 Mar 2005 16:56:19 -0000 1.124.2.8
+++ Javadoc.java 31 May 2005 09:30:06 -0000
@@ -1905,7 +1905,9 @@ public class Javadoc extends Task {
String sourceFileName = sf.getFile().getAbsolutePath();
if (useExternalFile) {
if (javadoc4 && sourceFileName.indexOf(" ") > -1) {
- srcListWriter.println("\"" + sourceFileName +
"\"");
+ String name =
+ sourceFileName.replace(File.separatorChar,
'/');
+ srcListWriter.println("\"" + name + "\"");
} else {
srcListWriter.println(sourceFileName);
}
However, I would like to make a small change:
Index: Javadoc.java
===================================================================
RCS file:
/home/cvs/ant/src/main/org/apache/tools/ant/taskdefs/Javadoc.java,v
retrieving revision 1.124.2.8
diff -u -3 -p -r1.124.2.8 Javadoc.java
--- Javadoc.java 30 Mar 2005 16:56:19 -0000 1.124.2.8
+++ Javadoc.java 31 May 2005 09:32:38 -0000
@@ -1905,7 +1905,11 @@ public class Javadoc extends Task {
String sourceFileName = sf.getFile().getAbsolutePath();
if (useExternalFile) {
if (javadoc4 && sourceFileName.indexOf(" ") > -1) {
- srcListWriter.println("\"" + sourceFileName +
"\"");
+ String name = sourceFileName;
+ if (File.separatorChar == '\\') {
+ name =
sourceFileName.replace(File.separatorChar, '/');
+ }
+ srcListWriter.println("\"" + name + "\"");
} else {
srcListWriter.println(sourceFileName);
}
-i.e. only do the substituation if the File separator character is '\'.
I think that should go into ant 1.6.5 as
- it is a bug fix,
- it is small and localized
- it affects a well used task - javadoc
Peter
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]