]> code.delx.au - gnu-emacs/blobdiff - lisp/org/ob-plantuml.el
Merge from origin/emacs-25
[gnu-emacs] / lisp / org / ob-plantuml.el
index fb81dc8e60d8fa82dbe5778df764f7eb58de0ff9..9a0604c683da4e642a72e19119131b2c97e444f3 100644 (file)
@@ -1,11 +1,10 @@
 ;;; ob-plantuml.el --- org-babel functions for plantuml evaluation
 
-;; Copyright (C) 2010  Free Software Foundation, Inc.
+;; Copyright (C) 2010-2016 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."
@@ -78,6 +80,6 @@ This function is called by `org-babel-execute-src-block'."
 
 (provide 'ob-plantuml)
 
-;; arch-tag: 451f50c5-e779-407e-ad64-70e0e8f161d1
+
 
 ;;; ob-plantuml.el ends here