You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@felix.apache.org by cc...@apache.org on 2009/10/25 00:26:16 UTC

svn commit: r829458 - /felix/trunk/karaf/shell/commands/src/main/java/org/apache/felix/karaf/shell/commands/GrepAction.java

Author: ccustine
Date: Sat Oct 24 22:26:15 2009
New Revision: 829458

URL: http://svn.apache.org/viewvc?rev=829458&view=rev
Log:
FELIX-1801 - Case insensitive grep outputs all uppercase in match results

Modified:
    felix/trunk/karaf/shell/commands/src/main/java/org/apache/felix/karaf/shell/commands/GrepAction.java

Modified: felix/trunk/karaf/shell/commands/src/main/java/org/apache/felix/karaf/shell/commands/GrepAction.java
URL: http://svn.apache.org/viewvc/felix/trunk/karaf/shell/commands/src/main/java/org/apache/felix/karaf/shell/commands/GrepAction.java?rev=829458&r1=829457&r2=829458&view=diff
==============================================================================
--- felix/trunk/karaf/shell/commands/src/main/java/org/apache/felix/karaf/shell/commands/GrepAction.java (original)
+++ felix/trunk/karaf/shell/commands/src/main/java/org/apache/felix/karaf/shell/commands/GrepAction.java Sat Oct 24 22:26:15 2009
@@ -100,11 +100,15 @@
         } else {
             regexp = ".*" + regexp + ".*";
         }
+        Pattern p;
+        Pattern p2;
         if (ignoreCase) {
-            regexp = regexp.toUpperCase();
+            p = Pattern.compile(regexp, Pattern.CASE_INSENSITIVE);
+            p2 = Pattern.compile(regex, Pattern.CASE_INSENSITIVE);
+        } else {
+            p = Pattern.compile(regexp);
+            p2 = Pattern.compile(regex);
         }
-        Pattern p = Pattern.compile(regexp);
-        Pattern p2 = Pattern.compile(regex);
         try {
             boolean firstPrint = true;
             int nb = 0;
@@ -113,14 +117,13 @@
             int lineMatch = 0;
             Reader r = new InputStreamReader(System.in);
             while ((line = readLine(r)) != null) {
-                String pattern = ignoreCase ? line.toUpperCase() : line;
-                if (p.matcher(pattern).matches() ^ invertMatch) {
+                if (p.matcher(line).matches() ^ invertMatch) {
 
                     if (!count && lineNumber) {
                         System.out.print(String.format("%6d  ", lineno++));
                     }
 
-                    Matcher matcher2 = p2.matcher(pattern);
+                    Matcher matcher2 = p2.matcher(line);
                     StringBuffer sb = new StringBuffer();
                     while (matcher2.find()) {
                         if (!invertMatch && color != ColorOption.never) {