summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDan Davison <davison@stats.ox.ac.uk>2010-10-14 21:56:41 +0100
committerDan Davison <davison@stats.ox.ac.uk>2010-10-21 13:05:58 +0100
commita59c4d789677eee1dbc98f686229200c97620e65 (patch)
treef516af1ab43816a4f84d1e81f829e03d95e57ee1
parent8e151c066e94619a0772aacd4ef389614c3d448f (diff)
downloadorg-mode-a59c4d789677eee1dbc98f686229200c97620e65.tar.gz
babel: octave: Fix variable assignments made by `org-babel-prep-session:octave'
* ob-octave.el (org-babel-expand-body:octave): Refactor: break variable assignment part out into a separate function (org-babel-octave-variable-assignments): New function constructing list of variable assignment statements (org-babel-prep-session:octave): Use new function `org-babel-octave-variable-assignments' instead of previous (incorrect) variable assignment code.
-rw-r--r--lisp/ob-octave.el29
1 files changed, 14 insertions, 15 deletions
diff --git a/lisp/ob-octave.el b/lisp/ob-octave.el
index 59f6819..4a2d35d 100644
--- a/lisp/ob-octave.el
+++ b/lisp/ob-octave.el
@@ -52,14 +52,10 @@
(org-babel-expand-body:octave body params processed-params))
(defun org-babel-expand-body:octave (body params &optional processed-params)
"Expand BODY according to PARAMS, return the expanded body."
- (let ((vars (nth 1 (or processed-params (org-babel-process-params params)))))
- (concat
- (mapconcat
- (lambda (pair)
- (format "%s=%s"
- (car pair)
- (org-babel-octave-var-to-octave (cdr pair))))
- vars "\n") "\n" body "\n")))
+ (mapconcat
+ #'identity
+ (append (org-babel-octave-variable-assignments params processed-params)
+ (list body)) "\n"))
(defvar org-babel-matlab-with-emacs-link nil
"If non-nil use matlab-shell-run-region for session evaluation.
@@ -114,6 +110,15 @@ end")
"Prepare SESSION according to PARAMS."
(org-babel-prep-session:octave session params 'matlab))
+(defun org-babel-octave-variable-assignments (params &optional processed-params)
+ "Return list of octave statements assigning the block's variables"
+ (mapcar
+ (lambda (pair)
+ (format "%s=%s"
+ (car pair)
+ (org-babel-octave-var-to-octave (cdr pair))))
+ (nth 1 (or processed-params (org-babel-process-params params)))))
+
(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
@@ -126,13 +131,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))
- (vars (org-babel-ref-variables params))
- (var-lines (mapcar
- (lambda (pair)
- (format "%s=%s"
- (car pair)
- (org-babel-octave-var-to-octave (cdr pair))))
- vars)))
+ (var-lines (org-babel-octave-variable-assignments params)))
(org-babel-comint-in-buffer session
(mapc (lambda (var)
(end-of-line 1) (insert var) (comint-send-input nil t)