classpath-patches
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[cp-patches] FYI: gnu/regexp/RETokenChar.java fixed


From: Ito Kazumitsu
Subject: [cp-patches] FYI: gnu/regexp/RETokenChar.java fixed
Date: Wed, 18 Jan 2006 00:07:05 +0900 (JST)

I am checking this in.

2006-01-17  Ito Kazumitsu  <address@hidden>

        Fixes bug #25817
        * gnu/regexp/RETokenRange.java(constructor):
        Keep lo and hi as they are.
        (match): Changed the case insensitive comparison.

Index: classpath/gnu/regexp/RETokenRange.java
===================================================================
RCS file: /cvsroot/classpath/classpath/gnu/regexp/RETokenRange.java,v
retrieving revision 1.2
diff -u -r1.2 RETokenRange.java
--- classpath/gnu/regexp/RETokenRange.java      2 Jul 2005 20:32:15 -0000       
1.2
+++ classpath/gnu/regexp/RETokenRange.java      17 Jan 2006 14:47:44 -0000
@@ -43,8 +43,9 @@
 
   RETokenRange(int subIndex, char lo, char hi, boolean ins) {
     super(subIndex);
-    this.lo = (insens = ins) ? Character.toLowerCase(lo) : lo;
-    this.hi = ins ? Character.toLowerCase(hi) : hi;
+    insens = ins;
+    this.lo = lo;
+    this.hi = hi;
   }
 
   int getMinimumLength() {
@@ -54,8 +55,16 @@
     boolean match(CharIndexed input, REMatch mymatch) {
        char c = input.charAt(mymatch.index);
        if (c == CharIndexed.OUT_OF_BOUNDS) return false;
-       if (insens) c = Character.toLowerCase(c);
-       if ((c >= lo) && (c <= hi)) {
+       boolean matches = (c >= lo) && (c <= hi);
+       if (! matches && insens) {
+         char c1 = Character.toLowerCase(c);
+         matches = (c1 >= lo) && (c1 <= hi);
+         if (!matches) {
+           c1 = Character.toUpperCase(c);
+           matches = (c1 >= lo) && (c1 <= hi);
+         }
+       }
+       if (matches) {
            ++mymatch.index;
            return next(input, mymatch);
        }

reply via email to

[Prev in Thread] Current Thread [Next in Thread]