2014-02-15 19:06:35 +00:00
|
|
|
#include <iostream>
|
|
|
|
|
#include <string>
|
|
|
|
|
|
|
|
|
|
namespace fc {
|
|
|
|
|
|
|
|
|
|
#ifdef WIN32
|
|
|
|
|
#include <windows.h>
|
|
|
|
|
|
|
|
|
|
void set_console_echo( bool enable_echo )
|
|
|
|
|
{
|
|
|
|
|
auto stdin_handle = GetStdHandle( STD_INPUT_HANDLE );
|
|
|
|
|
DWORD mode = 0;
|
|
|
|
|
GetConsoleMode( stdin_handle, &mode );
|
|
|
|
|
if( enable_echo )
|
|
|
|
|
{
|
|
|
|
|
SetConsoleMode( stdin_handle, mode | ENABLE_ECHO_INPUT );
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
SetConsoleMode( stdin_handle, mode & (~ENABLE_ECHO_INPUT) );
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#else // NOT WIN32
|
|
|
|
|
#include <termios.h>
|
|
|
|
|
#include <unistd.h>
|
|
|
|
|
|
|
|
|
|
void set_console_echo( bool enable_echo )
|
|
|
|
|
{
|
|
|
|
|
termios oldt;
|
|
|
|
|
tcgetattr(STDIN_FILENO, &oldt);
|
|
|
|
|
termios newt = oldt;
|
|
|
|
|
if( enable_echo )
|
|
|
|
|
{
|
2014-03-21 05:14:01 +00:00
|
|
|
newt.c_lflag |= ECHO;
|
2014-02-15 19:06:35 +00:00
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
newt.c_lflag &= ~ECHO;
|
|
|
|
|
}
|
|
|
|
|
tcsetattr(STDIN_FILENO, TCSANOW, &newt);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#endif // WIN32
|
|
|
|
|
|
|
|
|
|
} // namespace fc
|