peterreilly 2004/01/09 09:36:16
Modified: src/etc/testcases/taskdefs/fixcrlf build.xml
src/testcases/org/apache/tools/ant/taskdefs FixCrLfTest.java
src/main/org/apache/tools/ant/taskdefs FixCRLF.java
docs/manual/CoreTasks fixcrlf.html
Added: src/etc/testcases/taskdefs/fixcrlf/input fixlastfalse.lf
src/etc/testcases/taskdefs/fixcrlf/expected fixlast.dos
fixlastfalse.mac
Log:
fix for CRLF adds extraneous character at the end of File
if a file does not end in an eol, fixcrlf will add an eol
this patch adds an attribute to fixcrlf to stop this behaviour
PR: 23262
Obtained from: gudnabrsam at yahoo dot com
Revision Changes Path
1.10 +15 -0 ant/src/etc/testcases/taskdefs/fixcrlf/build.xml
Index: build.xml
===================================================================
RCS file: /home/cvs/ant/src/etc/testcases/taskdefs/fixcrlf/build.xml,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- build.xml 24 Jun 2003 08:32:43 -0000 1.9
+++ build.xml 9 Jan 2004 17:36:15 -0000 1.10
@@ -142,6 +142,21 @@
/>
</target>
+ <target name="testFixlastDos" depends="init">
+ <fixcrlf srcdir="input" destdir="result"
+ includes="fixlastfalse.lf"
+ eol="crlf"
+ />
+ </target>
+
+ <target name="testFixlastFalseMac" depends="init">
+ <fixcrlf srcdir="input" destdir="result"
+ includes="fixlastfalse.lf"
+ eol="cr"
+ fixlast="false"
+ />
+ </target>
+
<!-- Bugzilla Report 20840 -->
<target name="createParentDirs" depends="init">
<fixcrlf srcdir="." destdir="result" includes="input/Junk1.java"/>
1.15 +14 -2
ant/src/testcases/org/apache/tools/ant/taskdefs/FixCrLfTest.java
Index: FixCrLfTest.java
===================================================================
RCS file:
/home/cvs/ant/src/testcases/org/apache/tools/ant/taskdefs/FixCrLfTest.java,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -r1.14 -r1.15
--- FixCrLfTest.java 24 Jun 2003 08:32:43 -0000 1.14
+++ FixCrLfTest.java 9 Jan 2004 17:36:15 -0000 1.15
@@ -1,7 +1,7 @@
/*
* The Apache Software License, Version 1.1
*
- * Copyright (c) 2001-2003 The Apache Software Foundation. All rights
+ * Copyright (c) 2001-2004 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -76,7 +76,7 @@
}
public void tearDown() {
- executeTarget("cleanup");
+ //executeTarget("cleanup");
}
public void test1() throws IOException {
@@ -200,6 +200,18 @@
executeTarget("testCrCrLfSequence-mac");
assertEqualContent(new
File("src/etc/testcases/taskdefs/fixcrlf/expected/crcrlf.mac"),
new
File("src/etc/testcases/taskdefs/fixcrlf/result/crcrlf"));
+ }
+
+ public void testFixlastDos() throws IOException {
+ executeTarget("testFixlastDos");
+ assertEqualContent(new
File("src/etc/testcases/taskdefs/fixcrlf/expected/fixlast.dos"),
+ new
File("src/etc/testcases/taskdefs/fixcrlf/result/fixlastfalse.lf"));
+ }
+
+ public void testFixlastFalseMac() throws IOException {
+ executeTarget("testFixlastFalseMac");
+ assertEqualContent(new
File("src/etc/testcases/taskdefs/fixcrlf/expected/fixlastfalse.mac"),
+ new
File("src/etc/testcases/taskdefs/fixcrlf/result/fixlastfalse.lf"));
}
/**
1.56 +18 -7 ant/src/main/org/apache/tools/ant/taskdefs/FixCRLF.java
Index: FixCRLF.java
===================================================================
RCS file: /home/cvs/ant/src/main/org/apache/tools/ant/taskdefs/FixCRLF.java,v
retrieving revision 1.55
retrieving revision 1.56
diff -u -r1.55 -r1.56
--- FixCRLF.java 14 Oct 2003 13:19:52 -0000 1.55
+++ FixCRLF.java 9 Jan 2004 17:36:15 -0000 1.56
@@ -1,7 +1,7 @@
/*
* The Apache Software License, Version 1.1
*
- * Copyright (c) 2000-2003 The Apache Software Foundation. All rights
+ * Copyright (c) 2000-2004 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -154,6 +154,7 @@
private int ctrlz;
private int tabs;
private boolean javafiles = false;
+ private boolean fixlast = true;
private File srcDir;
private File destDir = null;
@@ -339,6 +340,14 @@
}
/**
+ * Specify whether a missing EOL will be added
+ * to the final line of a file.
+ */
+ public void setFixlast(boolean fixlast) {
+ this.fixlast = fixlast;
+ }
+
+ /**
* Executes the task.
*/
public void execute() throws BuildException {
@@ -515,11 +524,13 @@
} // end of else (tabs != ASIS)
- try {
- outWriter.write(eolstr);
- } catch (IOException e) {
- throw new BuildException(e);
- } // end of try-catch
+ if (!("".equals(line.getEol())) || fixlast) {
+ try {
+ outWriter.write(eolstr);
+ } catch (IOException e) {
+ throw new BuildException(e);
+ } // end of try-catch
+ } //end if non-blank original eol or fixlast
} // end of while (lines.hasNext())
1.1
ant/src/etc/testcases/taskdefs/fixcrlf/input/fixlastfalse.lf
Index: fixlastfalse.lf
===================================================================
12345
6789
1.1
ant/src/etc/testcases/taskdefs/fixcrlf/expected/fixlast.dos
Index: fixlast.dos
===================================================================
12345
6789
1.1
ant/src/etc/testcases/taskdefs/fixcrlf/expected/fixlastfalse.mac
Index: fixlastfalse.mac
===================================================================
12345
6789
1.15 +7 -2 ant/docs/manual/CoreTasks/fixcrlf.html
Index: fixcrlf.html
===================================================================
RCS file: /home/cvs/ant/docs/manual/CoreTasks/fixcrlf.html,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -r1.14 -r1.15
--- fixcrlf.html 10 Feb 2003 16:01:22 -0000 1.14
+++ fixcrlf.html 9 Jan 2004 17:36:16 -0000 1.15
@@ -219,6 +219,12 @@
<td valign="top">The encoding of the files</td>
<td align="center">No - defaults to default JVM encoding</td>
</tr>
+ <tr>
+ <td valign="top">fixlast</td>
+ <td valign="top">Whether to add a missing EOL to the last line
+ of a processed file. (Since ant 1.6.1)</td>
+ <td align="center">No - default is <i>true</i></td>
+ </tr>
</table>
<h3>Examples</h3>
<pre> <fixcrlf srcdir="${src}"
@@ -271,9 +277,8 @@
DOS systems, and are removed if run on Unix systems.
You never know what editor a user will use to browse README's.</p>
<hr>
-<p align="center">Copyright © 2000-2003 Apache Software Foundation. All
rights
+<p align="center">Copyright © 2000-2004 Apache Software Foundation. All
rights
Reserved.</p>
</body>
</html>
-
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]