]> granicus.if.org Git - python/commitdiff
(py-postprocess-output-buffer): Return t if an exception was found,
authorBarry Warsaw <barry@python.org>
Thu, 26 Mar 1998 16:08:59 +0000 (16:08 +0000)
committerBarry Warsaw <barry@python.org>
Thu, 26 Mar 1998 16:08:59 +0000 (16:08 +0000)
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).

Misc/python-mode.el

index 6d10dcfbb93ffc7ac796a60b52c21e8a168b3bee..211fd3c0fe373a1adc1a559db2b5e6f85e6aa6b9 100644 (file)
@@ -1133,8 +1133,9 @@ Electric behavior is inhibited inside a string or comment."
       (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 @@ Electric behavior is inhibited inside a string or comment."
        (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))
 
 
 \f
@@ -1263,8 +1265,10 @@ is inserted at the end.  See also the command `py-clear-queue'."
       (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)))
        ))
      )))