aboutsummaryrefslogtreecommitdiffstats
path: root/lisp
diff options
context:
space:
mode:
authorFabián Ezequiel Gallina <[email protected]>2014-06-21 11:14:54 -0300
committerFabián Ezequiel Gallina <[email protected]>2014-06-21 11:14:54 -0300
commit656f99beebbe122d84754f4f25c4b1b8c53e8941 (patch)
treeddf72d5ce2bdbcbc5fe83d0959f4feba08e53ea6 /lisp
parentedd112b7f8956e727b21976e9e6a36256d724c24 (diff)
Fix completion retrieval parsing.
* progmodes/python.el (python-mode): (python-util-strip-string): New function. (python-shell-completion-get-completions): Use it. * automated/python-tests.el (python-util-strip-string-1): New test. Fixes: debbugs:17209
Diffstat (limited to 'lisp')
-rw-r--r--lisp/ChangeLog7
-rw-r--r--lisp/progmodes/python.el14
2 files changed, 19 insertions, 2 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 46f8725382..9af92aebf3 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,10 @@
+2014-06-21 Fabián Ezequiel Gallina <[email protected]>
+
+ Fix completion retrieval parsing (bug#17209).
+ * progmodes/python.el (python-mode):
+ (python-util-strip-string): New function.
+ (python-shell-completion-get-completions): Use it.
+
2014-06-21 Eli Zaretskii <[email protected]>
* skeleton.el (skeleton-insert): Fix last change.
diff --git a/lisp/progmodes/python.el b/lisp/progmodes/python.el
index f127d4b702..f99a580b37 100644
--- a/lisp/progmodes/python.el
+++ b/lisp/progmodes/python.el
@@ -2463,8 +2463,10 @@ LINE is used to detect the context on how to complete given INPUT."
(and completion-code
(> (length input) 0)
(with-current-buffer (process-buffer process)
- (let ((completions (python-shell-send-string-no-output
- (format completion-code input) process)))
+ (let ((completions
+ (python-util-strip-string
+ (python-shell-send-string-no-output
+ (format completion-code input) process))))
(and (> (length completions) 2)
(split-string completions
"^'\\|^\"\\|;\\|'$\\|\"$" t)))))))
@@ -3644,6 +3646,14 @@ returned as is."
n (1- n)))
(reverse acc))))
+(defun python-util-strip-string (string)
+ "Strip STRING whitespace and newlines from end and beginning."
+ (replace-regexp-in-string
+ (rx (or (: string-start (* (any whitespace ?\r ?\n)))
+ (: (* (any whitespace ?\r ?\n)) string-end)))
+ ""
+ string))
+
(defun python-electric-pair-string-delimiter ()
(when (and electric-pair-mode