On Friday 2011-03-18 01:41, Lennart Poettering wrote:
>On Fri, 18.03.11 00:18, Jan Engelhardt (jengelh@medozas.de) wrote:
>
>> Meanwhile, I have two new suggestions.
>
>I have one too (or actually Kay came up with it), and I think you are
>going to like it:
>
>Start with showing input feedback as we currently do. If the user then
>presses TAB the stars disappear, and instead we show "(no echo)" or
>so. Then, the user can proceed with typing his password without
>asterisks.
>[...]
Incorporating Graham's suggestion to use BKSP instead:
The following changes since commit
65c9e467528daa438167853cc91d37bfcb875836:
tainted: don't check if /usr is a mount point, only if it's not already mounted at startup (2011-03-24 22:32:21 +0100)
are available in the git repository at:
git://dev.medozas.de/systemd master
Jan Engelhardt (1):
ask-password: provide a way to activate a silent prompt
src/ask-password-api.c | 11 +++++++----
1 files changed, 7 insertions(+), 4 deletions(-)
You should have received a copy of the GNU General Public License
along with systemd; If not, see <http://www.gnu.org/licenses/>.
***/
-
+#include <stdbool.h>
#include <termios.h>
#include <unistd.h>
#include <sys/poll.h>
int r, ttyfd = -1, notify = -1;
struct pollfd pollfd[2];
bool reset_tty = false;
+ bool silent_mode = false;
enum {
POLL_TTY,
POLL_INOTIFY
if (c == '\n')
break;
else if (c == 21) {
-
while (p > 0) {
p--;
}
} else if (c == '\b' || c == 127) {
- if (p > 0) {
+ if (p == 0 && !silent_mode) {
+ silent_mode = true;
+ loop_write(ttyfd, "(no echo) ", 10, false);
+ } else if (p > 0) {
p--;
if (ttyfd >= 0)
} else {
passphrase[p++] = c;
- if (ttyfd >= 0)
+ if (!silent_mode && ttyfd >= 0)
loop_write(ttyfd, "*", 1, false);
}
}