]> code.delx.au - gnu-emacs/blobdiff - lisp/org/ob-dot.el
Merge from emacs-23; up to 2010-06-16T23:27:20Z!jay.p.belanger@gmail.com.
[gnu-emacs] / lisp / org / ob-dot.el
index 4657fb80ba0330f81bf2cae53941382732c49465..09476cd25924dbb2a41ba80722345dd9ece9051e 100644 (file)
@@ -1,11 +1,11 @@
 ;;; ob-dot.el --- org-babel functions for dot evaluation
 
-;; Copyright (C) 2009, 2010  Free Software Foundation, Inc.
+;; Copyright (C) 2009-2011  Free Software Foundation, Inc.
 
 ;; Author: Eric Schulte
 ;; Keywords: literate programming, reproducible research
 ;; Homepage: http://orgmode.org
-;; Version: 7.01
+;; Version: 7.4
 
 ;; This file is part of GNU Emacs.
 
   '((:results . "file") (:exports . "results"))
   "Default arguments to use when evaluating a dot source block.")
 
-(defun org-babel-expand-body:dot (body params &optional processed-params)
+(defun org-babel-expand-body:dot (body params)
   "Expand BODY according to PARAMS, return the expanded body."
-  (let ((vars (nth 1 (or processed-params
-                        (org-babel-process-params params)))))
+  (let ((vars (mapcar #'cdr (org-babel-get-header params :var))))
     (mapc
      (lambda (pair)
        (let ((name (symbol-name (car pair)))
 (defun org-babel-execute:dot (body params)
   "Execute a block of Dot code with org-babel.
 This function is called by `org-babel-execute-src-block'."
-  (let ((processed-params (org-babel-process-params params))
-       (result-params (split-string (or (cdr (assoc :results params)) "")))
-        (out-file (cdr (assoc :file params)))
-        (cmdline (cdr (assoc :cmdline params)))
-        (cmd (or (cdr (assoc :cmd params)) "dot"))
-        (in-file (make-temp-file "org-babel-dot")))
+  (let* ((result-params (cdr (assoc :result-params params)))
+        (out-file (cdr (assoc :file params)))
+        (cmdline (or (cdr (assoc :cmdline params))
+                     (format "-T%s" (file-name-extension out-file))))
+        (cmd (or (cdr (assoc :cmd params)) "dot"))
+        (in-file (org-babel-temp-file "dot-")))
     (with-temp-file in-file
-      (insert (org-babel-expand-body:dot body params processed-params)))
-    (org-babel-eval (concat cmd " " in-file " " cmdline " -o " out-file) "")
+      (insert (org-babel-expand-body:dot body params)))
+    (org-babel-eval
+     (concat cmd
+            " " (org-babel-process-file-name in-file)
+            " " cmdline
+            " -o " (org-babel-process-file-name out-file)) "")
     out-file))
 
 (defun org-babel-prep-session:dot (session params)
@@ -82,6 +85,5 @@ This function is called by `org-babel-execute-src-block'."
 
 (provide 'ob-dot)
 
-;; arch-tag: 817d0516-7b47-4f77-a8b2-2aadd8e4d0e2
 
 ;;; ob-dot.el ends here