diff --git a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/GrepFunctions.java b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/GrepFunctions.java index f873109da07b8215fc2cbf199541c0ec6dd8e2df..e4eabf251c08f14a3b4c68cae04097fbc6f3fcd1 100644 --- a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/GrepFunctions.java +++ b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/GrepFunctions.java @@ -1267,8 +1267,8 @@ public class GrepFunctions { lastEndIndex = endIndex; matches.add(match); } - if (lastEndOffset < data.length()) { - matches.add(data.substring(lastEndOffset)); + if (lastEndIndex < data.length()) { + matches.add(data.substring(lastEndIndex)); } String[] result = new String[matches.size()]; matches.toArray(result); diff --git a/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/builtins/TestBuiltin_strsplit.java b/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/builtins/TestBuiltin_strsplit.java index f508fdd27b6c4a938a5a8cf3c2c6e43f67cff2e3..3a060acb8ddaf346b119d28ca8af4104351bf311 100644 --- a/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/builtins/TestBuiltin_strsplit.java +++ b/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/builtins/TestBuiltin_strsplit.java @@ -121,5 +121,6 @@ public class TestBuiltin_strsplit extends TestBase { assertEval("strsplit('foo bar baz', '[f z]', perl=TRUE)"); assertEval("strsplit('oo bar baz', '[f z]', perl=TRUE)"); assertEval("strsplit('foo \u1010ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄbar baz ', '[f z]', perl=TRUE)"); + assertEval("strsplit('Ä Ä', '[ ]', perl=TRUE)"); } }