Author: jbonofre
Date: Tue Jan 22 16:25:39 2019
New Revision: 1851830

URL: http://svn.apache.org/viewvc?rev=1851830&view=rev
Log:
[FELIX-6033] This closes #166

Modified:
    felix/trunk/gogo/jline/src/main/java/org/apache/felix/gogo/jline/Posix.java
    
felix/trunk/gogo/jline/src/test/java/org/apache/felix/gogo/jline/PosixTest.java

Modified: 
felix/trunk/gogo/jline/src/main/java/org/apache/felix/gogo/jline/Posix.java
URL: 
http://svn.apache.org/viewvc/felix/trunk/gogo/jline/src/main/java/org/apache/felix/gogo/jline/Posix.java?rev=1851830&r1=1851829&r2=1851830&view=diff
==============================================================================
--- felix/trunk/gogo/jline/src/main/java/org/apache/felix/gogo/jline/Posix.java 
(original)
+++ felix/trunk/gogo/jline/src/main/java/org/apache/felix/gogo/jline/Posix.java 
Tue Jan 22 16:25:39 2019
@@ -390,9 +390,6 @@ public class Posix {
         boolean displayWords = opt.isSet("words");
         boolean displayChars = opt.isSet("chars");
         boolean displayBytes = opt.isSet("bytes");
-        if (displayChars) {
-            displayBytes = false;
-        }
         if (!displayLines && !displayWords && !displayChars && !displayBytes) {
             displayLines = true;
             displayWords = true;
@@ -400,18 +397,36 @@ public class Posix {
         }
         String format = "";
         if (displayLines) {
-            format += "%1$8d";
+            if (!displayBytes && !displayChars && !displayWords) {
+                format = "%1$d";
+            } else {
+                format += "%1$8d";
+            }
         }
         if (displayWords) {
-            format += "%2$8d";
+            if (!displayLines && !displayBytes && !displayChars) {
+                format = "%2$d";
+            } else {
+                format += "%2$8d";
+            }
         }
         if (displayChars) {
-            format += "%3$8d";
+            if (!displayLines && !displayBytes && !displayWords) {
+                format = "%3$d";
+            } else {
+                format += "%3$8d";
+            }
         }
         if (displayBytes) {
-            format += "%4$8d";
+            if (!displayLines && !displayChars && !displayWords) {
+                format = "%4$d";
+            } else {
+                format += "%4$8d";
+            }
+        }
+        if (sources.size() > 1 || (sources.size() == 1 && 
sources.get(0).getName() != null)) {
+            format += "  %5$8s";
         }
-        format += "  %5s";
         int totalLines = 0;
         int totalBytes = 0;
         int totalChars = 0;

Modified: 
felix/trunk/gogo/jline/src/test/java/org/apache/felix/gogo/jline/PosixTest.java
URL: 
http://svn.apache.org/viewvc/felix/trunk/gogo/jline/src/test/java/org/apache/felix/gogo/jline/PosixTest.java?rev=1851830&r1=1851829&r2=1851830&view=diff
==============================================================================
--- 
felix/trunk/gogo/jline/src/test/java/org/apache/felix/gogo/jline/PosixTest.java 
(original)
+++ 
felix/trunk/gogo/jline/src/test/java/org/apache/felix/gogo/jline/PosixTest.java 
Tue Jan 22 16:25:39 2019
@@ -43,19 +43,62 @@ public class PosixTest extends AbstractP
     @Test
     public void testLsDotDot() throws Exception {
         Context context = new Context();
-        context.addCommand("ls",  new Posix(context));
+        context.addCommand("ls", new Posix(context));
         context.addCommand("tac", this);
-        
+
         String current = (String) context.execute("ls -1 --color=never . | 
tac");
-        assertTrue(current.indexOf("..") >=0);                 
-        assertTrue(current.indexOf(".") >=0);                  
-                       
+        assertTrue(current.indexOf("..") >= 0);
+        assertTrue(current.indexOf(".") >= 0);
+
         String parent = (String) context.execute("ls -1 --color=never .. | 
tac");
-        assertTrue(parent.indexOf("..") >=0);                  
-        assertTrue(parent.indexOf(".") >=0);
-        
+        assertTrue(parent.indexOf("..") >= 0);
+        assertTrue(parent.indexOf(".") >= 0);
+
         assertNotEquals(current, parent);
+    }
+
+    @Test
+    public void testWcLines() throws Exception {
+        Context context = new Context();
+        context.addCommand("echo", new Posix(context));
+        context.addCommand("wc", new Posix(context));
+        context.addCommand("tac", this);
+
+        Object res = context.execute("echo \"test\" | wc -l | tac");
+        assertEquals("1", res);
+    }
+
+    @Test
+    public void testWcBytes() throws Exception {
+        Context context = new Context();
+        context.addCommand("echo", new Posix(context));
+        context.addCommand("wc", new Posix(context));
+        context.addCommand("tac", this);
+
+        Object res = context.execute("echo \"test\" | wc -c | tac");
+        assertEquals("5", res);
+    }
+
+    @Test
+    public void testWcLinesBytes() throws Exception {
+        Context context = new Context();
+        context.addCommand("echo", new Posix(context));
+        context.addCommand("wc", new Posix(context));
+        context.addCommand("tac", this);
+
+        Object res = context.execute("echo \"test\" | wc -l -c | tac");
+        assertEquals("       1       5", res);
+    }
+
+    @Test
+    public void testWcLinesBytesChar() throws Exception {
+        Context context = new Context();
+        context.addCommand("echo", new Posix(context));
+        context.addCommand("wc", new Posix(context));
+        context.addCommand("tac", this);
 
+        Object res = context.execute("echo \"test\" | wc -l -c -m | tac");
+        assertEquals("       1       5       5", res);
     }
 
     public String tac() throws IOException {


Reply via email to