diff --git a/contrib/babel/lisp/org-babel-ref.el b/contrib/babel/lisp/org-babel-ref.el index 8177566ef..f7550ac0f 100644 --- a/contrib/babel/lisp/org-babel-ref.el +++ b/contrib/babel/lisp/org-babel-ref.el @@ -59,8 +59,9 @@ names, and the emacs-lisp representation of the related value." (let ((assignments (delq nil (mapcar (lambda (pair) (if (eq (car pair) :var) (cdr pair))) params))) - (other-params (assq-delete-all :var params))) - (mapcar (lambda (assignment) (org-babel-ref-parse assignment other-params)) assignments))) + (others + (delq nil (mapcar (lambda (pair) (unless (eq :var (car pair)) pair)) params)))) + (mapcar (lambda (assignment) (org-babel-ref-parse assignment others)) assignments))) (defvar org-babel-ref-split-regexp "[ \f\t\n\r\v]*\\(.+?\\)[ \f\t\n\r\v]*=[ \f\t\n\r\v]*\\(.+\\)[ \f\t\n\r\v]*") diff --git a/contrib/babel/lisp/org-babel-table.el b/contrib/babel/lisp/org-babel-table.el index 04ff35ce6..c53d263b9 100644 --- a/contrib/babel/lisp/org-babel-table.el +++ b/contrib/babel/lisp/org-babel-table.el @@ -61,12 +61,11 @@ string)) (defmacro sbe (source-block &rest variables) - "Return the results of calling SOURCE-BLOCK with all assigning -every variable in VARIABLES. Each element of VARIABLES should be -a two element list, whose first element is the name of the -variable and second element is a string of its value. The -following call to `sbe' would be equivalent to the following -source code block. + "Return the results of calling SOURCE-BLOCK assigning every +variable in VARIABLES. Each element of VARIABLES should be a two +element list, whose first element is the name of the variable and +second element is a string of its value. The following call to +`sbe' would be equivalent to the following source code block. (sbe 'source-block (n 2) (m 3)) @@ -85,7 +84,9 @@ results (format "%S=%s" (first var-spec) (second var-spec))) ',variables ", ") ")"))))) - (org-babel-execute-src-block t (list "emacs-lisp" "results" params))) + (org-babel-execute-src-block + nil (list "emacs-lisp" "results" + (org-babel-merge-params '((:results . "silent")) params)))) ""))) (provide 'org-babel-table) diff --git a/contrib/babel/lisp/org-babel.el b/contrib/babel/lisp/org-babel.el index 7eb313bd1..adf78d37e 100644 --- a/contrib/babel/lisp/org-babel.el +++ b/contrib/babel/lisp/org-babel.el @@ -189,15 +189,17 @@ the header arguments specified at the source code block." (result-type (fourth processed-params)) (cmd (intern (concat "org-babel-execute:" lang))) result) - ;; (message "params=%S" params) ;; debugging statement - ;; (message "vars=%S" (second processed-params)) ;; debugging statement + ;; (message "params=%S" params) ;; debugging (unless (member lang org-babel-interpreters) (error "Language is not in `org-babel-interpreters': %s" lang)) (when arg (setq result-params (cons "silent" result-params))) - (setq result (multiple-value-bind (session vars result-params result-type) processed-params - (funcall cmd body params))) + (setq result (funcall cmd body params)) (if (eq result-type 'value) - (setq result (org-babel-process-value-result result result-params))) + (setq result (if (and (or (member "vector" result-params) + (member "table" result-params)) + (not (listp result))) + (list (list result)) + result))) (org-babel-insert-result result result-params info) result)) @@ -267,26 +269,6 @@ results already exist." (insert (echo-res results)))))) t))) -(defun org-babel-process-value-result (result result-params) - "Process returned value for insertion in buffer. - -Currently, this function forces to table output if :results -table or :results vector has been supplied. - - You can see below the various fragments of results-processing -code that were present in the language-specific files. Out of -those fragments, I've moved the org-babel-python-table-or-results -and org-babel-import-elisp-from-file functionality into the -org-babel-*-evaluate functions. I think those should only be used -in the :results value case, as in the 'output case we are not -concerned with creating elisp versions of results. " - - (if (and (or (member "vector" result-params) - (member "table" result-params)) - (not (listp result))) - (list (list result)) - result)) - (defun org-babel-execute-buffer (&optional arg) "Replace EVAL snippets in the entire buffer." (interactive "P")