Skip to content

Commit

Permalink
fix dedicated server stdin console (#4009)
Browse files Browse the repository at this point in the history
  • Loading branch information
lnussel committed May 3, 2009
1 parent 732c405 commit 799150f
Showing 1 changed file with 8 additions and 10 deletions.
18 changes: 8 additions & 10 deletions code/sys/con_tty.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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
Expand All @@ -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;
}

Expand Down Expand Up @@ -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
Expand All @@ -443,6 +440,7 @@ char *CON_Input( void )

return text;
}
return NULL;
}

/*
Expand Down

0 comments on commit 799150f

Please sign in to comment.