From fe93daa72a19dc62e4f9ef948ba430dfa667dcaf Mon Sep 17 00:00:00 2001 From: Eric Schulte Date: Sat, 6 Apr 2013 10:58:10 -0600 Subject: [PATCH] use org-babel-result-cond in JavaScript code blocks * lisp/ob-js.el (org-babel-execute:js): Use org-babel-result-cond in JavaScript code blocks. --- lisp/ob-js.el | 50 ++++++++++++++++++++++++++------------------------ 1 file changed, 26 insertions(+), 24 deletions(-) diff --git a/lisp/ob-js.el b/lisp/ob-js.el index 8cae35b3e..78914bc2c 100644 --- a/lisp/ob-js.el +++ b/lisp/ob-js.el @@ -65,30 +65,32 @@ This function is called by `org-babel-execute-src-block'" (let* ((org-babel-js-cmd (or (cdr (assoc :cmd params)) org-babel-js-cmd)) (result-type (cdr (assoc :result-type params))) (full-body (org-babel-expand-body:generic - body params (org-babel-variable-assignments:js params)))) - (org-babel-js-read - (if (not (string= (cdr (assoc :session params)) "none")) - ;; session evaluation - (let ((session (org-babel-prep-session:js - (cdr (assoc :session params)) params))) - (nth 1 - (org-babel-comint-with-output - (session (format "%S" org-babel-js-eoe) t body) - (mapc - (lambda (line) - (insert (org-babel-chomp line)) (comint-send-input nil t)) - (list body (format "%S" org-babel-js-eoe)))))) - ;; external evaluation - (let ((script-file (org-babel-temp-file "js-script-"))) - (with-temp-file script-file - (insert - ;; return the value or the output - (if (string= result-type "value") - (format org-babel-js-function-wrapper full-body) - full-body))) - (org-babel-eval - (format "%s %s" org-babel-js-cmd - (org-babel-process-file-name script-file)) "")))))) + body params (org-babel-variable-assignments:js params))) + (result (if (not (string= (cdr (assoc :session params)) "none")) + ;; session evaluation + (let ((session (org-babel-prep-session:js + (cdr (assoc :session params)) params))) + (nth 1 + (org-babel-comint-with-output + (session (format "%S" org-babel-js-eoe) t body) + (mapc + (lambda (line) + (insert (org-babel-chomp line)) + (comint-send-input nil t)) + (list body (format "%S" org-babel-js-eoe)))))) + ;; external evaluation + (let ((script-file (org-babel-temp-file "js-script-"))) + (with-temp-file script-file + (insert + ;; return the value or the output + (if (string= result-type "value") + (format org-babel-js-function-wrapper full-body) + full-body))) + (org-babel-eval + (format "%s %s" org-babel-js-cmd + (org-babel-process-file-name script-file)) ""))))) + (org-babel-result-cond (cdr (assoc :result-params params)) + result (org-babel-js-read result)))) (defun org-babel-js-read (results) "Convert RESULTS into an appropriate elisp value.