From 23eaad3781e2a1fcdde6ff1f0a1b48658533ea81 Mon Sep 17 00:00:00 2001 From: Tomas Stupka <tomas.stupka@oracle.com> Date: Thu, 15 Dec 2016 18:49:38 +0100 Subject: [PATCH] fixed perl spliting of multibytes in strsplit --- .../oracle/truffle/r/nodes/builtin/base/GrepFunctions.java | 4 ++-- .../oracle/truffle/r/test/builtins/TestBuiltin_strsplit.java | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) 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 f873109da0..e4eabf251c 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 f508fdd27b..3a060acb8d 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)"); } } -- GitLab