summaryrefslogtreecommitdiff
path: root/lisp
diff options
context:
space:
mode:
authorChong Yidong <cyd@gnu.org>2014-01-17 17:45:45 +0100
committerMichael Albinus <michael.albinus@gmx.de>2014-01-17 17:45:45 +0100
commit681ce5d2510a90d537129cea42af86cf1cc11186 (patch)
tree80dc1ccbbb82c97b4df7ca200e64ae7a1653f403 /lisp
parent502963bbf2febcc5fa6b15d5b5bb5d0431d7428e (diff)
downloademacs-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/ChangeLog8
-rw-r--r--lisp/comint.el15
-rw-r--r--lisp/simple.el58
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.