summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Schulte <schulte.eric@gmail.com>2013-04-03 18:02:54 -0600
committerEric Schulte <schulte.eric@gmail.com>2013-04-04 06:41:55 -0600
commit3932efdf8eb57164f4415937da7461514bd886ca (patch)
tree5ab632df98abcacb40c473318829562774b6c203
parentbde2348c9ecc87972d21a46a91d73ad3916650b8 (diff)
downloadorg-mode-3932efdf8eb57164f4415937da7461514bd886ca.tar.gz
intuitive code block post processing w/file results
* lisp/ob-core.el (org-babel-execute-src-block): Make sure we process file results before they are passed to the post-processing code block, and not afterwards. Tangles these two header arguments in the code, but makes for more intuitive behavior and enables important use cases.
-rw-r--r--lisp/ob-core.el19
1 files changed, 14 insertions, 5 deletions
diff --git a/lisp/ob-core.el b/lisp/ob-core.el
index 9b8e516..bba2dfe 100644
--- a/lisp/ob-core.el
+++ b/lisp/ob-core.el
@@ -612,11 +612,6 @@ block."
(not (listp result)))
(list (list result)) result))
(funcall cmd body params)))
- ;; possibly perform post process provided its appropriate
- (when (cdr (assoc :post params))
- (let ((*this* result))
- (setq result (org-babel-ref-resolve
- (cdr (assoc :post params))))))
;; if non-empty result and :file then write to :file
(when (cdr (assoc :file params))
(when result
@@ -625,6 +620,20 @@ block."
(org-babel-format-result
result (cdr (assoc :sep (nth 2 info)))))))
(setq result (cdr (assoc :file params))))
+ ;; possibly perform post process provided its appropriate
+ (when (cdr (assoc :post params))
+ (let ((*this* (if (cdr (assoc :file params))
+ (org-babel-result-to-file
+ (cdr (assoc :file params))
+ (when (assoc :file-desc params)
+ (or (cdr (assoc :file-desc params))
+ result)))
+ result)))
+ (setq result (org-babel-ref-resolve
+ (cdr (assoc :post params))))
+ (when (cdr (assoc :file params))
+ (setq result-params
+ (remove "file" result-params)))))
(org-babel-insert-result
result result-params info new-hash indent lang)
(run-hooks 'org-babel-after-execute-hook)