OSDN Git Service

Merged gcj-eclipse branch to trunk.
[pf3gnuchains/gcc-fork.git] / libjava / classpath / gnu / java / util / regex / RETokenChar.java
index 92d3efc..b70e6b1 100644 (file)
@@ -58,15 +58,20 @@ final class RETokenChar extends REToken {
   }
   
     REMatch matchThis(CharIndexed input, REMatch mymatch) {
-       int z = ch.length;
        if (matchOneString(input, mymatch.index)) {
-           mymatch.index += z;
+           mymatch.index += matchedLength;
            return mymatch;
        }
+       // java.util.regex.Matcher#hitEnd() requires that the length of
+       // partial match be counted.
+       mymatch.index += matchedLength;
+       input.setHitEnd(mymatch);
        return null;
     }
 
-    boolean matchOneString(CharIndexed input, int index) {
+    private int matchedLength;
+    private boolean matchOneString(CharIndexed input, int index) {
+        matchedLength = 0;
        int z = ch.length;
        char c;
        for (int i=0; i<z; i++) {
@@ -74,6 +79,7 @@ final class RETokenChar extends REToken {
            if (! charEquals(c, ch[i])) {
                return false;
            }
+           ++matchedLength;
        }
        return true;
     }