emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] externals/org 2dfdc89535 2/4: org-babel: Do not echo output of re


From: ELPA Syncer
Subject: [elpa] externals/org 2dfdc89535 2/4: org-babel: Do not echo output of resolved noweb references
Date: Mon, 22 Aug 2022 08:57:53 -0400 (EDT)

branch: externals/org
commit 2dfdc895351dd867042a4693a63cc688a7be1fb5
Author: Ihor Radchenko <yantar92@gmail.com>
Commit: Ihor Radchenko <yantar92@gmail.com>

    org-babel: Do not echo output of resolved noweb references
    
    * lisp/ob-core.el (org-babel-execute-src-block): Post-process and
    return results even when "none" results parameter is given.  Document
    that the result value is returned, as it is assumed by
    `org-babel-ref-resolve'.
    (org-babel-result-cond): Do return results even when "none" results
    parameter is given.
    
    According to the manual ":results none" should only affect how the
    results of evaluation are inserted into the buffer.  However, the
    results are simply ignored currently.  Fix this.
    * lisp/ob-ref.el (org-babel-ref-resolve): Set :results to "none" when
    resolving noweb references.  Together with the above changes, this
    makes Org not echo the results value yet returning the value
    programatically.
    
    Reported in 
https://orgmode.org/list/7702b511-c289-5688-c64c-fb673324a63a@posteo.eu
---
 lisp/ob-core.el | 118 ++++++++++++++++++++++++++++----------------------------
 lisp/ob-ref.el  |   2 +-
 2 files changed, 59 insertions(+), 61 deletions(-)

diff --git a/lisp/ob-core.el b/lisp/ob-core.el
index c519015c57..68dd5557c5 100644
--- a/lisp/ob-core.el
+++ b/lisp/ob-core.el
@@ -712,7 +712,7 @@ a list with the following pattern:
 
 ;;;###autoload
 (defun org-babel-execute-src-block (&optional arg info params)
-  "Execute the current source code block.
+  "Execute the current source code block and return the result.
 Insert the results of execution into the buffer.  Source code
 execution and the collection and formatting of results can be
 controlled through a variety of header arguments.
@@ -776,51 +776,50 @@ block."
                     (capitalize lang)
                     (let ((name (nth 4 info)))
                       (if name (format " (%s)" name) "")))
-           (if (member "none" result-params)
-               (progn (funcall cmd body params)
-                      (message "result silenced"))
-             (setq result
-                   (let ((r (funcall cmd body params)))
-                     (if (and (eq (cdr (assq :result-type params)) 'value)
-                              (or (member "vector" result-params)
-                                  (member "table" result-params))
-                              (not (listp r)))
-                         (list (list r))
-                       r)))
-             (let ((file (and (member "file" result-params)
-                              (cdr (assq :file params)))))
-               ;; If non-empty result and :file then write to :file.
-               (when file
-                 ;; If `:results' are special types like `link' or
-                 ;; `graphics', don't write result to `:file'.  Only
-                 ;; insert a link to `:file'.
-                 (when (and result
-                            (not (or (member "link" result-params)
-                                     (member "graphics" result-params))))
-                   (with-temp-file file
-                     (insert (org-babel-format-result
-                              result
-                              (cdr (assq :sep params)))))
-                   ;; Set file permissions if header argument
-                   ;; `:file-mode' is provided.
-                   (when (assq :file-mode params)
-                     (set-file-modes file (cdr (assq :file-mode params)))))
-                 (setq result file))
-               ;; Possibly perform post process provided its
-               ;; appropriate.  Dynamically bind "*this*" to the
-               ;; actual results of the block.
-               (let ((post (cdr (assq :post params))))
-                 (when post
-                   (let ((*this* (if (not file) result
-                                   (org-babel-result-to-file
-                                    file
-                                    (org-babel--file-desc params result)
-                                     'attachment))))
-                     (setq result (org-babel-ref-resolve post))
-                     (when file
-                       (setq result-params (remove "file" result-params))))))
-               (org-babel-insert-result
-                result result-params info new-hash lang)))
+           (setq result
+                 (let ((r (funcall cmd body params)))
+                   (if (and (eq (cdr (assq :result-type params)) 'value)
+                            (or (member "vector" result-params)
+                                (member "table" result-params))
+                            (not (listp r)))
+                       (list (list r))
+                     r)))
+           (let ((file (and (member "file" result-params)
+                            (cdr (assq :file params)))))
+             ;; If non-empty result and :file then write to :file.
+             (when file
+               ;; If `:results' are special types like `link' or
+               ;; `graphics', don't write result to `:file'.  Only
+               ;; insert a link to `:file'.
+               (when (and result
+                          (not (or (member "link" result-params)
+                                 (member "graphics" result-params))))
+                 (with-temp-file file
+                   (insert (org-babel-format-result
+                            result
+                            (cdr (assq :sep params)))))
+                 ;; Set file permissions if header argument
+                 ;; `:file-mode' is provided.
+                 (when (assq :file-mode params)
+                   (set-file-modes file (cdr (assq :file-mode params)))))
+               (setq result file))
+             ;; Possibly perform post process provided its
+             ;; appropriate.  Dynamically bind "*this*" to the
+             ;; actual results of the block.
+             (let ((post (cdr (assq :post params))))
+               (when post
+                 (let ((*this* (if (not file) result
+                                 (org-babel-result-to-file
+                                  file
+                                  (org-babel--file-desc params result)
+                                   'attachment))))
+                   (setq result (org-babel-ref-resolve post))
+                   (when file
+                     (setq result-params (remove "file" result-params))))))
+             (if (member "none" result-params)
+                 (message "result silenced")
+               (org-babel-insert-result
+                result result-params info new-hash lang)))
            (run-hooks 'org-babel-after-execute-hook)
            result)))))))
 
@@ -3229,20 +3228,19 @@ Emacs shutdown."))
   (declare (indent 1) (debug t))
   (org-with-gensyms (params)
     `(let ((,params ,result-params))
-       (unless (member "none" ,params)
-        (if (or (member "scalar" ,params)
-                (member "verbatim" ,params)
-                (member "html" ,params)
-                (member "code" ,params)
-                (member "pp" ,params)
-                (member "file" ,params)
-                (and (or (member "output" ,params)
-                         (member "raw"    ,params)
-                         (member "org"    ,params)
-                         (member "drawer" ,params))
-                     (not (member "table" ,params))))
-            ,scalar-form
-          ,@table-forms)))))
+       (if (or (member "scalar" ,params)
+              (member "verbatim" ,params)
+              (member "html" ,params)
+              (member "code" ,params)
+              (member "pp" ,params)
+              (member "file" ,params)
+              (and (or (member "output" ,params)
+                       (member "raw"    ,params)
+                       (member "org"    ,params)
+                       (member "drawer" ,params))
+                   (not (member "table" ,params))))
+          ,scalar-form
+        ,@table-forms))))
 
 (defun org-babel-temp-file (prefix &optional suffix)
   "Create a temporary file in the `org-babel-temporary-directory'.
diff --git a/lisp/ob-ref.el b/lisp/ob-ref.el
index d5356f18c6..87a7ccf63e 100644
--- a/lisp/ob-ref.el
+++ b/lisp/ob-ref.el
@@ -153,7 +153,7 @@ Emacs Lisp representation of the value of the variable."
            (setq ref split-ref))
          (org-with-wide-buffer
           (goto-char (point-min))
-          (let* ((params (append args '((:results . "silent"))))
+          (let* ((params (append args '((:results . "none"))))
                  (regexp (org-babel-named-data-regexp-for-name ref))
                  (result
                   (catch :found



reply via email to

[Prev in Thread] Current Thread [Next in Thread]