Просмотр исходного кода

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>
Kyle Meyer 4 лет назад
Родитель
Сommit
14878f3f9a
1 измененных файлов с 21 добавлено и 18 удалено
  1. 21 18
      lisp/ob-core.el

+ 21 - 18
lisp/ob-core.el

@@ -2989,24 +2989,27 @@ Otherwise return nil."
 (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."