diff options
Diffstat (limited to 'lisp/org/ob-awk.el')
-rw-r--r-- | lisp/org/ob-awk.el | 33 |
1 files changed, 16 insertions, 17 deletions
diff --git a/lisp/org/ob-awk.el b/lisp/org/ob-awk.el index 373d5fd9877..a9215d0b1c8 100644 --- a/lisp/org/ob-awk.el +++ b/lisp/org/ob-awk.el @@ -59,34 +59,33 @@ called by `org-babel-execute-src-block'" (cmd-line (cdr (assoc :cmd-line params))) (in-file (cdr (assoc :in-file params))) (full-body (org-babel-expand-body:awk body params)) - (code-file ((lambda (file) (with-temp-file file (insert full-body)) file) - (org-babel-temp-file "awk-"))) - (stdin ((lambda (stdin) + (code-file (let ((file (org-babel-temp-file "awk-"))) + (with-temp-file file (insert full-body)) file)) + (stdin (let ((stdin (cdr (assoc :stdin params)))) (when stdin (let ((tmp (org-babel-temp-file "awk-stdin-")) (res (org-babel-ref-resolve stdin))) (with-temp-file tmp (insert (org-babel-awk-var-to-awk res))) - tmp))) - (cdr (assoc :stdin params)))) + tmp)))) (cmd (mapconcat #'identity (remove nil (list org-babel-awk-command "-f" code-file cmd-line in-file)) " "))) (org-babel-reassemble-table - ((lambda (results) - (when results - (org-babel-result-cond result-params - results - (let ((tmp (org-babel-temp-file "awk-results-"))) - (with-temp-file tmp (insert results)) - (org-babel-import-elisp-from-file tmp))))) - (cond - (stdin (with-temp-buffer - (call-process-shell-command cmd stdin (current-buffer)) - (buffer-string))) - (t (org-babel-eval cmd "")))) + (let ((results + (cond + (stdin (with-temp-buffer + (call-process-shell-command cmd stdin (current-buffer)) + (buffer-string))) + (t (org-babel-eval cmd ""))))) + (when results + (org-babel-result-cond result-params + results + (let ((tmp (org-babel-temp-file "awk-results-"))) + (with-temp-file tmp (insert results)) + (org-babel-import-elisp-from-file tmp))))) (org-babel-pick-name (cdr (assoc :colname-names params)) (cdr (assoc :colnames params))) (org-babel-pick-name |