From fcfe110fef59ed4740f5ab9699d3a6703c13310b Mon Sep 17 00:00:00 2001 From: Eric Schulte Date: Sat, 18 Jul 2009 14:24:02 -0600 Subject: [PATCH] correctly handling exclusive :exports params --- lisp/org-babel.el | 16 ++++++++++------ org-babel.org | 11 ++++++++++- 2 files changed, 20 insertions(+), 7 deletions(-) diff --git a/lisp/org-babel.el b/lisp/org-babel.el index f7ee40528..c2b79bc7a 100644 --- a/lisp/org-babel.el +++ b/lisp/org-babel.el @@ -476,8 +476,9 @@ non-nil." elements of PLISTS override the values of previous element. This takes into account some special considerations for certain parameters when merging lists." - (let (params results vars var ref) + (let (params results exports vars var ref) (flet ((e-merge (exclusive-groups &rest result-params) + ;; maintain exclusivity of mutually exclusive parameters (let (output) (mapc (lambda (new-params) (mapc (lambda (new-param) @@ -502,18 +503,21 @@ parameters when merging lists." ref (match-string 2 (cdr pair)) vars (cons (cons var ref) (assq-delete-all var vars))))) (:results - ;; maintain list of unique :results specifications (setq results (e-merge '(("file" "vector" "scalar") ("replace" "silent")) results (split-string (cdr pair))))) - (t - ;; replace: this covers e.g. :session - (setq params (cons pair (assq-delete-all (car pair) params)))))) + (:exports + (setq exports (e-merge '(("code" "results" "both")) + exports (split-string (cdr pair))))) + (t ;; replace: this covers e.g. :session + (setq params (cons pair (assq-delete-all (car pair) params)))))) plist)) plists)) (setq vars (mapcar (lambda (pair) (format "%s=%s" (car pair) (cdr pair))) vars)) (while vars (setq params (cons (cons :var (pop vars)) params))) - (cons (cons :results (mapconcat 'identity results " ")) params))) + (cons (cons :exports (mapconcat 'identity exports " ")) + (cons (cons :results (mapconcat 'identity results " ")) + params)))) (defun org-babel-clean-text-properties (text) "Strip all properties from text return." diff --git a/org-babel.org b/org-babel.org index f40f82b26..3f5513c3f 100644 --- a/org-babel.org +++ b/org-babel.org @@ -204,7 +204,7 @@ would then be [[#sandbox][the sandbox]]. #+end_src -* Tasks [30/50] +* Tasks [31/51] ** PROPOSED optional timestamp for output Add option to place an (inactive) timestamp at the #+resname, to record when that output was generated. @@ -888,6 +888,15 @@ $0 [[file:snippets/org-mode/sb][sb -- snippet]] waiting for guidance from those more familiar with yasnippets +** DONE exclusive =exports= params + +#+srcname: implement-export-exclusivity +#+begin_src ruby +:this_is_a_test +#+end_src + +#+resname: +: :this_is_a_test ** DONE LoB: allow output in buffer ** DONE allow default header arguments by language org-babel-default-header-args:lang-name