forked from mirrors/org-mode
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
This commit is contained in:
parent
590fae34e1
commit
58a24fa325
|
@ -47,16 +47,6 @@
|
||||||
(defvar org-babel-octave-shell-command "octave -q"
|
(defvar org-babel-octave-shell-command "octave -q"
|
||||||
"Shell command to run octave as an external process.")
|
"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
|
(defvar org-babel-matlab-with-emacs-link nil
|
||||||
"If non-nil use matlab-shell-run-region for session evaluation.
|
"If non-nil use matlab-shell-run-region for session evaluation.
|
||||||
This will use EmacsLink if (matlab-with-emacs-link) evaluates
|
This will use EmacsLink if (matlab-with-emacs-link) evaluates
|
||||||
|
@ -94,9 +84,11 @@ end")
|
||||||
(result-params (nth 2 processed-params))
|
(result-params (nth 2 processed-params))
|
||||||
(result-type (nth 3 processed-params))
|
(result-type (nth 3 processed-params))
|
||||||
(out-file (cdr (assoc :file 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
|
(result (org-babel-octave-evaluate
|
||||||
session augmented-body result-type matlabp)))
|
session full-body result-type matlabp)))
|
||||||
(or out-file
|
(or out-file
|
||||||
(org-babel-reassemble-table
|
(org-babel-reassemble-table
|
||||||
result
|
result
|
||||||
|
@ -109,7 +101,7 @@ end")
|
||||||
"Prepare SESSION according to PARAMS."
|
"Prepare SESSION according to PARAMS."
|
||||||
(org-babel-prep-session:octave session params 'matlab))
|
(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"
|
"Return list of octave statements assigning the block's variables"
|
||||||
(mapcar
|
(mapcar
|
||||||
(lambda (pair)
|
(lambda (pair)
|
||||||
|
@ -118,6 +110,9 @@ end")
|
||||||
(org-babel-octave-var-to-octave (cdr pair))))
|
(org-babel-octave-var-to-octave (cdr pair))))
|
||||||
(mapcar #'cdr (org-babel-get-header params :var))))
|
(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)
|
(defun org-babel-octave-var-to-octave (var)
|
||||||
"Convert an emacs-lisp value into an octave variable.
|
"Convert an emacs-lisp value into an octave variable.
|
||||||
Converts an emacs-lisp variable into a string of octave code
|
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)
|
(defun org-babel-prep-session:octave (session params &optional matlabp)
|
||||||
"Prepare SESSION according to the header arguments specified in PARAMS."
|
"Prepare SESSION according to the header arguments specified in PARAMS."
|
||||||
(let* ((session (org-babel-octave-initiate-session session params matlabp))
|
(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
|
(org-babel-comint-in-buffer session
|
||||||
(mapc (lambda (var)
|
(mapc (lambda (var)
|
||||||
(end-of-line 1) (insert var) (comint-send-input nil t)
|
(end-of-line 1) (insert var) (comint-send-input nil t)
|
||||||
|
|
Loading…
Reference in a new issue