vgritsenko 2004/01/30 06:47:04 Modified: src/java/org/apache/regexp RE.java RETest.java Log: Patch for OP_ANY in MULTILINE mode (bug #4137). Thanks to Hendrik Brummermann Revision Changes Path 1.16 +5 -6 jakarta-regexp/src/java/org/apache/regexp/RE.java Index: RE.java =================================================================== RCS file: /home/cvs/jakarta-regexp/src/java/org/apache/regexp/RE.java,v retrieving revision 1.15 retrieving revision 1.16 diff -u -r1.15 -r1.16 --- RE.java 30 Jan 2004 14:36:21 -0000 1.15 +++ RE.java 30 Jan 2004 14:47:04 -0000 1.16 @@ -1069,7 +1069,7 @@ if ((matchFlags & MATCH_MULTILINE) == MATCH_MULTILINE) { // Give up if we're not at the end of a line - if (! isNewline(idx)) { + if (!isNewline(idx)) { return -1; } else { break; @@ -1156,18 +1156,17 @@ { return -1; } - idx++; - break; } else { // Match anything but a newline - if (search.isEnd(idx) || search.charAt(idx++) == '\n') + if (search.isEnd(idx) || isNewline(idx)) { return -1; } - break; } + idx++; + break; case OP_ATOM: { 1.10 +22 -1 jakarta-regexp/src/java/org/apache/regexp/RETest.java Index: RETest.java =================================================================== RCS file: /home/cvs/jakarta-regexp/src/java/org/apache/regexp/RETest.java,v retrieving revision 1.9 retrieving revision 1.10 diff -u -r1.9 -r1.10 --- RETest.java 30 Jan 2004 14:36:21 -0000 1.9 +++ RETest.java 30 Jan 2004 14:47:04 -0000 1.10 @@ -432,6 +432,27 @@ if (!r.match("\u2029abc")) { fail("\"\\u2029abc\" doesn't match \"^abc$\""); } + + // Test MATCH_MULTILINE. Test that '.' does not mathces new line. + r = new RE("^a.*b$", RE.MATCH_MULTILINE); + if (r.match("a\nb")) { + fail("\"a\\nb\" matches \"^a.*b$\""); + } + if (r.match("a\rb")) { + fail("\"a\\rb\" matches \"^a.*b$\""); + } + if (r.match("a\r\nb")) { + fail("\"a\\r\\nb\" matches \"^a.*b$\""); + } + if (r.match("a\u0085b")) { + fail("\"a\\u0085b\" matches \"^a.*b$\""); + } + if (r.match("a\u2028b")) { + fail("\"a\\u2028b\" matches \"^a.*b$\""); + } + if (r.match("a\u2029b")) { + fail("\"a\\u2029b\" matches \"^a.*b$\""); + } } private void testPrecompiledRE()
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]