FELIX-2025 - grep -v doesn't filter linefeed on Windows


git-svn-id: https://svn.apache.org/repos/asf/felix/trunk@904967 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/karaf/shell/commands/src/main/java/org/apache/felix/karaf/shell/commands/GrepAction.java b/karaf/shell/commands/src/main/java/org/apache/felix/karaf/shell/commands/GrepAction.java
index d527872..4d26cef 100644
--- a/karaf/shell/commands/src/main/java/org/apache/felix/karaf/shell/commands/GrepAction.java
+++ b/karaf/shell/commands/src/main/java/org/apache/felix/karaf/shell/commands/GrepAction.java
@@ -18,12 +18,11 @@
  */
 package org.apache.felix.karaf.shell.commands;
 
+import java.io.BufferedReader;
 import java.io.IOException;
-import java.io.Reader;
 import java.io.InputStreamReader;
 import java.util.ArrayList;
 import java.util.List;
-import java.util.Queue;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
@@ -115,8 +114,11 @@
             int lineno = 1;
             String line;
             int lineMatch = 0;
-            Reader r = new InputStreamReader(System.in);
-            while ((line = readLine(r)) != null) {
+            BufferedReader r = new BufferedReader(new InputStreamReader(System.in));
+            while ((line = r.readLine()) != null) {
+                if (line.length() == 1 && line.charAt(0) == '\n') {
+                    break;
+                }
                 if (p.matcher(line).matches() ^ invertMatch) {
 
                     Matcher matcher2 = p2.matcher(line);
@@ -182,18 +184,4 @@
         return null;
     }
 
-    private String readLine(Reader in) throws IOException {
-        StringBuffer buf = new StringBuffer();
-        while (true) {
-            int i = in.read();
-            if (i == -1 && buf.length() == 0) {
-                return null;
-            }
-            if (i == -1 || i == '\n' || i == '\r') {
-                return buf.toString();
-            }
-            buf.append((char) i);
-        }
-    }
-
 }