aboutsummaryrefslogtreecommitdiffstats
path: root/lisp/org/ob-java.el
diff options
context:
space:
mode:
authorRasmus2017-06-21 13:20:20 +0200
committerRasmus2017-06-22 11:54:18 +0200
commit5cecd275820df825c51bf9a27fcc7e35f30ff273 (patch)
treeb3f72e63953613d565e6d5a35bec97f158eb603c /lisp/org/ob-java.el
parent386a3da920482b8cb3e962fb944d135c8a770e26 (diff)
downloademacs-5cecd275820df825c51bf9a27fcc7e35f30ff273.tar.gz
emacs-5cecd275820df825c51bf9a27fcc7e35f30ff273.zip
Update Org to v9.0.9
Please see etc/ORG-NEWS for details.
Diffstat (limited to 'lisp/org/ob-java.el')
-rw-r--r--lisp/org/ob-java.el46
1 files changed, 28 insertions, 18 deletions
diff --git a/lisp/org/ob-java.el b/lisp/org/ob-java.el
index 70a10e0131a..7e720231e48 100644
--- a/lisp/org/ob-java.el
+++ b/lisp/org/ob-java.el
@@ -1,4 +1,4 @@
1;;; ob-java.el --- org-babel functions for java evaluation 1;;; ob-java.el --- Babel Functions for Java -*- lexical-binding: t; -*-
2 2
3;; Copyright (C) 2011-2017 Free Software Foundation, Inc. 3;; Copyright (C) 2011-2017 Free Software Foundation, Inc.
4 4
@@ -32,41 +32,51 @@
32(defvar org-babel-tangle-lang-exts) 32(defvar org-babel-tangle-lang-exts)
33(add-to-list 'org-babel-tangle-lang-exts '("java" . "java")) 33(add-to-list 'org-babel-tangle-lang-exts '("java" . "java"))
34 34
35(defvar org-babel-java-command "java" 35(defcustom org-babel-java-command "java"
36 "Name of the java command.") 36 "Name of the java command.
37 37May be either a command in the path, like java
38(defvar org-babel-java-compiler "javac" 38or an absolute path name, like /usr/local/bin/java
39 "Name of the java compiler.") 39parameters may be used, like java -verbose"
40 :group 'org-babel
41 :version "24.3"
42 :type 'string)
43
44(defcustom org-babel-java-compiler "javac"
45 "Name of the java compiler.
46May be either a command in the path, like javac
47or an absolute path name, like /usr/local/bin/javac
48parameters may be used, like javac -verbose"
49 :group 'org-babel
50 :version "24.3"
51 :type 'string)
40 52
41(defun org-babel-execute:java (body params) 53(defun org-babel-execute:java (body params)
42 (let* ((classname (or (cdr (assoc :classname params)) 54 (let* ((classname (or (cdr (assq :classname params))
43 (error 55 (error
44 "Can't compile a java block without a classname"))) 56 "Can't compile a java block without a classname")))
45 (packagename (file-name-directory classname)) 57 (packagename (file-name-directory classname))
46 (src-file (concat classname ".java")) 58 (src-file (concat classname ".java"))
47 (cmpflag (or (cdr (assoc :cmpflag params)) "")) 59 (cmpflag (or (cdr (assq :cmpflag params)) ""))
48 (cmdline (or (cdr (assoc :cmdline params)) "")) 60 (cmdline (or (cdr (assq :cmdline params)) ""))
49 (full-body (org-babel-expand-body:generic body params)) 61 (full-body (org-babel-expand-body:generic body params)))
50 (compile 62 (with-temp-file src-file (insert full-body))
51 (progn (with-temp-file src-file (insert full-body)) 63 (org-babel-eval
52 (org-babel-eval 64 (concat org-babel-java-compiler " " cmpflag " " src-file) "")
53 (concat org-babel-java-compiler
54 " " cmpflag " " src-file) ""))))
55 ;; created package-name directories if missing 65 ;; created package-name directories if missing
56 (unless (or (not packagename) (file-exists-p packagename)) 66 (unless (or (not packagename) (file-exists-p packagename))
57 (make-directory packagename 'parents)) 67 (make-directory packagename 'parents))
58 (let ((results (org-babel-eval (concat org-babel-java-command 68 (let ((results (org-babel-eval (concat org-babel-java-command
59 " " cmdline " " classname) ""))) 69 " " cmdline " " classname) "")))
60 (org-babel-reassemble-table 70 (org-babel-reassemble-table
61 (org-babel-result-cond (cdr (assoc :result-params params)) 71 (org-babel-result-cond (cdr (assq :result-params params))
62 (org-babel-read results) 72 (org-babel-read results)
63 (let ((tmp-file (org-babel-temp-file "c-"))) 73 (let ((tmp-file (org-babel-temp-file "c-")))
64 (with-temp-file tmp-file (insert results)) 74 (with-temp-file tmp-file (insert results))
65 (org-babel-import-elisp-from-file tmp-file))) 75 (org-babel-import-elisp-from-file tmp-file)))
66 (org-babel-pick-name 76 (org-babel-pick-name
67 (cdr (assoc :colname-names params)) (cdr (assoc :colnames params))) 77 (cdr (assq :colname-names params)) (cdr (assq :colnames params)))
68 (org-babel-pick-name 78 (org-babel-pick-name
69 (cdr (assoc :rowname-names params)) (cdr (assoc :rownames params))))))) 79 (cdr (assq :rowname-names params)) (cdr (assq :rownames params)))))))
70 80
71(provide 'ob-java) 81(provide 'ob-java)
72 82