From 6757224cf64140908617f058f7616700dc047173 Mon Sep 17 00:00:00 2001 From: Lukas Stadler <lukas.stadler@oracle.com> Date: Thu, 21 Dec 2017 09:24:31 +0100 Subject: [PATCH] don't skip arguments in RScriptCommand --- .../truffle/r/launcher/RscriptCommand.java | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/com.oracle.truffle.r.launcher/src/com/oracle/truffle/r/launcher/RscriptCommand.java b/com.oracle.truffle.r.launcher/src/com/oracle/truffle/r/launcher/RscriptCommand.java index 6710cdd0e7..9fffb1b9ef 100644 --- a/com.oracle.truffle.r.launcher/src/com/oracle/truffle/r/launcher/RscriptCommand.java +++ b/com.oracle.truffle.r.launcher/src/com/oracle/truffle/r/launcher/RscriptCommand.java @@ -27,6 +27,7 @@ import java.io.OutputStream; import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; +import java.util.Iterator; import java.util.Map; import org.graalvm.options.OptionCategory; @@ -116,13 +117,17 @@ public class RscriptCommand { }; boolean useJVM = false; Map<String, String> polyglotOptions = new HashMap<>(); - for (int i = 1; i < argsList.size(); i++) { - String arg = argsList.get(i); - if ("--jvm".equals(arg)) { - useJVM = true; - argsList.remove(i); - } else if (launcher.parsePolyglotOption("R", polyglotOptions, arg)) { - argsList.remove(i); + Iterator<String> iterator = argsList.iterator(); + if (iterator.hasNext()) { + iterator.next(); // skip first argument + while (iterator.hasNext()) { + String arg = iterator.next(); + if ("--jvm".equals(arg)) { + useJVM = true; + iterator.remove(); + } else if (launcher.parsePolyglotOption("R", polyglotOptions, arg)) { + iterator.remove(); + } } } if (launcher.runPolyglotAction()) { -- GitLab