peerplays-fc/src/io/console.cpp
Daniel Larimer 51a3d1126f fix console
2014-03-21 01:14:01 -04:00

46 lines
804 B
C++

#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 )
{
newt.c_lflag |= ECHO;
}
else
{
newt.c_lflag &= ~ECHO;
}
tcsetattr(STDIN_FILENO, TCSANOW, &newt);
}
#endif // WIN32
} // namespace fc