]> code.delx.au - gnu-emacs/blobdiff - lisp/org/ob-org.el
Update copyright year to 2015
[gnu-emacs] / lisp / org / ob-org.el
index 99c04d8e313e37c9475f0b662a015e0acc5cb42d..ab0db6765aa0aba51e72d1059c50f34d4eb30d3a 100644 (file)
@@ -1,11 +1,10 @@
 ;;; ob-org.el --- org-babel functions for org code block evaluation
 
-;; Copyright (C) 2010-201 Free Software Foundation, Inc.
+;; Copyright (C) 2010-2015 Free Software Foundation, Inc.
 
 ;; Author: Eric Schulte
 ;; Keywords: literate programming, reproducible research
 ;; Homepage: http://orgmode.org
-;; Version: 7.4
 
 ;; This file is part of GNU Emacs.
 
 ;;; Code:
 (require 'ob)
 
-(declare-function org-export-string "org-exp" (string fmt &optional dir))
+(declare-function org-export-string-as "ox"
+                 (string backend &optional body-only ext-plist))
 
 (defvar org-babel-default-header-args:org
-  '((:results . "raw silent") (:exports . "results"))
+  '((:results . "raw silent") (:exports . "code"))
   "Default arguments for evaluating a org source block.")
 
 (defvar org-babel-org-default-header
   "#+TITLE: default empty header\n"
   "Default header inserted during export of org blocks.")
 
+(defun org-babel-expand-body:org (body params)
+  (dolist (var (mapcar #'cdr (org-babel-get-header params :var)))
+    (setq body (replace-regexp-in-string
+               (regexp-quote (format "$%s" (car var)))
+               (format "%s" (cdr var))
+               body nil 'literal)))
+  body)
+
 (defun org-babel-execute:org (body params)
   "Execute a block of Org code with.
 This function is called by `org-babel-execute-src-block'."
   (let ((result-params (split-string (or (cdr (assoc :results params)) "")))
-       (body (replace-regexp-in-string "^," "" body)))
+       (body (org-babel-expand-body:org
+              (replace-regexp-in-string "^," "" body) params)))
     (cond
-     ((member "latex" result-params) (org-export-string body "latex"))
-     ((member "html" result-params)  (org-export-string body "html"))
-     ((member "ascii" result-params) (org-export-string body "ascii"))
+     ((member "latex" result-params)
+      (org-export-string-as (concat "#+Title: \n" body) 'latex t))
+     ((member "html" result-params) (org-export-string-as  body 'html t))
+     ((member "ascii" result-params) (org-export-string-as body 'ascii t))
      (t body))))
 
 (defun org-babel-prep-session:org (session params)
@@ -58,4 +68,5 @@ This function is called by `org-babel-execute-src-block'."
 (provide 'ob-org)
 
 
+
 ;;; ob-org.el ends here