diff options
author | Eric Schulte <schulte.eric@gmail.com> | 2013-04-03 18:02:54 -0600 |
---|---|---|
committer | Eric Schulte <schulte.eric@gmail.com> | 2013-04-04 06:41:55 -0600 |
commit | 3932efdf8eb57164f4415937da7461514bd886ca (patch) | |
tree | 5ab632df98abcacb40c473318829562774b6c203 | |
parent | bde2348c9ecc87972d21a46a91d73ad3916650b8 (diff) | |
download | org-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.el | 19 |
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) |