]> code.delx.au - gnu-emacs/blobdiff - lisp/org/ob-plantuml.el
Update copyright year to 2015
[gnu-emacs] / lisp / org / ob-plantuml.el
index f455bc9bb4ccb4980e22a1515fdb8d2fc671a635..f0f72209f56a053cb638f4ae608a4f4da16364d9 100644 (file)
@@ -1,11 +1,10 @@
 ;;; ob-plantuml.el --- org-babel functions for plantuml evaluation
 
-;; Copyright (C) 2010-201 Free Software Foundation, Inc.
+;; Copyright (C) 2010-2015 Free Software Foundation, Inc.
 
 ;; Author: Zhang Weize
 ;; Keywords: literate programming, reproducible research
 ;; Homepage: http://orgmode.org
-;; Version: 7.4
 
 ;; This file is part of GNU Emacs.
 
 
 ;;; Code:
 (require 'ob)
-(require 'ob-eval)
 
 (defvar org-babel-default-header-args:plantuml
   '((:results . "file") (:exports . "results"))
   "Default arguments for evaluating a plantuml source block.")
 
-(defcustom org-plantuml-jar-path nil
+(defcustom org-plantuml-jar-path ""
   "Path to the plantuml.jar file."
   :group 'org-babel
+  :version "24.1"
   :type 'string)
 
 (defun org-babel-execute:plantuml (body params)
 This function is called by `org-babel-execute-src-block'."
   (let* ((result-params (split-string (or (cdr (assoc :results params)) "")))
         (out-file (or (cdr (assoc :file params))
-                      (error "plantuml requires a \":file\" header argument")))
+                      (error "PlantUML requires a \":file\" header argument")))
         (cmdline (cdr (assoc :cmdline params)))
         (in-file (org-babel-temp-file "plantuml-"))
-        (cmd (if (not org-plantuml-jar-path)
+        (java (or (cdr (assoc :java params)) ""))
+        (cmd (if (string= "" org-plantuml-jar-path)
                  (error "`org-plantuml-jar-path' is not set")
-               (concat "java -jar "
+               (concat "java " java " -jar "
                        (shell-quote-argument
                         (expand-file-name org-plantuml-jar-path))
                        (if (string= (file-name-extension out-file) "svg")
                            " -tsvg" "")
+                       (if (string= (file-name-extension out-file) "eps")
+                           " -teps" "")
                        " -p " cmdline " < "
                        (org-babel-process-file-name in-file)
                        " > "
@@ -70,7 +72,7 @@ This function is called by `org-babel-execute-src-block'."
       (error "Could not find plantuml.jar at %s" org-plantuml-jar-path))
     (with-temp-file in-file (insert (concat "@startuml\n" body "\n@enduml")))
     (message "%s" cmd) (org-babel-eval cmd "")
-    out-file))
+    nil)) ;; signal that output has already been written to file
 
 (defun org-babel-prep-session:plantuml (session params)
   "Return an error because plantuml does not support sessions."
@@ -79,4 +81,5 @@ This function is called by `org-babel-execute-src-block'."
 (provide 'ob-plantuml)
 
 
+
 ;;; ob-plantuml.el ends here