* lisp/ob-R.el (org-babel-R-initiate-session): handle case where the
session buffer exists, but does not have a live process
If the session buffer exists, but the user has exited the R process
manually, then the (R) command will create a new buffer, then try to
rename it over the old buffer, causing an error. The right thing to do
is to start R within the existing buffer.
* ox-latex.el:
(org-latex-image-default-option): Change default value to ""
(org-latex-image-default-width)
(org-latex-image-default-height): Add variables
(org-latex-inline-image-rules): Make .tikz files as exportable with
latex
(org-latex--inline-image): Support tikz images. Also support separate
:width and :height parameters for images.
* ob-R.el (org-babel-R-construct-graphics-device-call): Change file
extension of tikz graphics files to .tikz
Tikz graphics should be exported to LaTeX by \include, not as a link.
This commit changes the file extension used for tikz graphics from .tex
to .tikz, and inserts code for including such images. The :options for
tikz graphics are passed as an optional argument to a tikzpicture
environment.
Also provide :width and :height ATTR_LATEX entries for images. For tikz
graphics, these are implemented with \resizebox; for other image types
they are inserted in the optional arguments to \includegraphics.
* lisp/ob.el (org-babel-result-cond): This function should now be used
by all language backends to handle the processing of raw code block
output into scalar results, table results, or ignored results
depending on the value of result-params.
* lisp/ob-C.el (org-babel-C-execute): Use org-babel-result-cond.
* lisp/ob-R.el (org-babel-R-evaluate-external-process): Use
org-babel-result-cond.
(org-babel-R-evaluate-session): Use org-babel-result-cond.
* lisp/ob-awk.el (org-babel-execute:awk): Use org-babel-result-cond.
* lisp/ob-clojure.el (org-babel-execute:clojure): Use
org-babel-result-cond.
* lisp/ob-emacs-lisp.el (org-babel-execute:emacs-lisp): Use
org-babel-result-cond.
* lisp/ob-fortran.el (org-babel-execute:fortran): Use
org-babel-result-cond.
* lisp/ob-io.el (org-babel-io-evaluate): Use org-babel-result-cond.
* lisp/ob-java.el (org-babel-execute:java): Use org-babel-result-cond.
* lisp/ob-lisp.el (org-babel-execute:lisp): Use org-babel-result-cond.
* lisp/ob-maxima.el (org-babel-execute:maxima): Use
org-babel-result-cond.
* lisp/ob-picolisp.el (org-babel-execute:picolisp): Use
org-babel-result-cond.
* lisp/ob-python.el (org-babel-python-evaluate-external-process): Use
org-babel-result-cond.
(org-babel-python-evaluate-session): Use org-babel-result-cond.
* lisp/ob-scala.el (org-babel-scala-evaluate): Use org-babel-result-cond.
* lisp/ob-sh.el (org-babel-sh-evaluate): Use org-babel-result-cond.
* lisp/ob-shen.el (org-babel-execute:shen): Use org-babel-result-cond.
* lisp/ob-sql.el (org-babel-execute:sql): Use org-babel-result-cond.
* lisp/ob-sqlite.el (org-babel-execute:sqlite): Use
org-babel-result-cond.
* lisp/ob-R.el (org-babel-R-initiate-session): Protect against use of
unbound variable `ess-ask-for-ess-directory´. The default for this
variable is true, so act accordingly if it is found unbound.
* lisp/ob-R.el: Remove initialization with `nil´ from
`ess-ask-for-ess-directory´ and `ess-local-process-name´. Remove
second declaration for `ess-local-process-name´.
* testing/lisp/test-ob-R.el (test-ob-R/simple-session): Bind
`ess-ask-for-ess-directory´ to nil to facilitate batch testing.
* ob-R.el (org-babel-edit-prep:R): Don't set the session.
See the discussion for this issue here:
http://article.gmane.org/gmane.emacs.orgmode/58600
Thanks to Mikhail Titov and to Andrew Young for exploring it.
* lisp/ob-R.el (org-babel-execute:R): Collect and pass along the
result-params.
(org-babel-R-evaluate): Accept result-params and if "scalar" or
"verbatim" don't process output.
(org-babel-R-evaluate-session): Accept result-params and if "scalar"
or "verbatim" don't process output.
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
* lisp/ob-R.el (ess-local-process-name): This variable wasn't known to
be defined.
* lisp/ob-lisp.el (org-babel-lisp-dir-fmt): This defcustom now has a
group specified.
* lisp/ob-tangle.el (org-bracket-link-regexp): This variable wasn't
known to be defined.
(org-babel-tangle-combine-named-blocks): Roll my own version of a
forbidden common lisp function.
* lisp/ob.el (org-babel-sha1-hash): Using a non-deprecated version of
called-interactively.
Slight modification of patch by Christophe Rhodes
* lisp/ob-R.el (org-babel-R-write-object-command): Ensure that all
data is written to the results file before Emacs notices that the file
exists.
* lisp/ob-R.el (org-babel-edit-prep:R): Associate the appropriate R
process with the edit buffer when :session is specified.
* lisp/org-src.el (org-edit-src-code): Allow language-specific
edit-buffer preparation by calling the org-babel-edit-prep:lang
function when it is defined.
* lisp/ob-R.el (org-babel-R-write-object-command): Force evaluation of
user code prior to the R exception-handling, so that errors in user
code are unhandled.
":results graphics" is now required in addition to ":file filename" in
order for graphical output to be sent automatically to file. If :file
is supplied, but not ":results graphics", then the default behavior
obtains: i.e., either "value" or "output" results are written to file,
depending on which of those options is in effect.
* lisp/ob-R.el (org-babel-R-graphical-output-file): New function
returns the name of the output file iff R has been instructed to send
graphical output to file by means of the ":results graphics"
directive.
(org-babel-expand-body:R): Use `org-babel-R-graphical-output-file'
when constructing the R code to evaluate, which may be augmented with
code implementing the writing of graohical output to file.
(org-babel-execute:R): Use `org-babel-R-graphical-output-file' to
determine whether R is taking responsibility for writing output to
file; if so, this is signalled to ob.el by returning a nil result.