summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lisp/ChangeLog5
-rw-r--r--lisp/progmodes/python.el19
-rw-r--r--test/ChangeLog4
-rw-r--r--test/automated/python-tests.el21
4 files changed, 39 insertions, 10 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index cf866fa9d52..4b8f8f61c43 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,8 @@
+2014-12-27 Fabián Ezequiel Gallina <fgallina@gnu.org>
+
+ * progmodes/python.el (python-shell-buffer-substring): Handle
+ cornercase when region sent starts at point-min.
+
2014-12-27 Eli Zaretskii <eliz@gnu.org>
* language/misc-lang.el (composition-function-table): Add Syriac
diff --git a/lisp/progmodes/python.el b/lisp/progmodes/python.el
index 4a4e320cd65..0d80110f7b7 100644
--- a/lisp/progmodes/python.el
+++ b/lisp/progmodes/python.el
@@ -2523,17 +2523,16 @@ the python shell:
4. Wraps indented regions under an \"if True:\" block so the
interpreter evaluates them correctly."
(let* ((substring (buffer-substring-no-properties start end))
- (buffer-substring-p (save-restriction
- (widen)
- (not (equal (list (point-min) (point-max))
- (list start end)))))
+ (starts-at-point-min-p (save-restriction
+ (widen)
+ (= (point-min) start)))
(encoding (python-info-encoding))
- (fillstr (concat
- (when buffer-substring-p
- (format "# -*- coding: %s -*-\n" encoding))
- (make-string
- (- (line-number-at-pos start)
- (if buffer-substring-p 2 1)) ?\n)))
+ (fillstr (when (not starts-at-point-min-p)
+ (concat
+ (format "# -*- coding: %s -*-\n" encoding)
+ (make-string
+ ;; Substract 2 because of the coding cookie.
+ (- (line-number-at-pos start) 2) ?\n))))
(toplevel-block-p (save-excursion
(goto-char start)
(or (zerop (line-number-at-pos start))
diff --git a/test/ChangeLog b/test/ChangeLog
index 101e9d9caa7..74d46775431 100644
--- a/test/ChangeLog
+++ b/test/ChangeLog
@@ -1,5 +1,9 @@
2014-12-27 Fabián Ezequiel Gallina <fgallina@gnu.org>
+ (python-shell-buffer-substring-9): New test.
+
+2014-12-27 Fabián Ezequiel Gallina <fgallina@gnu.org>
+
* automated/python-tests.el (python-shell-buffer-substring-1)
(python-shell-buffer-substring-2, python-shell-buffer-substring-3)
(python-shell-buffer-substring-4, python-shell-buffer-substring-5)
diff --git a/test/automated/python-tests.el b/test/automated/python-tests.el
index 8fcda58e1e0..a4948571242 100644
--- a/test/automated/python-tests.el
+++ b/test/automated/python-tests.el
@@ -2651,6 +2651,27 @@ class Foo(models.Model):
pass
"))))
+(ert-deftest python-shell-buffer-substring-9 ()
+ "Check substring starting from `point-min'."
+ (python-tests-with-temp-buffer
+ "# coding: utf-8
+
+class Foo(models.Model):
+ pass
+
+class Bar(models.Model):
+ pass
+"
+ (should (string= (python-shell-buffer-substring
+ (point-min)
+ (python-tests-look-at "class Bar(models.Model):"))
+ "# coding: utf-8
+
+class Foo(models.Model):
+ pass
+
+"))))
+
;;; Shell completion