diff options
author | ludwig <ludwig@edf5b092-35ff-0310-97b2-ce42778d08ea> | 2009-05-03 20:05:16 +0000 |
---|---|---|
committer | ludwig <ludwig@edf5b092-35ff-0310-97b2-ce42778d08ea> | 2009-05-03 20:05:16 +0000 |
commit | 0203b6b8fde5fc1358fa159491e73d3e2f8f9e77 (patch) | |
tree | 6854426e281f7bd84a2c642a3865dff7b701a80f | |
parent | bc2bb9f9a119e39ded19a0b6a6cf1a2d0cbd9fae (diff) | |
download | ioquake3-aero-0203b6b8fde5fc1358fa159491e73d3e2f8f9e77.tar.gz ioquake3-aero-0203b6b8fde5fc1358fa159491e73d3e2f8f9e77.zip |
fix dedicated server stdin console (#4009)
git-svn-id: svn://svn.icculus.org/quake3/trunk@1537 edf5b092-35ff-0310-97b2-ce42778d08ea
-rw-r--r-- | code/sys/con_tty.c | 18 |
1 files changed, 8 insertions, 10 deletions
diff --git a/code/sys/con_tty.c b/code/sys/con_tty.c index 28f1fd4..f65f5f7 100644 --- a/code/sys/con_tty.c +++ b/code/sys/con_tty.c @@ -40,6 +40,7 @@ called before and after a stdout or stderr output ============================================================= */ +static qboolean stdin_active; // general flag to tell about tty console mode static qboolean ttycon_on = qfalse; static int ttycon_hide = 0; @@ -254,6 +255,7 @@ Initialize the console input (tty mode if possible) void CON_Init( void ) { struct termios tc; + const char* term = getenv("TERM"); // If the process is backgrounded (running non interactively) // then SIGTTIN or SIGTOU is emitted, if not caught, turns into a SIGSTP @@ -263,10 +265,12 @@ void CON_Init( void ) // Make stdin reads non-blocking fcntl( 0, F_SETFL, fcntl( 0, F_GETFL, 0 ) | O_NONBLOCK ); - if (isatty(STDIN_FILENO)!=1) + if (isatty(STDIN_FILENO) != 1 + || (term && (!strcmp(term, "raw") || !strcmp(term, "dumb")))) { - Com_Printf( "stdin is not a tty, tty console mode disabled\n"); + Com_Printf("tty console mode disabled\n"); ttycon_on = qfalse; + stdin_active = qtrue; return; } @@ -408,18 +412,11 @@ char *CON_Input( void ) return NULL; } - else + else if (stdin_active) { int len; fd_set fdset; struct timeval timeout; - static qboolean stdin_active; - - if (!com_dedicated || !com_dedicated->value) - return NULL; - - if (!stdin_active) - return NULL; FD_ZERO(&fdset); FD_SET(0, &fdset); // stdin @@ -443,6 +440,7 @@ char *CON_Input( void ) return text; } + return NULL; } /* |