diff Misc/python-mode.el @ 7743:269a327d6305 legacy-trunk

(py-postprocess-output-buffer): Return t if an exception was found, otherwise return nil. (py-execute-region): When executing the buffer asynchronously in a subprocess, if an exception occurred, show both the output buffer and the file containing the exception, leaving point on the source line containing bottom-most error in the traceback. If no exception occurred, jump to the output buffer (no change).
author Barry Warsaw <barry@python.org>
date Thu, 26 Mar 1998 16:08:59 +0000
parents 5bf66ab4dfb6
children db94b15bd640
line wrap: on
line diff
--- a/Misc/python-mode.el	Wed Mar 25 23:27:17 1998 +0000
+++ b/Misc/python-mode.el	Thu Mar 26 16:08:59 1998 +0000
@@ -1133,8 +1133,9 @@
       (set-buffer curbuf))))
 
 (defun py-postprocess-output-buffer (buf)
-  ;; Highlight exceptions found in BUF
-  (let (line file bol)
+  ;; Highlight exceptions found in BUF.  If an exception occurred
+  ;; return t, otherwise return nil.  BUF must exist.
+  (let (line file bol err-p)
     (save-excursion
       (set-buffer buf)
       (beginning-of-buffer)
@@ -1142,11 +1143,12 @@
 	(setq file (match-string 1)
 	      line (string-to-int (match-string 2))
 	      bol (py-point 'bol))
-	(py-highlight-line bol (py-point 'eol) file line))
-      (when (and py-jump-on-exception line)
-	(beep)
-	(py-jump-to-exception file line))
-      )))
+	(py-highlight-line bol (py-point 'eol) file line)))
+    (when (and py-jump-on-exception line)
+      (beep)
+      (py-jump-to-exception file line)
+      (setq err-p t))
+    err-p))
 
 
 
@@ -1263,8 +1265,10 @@
       (if (not (get-buffer py-output-buffer))
 	  (message "No output.")
 	(setq py-exception-buffer (current-buffer))
-	(py-postprocess-output-buffer py-output-buffer)
-	(pop-to-buffer py-output-buffer)
+	(let ((err-p (py-postprocess-output-buffer py-output-buffer)))
+	  (pop-to-buffer py-output-buffer)
+	  (if err-p
+	      (pop-to-buffer py-exception-buffer)))
 	))
      )))