From 9e8c203e30a4a6fba47dd1a4a12ce51aa01a95cd Mon Sep 17 00:00:00 2001
From: Mick Jordan <mick.jordan@oracle.com>
Date: Wed, 1 Apr 2015 13:43:24 -0700
Subject: [PATCH] set R_HOME correctly when cd'ed in subdir

---
 .../src/com/oracle/truffle/r/runtime/REnvVars.java    | 11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)

diff --git a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/REnvVars.java b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/REnvVars.java
index a90120dbf7..2ea960149f 100644
--- a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/REnvVars.java
+++ b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/REnvVars.java
@@ -125,9 +125,14 @@ public class REnvVars {
         // This can be called before initialize, "R RHOME"
         if (rHomePath == null) {
             File file = new File(System.getProperty("user.dir"));
-            if (file.getName().endsWith("r.test")) {
-                file = file.getParentFile();
-            }
+            do {
+                File binR = new File(new File(file, "bin"), "R");
+                if (binR.exists()) {
+                    break;
+                } else {
+                    file = file.getParentFile();
+                }
+            } while (file != null);
             rHomePath = file.getAbsolutePath();
             // Check any external setting is consistent
             String envRHomePath = getEnvVars().get("R_HOME");
-- 
GitLab