Function: org-babel-execute:maxima

org-babel-execute:maxima is a byte-compiled function defined in ob-maxima.el.gz.

Signature

(org-babel-execute:maxima BODY PARAMS)

Documentation

Execute Maxima BODY according to PARAMS.

This function is called by org-babel-execute-src-block.

Source Code

;; Defined in /usr/src/emacs/lisp/org/ob-maxima.el.gz
(defun org-babel-execute:maxima (body params)
  "Execute Maxima BODY according to PARAMS.
This function is called by `org-babel-execute-src-block'."
  (unless noninteractive (message "Executing Maxima source code block"))
  (let ((result-params (split-string (or (cdr (assq :results params)) "")))
	(result
	 (let* ((cmdline (or (cdr (assq :cmdline params)) ""))
                (batch/load (or (cdr (assq :batch params)) "batchload"))
                (cmdline (if (or (equal cmdline "") (equal batch/load "batchload"))
                             ;; legacy behavior:
                             ;; ensure that --very-quiet is on command-line by default
                             (concat cmdline " " org-babel-maxima--command-arguments-default)
                           ;; if using an alternate loader, :cmdline overwrites default
                           cmdline))
		(in-file (org-babel-temp-file "maxima-" ".max"))
                (cmd (format "%s -r %s %s"
			     org-babel-maxima-command
                             (shell-quote-argument
                              ;; bind linenum to 0 so the first line
                              ;; of in-file has line number 1
                              (format "(linenum:0, %s(%S))$" batch/load in-file))
                             cmdline)))
	   (with-temp-file in-file (insert (org-babel-maxima-expand body params)))
	   (unless noninteractive (message cmd))
           ;; " | grep -v batch | grep -v 'replaced' | sed '/^$/d' "
	   (let ((raw (org-babel-eval cmd "")))
             (mapconcat
              #'identity
              (delq nil
                    (mapcar #'org-babel-maxima--output-filter
                            (split-string raw "[\r\n]"))) "\n")))))
    (if (ignore-errors (org-babel-graphical-output-file params))
	nil
      (org-babel-result-cond result-params
	result
	(let ((tmp-file (org-babel-temp-file "maxima-res-")))
	  (with-temp-file tmp-file (insert result))
	  (org-babel-import-elisp-from-file tmp-file))))))