diff options
author | Chong Yidong <cyd@gnu.org> | 2014-01-17 17:45:45 +0100 |
---|---|---|
committer | Michael Albinus <michael.albinus@gmx.de> | 2014-01-17 17:45:45 +0100 |
commit | 681ce5d2510a90d537129cea42af86cf1cc11186 (patch) | |
tree | 80dc1ccbbb82c97b4df7ca200e64ae7a1653f403 /lisp | |
parent | 502963bbf2febcc5fa6b15d5b5bb5d0431d7428e (diff) | |
download | emacs-681ce5d2510a90d537129cea42af86cf1cc11186.tar.gz |
Fix Bug#13124.
* simple.el (password-word-equivalents): New defcustom.
* comint.el (comint-password-prompt-regexp): Use it. Bump version to 24.4.
(comint-watch-for-password-prompt): Let-bind `case-fold-search' to t.
Diffstat (limited to 'lisp')
-rw-r--r-- | lisp/ChangeLog | 8 | ||||
-rw-r--r-- | lisp/comint.el | 15 | ||||
-rw-r--r-- | lisp/simple.el | 58 |
3 files changed, 73 insertions, 8 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 25c4e9e75b7..44bbc9cb4af 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,11 @@ +2014-01-17 Chong Yidong <cyd@gnu.org> + + * simple.el (password-word-equivalents): New defcustom. + * comint.el (comint-password-prompt-regexp): Use it. Bump version + to 24.4. + (comint-watch-for-password-prompt): Let-bind `case-fold-search' + to t. (Bug#13124) + 2014-01-17 Dmitry Gutov <dgutov@yandex.ru> * progmodes/ruby-mode.el (ruby-alignable-keywords): New constant. diff --git a/lisp/comint.el b/lisp/comint.el index 7407392e021..6e57fdc1c45 100644 --- a/lisp/comint.el +++ b/lisp/comint.el @@ -347,14 +347,12 @@ This variable is buffer-local." "Old" "old" "New" "new" "'s" "login" "Kerberos" "CVS" "UNIX" " SMB" "LDAP" "[sudo]" "Repeat" "Bad") t) " +\\)" - (regexp-opt - '("password" "Password" "passphrase" "Passphrase" - "pass phrase" "Pass phrase" "Response")) + "\\(?:" (regexp-opt password-word-equivalents) "\\|Response\\)" "\\(?:\\(?:, try\\)? *again\\| (empty for no passphrase)\\| (again)\\)?\ -\\(?: for .+\\)?:\\s *\\'") +\\(?: for [^::៖]+\\)?[::៖]\\s *\\'") "Regexp matching prompts for passwords in the inferior process. This is used by `comint-watch-for-password-prompt'." - :version "24.1" + :version "24.4" :type 'regexp :group 'comint) @@ -2318,7 +2316,8 @@ process if STRING contains a password prompt defined by `comint-password-prompt-regexp'. This function could be in the list `comint-output-filter-functions'." - (when (string-match comint-password-prompt-regexp string) + (when (let ((case-fold-search t)) + (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))) (send-invisible string))) @@ -3631,8 +3630,8 @@ This function does not need to be invoked by the end user." ;; If we see the prompt, tidy up ;; We'll look for the prompt in the original string, so nobody can ;; clobber it - (and (string-match comint-redirect-finished-regexp - (concat comint-redirect-previous-input-string + (and (string-match comint-redirect-finished-regexp + (concat comint-redirect-previous-input-string input-string)) (progn (and comint-redirect-verbose diff --git a/lisp/simple.el b/lisp/simple.el index ff32d204d17..62941d01a9e 100644 --- a/lisp/simple.el +++ b/lisp/simple.el @@ -2555,6 +2555,64 @@ which is defined in the `warnings' library.\n") (setq buffer-undo-list nil) t)) +(defcustom password-word-equivalents + '("password" "passphrase" "pass phrase" + "كلمة السر" ; ar + "গুপ্তশব্দ" ; as + "পাসওয়ার্ড" ; bn_IN + "contrasenya" ; ca + "heslo" ; cs + "adgangskode" ; da + "passwort" ; de + "pasvorto" ; eo + "contraseña" ; es + "pasahitza" ; eu + "salasana" ; fi + "mot de passe" ; fr + "પાસવર્ડ" ; gu + "ססמה" ; he + "शब्दकूट" ; hi + "lozinka" ; hr + "Jelszó: " ; hu + "パスワード" ; ja + "Пароль" ; kk + "ಗುಪ್ತಪದ" ; kn + "암호" ; ko + "ពាក្យសម្ងាត់" ; km + "slaptažodis" ; lt + "അടയാളവാക്ക്" ; ml + "गुप्तशब्द" ; mr + "passord" ; nb + "wachtwoord" ; nl + "ପ୍ରବେଶ ସଙ୍କେତ" ; or + "ਪਾਸਵਰਡ" ; pa + "hasło" ; pl + "senha" ; pt + "Пароль" ; ru + "රහස්පදය" ; si + "Heslo" ; sk + "geslo" ; sl + "lozinka" ; sr + "Лозинка" ; sr + "lösenord" ; sv + "கடவுச்சொல்" ; ta + "సంకేతపదము" ; te + "parola" ; tr + "Пароль" ; uk + "Mật khẩu" ; vi + "密码" ; zh_CN + "密碼" ; zh_TW + "iphasiwedi" ; zu + ) + "List of words equivalent to \"password\". +This is used by Shell mode and other parts of Emacs to recognize +password prompts, including prompts in languages other than +English. Different case choices should not be assumed to be +included; callers should bind `case-fold-search' to t." + :type '(repeat string) + :version "24.4" + :group 'processes) + (defvar shell-command-history nil "History list for some commands that read shell commands. |