Warn about read-passwd in batch mode

* doc/lispref/minibuf.texi (Intro to Minibuffers): Batch mode is basic.
(Reading a Password): Mention batch mode. 

* lisp/subr.el (read-passwd): Warn about batch mode.

Fixes: debbugs:17839
This commit is contained in:
Glenn Morris 2014-06-26 15:00:42 -04:00
parent 2493e35c36
commit 64c3533166
4 changed files with 20 additions and 3 deletions

View file

@ -1,3 +1,8 @@
2014-06-26 Glenn Morris <rgm@gnu.org>
* minibuf.texi (Intro to Minibuffers): Batch mode is basic.
(Reading a Password): Mention batch mode. (Bug#17839)
2014-06-21 Eli Zaretskii <eliz@gnu.org>
* positions.texi (Screen Lines): Clarify how columns are counted

View file

@ -101,7 +101,9 @@ the minibuffer is in a separate frame. @xref{Minibuffers and Frames}.
When Emacs is running in batch mode, any request to read from the
minibuffer actually reads a line from the standard input descriptor that
was supplied when Emacs was started.
was supplied when Emacs was started. This supports only basic input:
none of the special minibuffer features (history, completion,
password hiding, etc.) are available in batch mode.
@node Text from Minibuffer
@section Reading Text Strings with the Minibuffer
@ -2123,7 +2125,8 @@ function @code{read-passwd}.
@defun read-passwd prompt &optional confirm default
This function reads a password, prompting with @var{prompt}. It does
not echo the password as the user types it; instead, it echoes @samp{.}
for each character in the password.
for each character in the password. (Note that in batch mode, the
input is not hidden.)
The optional argument @var{confirm}, if non-@code{nil}, says to read the
password twice and insist it must be the same both times. If it isn't

View file

@ -1,3 +1,7 @@
2014-06-26 Glenn Morris <rgm@gnu.org>
* subr.el (read-passwd): Warn about batch mode. (Bug#17839)
2014-06-26 Daiki Ueno <ueno@gnu.org>
* emacs-lisp/package.el (package--check-signature):

View file

@ -2006,6 +2006,7 @@ If optional CONFIRM is non-nil, read the password twice to make sure.
Optional DEFAULT is a default password to use instead of empty input.
This function echoes `.' for each character that the user types.
Note that in batch mode, the input is not hidden!
Once the caller uses the password, it can erase the password
by doing (clear-string STRING)."
@ -2045,7 +2046,11 @@ by doing (clear-string STRING)."
(add-hook 'after-change-functions hide-chars-fun nil 'local))
(unwind-protect
(let ((enable-recursive-minibuffers t))
(read-string prompt nil t default)) ; t = "no history"
(read-string
(if noninteractive
(format "%s[INPUT WILL NOT BE HIDDEN!] " prompt) ; bug#17839
prompt)
nil t default)) ; t = "no history"
(when (buffer-live-p minibuf)
(with-current-buffer minibuf
;; Not sure why but it seems that there might be cases where the