diff options
-rw-r--r-- | org.eclipse.jface.text/src/org/eclipse/jface/text/rules/PatternRule.java | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/org.eclipse.jface.text/src/org/eclipse/jface/text/rules/PatternRule.java b/org.eclipse.jface.text/src/org/eclipse/jface/text/rules/PatternRule.java index 8fcdd60c5cb..2cb7e73d2e5 100644 --- a/org.eclipse.jface.text/src/org/eclipse/jface/text/rules/PatternRule.java +++ b/org.eclipse.jface.text/src/org/eclipse/jface/text/rules/PatternRule.java @@ -42,7 +42,7 @@ public class PatternRule implements IPredicateRule { } } - /** Internal setting for the uninitialized column constraint */ + /** Internal setting for the un-initialized column constraint */ protected static final int UNDEFINED= -1; /** The token to be returned on success */ @@ -66,7 +66,7 @@ public class PatternRule implements IPredicateRule { protected boolean fBreaksOnEOF; /** - * Line delimiter comparator, orders in decreasing delimiter lengths. + * Line delimiter comparator which orders according to decreasing delimiter length. * @since 3.1 */ private Comparator fLineDelimiterComparator= new DecreasingCharArrayLengthComparator(); @@ -211,9 +211,12 @@ public class PatternRule implements IPredicateRule { * @return <code>true</code> if the end sequence has been detected */ protected boolean endSequenceDetected(ICharacterScanner scanner) { - int c; - char[][] delimiters= scanner.getLegalLineDelimiters(); + char[][] originalDelimiters= scanner.getLegalLineDelimiters(); + char[][] delimiters= new char[originalDelimiters.length][]; + System.arraycopy(originalDelimiters, 0, delimiters, 0, originalDelimiters.length); Arrays.sort(delimiters, fLineDelimiterComparator); + + int c; while ((c= scanner.read()) != ICharacterScanner.EOF) { if (c == fEscapeCharacter) { // Skip escaped character(s) |