summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDan Davison <davison@stats.ox.ac.uk>2010-10-21 12:38:15 +0100
committerDan Davison <davison@stats.ox.ac.uk>2010-10-21 13:06:01 +0100
commit83332fb69cd5291aaffba5b24565f0770fce1b37 (patch)
tree597cca67e930fff7e1ea66cbc278582d1084511f
parent43c712fccb775031ddce84b50d2dea45dc258d8f (diff)
downloadorg-mode-83332fb69cd5291aaffba5b24565f0770fce1b37.tar.gz
babel: New version of generic expansion function
* ob.el (org-babel-expand-src-block): Supply variable assignment lines to generic expansion function (org-babel-expand-body:generic): Prepend body with optional variable assignment lines
-rw-r--r--lisp/ob.el14
1 files changed, 9 insertions, 5 deletions
diff --git a/lisp/ob.el b/lisp/ob.el
index a8d0599..eface0a 100644
--- a/lisp/ob.el
+++ b/lisp/ob.el
@@ -409,12 +409,13 @@ block."
result))
(setq call-process-region 'org-babel-call-process-region-original))))))
-(defun org-babel-expand-body:generic (body params)
+(defun org-babel-expand-body:generic (body params &optional var-lines)
"Expand BODY with PARAMS.
Expand a block of code with org-babel according to it's header
arguments. This generic implementation of body expansion is
called for languages which have not defined their own specific
-org-babel-expand-body:lang function." body)
+org-babel-expand-body:lang function."
+ (mapconcat #'identity (append var-lines (list body)) "\n"))
;;;###autoload
(defun org-babel-expand-src-block (&optional arg info params)
@@ -432,9 +433,12 @@ arguments and pop open the results in a preview buffer."
(if (and (cdr (assoc :noweb params))
(string= "yes" (cdr (assoc :noweb params))))
(org-babel-expand-noweb-references info) (nth 1 info))))
- (cmd (intern (concat "org-babel-expand-body:" lang)))
- (expanded (funcall (if (fboundp cmd) cmd 'org-babel-expand-body:generic)
- body params)))
+ (expand-cmd (intern (concat "org-babel-expand-body:" lang)))
+ (assignments-cmd (intern (concat "org-babel-variable-assignments:" lang)))
+ (expanded
+ (if (fboundp expand-cmd) (funcall expand-cmd body params)
+ (org-babel-expand-body:generic
+ body params (and (fboundp assignments-cmd) (funcall assignments-cmd params))))))
(org-edit-src-code
nil expanded (concat "*Org-Babel Preview " (buffer-name) "[ " lang " ]*"))))