diff options
author | gandalf <gandalf@138bc75d-0d04-0410-961f-82ee72b054a4> | 2012-03-23 15:19:26 +0000 |
---|---|---|
committer | gandalf <gandalf@138bc75d-0d04-0410-961f-82ee72b054a4> | 2012-03-23 15:19:26 +0000 |
commit | 5c7411981584e487ac41794feb98a66df9fd6fcb (patch) | |
tree | febe3d4d4c0c994db223fee8e819bde6582494c9 /libjava/classpath/java/util/regex/Matcher.java | |
parent | 112dfe9f689af01c2dd00e0f153fc25d69095b6c (diff) | |
download | ppe42-gcc-5c7411981584e487ac41794feb98a66df9fd6fcb.tar.gz ppe42-gcc-5c7411981584e487ac41794feb98a66df9fd6fcb.zip |
Merge GNU Classpath 0.99 into libjava.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@185741 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libjava/classpath/java/util/regex/Matcher.java')
-rw-r--r-- | libjava/classpath/java/util/regex/Matcher.java | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/libjava/classpath/java/util/regex/Matcher.java b/libjava/classpath/java/util/regex/Matcher.java index be57471de61..8d033d5e316 100644 --- a/libjava/classpath/java/util/regex/Matcher.java +++ b/libjava/classpath/java/util/regex/Matcher.java @@ -169,6 +169,12 @@ public final class Matcher implements MatchResult if (match != null) { int endIndex = match.getEndIndex(); + // Is the match within input limits? + if (endIndex > input.length()) + { + match = null; + return false; + } // Are we stuck at the same position? if (!first && endIndex == position) { @@ -608,4 +614,27 @@ public final class Matcher implements MatchResult return snapshot; } + /** + * Returns a literalized string of s where characters {@code $} and {@code + * \\} are escaped. + * + * @param s the string to literalize. + * @return the literalized string. + * @since 1.5 + */ + public static String quoteReplacement(String s) + { + if (s == null) + throw new NullPointerException(); + CPStringBuilder sb = new CPStringBuilder(); + for (int i = 0; i < s.length(); i++) + { + char ch = s.charAt(i); + if (ch == '$' || ch == '\\') + sb.append('\\'); + sb.append(ch); + } + return sb.toString(); + } + } |