Hello,

I have (setq ess-ask-for-ess-directory nil) in my .emacs.  I.e., I don't
want to be asked to set my working directory.  As it stands, if we
run an R code block with the :session argument and no :dir argument,
ess-ask-for-ess-directory gets set to t.  I would prefer if I had
it previously set to nil, to do what ESS usually does to decide
which directory to use.

The following patch should do that, and below is some test code to
make sure it works in each of the 4 cases.

---
 lisp/ob-R.el |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/lisp/ob-R.el b/lisp/ob-R.el
index 2a11421..e767449 100644
--- a/lisp/ob-R.el
+++ b/lisp/ob-R.el
@@ -155,7 +155,8 @@ This function is called by `org-babel-execute-src-block'."
   "If there is not a current R process then create one."
   (unless (string= session "none")
     (let ((session (or session "*R*"))
-         (ess-ask-for-ess-directory (not (cdr (assoc :dir params)))))
+         (ess-ask-for-ess-directory
+          (and ess-ask-for-ess-directory (not (cdr (assoc :dir params))))))
       (if (org-babel-comint-buffer-livep session)
          session
        (save-window-excursion
--
1.7.0.4


;; test code below

(setq ess-ask-for-ess-directory t)

#+begin_src R :session

2 + 2

#+end_src

#+begin_src R :session :dir /tmp

2 + 2

#+end_src


(setq ess-ask-for-ess-directory nil)

#+begin_src R :session

2 + 2

#+end_src

#+begin_src R :session :dir /tmp

2 + 2

#+end_src

_______________________________________________
Emacs-orgmode mailing list
Please use `Reply All' to send replies to the list.
Emacs-orgmode@gnu.org
http://lists.gnu.org/mailman/listinfo/emacs-orgmode

Reply via email to