]> git.eshelyaron.com Git - emacs.git/commitdiff
Allow newlines in password prompts again in comint
authorRyan Prior <rprior@protonmail.com>
Thu, 18 Feb 2021 11:48:28 +0000 (12:48 +0100)
committerLars Ingebrigtsen <larsi@gnus.org>
Thu, 18 Feb 2021 11:48:39 +0000 (12:48 +0100)
* lisp/comint.el (comint-password-prompt-regexp): Match all
whitespace (including newline) at the end of the passphrase, not
just space and \t (bug#46609).
(comint-watch-for-password-prompt): Remove trailing newlines from
the prompt (bug#46609).

Copyright-paperwork-exempt: yes

lisp/comint.el

index f5abd1a5bc3b7c6845a006dfe69d83d79d1706fa..24ef0f239b20d5b16b9ecec9e2cb223008ab2ed7 100644 (file)
@@ -366,7 +366,7 @@ This variable is buffer-local."
    "\\(?:" (regexp-opt password-word-equivalents) "\\|Response\\)"
    "\\(?:\\(?:, try\\)? *again\\| (empty for no passphrase)\\| (again)\\)?"
    ;; "[[:alpha:]]" used to be "for", which fails to match non-English.
-   "\\(?: [[:alpha:]]+ .+\\)?[[:blank:]]*[::៖][[:blank:]]*\\'")
+   "\\(?: [[:alpha:]]+ .+\\)?[[:blank:]]*[::៖][[:space:]]*\\'")
   "Regexp matching prompts for passwords in the inferior process.
 This is used by `comint-watch-for-password-prompt'."
   :version "27.1"
@@ -2405,6 +2405,8 @@ This function could be in the list `comint-output-filter-functions'."
          (string-match comint-password-prompt-regexp string))
     (when (string-match "^[ \n\r\t\v\f\b\a]+" string)
       (setq string (replace-match "" t t string)))
+    (when (string-match "\n+\\'" string)
+      (setq string (replace-match "" t t string)))
     (let ((comint--prompt-recursion-depth (1+ comint--prompt-recursion-depth)))
       (if (> comint--prompt-recursion-depth 10)
           (message "Password prompt recursion too deep")