org-babel-asymptote now supports interactive viewing if the :file header argument is missing

This commit is contained in:
Eric Schulte 2009-09-16 16:21:45 -06:00
parent 8e87868df2
commit a704ce4896
1 changed files with 12 additions and 5 deletions

View File

@ -34,7 +34,9 @@
;; ;;
;; 2) we are generally only going to return results of type "file" ;; 2) we are generally only going to return results of type "file"
;; ;;
;; 3) we are adding the "file" and "cmdline" header arguments ;; 3) we are adding the "file" and "cmdline" header arguments, if file
;; is omitted then the -V option is passed to the asy command for
;; interactive viewing
;; ;;
;; 4) there are no variables (at least for now) ;; 4) there are no variables (at least for now)
@ -60,14 +62,19 @@ called by `org-babel-execute-src-block'."
(message "executing Asymptote source code block") (message "executing Asymptote source code block")
(let* ((result-params (split-string (or (cdr (assoc :results params)) ""))) (let* ((result-params (split-string (or (cdr (assoc :results params)) "")))
(out-file (cdr (assoc :file params))) (out-file (cdr (assoc :file params)))
(format (or (and (string-match ".+\\.\\(.+\\)" out-file) (format (or (and out-file
(string-match ".+\\.\\(.+\\)" out-file)
(match-string 1 out-file)) (match-string 1 out-file))
"pdf")) "pdf"))
(cmdline (cdr (assoc :cmdline params))) (cmdline (cdr (assoc :cmdline params)))
(in-file (make-temp-file "org-babel-asymptote"))) (in-file (make-temp-file "org-babel-asymptote"))
(cmd (concat "asy "
(if out-file
(concat "-globalwrite -f " format " -o " out-file)
"-V")
" " cmdline " " in-file)))
(with-temp-file in-file (insert body)) (with-temp-file in-file (insert body))
(message (concat "asy -globalwrite -f " format " -o " out-file " " cmdline " " in-file)) (message cmd) (shell-command cmd)
(shell-command (concat "asy -globalwrite -f " format " -o " out-file " " cmdline " " in-file))
out-file)) out-file))
(defun org-babel-prep-session:asymptote (session params) (defun org-babel-prep-session:asymptote (session params)