* bug#31075: 25.2; shell/eshell password prompt have not hide password input
@ 2018-04-06 1:18 Rugang Chen
2018-06-26 2:22 ` Noam Postavsky
0 siblings, 1 reply; 3+ messages in thread
From: Rugang Chen @ 2018-04-06 1:18 UTC (permalink / raw)
To: 31075
[-- Attachment #1: Type: text/plain, Size: 1852 bytes --]
I found that command sudo has two pattern for english and chinese.
```
urugang@urugang-ubuntu:~$ LC_ALL=C sudo ls
[sudo] password for urugang:
urugang@urugang-ubuntu:~$ LC_ALL=zh_CN.utf8 sudo ls
[sudo] urugang 的密码:
```
So i think we should change comint-password-prompt-regexp from
```
(defcustom comint-password-prompt-regexp
(concat
"\\(^ *\\|"
(regexp-opt
'("Enter" "enter" "Enter same" "enter same" "Enter the" "enter the"
"Old" "old" "New" "new" "'s" "login"
"Kerberos" "CVS" "UNIX" " SMB" "LDAP" "[sudo]" "Repeat" "Bad") t)
" +\\)"
"\\(?:" (regexp-opt password-word-equivalents) "\\|Response\\)"
"\\(?:\\(?:, try\\)? *again\\| (empty for no passphrase)\\| (again)\\)?\
\\(?: for [^::៖]+\\)?[::៖]\\s *\\'")
"Regexp matching prompts for passwords in the inferior process.
This is used by `comint-watch-for-password-prompt'."
:version "24.4"
:type 'regexp
:group 'comint)
```
to
```
(defcustom comint-password-prompt-regexp
(concat
"\\(^ *\\|"
(regexp-opt
'("Enter" "enter" "Enter same" "enter same" "Enter the" "enter the"
"Old" "old" "New" "new" "'s" "login"
"Kerberos" "CVS" "UNIX" " SMB" "LDAP" "[sudo]" "Repeat" "Bad") t)
" +.*\\)"
"\\(?:" (regexp-opt password-word-equivalents) "\\|Response\\)"
"\\(?:\\(?:, try\\)? *again\\| (empty for no passphrase)\\| (again)\\)?\
\\(?: for [^::៖]+\\)?[::៖]\\s *\\'")
"Regexp matching prompts for passwords in the inferior process.
This is used by `comint-watch-for-password-prompt'."
:version "24.4"
:type 'regexp
:group 'comint)
```
In short, change `" +\\)"` to `" +.*\\)"`.
I have a question that why eshell dot not use same password prompt
patter in commit-mode.
```
(setq eshell-password-prompt-regexp comint-password-prompt-regexp)
```
[-- Attachment #2: Type: text/html, Size: 2656 bytes --]
^ permalink raw reply [flat|nested] 3+ messages in thread
* bug#31075: 25.2; shell/eshell password prompt have not hide password input
2018-04-06 1:18 bug#31075: 25.2; shell/eshell password prompt have not hide password input Rugang Chen
@ 2018-06-26 2:22 ` Noam Postavsky
2018-08-24 11:50 ` Noam Postavsky
0 siblings, 1 reply; 3+ messages in thread
From: Noam Postavsky @ 2018-06-26 2:22 UTC (permalink / raw)
To: Rugang Chen; +Cc: 31075
[-- Attachment #1: Type: text/plain, Size: 560 bytes --]
Rugang Chen <urugang@gmail.com> writes:
> In short, change `" +\\)"` to `" +.*\\)"`.
Right. I'm a bit worried that this regexp is getting too many optional
parts, but I can't see a better way to handle this case.
> I have a question that why eshell dot not use same password prompt
> patter in commit-mode.
Historical accident, probably.
> (setq eshell-password-prompt-regexp comint-password-prompt-regexp)
Maybe we should go the other way around though, the eshell regexp looks
much simpler (the patch below does not unify them in either direction).
[-- Attachment #2: patch --]
[-- Type: text/x-diff, Size: 2412 bytes --]
From 099168a7560265ca5ef940879bc4643ba396defd Mon Sep 17 00:00:00 2001
From: Noam Postavsky <npostavs@gmail.com>
Date: Mon, 25 Jun 2018 19:11:41 -0400
Subject: [PATCH v1] Detect Chinese sudo password prompts (Bug#31075)
* lisp/comint.el (comint-password-prompt-regexp): Allow text between
the prompt prefix and password equivalent.
* lisp/eshell/esh-mode.el (eshell-password-prompt-regexp): Accept some
unicode alternatives to ":".
* test/lisp/comint-tests.el (comint-testsuite-password-strings): Add
test case.
---
lisp/comint.el | 3 ++-
lisp/eshell/esh-mode.el | 2 +-
test/lisp/comint-tests.el | 1 +
3 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/lisp/comint.el b/lisp/comint.el
index 71a2b5eca5..03c1193f13 100644
--- a/lisp/comint.el
+++ b/lisp/comint.el
@@ -360,7 +360,8 @@ comint-password-prompt-regexp
"Kerberos" "CVS" "UNIX" " SMB" "LDAP" "PEM" "SUDO"
"[sudo]" "Repeat" "Bad" "Retype")
t)
- " +\\)"
+ ;; Allow for user name to precede password equivalent (Bug#31075).
+ " +.*\\)"
"\\(?:" (regexp-opt password-word-equivalents) "\\|Response\\)"
"\\(?:\\(?:, try\\)? *again\\| (empty for no passphrase)\\| (again)\\)?"
;; "[[:alpha:]]" used to be "for", which fails to match non-English.
diff --git a/lisp/eshell/esh-mode.el b/lisp/eshell/esh-mode.el
index bbb74c3d86..80e22e52a2 100644
--- a/lisp/eshell/esh-mode.el
+++ b/lisp/eshell/esh-mode.el
@@ -182,7 +182,7 @@ eshell-preoutput-filter-functions
:group 'eshell-mode)
(defcustom eshell-password-prompt-regexp
- (format "\\(%s\\).*:\\s *\\'" (regexp-opt password-word-equivalents))
+ (format "\\(%s\\)[^::៖]*[::៖]\\s *\\'" (regexp-opt password-word-equivalents))
"Regexp matching prompts for passwords in the inferior process.
This is used by `eshell-watch-for-password-prompt'."
:type 'regexp
diff --git a/test/lisp/comint-tests.el b/test/lisp/comint-tests.el
index 64898888ba..e8c79b9ed7 100644
--- a/test/lisp/comint-tests.el
+++ b/test/lisp/comint-tests.el
@@ -36,6 +36,7 @@ comint-testsuite-password-strings
"Enter same passphrase again: " ; ssh-keygen
"Passphrase for key root@GNU.ORG: " ; plink
"[sudo] password for user:" ; Ubuntu sudo
+ "[sudo] user 的密码:" ; localized
"Password (again):"
"Enter password:"
"Mot de Passe:" ; localized
--
2.11.0
^ permalink raw reply related [flat|nested] 3+ messages in thread
end of thread, other threads:[~2018-08-24 11:50 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-04-06 1:18 bug#31075: 25.2; shell/eshell password prompt have not hide password input Rugang Chen
2018-06-26 2:22 ` Noam Postavsky
2018-08-24 11:50 ` Noam Postavsky
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.