You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by kr...@apache.org on 2015/04/12 17:29:52 UTC
svn commit: r1673022 - in /maven/plugins/trunk/maven-assembly-plugin/src:
main/java/org/apache/maven/plugin/assembly/utils/LinuxLineFeedInputStream.java
test/java/org/apache/maven/plugin/assembly/utils/LinuxLineFeedInputStreamTest.java
Author: krosenvold
Date: Sun Apr 12 15:29:52 2015
New Revision: 1673022
URL: http://svn.apache.org/r1673022
Log:
[MASSEMBLY-753] Fixed with unit test
Modified:
maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/utils/LinuxLineFeedInputStream.java
maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/utils/LinuxLineFeedInputStreamTest.java
Modified: maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/utils/LinuxLineFeedInputStream.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/utils/LinuxLineFeedInputStream.java?rev=1673022&r1=1673021&r2=1673022&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/utils/LinuxLineFeedInputStream.java (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/utils/LinuxLineFeedInputStream.java Sun Apr 12 15:29:52 2015
@@ -30,6 +30,7 @@ class LinuxLineFeedInputStream
{
private boolean slashNSeen = false;
+ private boolean slashRSeen = false;
private boolean eofSeen = false;
@@ -53,6 +54,7 @@ class LinuxLineFeedInputStream
return target;
}
slashNSeen = target == '\n';
+ slashRSeen = target == '\r';
return target;
}
@@ -60,28 +62,33 @@ class LinuxLineFeedInputStream
public int read()
throws IOException
{
+ boolean prevWasSlashR = slashRSeen;
if ( eofSeen )
{
- return eofGame();
+ return eofGame(prevWasSlashR);
}
else
{
int target = readWithUpdate();
if ( eofSeen )
{
- return eofGame();
+ return eofGame(prevWasSlashR);
}
- if ( target == '\r' )
+ if (slashRSeen)
{
- target = readWithUpdate();
+ return '\n';
+ }
+
+ if ( prevWasSlashR && slashNSeen){ // Lone /r
+ return read();
}
return target;
}
}
- private int eofGame()
+ private int eofGame(boolean previousWasSlashR)
{
- if ( !ensureLineFeedAtEndOfFile )
+ if ( previousWasSlashR || !ensureLineFeedAtEndOfFile )
{
return -1;
}
Modified: maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/utils/LinuxLineFeedInputStreamTest.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/utils/LinuxLineFeedInputStreamTest.java?rev=1673022&r1=1673021&r2=1673022&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/utils/LinuxLineFeedInputStreamTest.java (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/utils/LinuxLineFeedInputStreamTest.java Sun Apr 12 15:29:52 2015
@@ -20,10 +20,13 @@ package org.apache.maven.plugin.assembly
*/
import junit.framework.TestCase;
+import org.junit.Test;
import java.io.ByteArrayInputStream;
import java.io.IOException;
+import static org.junit.Assert.assertEquals;
+
public class LinuxLineFeedInputStreamTest
extends TestCase
{
@@ -40,22 +43,27 @@ public class LinuxLineFeedInputStreamTes
assertEquals( "a\nbc\n", roundtrip( "a\r\nbc" ) );
}
- public void testMultipleBlankLines()
+ public void testCrOnly()
throws Exception
{
- assertEquals( "a\n\nbc\n", roundtrip( "a\r\n\r\nbc" ) );
+ assertEquals( "a\nb\n", roundtrip( "a\rb" ) );
}
- public void testTwoLinesAtEnd()
+ public void testCrAtEnd() throws Exception {
+ assertEquals( "a\n", roundtrip( "a\r" ) );
+ }
+
+
+ public void testMultipleBlankLines()
throws Exception
{
- assertEquals( "a\n\n", roundtrip( "a\r\n\r\n" ) );
+ assertEquals( "a\n\nbc\n", roundtrip( "a\r\n\r\nbc" ) );
}
- public void testMalformed()
+ public void testTwoLinesAtEnd()
throws Exception
{
- assertEquals( "abc", roundtrip( "a\rbc", false ) );
+ assertEquals( "a\n\n", roundtrip( "a\r\n\r\n" ) );
}
public void testRetainLineFeed()