diff options
author | Aaron Ecay <aaronecay@gmail.com> | 2013-04-01 01:42:15 -0400 |
---|---|---|
committer | Eric Schulte <schulte.eric@gmail.com> | 2013-04-03 09:17:06 -0600 |
commit | fe98647f14064b49d0cbed57e90681ced8f9f34e (patch) | |
tree | 1ec085342c58205049f1e587c013cf4a9b9a36f2 | |
parent | 2f39a704cfc56083ad1568fae9f3a5352145629e (diff) | |
download | org-mode-fe98647f14064b49d0cbed57e90681ced8f9f34e.tar.gz |
Fix org-babel-R-initiate-session
* lisp/ob-R.el (org-babel-R-initiate-session): handle case where the
session buffer exists, but does not have a live process
If the session buffer exists, but the user has exited the R process
manually, then the (R) command will create a new buffer, then try to
rename it over the old buffer, causing an error. The right thing to do
is to start R within the existing buffer.
-rw-r--r-- | lisp/ob-R.el | 20 |
1 files changed, 12 insertions, 8 deletions
diff --git a/lisp/ob-R.el b/lisp/ob-R.el index 9875f81..de9ec5b 100644 --- a/lisp/ob-R.el +++ b/lisp/ob-R.el @@ -209,14 +209,18 @@ This function is called by `org-babel-execute-src-block'." (if (org-babel-comint-buffer-livep session) session (save-window-excursion - (require 'ess) (R) - (rename-buffer - (if (bufferp session) - (buffer-name session) - (if (stringp session) - session - (buffer-name)))) - (current-buffer)))))) + (save-excursion + (when (get-buffer session) + ;; Session buffer exists, but with dead process + (set-buffer session)) + (require 'ess) (R) + (rename-buffer + (if (bufferp session) + (buffer-name session) + (if (stringp session) + session + (buffer-name)))) + (current-buffer))))))) (defun org-babel-R-associate-session (session) "Associate R code buffer with an R session. |