[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] emacs-24 75e114f: Fix line numbers on Python shell.
From: |
Fabián Ezequiel Gallina |
Subject: |
[Emacs-diffs] emacs-24 75e114f: Fix line numbers on Python shell. |
Date: |
Tue, 23 Dec 2014 03:45:37 +0000 |
branch: emacs-24
commit 75e114fa3b0b45a6356ae3fb580e8c928b45c258
Author: Fabián Ezequiel Gallina <address@hidden>
Commit: Fabián Ezequiel Gallina <address@hidden>
Fix line numbers on Python shell.
* lisp/progmodes/python.el (python-shell--save-temp-file): Do not
append coding cookie.
(python-shell-send-string): Generalize for
python-shell-send-region.
(python--use-fake-loc): Delete var.
(python-shell-buffer-substring): Cleanup fake-loc logic.
(python-shell-send-region): Remove fake-loc logic, simplify.
---
lisp/ChangeLog | 11 +++++++++++
lisp/progmodes/python.el | 40 ++++++++++------------------------------
2 files changed, 21 insertions(+), 30 deletions(-)
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index c00d6bc..6307657 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,14 @@
+2014-12-23 Fabián Ezequiel Gallina <address@hidden>
+
+ Fix line numbers on Python shell.
+ * progmodes/python.el (python-shell--save-temp-file): Do not
+ append coding cookie.
+ (python-shell-send-string): Generalize for
+ python-shell-send-region.
+ (python--use-fake-loc): Delete var.
+ (python-shell-buffer-substring): Cleanup fake-loc logic.
+ (python-shell-send-region): Remove fake-loc logic, simplify.
+
2014-12-22 Fabián Ezequiel Gallina <address@hidden>
* progmodes/python.el (python-indent-post-self-insert-function):
diff --git a/lisp/progmodes/python.el b/lisp/progmodes/python.el
index 6d3916c..632659c 100644
--- a/lisp/progmodes/python.el
+++ b/lisp/progmodes/python.el
@@ -2400,9 +2400,12 @@ there for compatibility with CEDET.")
(concat (file-remote-p default-directory) "/tmp")
temporary-file-directory))
(temp-file-name (make-temp-file "py"))
+ ;; XXX: Python's built-in compile function accepts utf-8 as
+ ;; input so there's no need to enforce a coding cookie. In
+ ;; the future making `coding-system-for-write' match the
+ ;; current buffer's coding may be a good idea.
(coding-system-for-write 'utf-8))
(with-temp-file temp-file-name
- (insert "# -*- coding: utf-8 -*-\n") ;Not needed for Python-3.
(insert string)
(delete-trailing-whitespace))
temp-file-name))
@@ -2412,8 +2415,9 @@ there for compatibility with CEDET.")
(interactive "sPython command: ")
(let ((process (or process (python-shell-get-or-create-process))))
(if (string-match ".\n+." string) ;Multiline.
- (let* ((temp-file-name (python-shell--save-temp-file string)))
- (python-shell-send-file temp-file-name process temp-file-name t))
+ (let* ((temp-file-name (python-shell--save-temp-file string))
+ (file-name (or (buffer-file-name) temp-file-name)))
+ (python-shell-send-file file-name process temp-file-name t))
(comint-send-string process string)
(when (or (not (string-match "\n\\'" string))
(string-match "\n[ \t].*\n?\\'" string))
@@ -2498,12 +2502,6 @@ Returns the output. See
`python-shell-send-string-no-output'."
(define-obsolete-function-alias
'python-send-string 'python-shell-internal-send-string "24.3")
-(defvar python--use-fake-loc nil
- "If non-nil, use `compilation-fake-loc' to trace errors back to the buffer.
-If nil, regions of text are prepended by the corresponding number of empty
-lines and Python is told to output error messages referring to the whole
-source file.")
-
(defun python-shell-buffer-substring (start end &optional nomain)
"Send buffer substring from START to END formatted for shell.
This is a wrapper over `buffer-substring' that takes care of
@@ -2516,8 +2514,7 @@ the python shell:
3. Wraps indented regions under an \"if True:\" block so the
interpreter evaluates them correctly."
(let ((substring (buffer-substring-no-properties start end))
- (fillstr (unless python--use-fake-loc
- (make-string (1- (line-number-at-pos start)) ?\n)))
+ (fillstr (make-string (1- (line-number-at-pos start)) ?\n))
(toplevel-block-p (save-excursion
(goto-char start)
(or (zerop (line-number-at-pos start))
@@ -2529,11 +2526,6 @@ the python shell:
(if fillstr (insert fillstr))
(insert substring)
(goto-char (point-min))
- (unless python--use-fake-loc
- ;; python-shell--save-temp-file adds an extra coding line, which would
- ;; throw off the line-counts, so let's try to compensate here.
- (if (looking-at "[ \t]*[#\n]")
- (delete-region (point) (line-beginning-position 2))))
(when (not toplevel-block-p)
(insert "if True:")
(delete-region (point) (line-end-position)))
@@ -2557,26 +2549,14 @@ the python shell:
(line-number-at-pos if-name-main-start)) ?\n)))))
(buffer-substring-no-properties (point-min) (point-max)))))
-(declare-function compilation-fake-loc "compile"
- (marker file &optional line col))
-
(defun python-shell-send-region (start end &optional nomain)
"Send the region delimited by START and END to inferior Python process."
(interactive "r")
- (let* ((python--use-fake-loc
- (or python--use-fake-loc (not buffer-file-name)))
- (string (python-shell-buffer-substring start end nomain))
+ (let* ((string (python-shell-buffer-substring start end nomain))
(process (python-shell-get-or-create-process))
(_ (string-match "\\`\n*\\(.*\\)" string)))
(message "Sent: %s..." (match-string 1 string))
- (let* ((temp-file-name (python-shell--save-temp-file string))
- (file-name (or (buffer-file-name) temp-file-name)))
- (python-shell-send-file file-name process temp-file-name t)
- (unless python--use-fake-loc
- (with-current-buffer (process-buffer process)
- (compilation-fake-loc (copy-marker start) temp-file-name
- 2)) ;; Not 1, because of the added coding line.
- ))))
+ (python-shell-send-string string process)))
(defun python-shell-send-buffer (&optional arg)
"Send the entire buffer to inferior Python process.
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] emacs-24 75e114f: Fix line numbers on Python shell.,
Fabián Ezequiel Gallina <=