emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: Kyle Meyer <kyle@kyleam.com>
To: Greg Minshall <minshall@umich.edu>, emacs-orgmode@gnu.org
Subject: [PATCH] ob-core: Display warning on failure to read results
Date: Thu, 21 May 2020 04:16:40 +0000	[thread overview]
Message-ID: <87d06xsz13.fsf@kyleam.com> (raw)
In-Reply-To: <2449663.1588516024@apollo2.minshall.org>

Greg Minshall writes:

> hi.  i'm running R code from an org mode file.  i was having a problem
> where a code block that *was* returning a value result was not returning
> the results into the buffer.
>
> (after long head-scratching) this appears to be because my code was
> returning more lines of results than org-table-convert-region-max-lines.
>
> but, i was *not* seeing any error message, nothing to indicate to me why
> i was getting no results.  in the test program below, when trying to
> return more than 1000 lines, one sees, in the echo area, "Code block
> returned no value".  if you go to *Messages*, there you can see an error
> message.

Thanks for the report and for providing a minimal example.

> i think somehow org/babel should make sure the user sees what limitation
> s/he is running into.

I agree.  Here's my suggestion.

-- >8 --
Subject: [PATCH] ob-core: Display warning on failure to read results

* lisp/ob-core.el (org-babel-import-elisp-from-file): Show handled
errors with display-warning rather than a message because the latter
is quickly overridden by subsequent messages, making it difficult if
not impossible for the user to spot.

The scope of the save-window-excursion call would need to be reduced
for the display-warning buffer to be shown, but nothing appears to
change the window configuration, so just drop the
save-window-excursion call.

Reported-by: Greg Minshall <minshall@umich.edu>
<2449663.1588516024@apollo2.minshall.org>
---
 lisp/ob-core.el | 39 +++++++++++++++++++++------------------
 1 file changed, 21 insertions(+), 18 deletions(-)

diff --git a/lisp/ob-core.el b/lisp/ob-core.el
index ee0dc3d72..2a75ae734 100644
--- a/lisp/ob-core.el
+++ b/lisp/ob-core.el
@@ -2941,24 +2941,27 @@ (defun org-babel--string-to-number (string)
 (defun org-babel-import-elisp-from-file (file-name &optional separator)
   "Read the results located at FILE-NAME into an elisp table.
 If the table is trivial, then return it as a scalar."
-  (save-window-excursion
-    (let ((result
-	   (with-temp-buffer
-	     (condition-case err
-		 (progn
-		   (org-table-import file-name separator)
-		   (delete-file file-name)
-		   (delq nil
-			 (mapcar (lambda (row)
-				   (and (not (eq row 'hline))
-					(mapcar #'org-babel-string-read row)))
-				 (org-table-to-lisp))))
-	       (error (message "Error reading results: %s" err) nil)))))
-      (pcase result
-	(`((,scalar)) scalar)
-	(`((,_ ,_ . ,_)) result)
-	(`(,scalar) scalar)
-	(_ result)))))
+  (let ((result
+	 (with-temp-buffer
+	   (condition-case err
+	       (progn
+		 (org-table-import file-name separator)
+		 (delete-file file-name)
+		 (delq nil
+		       (mapcar (lambda (row)
+				 (and (not (eq row 'hline))
+				      (mapcar #'org-babel-string-read row)))
+			       (org-table-to-lisp))))
+	     (error
+	      (display-warning 'org-babel
+			       (format "Error reading results: %S" err)
+			       :error)
+	      nil)))))
+    (pcase result
+      (`((,scalar)) scalar)
+      (`((,_ ,_ . ,_)) result)
+      (`(,scalar) scalar)
+      (_ result))))
 
 (defun org-babel-string-read (cell)
   "Strip nested \"s from around strings."

base-commit: 5e2490bdf29a1eeff91b631425c38309cf368690
-- 
2.26.2



  reply	other threads:[~2020-05-21  4:17 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-05-03 14:27 Bug: Code block returned no value [9.1.9 (release_9.1.9-65-g5e4542 @ /usr/share/emacs/26.3/lisp/org/)] Greg Minshall
2020-05-21  4:16 ` Kyle Meyer [this message]
2020-05-21 21:55   ` [PATCH] ob-core: Display warning on failure to read results Greg Minshall
2020-05-24 16:04   ` Kyle Meyer

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.orgmode.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87d06xsz13.fsf@kyleam.com \
    --to=kyle@kyleam.com \
    --cc=emacs-orgmode@gnu.org \
    --cc=minshall@umich.edu \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).