From a7a285eb61dd83afc892bc1d64ffe14b9f1426a3 Mon Sep 17 00:00:00 2001 From: Matthias Schiffer Date: Sun, 27 Sep 2009 23:51:34 +0200 Subject: Completely migrate to Unicode String class --- src/Client/PasswordReader.cpp | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) (limited to 'src/Client/PasswordReader.cpp') diff --git a/src/Client/PasswordReader.cpp b/src/Client/PasswordReader.cpp index 8d549f5..cb77ad5 100644 --- a/src/Client/PasswordReader.cpp +++ b/src/Client/PasswordReader.cpp @@ -33,20 +33,11 @@ namespace Mad { namespace Client { Core::String PasswordReader::readPassword(const Core::String &prompt) { - std::string password; - #ifdef _WIN32 DWORD mode; HANDLE handle = GetStdHandle(STD_INPUT_HANDLE); GetConsoleMode(handle, &mode); SetConsoleMode(handle, mode & ~(ENABLE_ECHO_INPUT)); - - std::cout << prompt.extract() << std::flush; - std::getline(std::cin, password); - std::cout << std::endl; - - SetConsoleMode(handle, mode); - #else struct termios termold, termnew; @@ -55,15 +46,19 @@ Core::String PasswordReader::readPassword(const Core::String &prompt) { termnew = termold; termnew.c_lflag &= ~ECHO; tcsetattr(STDIN_FILENO, TCSAFLUSH, &termnew); +#endif - std::cout << prompt.extract() << std::flush; - std::getline(std::cin, password); + std::cout << prompt << std::flush; + Core::String password = Core::String::getline(std::cin); std::cout << std::endl; +#ifdef _WIN32 + SetConsoleMode(handle, mode); +#else tcsetattr(STDIN_FILENO, TCSAFLUSH, &termold); #endif - return password.c_str(); + return password; } } -- cgit v1.2.3