From 8ae5b59acdaaa271c797756bfe7f9479e1f9a277 Mon Sep 17 00:00:00 2001 From: Eric Schulte Date: Fri, 16 Nov 2012 08:40:46 -0700 Subject: [PATCH] "really-silent" header avoids result post-process This patch introduces a new header argument which hide all code block results from Emacs so that they are not processed into Emacs-lisp objects; a process which may take a great deal of time for large objects. * lisp/ob.el (org-babel-common-header-args-w-values): Adding the new "really-silent" header argument. (org-babel-execute-src-block): Don't do *any* result processing if the "really-silent" header argument has been specified. (org-babel-sha1-hash): Remove the really-silent header argument from header arg lists when calculating cache sums. (org-babel-insert-result): Flesh out some documentation. --- lisp/ob.el | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/lisp/ob.el b/lisp/ob.el index 69a5c58..167fe1a 100644 --- a/lisp/ob.el +++ b/lisp/ob.el @@ -421,7 +421,7 @@ then run `org-babel-pop-to-session'." (padline . ((yes no))) (results . ((file list vector table scalar verbatim) (raw html latex org code pp drawer) - (replace silent append prepend) + (replace silent really-silent append prepend) (output value))) (rownames . ((no yes))) (sep . :any) @@ -562,6 +562,8 @@ block." (message "executing %s code block%s..." (capitalize lang) (if (nth 4 info) (format " (%s)" (nth 4 info)) "")) + (if (member "really-silent" result-params) + (message "result silenced") (setq result ((lambda (result) (if (and (eq (cdr (assoc :result-type params)) 'value) @@ -581,7 +583,8 @@ block." (org-babel-insert-result result result-params info new-hash indent lang) (run-hooks 'org-babel-after-execute-hook) - result)) + result + ))) (setq call-process-region 'org-babel-call-process-region-original)))))) (defun org-babel-expand-body:generic (body params &optional var-lines) @@ -1028,7 +1031,8 @@ the current subtree." (sort (copy-sequence (nth 2 info)) (lambda (a b) (string< (car a) (car b))))) (let* ((rm (lambda (lst) - (dolist (p '("replace" "silent" "append" "prepend")) + (dolist (p '("replace" "silent" "really-silent" + "append" "prepend")) (setq lst (remove p lst))) lst)) (norm (lambda (arg) @@ -1851,7 +1855,10 @@ RESULT-PARAMS can take the following values: replace - (default option) insert results after the source block replacing any previously inserted results -silent -- no results are inserted +silent -- no results are inserted into the Org-mode buffer but + the results are echoed to the minibuffer and are + ingested by Emacs (a potentially time consuming + process) file ---- the results are interpreted as a file path, and are inserted into the buffer using the Org-mode file syntax -- 1.8.0