summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDan Davison <davison@stats.ox.ac.uk>2010-10-21 12:18:43 +0100
committerDan Davison <davison@stats.ox.ac.uk>2010-10-21 13:06:02 +0100
commit58a24fa3255844d27454f834e5c03d2e5d5e374d (patch)
tree327804c5e3c6f349bcb9091fcc82a413a984084f
parent590fae34e11c5fe14f2b609d8830283487eb1230 (diff)
downloadorg-mode-58a24fa3255844d27454f834e5c03d2e5d5e374d.tar.gz
babel: octave and matlab: New variable assignment and expansion scheme
* ob-octave.el (org-babel-execute:octave): Use generic expansion function (org-babel-variable-assignments:octave): Change name of function (org-babel-variable-assignments:matlab): New defalias (org-babel-prep-session:octave): Change name of function (org-babel-expand-body:matlab): Delete function (org-babel-expand-body:octave): Delete function
-rw-r--r--lisp/ob-octave.el23
1 files changed, 9 insertions, 14 deletions
diff --git a/lisp/ob-octave.el b/lisp/ob-octave.el
index 78d6f85..8eb6745 100644
--- a/lisp/ob-octave.el
+++ b/lisp/ob-octave.el
@@ -47,16 +47,6 @@
(defvar org-babel-octave-shell-command "octave -q"
"Shell command to run octave as an external process.")
-(defun org-babel-expand-body:matlab (body params)
- "Expand BODY according to PARAMS, return the expanded body."
- (org-babel-expand-body:octave body params))
-(defun org-babel-expand-body:octave (body params)
- "Expand BODY according to PARAMS, return the expanded body."
- (mapconcat
- #'identity
- (append (org-babel-octave-variable-assignments params)
- (list body)) "\n"))
-
(defvar org-babel-matlab-with-emacs-link nil
"If non-nil use matlab-shell-run-region for session evaluation.
This will use EmacsLink if (matlab-with-emacs-link) evaluates
@@ -94,9 +84,11 @@ end")
(result-params (nth 2 processed-params))
(result-type (nth 3 processed-params))
(out-file (cdr (assoc :file params)))
- (augmented-body (org-babel-expand-body:octave body params))
+ (full-body
+ (org-babel-expand-body:generic
+ body params (org-babel-variable-assignments:octave params)))
(result (org-babel-octave-evaluate
- session augmented-body result-type matlabp)))
+ session full-body result-type matlabp)))
(or out-file
(org-babel-reassemble-table
result
@@ -109,7 +101,7 @@ end")
"Prepare SESSION according to PARAMS."
(org-babel-prep-session:octave session params 'matlab))
-(defun org-babel-octave-variable-assignments (params)
+(defun org-babel-variable-assignments:octave (params)
"Return list of octave statements assigning the block's variables"
(mapcar
(lambda (pair)
@@ -118,6 +110,9 @@ end")
(org-babel-octave-var-to-octave (cdr pair))))
(mapcar #'cdr (org-babel-get-header params :var))))
+(defalias 'org-babel-variable-assignments:matlab
+ 'org-babel-variable-assignments:octave)
+
(defun org-babel-octave-var-to-octave (var)
"Convert an emacs-lisp value into an octave variable.
Converts an emacs-lisp variable into a string of octave code
@@ -130,7 +125,7 @@ specifying a variable of the same value."
(defun org-babel-prep-session:octave (session params &optional matlabp)
"Prepare SESSION according to the header arguments specified in PARAMS."
(let* ((session (org-babel-octave-initiate-session session params matlabp))
- (var-lines (org-babel-octave-variable-assignments params)))
+ (var-lines (org-babel-variable-assignments:octave params)))
(org-babel-comint-in-buffer session
(mapc (lambda (var)
(end-of-line 1) (insert var) (comint-send-input nil t)