Subject: bug#17839: 24.4.50; read-passwd echoes password input in non-interactive sessions

From: Eli Zaretskii <[email-masked]>
Date: Fri, 11 Jul 2014 13:03:14 +0300

> Date: Fri, 11 Jul 2014 12:45:14 +0300
> From: Eli Zaretskii <[email-masked]>
> Cc: [email-masked], [email-masked], [email-masked]
> 
> > From: Michael Albinus <[email-masked]>
> > Date: Fri, 11 Jul 2014 11:15:14 +0200
> > Cc: Andreas Schwab <[email-masked]>, [email-masked],
> > 	Sebastian Wiesner <[email-masked]>
> > 
> > OK. There is now `read-hide-char', which triggers it. Users can let-bind
> > it to the character they prefer for hiding. This will be used in
> > `read-passwd', choosing the default ?. if it is not let-bound already.
> > 
> > >> +      else if (hide_chars && (c == 127)) /* DEL */
> > >> +	{
> > >> +	  /* Unfortunately, we cannot edit stdout.  */
> > >> +	  // fprintf (stdout, "%c", c);
> > >> +	  /* Hmm, this doesn't work for multi-byte characters.  */
> > >> +	  (len > 0) && len--;
> > >> +	}
> > >
> > > I don't think that's worth the trouble.
> > 
> > I've removed this.
> > 
> > The patch is committed to the trunk as revision 117510.
> 
> Which breaks the MS-Windows build, of course, since Windows doesn't
> have termios.

I installed a temporary fix, to allow the build to succeed, but it
means that currently `read-hide-char' is a no-op on MS-Windows.  Stay
tuned.

Btw, I think it's a mistake to expose termios bowels of struct
emacs_tty in minibuf.c.  I think we should move that code to a
separate function in sysdep.c, which will be called from minibuf.c.