]> git.eshelyaron.com Git - emacs.git/commitdiff
Recompute error positions in python-shell-send-region
authorLars Ingebrigtsen <larsi@gnus.org>
Thu, 3 Dec 2020 09:21:15 +0000 (10:21 +0100)
committerLars Ingebrigtsen <larsi@gnus.org>
Thu, 3 Dec 2020 09:21:19 +0000 (10:21 +0100)
* lisp/progmodes/python.el (python-shell-send-region): Recompute
line positions when evaluating (bug#22934).

lisp/progmodes/python.el

index 091456aa89a883f8457aab0be406c4df68dfe3ad..e9c3b3986aaa0dd769973c482bb97fea97eabdff 100644 (file)
@@ -3197,6 +3197,8 @@ the python shell:
            (line-beginning-position) (line-end-position))))
       (buffer-substring-no-properties (point-min) (point-max)))))
 
+(declare-function compilation-forget-errors "compile")
+
 (defun python-shell-send-region (start end &optional send-main msg
                                        no-cookie)
   "Send the region delimited by START and END to inferior Python process.
@@ -3214,6 +3216,10 @@ process running; defaults to t when called interactively."
          (original-string (buffer-substring-no-properties start end))
          (_ (string-match "\\`\n*\\(.*\\)" original-string)))
     (message "Sent: %s..." (match-string 1 original-string))
+    ;; Recalculate positions to avoid landing on the wrong line if
+    ;; lines have been removed/added.
+    (with-current-buffer (process-buffer process)
+      (compilation-forget-errors))
     (python-shell-send-string string process)))
 
 (defun python-shell-send-statement (&optional send-main msg)