From 4217bc229b8d1614b3b5c44fd1dadb775ed1ef4a Mon Sep 17 00:00:00 2001 From: Pieter van Oostrum Date: Thu, 16 Jan 2020 20:21:37 +0100 Subject: [PATCH] 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 --- lisp/shell.el | 2 +- test/lisp/shell-tests.el | 3 +-- 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 -- 2.39.2