From f5edd846055392fbd84f4db342d07b8eadeeaa40 Mon Sep 17 00:00:00 2001
From: Florian Angerer <florian.angerer@oracle.com>
Date: Wed, 15 Nov 2017 19:07:10 +0100
Subject: [PATCH] Adjusted prompt in DefaultConsoleHandler for non-interactive
 mode.

---
 .../truffle/r/launcher/DefaultConsoleHandler.java      | 10 ++++++++--
 .../src/com/oracle/truffle/r/launcher/RCommand.java    |  2 +-
 2 files changed, 9 insertions(+), 3 deletions(-)

diff --git a/com.oracle.truffle.r.launcher/src/com/oracle/truffle/r/launcher/DefaultConsoleHandler.java b/com.oracle.truffle.r.launcher/src/com/oracle/truffle/r/launcher/DefaultConsoleHandler.java
index f5f1e0cd9b..a395a0e613 100644
--- a/com.oracle.truffle.r.launcher/src/com/oracle/truffle/r/launcher/DefaultConsoleHandler.java
+++ b/com.oracle.truffle.r.launcher/src/com/oracle/truffle/r/launcher/DefaultConsoleHandler.java
@@ -31,13 +31,15 @@ import java.io.PrintStream;
 
 public class DefaultConsoleHandler extends ConsoleHandler {
 
+    private final boolean interactive;
     private final BufferedReader in;
     private final PrintStream out;
     private String prompt;
 
-    public DefaultConsoleHandler(InputStream in, OutputStream out) {
+    public DefaultConsoleHandler(InputStream in, OutputStream out, boolean interactive) {
         this.in = new BufferedReader(new InputStreamReader(in));
         this.out = new PrintStream(out);
+        this.interactive = interactive;
     }
 
     @Override
@@ -46,7 +48,11 @@ public class DefaultConsoleHandler extends ConsoleHandler {
             if (prompt != null) {
                 out.print(prompt);
             }
-            return in.readLine();
+            String line = in.readLine();
+            if ((line == null || "".equals(line.trim())) && prompt != null && !interactive) {
+                out.println();
+            }
+            return line;
         } catch (IOException e) {
             throw new RuntimeException(e);
         }
diff --git a/com.oracle.truffle.r.launcher/src/com/oracle/truffle/r/launcher/RCommand.java b/com.oracle.truffle.r.launcher/src/com/oracle/truffle/r/launcher/RCommand.java
index 0377e5456a..7519a55c5b 100644
--- a/com.oracle.truffle.r.launcher/src/com/oracle/truffle/r/launcher/RCommand.java
+++ b/com.oracle.truffle.r.launcher/src/com/oracle/truffle/r/launcher/RCommand.java
@@ -218,7 +218,7 @@ public class RCommand {
                 if (useReadLine) {
                     return new JLineConsoleHandler(inStream, outStream, rsp.isSlave());
                 } else {
-                    return new DefaultConsoleHandler(inStream, outStream);
+                    return new DefaultConsoleHandler(inStream, outStream, isInteractive);
                 }
             }
         }
-- 
GitLab