Merge commit 'origin/master'

This commit is contained in:
Dan Davison 2009-07-24 22:11:12 -04:00
commit e563fd361e
2 changed files with 85 additions and 3 deletions

View file

@ -0,0 +1,70 @@
;;; org-babel-dot.el --- org-babel functions for dot evaluation
;; Copyright (C) 2009 Eric Schulte
;; Author: Eric Schulte
;; Keywords: literate programming, reproducible research
;; Homepage: http://orgmode.org
;; Version: 0.01
;;; License:
;; This program is free software; you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;;
;; This program is distributed in the hope that it will be useful,
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;; GNU General Public License for more details.
;;
;; You should have received a copy of the GNU General Public License
;; along with GNU Emacs; see the file COPYING. If not, write to the
;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
;; Boston, MA 02110-1301, USA.
;;; Commentary:
;; Org-Babel support for evaluating dot source code.
;;
;; For information on dot see http://www.graphviz.org/
;;
;; This differs from most standard languages in that
;;
;; 1) there is no such thing as a "session" in dot
;;
;; 2) we are generally only going to return results of type "file"
;;
;; 3) we are adding the "file" and "cmdline" header arguments
;;
;; 4) there are no variables (at least for now)
;;; Code:
(require 'org-babel)
(org-babel-add-interpreter "dot")
(add-to-list 'org-babel-tangle-langs '("dot" "dot"))
(defvar org-babel-default-header-args:dot '((:results . "file") (:exports . "results"))
"Default arguments to use when evaluating a dot source block.")
(defun org-babel-execute:dot (body params)
"Execute a block of Dot code with org-babel. This function is
called by `org-babel-execute-src-block'."
(message "executing Dot source code block")
(let ((result-params (split-string (or (cdr (assoc :results params)) "")))
(out-file (cdr (assoc :file params)))
(cmdline (cdr (assoc :cmdline params)))
(in-file (make-temp-file "org-babel-dot")))
(with-temp-file in-file (insert body))
(message (concat "dot " in-file " " cmdline " -o " out-file))
(shell-command (concat "dot " in-file " " cmdline " -o " out-file))
out-file))
(defun org-babel-prep-session:dot (session params)
(error "Dot does not support sessions"))
(provide 'org-babel-dot)
;;; org-babel-dot.el ends here

View file

@ -2141,7 +2141,7 @@ This is currently working only with emacs lisp as in the following
example in the [[* emacs lisp source reference][emacs lisp source reference]]. example in the [[* emacs lisp source reference][emacs lisp source reference]].
** TODO Add languages [2/6] ** TODO Add languages [3/6]
I'm sure there are many more that aren't listed here. Please add I'm sure there are many more that aren't listed here. Please add
them, and bubble any that you particularly care about up to the top. them, and bubble any that you particularly care about up to the top.
@ -2277,9 +2277,21 @@ plot data using 1:2 with lines
#+resname: #+resname:
[[file:session.png][session.png]] [[file:session.png][session.png]]
*** TODO dot *** DONE dot
(see [[* file result types][file result types]]) (see [[* file result types][file result types]])
#+srcname: implementing-dot-support
#+begin_src dot :file test-dot.png :cmdline -Tpng
digraph data_relationships {
"data_requirement" [shape=Mrecord, label="{DataRequirement|description\lformat\l}"]
"data_product" [shape=Mrecord, label="{DataProduct|name\lversion\lpoc\lformat\l}"]
"data_requirement" -> "data_product"
}
#+end_src
#+resname:
[[file:test-dot.png][test-dot.png]]
*** TODO asymptote *** TODO asymptote
(see [[* file result types][file result types]]) (see [[* file result types][file result types]])
@ -3524,7 +3536,7 @@ of these tests may fail.
| R number evaluation | bug-R-number-evaluation | | 2 | 2 | pass | | R number evaluation | bug-R-number-evaluation | | 2 | 2 | pass |
| multi-line ruby blocks | multi-line-ruby-test | | 2 | 2 | pass | | multi-line ruby blocks | multi-line-ruby-test | | 2 | 2 | pass |
| forcing vector results | test-forced-vector-results | | Array | Array | pass | | forcing vector results | test-forced-vector-results | | Array | Array | pass |
| deeply nested arguments | deeply-nested-args-bug | | 8 | 8 | pass | | deeply nested arguments | deeply-nested-args-bug | | 4 | 4 | pass |
|-------------------------+----------------------------+-----+-------------+-------------+------| |-------------------------+----------------------------+-----+-------------+-------------+------|
| sessions | | | | | pass | | sessions | | | | | pass |
|-------------------------+----------------------------+-----+-------------+-------------+------| |-------------------------+----------------------------+-----+-------------+-------------+------|