* ob-ditaa.el (org-ditaa-jar-path): Make a defcustom.
(org-ditaa-jar-option): New option.
(org-babel-execute:ditaa): Use it.
Thanks to Waldemar Reusch for reporting this need.
Also remove blank lines before the ";;; org*el ends here" declarations.
Having a "Version" header forced us to update every file when releasing a
new version of Org; it also forced us to update every file when merging Org
with Emacs trunk, thus cluttering the diffs between the previously merged
version and the new one with useless information.
Glenn Morris suggested this in emacs-devel:
http://lists.gnu.org/archive/html/emacs-devel/2011-08/msg00322.html
These languages are capable of writing results to file; for several of
them this is their only mode of operation. These changes cause the
languages to return to ob.el either the computed result, or nil, when
they have written results to file themselves. This is in place of the
previous method of returning the output file name as a string to
ob.el.
* lisp/ob-asymptote.el (org-babel-execute:asymptote): Return nil to
signal that the intended content has been written to file.
* lisp/ob-ditaa.el (org-babel-execute:ditaa): Return nil to signal
that the intended content has been written to file.
* lisp/ob-dot.el (org-babel-execute:dot): Return nil to signal that
the intended content has been written to file.
* lisp/ob-gnuplot.el (org-babel-execute:gnuplot): Return nil to signal
that the intended content has been written to file.
* lisp/ob-latex.el (org-babel-execute:latex): Return nil to signal
that the intended content has been written to file.
* lisp/ob-mscgen.el (org-babel-execute:mscgen): Return nil to
signal that the intended content has been written to file.
* lisp/ob-octave.el (org-babel-execute:octave): Return result; not
name of output file.
* lisp/ob-plantuml.el (org-babel-execute:plantuml): Return nil to
signal that the intended content has been written to file.
* lisp/ob-python.el (org-babel-execute:python): Return result; not
name of output file.
* lisp/ob-ruby.el (org-babel-execute:ruby): Return result; not
name of output file.
* lisp/ob-sass.el (org-babel-execute:sass): Return nil if result has
been written to file
* ob.el (org-babel-process-file-name): New function
(org-babel-maybe-remote-file): Delete function
* ob-sql.el (org-babel-execute:sql):
Use org-babel-process-file-name
* ob-scheme.el (org-babel-execute:scheme):
Use org-babel-process-file-name
* ob-sass.el (org-babel-execute:sass):
Use org-babel-process-file-name
* ob-ruby.el (org-babel-ruby-evaluate):
Use org-babel-process-file-name
* ob-python.el (org-babel-python-evaluate-external-process):
Use org-babel-process-file-name
(org-babel-python-evaluate-session):
Use org-babel-process-file-name
* ob-plantuml.el (org-babel-execute:plantuml):
Use org-babel-process-file-name
* ob-perl.el (org-babel-perl-evaluate):
Use org-babel-process-file-name
* ob-octave.el (org-babel-octave-evaluate-external-process):
Use org-babel-process-file-name
(org-babel-octave-evaluate-session):
Use org-babel-process-file-name,
don't use org-babel-maybe-remote-file
* ob-lisp.el (org-babel-execute:lisp):
Use org-babel-process-file-name
* ob-ledger.el (org-babel-execute:ledger):
Use org-babel-process-file-name
* ob-js.el (org-babel-execute:js):
Use org-babel-process-file-name
* ob-haskell.el (org-babel-haskell-export-to-lhs):
Use org-babel-process-file-name
* ob-gnuplot.el (org-babel-execute:gnuplot):
Use org-babel-process-file-name
* ob-eval.el (org-babel-eval-read-file): Don't use
org-babel-maybe-remote-file
* ob-dot.el (org-babel-execute:dot):
Use org-babel-process-file-name
* ob-ditaa.el (org-babel-execute:ditaa):
Use org-babel-process-file-name
* ob-clojure.el (org-babel-clojure-evaluate-external-process):
Use org-babel-process-file-name
* ob-asymptote.el (org-babel-execute:asymptote):
Use org-babel-process-file-name
* ob-R.el (org-babel-R-assign-elisp): Don't use
org-babel-maybe-remote-file, use org-babel-process-file-name
(org-babel-R-evaluate-external-process):
Use org-babel-process-file-name
(org-babel-R-evaluate-session):
Use org-babel-process-file-name
* ob-C.el (org-babel-C-execute):
Use org-babel-process-file-name
In addition to passing the file path through `expand-file-name',
tramp-style remote file names are converted to conventional (local)
file paths. The reason is that, if a tramp file name was in use in
emacs, then the shell command will be executing on the remote machine
in question. Further, by default the file name is passed through
`shell-quote-argument'.
Thanks to John Hendy for pointing out the bad behavior and to Juan
Pechiar for pointing out the problem in the code
* lisp/ob-ditaa.el (org-babel-execute:ditaa): now expanding
org-ditaa-jar-path with expand-file-name
* lisp/ob.el (org-babel-temporary-directory): variable to hold the
value of the Babel temporary directory
(org-babel-temp-file): replacement for make-temp-file with cleanup
on exit of Emacs
(org-babel-remove-temporary-directory): cleanup function run on exit
of Emacs
(kill-emacs-hook): now includes babel cleanup function
* lisp/ob-C.el (org-babel-C-execute): using org-babel-temp-file
instead of make-temp-file
* lisp/ob-R.el (org-babel-R-assign-elisp): using `org-babel-temp-file'
instead of `make-temp-file'
(org-babel-R-evaluate-external-process): using `org-babel-temp-file'
instead of `make-temp-file'
(org-babel-R-evaluate-session): using `org-babel-temp-file' instead of
`make-temp-file'
* lisp/ob-asymptote.el (org-babel-execute:asymptote): using
`org-babel-temp-file' instead of `make-temp-file'
* lisp/ob-clojure.el (org-babel-clojure-evaluate-external-process):
using `org-babel-temp-file' instead of `make-temp-file'
* lisp/ob-ditaa.el (org-babel-execute:ditaa): using
`org-babel-temp-file' instead of `make-temp-file'
* lisp/ob-dot.el (org-babel-execute:dot): using `org-babel-temp-file'
instead of `make-temp-file'
* lisp/ob-gnuplot.el (org-babel-gnuplot-process-vars): using
`org-babel-temp-file' instead of `make-temp-file'
(org-babel-execute:gnuplot): using `org-babel-temp-file' instead of
`make-temp-file'
* lisp/ob-haskell.el (org-babel-load-session:haskell): using
`org-babel-temp-file' instead of `make-temp-file'
(org-babel-haskell-export-to-lhs): using `org-babel-temp-file' instead
of `make-temp-file'
* lisp/ob-latex.el (org-babel-execute:latex): using
`org-babel-temp-file' instead of `make-temp-file'
* lisp/ob-ledger.el (org-babel-execute:ledger): using
`org-babel-temp-file' instead of `make-temp-file'
* lisp/ob-lisp.el (org-babel-execute:lisp): using
`org-babel-temp-file' instead of `make-temp-file'
* lisp/ob-octave.el (org-babel-octave-evaluate-external-process):
using `org-babel-temp-file' instead of `make-temp-file'
(org-babel-octave-evaluate-session): using `org-babel-temp-file'
instead of `make-temp-file'
(org-babel-octave-import-elisp-from-file): using `org-babel-temp-file'
instead of `make-temp-file'
* lisp/ob-perl.el (org-babel-perl-evaluate): using
`org-babel-temp-file' instead of `make-temp-file'
* lisp/ob-python.el (org-babel-python-evaluate): using
`org-babel-temp-file' instead of `make-temp-file'
using `org-babel-temp-file' instead of `make-temp-file'
* lisp/ob-ruby.el (org-babel-ruby-evaluate): using
`org-babel-temp-file' instead of `make-temp-file'
using `org-babel-temp-file' instead of `make-temp-file'
* lisp/ob-sass.el (org-babel-execute:sass): using
`org-babel-temp-file' instead of `make-temp-file'
* lisp/ob-sh.el (org-babel-sh-evaluate): using `org-babel-temp-file'
instead of `make-temp-file'
* lisp/ob-sql.el (org-babel-execute:sql): using `org-babel-temp-file'
instead of `make-temp-file'
* lisp/ob-sqlite.el (org-babel-execute:sqlite): using
`org-babel-temp-file' instead of `make-temp-file'
(org-babel-sqlite-expand-vars): using `org-babel-temp-file' instead of
`make-temp-file'
For some reason ob-R refuses to compile when it requires ob-comint.
When (require 'ob-comint) is not included in ob-R.el everything
compiles without error, but warnings are thrown because the
arguments to a macro defined in ob-comint are mis-interpreted as
functions.
When (require 'ob-comint) is added to ob-R.el then it throws errors
complaining that the last argument to a function is nil and should
be a string. I don't understand this error at all and can't fix it.