X-Git-Url: https://ncurses.scripts.mit.edu/?p=ncurses.git;a=blobdiff_plain;f=ncurses%2Ftinfo%2Flib_setup.c;h=9c8b44aaea681b49e218e319a71afb4b9fab63f6;hp=73e5a3231d259dd24ebc687d9967d53f56237b5d;hb=c2650100f80134924eda8f22cd7cc1d1d919ee3d;hpb=2b7c2fd2f9d58719770902ce4d0d0aeb87b284f7 diff --git a/ncurses/tinfo/lib_setup.c b/ncurses/tinfo/lib_setup.c index 73e5a323..9c8b44aa 100644 --- a/ncurses/tinfo/lib_setup.c +++ b/ncurses/tinfo/lib_setup.c @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright 2018-2019,2020 Thomas E. Dickey * + * Copyright 2018-2020,2021 Thomas E. Dickey * * Copyright 1998-2016,2017 Free Software Foundation, Inc. * * * * Permission is hereby granted, free of charge, to any person obtaining a * @@ -49,7 +49,7 @@ #include #endif -MODULE_ID("$Id: lib_setup.c,v 1.210 2020/09/06 21:03:33 tom Exp $") +MODULE_ID("$Id: lib_setup.c,v 1.213 2021/03/20 14:43:35 tom Exp $") /**************************************************************************** * @@ -663,12 +663,17 @@ TINFO_SETUP_TERM(TERMINAL **tp, if (tname == 0) { tname = getenv("TERM"); -#if defined(USE_TERM_DRIVER) && !defined(EXP_WIN32_DRIVER) +#if defined(EXP_WIN32_DRIVER) + if (!VALID_TERM_ENV(tname, NO_TERMINAL)) { + T(("Failure with TERM=%s", NonNull(tname))); + ret_error0(TGETENT_ERR, "TERM environment variable not set.\n"); + } +#elif defined(USE_TERM_DRIVER) if (!NonEmpty(tname)) tname = "unknown"; #else - if (!CHECK_TERM_ENV(tname, NO_TERMINAL)) { - T(("Failure with TERM=%s", tname)); + if (!NonEmpty(tname)) { + T(("Failure with TERM=%s", NonNull(tname))); ret_error0(TGETENT_ERR, "TERM environment variable not set.\n"); } #endif @@ -690,6 +695,10 @@ TINFO_SETUP_TERM(TERMINAL **tp, */ if (Filedes == STDOUT_FILENO && !NC_ISATTY(Filedes)) Filedes = STDERR_FILENO; +#if defined(EXP_WIN32_DRIVER) + if (Filedes != STDERR_FILENO && NC_ISATTY(Filedes)) + _setmode(Filedes, _O_BINARY); +#endif /* * Check if we have already initialized to use this terminal. If so, we @@ -793,6 +802,7 @@ TINFO_SETUP_TERM(TERMINAL **tp, ret_error1(status, "unknown terminal type.\n", myname, free(myname)); } else { + free(myname); ret_error0(status, "unexpected return-code\n"); } }