mirror of
https://github.com/UberGames/ioef.git
synced 2024-11-28 06:52:35 +00:00
fix dedicated server stdin console (#4009)
This commit is contained in:
parent
732c405e15
commit
799150ffc1
1 changed files with 8 additions and 10 deletions
|
@ -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;
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
Loading…
Reference in a new issue