summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPieter van Oostrum <pieter-l@vanoostrum.org>2020-01-16 20:21:37 +0100
committerEli Zaretskii <eliz@gnu.org>2020-01-18 11:54:03 +0200
commit4217bc229b8d1614b3b5c44fd1dadb775ed1ef4a (patch)
tree8d805c05e610cd3d6d7921dde98be59777ab3653
parent74b151195d8c548092bcc00ad1bf267570d9b9ac (diff)
downloademacs-4217bc229b8d1614b3b5c44fd1dadb775ed1ef4a.tar.gz
emacs-4217bc229b8d1614b3b5c44fd1dadb775ed1ef4a.tar.bz2
emacs-4217bc229b8d1614b3b5c44fd1dadb775ed1ef4a.zip
Fix infloop in shell.el
* test/lisp/shell-tests.el (shell-tests-completion-before-semi): Amend the shell.el tests to catch errors such as bug#39057. * lisp/shell.el (shell--parse-pcomplete-arguments): Skip the semi-colon as well. This avoids inflooping when a semi-colon is typed by the user. (Bug#39057) Copyright-paperwork-exempt: yes
-rw-r--r--lisp/shell.el2
-rw-r--r--test/lisp/shell-tests.el3
2 files changed, 2 insertions, 3 deletions
diff --git a/lisp/shell.el b/lisp/shell.el
index 98e830ee497..ecebf937e29 100644
--- a/lisp/shell.el
+++ b/lisp/shell.el
@@ -428,7 +428,7 @@ Thus, this does not include the shell's current directory.")
(save-excursion
(goto-char begin)
(while (< (point) end)
- (skip-chars-forward " \t\n")
+ (skip-chars-forward " \t\n;")
(push (point) begins)
(let ((arg ()))
(while (looking-at
diff --git a/test/lisp/shell-tests.el b/test/lisp/shell-tests.el
index 6d262f8e7c9..7113cb941c1 100644
--- a/test/lisp/shell-tests.el
+++ b/test/lisp/shell-tests.el
@@ -34,8 +34,7 @@
(with-temp-buffer
(shell-mode)
(insert "cd ba;")
- (forward-char -1)
(should (equal (shell--parse-pcomplete-arguments)
- '(("cd" "ba") 1 4)))))
+ '(("cd" "ba" "") 1 4)))))
;;; shell-tests.el ends here