Function: org-babel-R-initiate-session

org-babel-R-initiate-session is a byte-compiled function defined in ob-R.el.gz.

Signature

(org-babel-R-initiate-session SESSION PARAMS)

Documentation

Create or return the current R SESSION buffer.

Use PARAMS to set default directory when creating a new session.

Source Code

;; Defined in /usr/src/emacs/lisp/org/ob-R.el.gz
(defvar ess-gen-proc-buffer-name-function) ; defined in ess-inf.el
(defun org-babel-R-initiate-session (session params)
  "Create or return the current R SESSION buffer.
Use PARAMS to set default directory when creating a new session."
  (unless (string= session "none")
    (let* ((session (or session "*R*"))
	   (ess-ask-for-ess-directory
	    (and (boundp 'ess-ask-for-ess-directory)
		 ess-ask-for-ess-directory
		 (not (cdr (assq :dir params)))))
           ;; Make ESS name the process buffer as SESSION.
           (ess-gen-proc-buffer-name-function
            (lambda (_) session)))
      (if (org-babel-comint-buffer-livep session)
	  session
	(save-window-excursion
	  (when (get-buffer session)
	    ;; Session buffer exists, but with dead process
	    (set-buffer session))
          (org-require-package 'ess-r-mode "ESS")
          (set-buffer (run-ess-r))
	  (let ((R-proc (get-process (or ess-local-process-name
					 ess-current-process-name))))
	    (while (process-get R-proc 'callbacks)
	      (ess-wait-for-process R-proc)))
	  (current-buffer))))))