Usermode/libposix - Clear stdin buffer in getpass
authorJohn Hodge <[email protected]>
Fri, 22 Nov 2013 09:46:22 +0000 (17:46 +0800)
committerJohn Hodge <[email protected]>
Fri, 22 Nov 2013 09:46:22 +0000 (17:46 +0800)
Usermode/Libraries/libposix.so_src/unistd.c

index 211948f..f5b330d 100644 (file)
@@ -242,6 +242,7 @@ char *getpass(const char *prompt)
        mode.OutputMode = 0;
        _SysIOCtl(STDIN_FILENO, PTY_IOCTL_SETMODE, &mode);
        fprintf(stderr, "%s", prompt);
+       fflush(stdin);  // clear stdin buffer
        fgets(passbuf, PASS_MAX+1, stdin);
        fprintf(stderr, "\n");
        for( int i = strlen(passbuf); i > 0 && (passbuf[i-1] == '\r' || passbuf[i-1] == '\n'); i -- )
@@ -270,5 +271,7 @@ int ttyname_r(int fd, char *buf, size_t buflen)
 
        _SysIOCtl(fd, PTY_IOCTL_GETID, NULL);   
 
+       _SysDebug("TODO: ttyname_r");
+
        return ENOTIMPL;
 }

UCC git Repository :: git.ucc.asn.au