kernel32: No longer init the terminfo database nor application key mode when 0 or 1 are not bound to a tty.

This commit is contained in:
Eric Pouech 2011-01-24 22:13:23 +01:00 committed by Alexandre Julliard
parent 5f2370b0aa
commit ff057db675

View File

@ -320,10 +320,15 @@ static BOOL TERM_BuildKeyDB(void)
return TRUE; return TRUE;
} }
static BOOL TERM_init_done /* = FALSE */;
BOOL TERM_Init(void) BOOL TERM_Init(void)
{ {
/* if we're not attached to a tty, don't fire the curses support */
if (!isatty(0) || !isatty(1)) return FALSE;
if (!TERM_bind_libcurses()) return FALSE; if (!TERM_bind_libcurses()) return FALSE;
if (setupterm(NULL, 1 /* really ?? */, NULL) == -1) return FALSE; if (setupterm(NULL, 1 /* really ?? */, NULL) == -1) return FALSE;
TERM_init_done = TRUE;
TERM_BuildKeyDB(); TERM_BuildKeyDB();
/* set application key mode */ /* set application key mode */
putp(tigetstr("smkx")); putp(tigetstr("smkx"));
@ -332,8 +337,11 @@ BOOL TERM_Init(void)
BOOL TERM_Exit(void) BOOL TERM_Exit(void)
{ {
/* put back the cursor key mode */ if (TERM_init_done)
putp(tigetstr("rmkx")); {
/* put back the cursor key mode */
putp(tigetstr("rmkx"));
}
return TRUE; return TRUE;
} }