Reorganising R evaluation code.
With this change we avoid messing about extracting the output from the comint buffer in the :results value case (the value has already been written to file).
This commit is contained in:
parent
162b522728
commit
2b66de1c1b
|
@ -122,26 +122,26 @@ last statement in BODY, as elisp."
|
|||
(full-body (mapconcat #'org-babel-chomp
|
||||
(list body last-value-eval org-babel-R-eoe-indicator) "\n"))
|
||||
(raw (org-babel-comint-with-output buffer org-babel-R-eoe-output nil
|
||||
(insert full-body) (inferior-ess-send-input)))
|
||||
(results
|
||||
(let ((broke nil))
|
||||
(delete
|
||||
nil
|
||||
(mapcar (lambda (el)
|
||||
(if (or broke
|
||||
(and (string-match (regexp-quote org-babel-R-eoe-output)
|
||||
el) (setq broke t)))
|
||||
nil
|
||||
(if (= (length el) 0)
|
||||
nil
|
||||
(if (string-match comint-prompt-regexp el)
|
||||
(substring el (match-end 0))
|
||||
el))))
|
||||
(mapcar #'org-babel-trim raw))))))
|
||||
(insert full-body) (inferior-ess-send-input))) broke results)
|
||||
(case result-type
|
||||
(output (org-babel-chomp (mapconcat #'identity results "\n")))
|
||||
(value (org-babel-R-process-value-result
|
||||
(org-babel-import-elisp-from-file tmp-file) column-names-p)))))))
|
||||
(org-babel-import-elisp-from-file tmp-file) column-names-p))
|
||||
(output
|
||||
(setq broke nil results
|
||||
(delete
|
||||
nil
|
||||
(mapcar (lambda (el)
|
||||
(if (or broke
|
||||
(and (string-match (regexp-quote org-babel-R-eoe-output) el)
|
||||
(setq broke t)))
|
||||
nil
|
||||
(if (= (length el) 0)
|
||||
nil
|
||||
(if (string-match comint-prompt-regexp el)
|
||||
(substring el (match-end 0))
|
||||
el))))
|
||||
(mapcar #'org-babel-chomp raw))))
|
||||
(mapconcat #'identity results "\n")))))))
|
||||
|
||||
(defun org-babel-R-process-value-result (result column-names-p)
|
||||
"R-specific processing of return value prior to return to org-babel.
|
||||
|
|
Loading…
Reference in New Issue