You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xerces.apache.org by kn...@apache.org on 2010/02/11 21:31:12 UTC
svn commit: r909133 -
/xerces/java/trunk/src/org/apache/xerces/impl/xpath/regex/RegularExpression.java
Author: knoaman
Date: Thu Feb 11 20:31:12 2010
New Revision: 909133
URL: http://svn.apache.org/viewvc?rev=909133&view=rev
Log:
Fix problem in Regex, in normal mode with multi-line option, when last character is a new line and we are matching a '^'. The match should fail.
Modified:
xerces/java/trunk/src/org/apache/xerces/impl/xpath/regex/RegularExpression.java
Modified: xerces/java/trunk/src/org/apache/xerces/impl/xpath/regex/RegularExpression.java
URL: http://svn.apache.org/viewvc/xerces/java/trunk/src/org/apache/xerces/impl/xpath/regex/RegularExpression.java?rev=909133&r1=909132&r2=909133&view=diff
==============================================================================
--- xerces/java/trunk/src/org/apache/xerces/impl/xpath/regex/RegularExpression.java (original)
+++ xerces/java/trunk/src/org/apache/xerces/impl/xpath/regex/RegularExpression.java Thu Feb 11 20:31:12 2010
@@ -959,7 +959,7 @@
case '^':
if (isSet(opts, MULTIPLE_LINES)) {
if (!(offset == con.start
- || offset > con.start && isEOLChar( target [ offset-1 ] )))
+ || offset > con.start && offset < con.limit && isEOLChar( target [ offset-1 ] )))
return -1;
} else {
if (offset != con.start)
@@ -1532,14 +1532,8 @@
*/
private int matchString (Context con, Op op, int offset, int dx, int opts) {
-
-
-
String target = con.strTarget;
-
-
-
while (true) {
if (op == null)
return isSet(opts, XMLSCHEMA_MODE) && offset != con.limit ? -1 : offset;
@@ -1646,7 +1640,7 @@
case '^':
if (isSet(opts, MULTIPLE_LINES)) {
if (!(offset == con.start
- || offset > con.start && isEOLChar( target .charAt( offset-1 ) )))
+ || offset > con.start && offset < con.limit && isEOLChar( target .charAt( offset-1 ) )))
return -1;
} else {
if (offset != con.start)
@@ -2258,7 +2252,7 @@
case '^':
if (isSet(opts, MULTIPLE_LINES)) {
if (!(offset == con.start
- || offset > con.start && isEOLChar( target .setIndex( offset-1 ) )))
+ || offset > con.start && offset < con.limit && isEOLChar( target .setIndex( offset-1 ) )))
return -1;
} else {
if (offset != con.start)
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@xerces.apache.org
For additional commands, e-mail: commits-help@xerces.apache.org