I think I added that logging because that's what the "real" atty outputs.
On Wed, Sep 16, 2020, 08:02 Chris Sarra via Toybox <toybox@lists.landley.net> wrote: > Hey Rob, > I removed that xprintf in stty from our copy a long time ago to get rid > of a log we didn't really need, but that change can be ignored if others > find it useful. > Thanks, > +Chris > > > On Wed, Sep 16, 2020 at 1:27 AM Rob Landley <r...@landley.net> wrote: > >> >> >> On 9/15/20 11:39 AM, Chris Sarra via Toybox wrote: >> > toybox logins were displaying the "password:" prompt after >> > the user entered a password. This patch fixes the issue so the >> > password prompt shows *before* password is entered. >> > --- >> > lib/password.c | 1 + >> > toys/pending/stty.c | 2 +- >> > 2 files changed, 2 insertions(+), 1 deletion(-) >> > >> > diff --git a/lib/password.c b/lib/password.c >> > index 432905cc..2f5997ff 100644 >> > --- a/lib/password.c >> > +++ b/lib/password.c >> > @@ -63,6 +63,7 @@ int read_password(char *buf, int buflen, char *mesg) >> > xset_terminal(0, 1, 0, &oldtermio); >> > >> > xprintf("%s", mesg); >> > + fflush(NULL); >> >> This is why xprintf() had the x. This is literally why, but actually >> flushing >> before checking for error was too slow. (And then Elliott wanted to >> enable line >> buffering for everything, which breaks tee...) >> >> Sigh, ok I'm replacing it with dprintf() to avoid the borked stdio >> buffering >> entirely, which raises the question should the prompt go to stdout or >> stderr? >> >> $ sudo /bin/bash >> [sudo] password for landley: >> $ sudo /bin/bash 2>/dev/null >> [sudo] password for landley: >> $ sudo /bin/bash >/dev/null >> [sudo] password for landley: >> >> Answer: it goes to /dev/tty. Right, stop, BIG HAMMER time. ("There's >> never time >> to do it right, there's always time to do it over" meets "it is better to >> light >> a flamethrower than to curse the darkness", as usual for this project.) >> >> > for (i=0; i < buflen-1; i++) { >> > if ((ret = read(0, buf+i, 1)) < 0 || (!ret && !i)) { >> > diff --git a/toys/pending/stty.c b/toys/pending/stty.c >> > index 8c937696..fe8f5c8d 100644 >> > --- a/toys/pending/stty.c >> > +++ b/toys/pending/stty.c >> > @@ -271,7 +271,7 @@ static int set_special_character(struct termios >> *new, int *i, char *char_name) >> > else if (arg[0] == '^' && arg[2] == 0) ch = >> (toupper(arg[1])-'@'); >> > else if (!arg[1]) ch = arg[0]; >> > else error_exit("invalid arg: %s", arg); >> > - xprintf("setting %s to %s (%02x)\n", char_name, arg, ch); >> > + //xprintf("setting %s to %s (%02x)\n", char_name, arg, ch); >> >> What's this one about? (It's pending, which usually means I'm not as >> familiar >> with the guts of the command...) >> >> Rob >> _______________________________________________ >> Toybox mailing list >> Toybox@lists.landley.net >> http://lists.landley.net/listinfo.cgi/toybox-landley.net >> > _______________________________________________ > Toybox mailing list > Toybox@lists.landley.net > http://lists.landley.net/listinfo.cgi/toybox-landley.net >
_______________________________________________ Toybox mailing list Toybox@lists.landley.net http://lists.landley.net/listinfo.cgi/toybox-landley.net