X-Git-Url: https://ncurses.scripts.mit.edu/?a=blobdiff_plain;f=ncurses%2Ftinfo%2Flib_setup.c;h=8446c8030d34b5b09518b9c3603c67fabd6ebc65;hb=f344f8539c1543f8cd65a5bb142dbaf23b9421d2;hp=21523e053083cbc1ff713078c449759cd4f69267;hpb=76a479337308b4b5e749fa8c38b7b7f482998c5b;p=ncurses.git diff --git a/ncurses/tinfo/lib_setup.c b/ncurses/tinfo/lib_setup.c index 21523e05..8446c803 100644 --- a/ncurses/tinfo/lib_setup.c +++ b/ncurses/tinfo/lib_setup.c @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright (c) 1998-2015,2016 Free Software Foundation, Inc. * + * Copyright (c) 1998-2016,2017 Free Software Foundation, Inc. * * * * Permission is hereby granted, free of charge, to any person obtaining a * * copy of this software and associated documentation files (the * @@ -48,7 +48,7 @@ #include #endif -MODULE_ID("$Id: lib_setup.c,v 1.166 2016/05/28 21:55:30 tom Exp $") +MODULE_ID("$Id: lib_setup.c,v 1.170 2017/01/07 16:50:16 tom Exp $") /**************************************************************************** * @@ -220,9 +220,9 @@ _nc_handle_sigwinch(SCREEN *sp) NCURSES_EXPORT(void) NCURSES_SP_NAME(use_env) (NCURSES_SP_DCLx bool f) { + START_TRACE(); T((T_CALLED("use_env(%p,%d)"), (void *) SP_PARM, (int) f)); #if NCURSES_SP_FUNCS - START_TRACE(); if (IsPreScreen(SP_PARM)) { SP_PARM->_use_env = f; } @@ -235,11 +235,11 @@ NCURSES_SP_NAME(use_env) (NCURSES_SP_DCLx bool f) NCURSES_EXPORT(void) NCURSES_SP_NAME(use_tioctl) (NCURSES_SP_DCLx bool f) { + START_TRACE(); T((T_CALLED("use_tioctl(%p,%d)"), (void *) SP_PARM, (int) f)); #if NCURSES_SP_FUNCS - START_TRACE(); if (IsPreScreen(SP_PARM)) { - SP_PARM->_use_tioctl = f; + SP_PARM->use_tioctl = f; } #else _nc_prescreen.use_tioctl = f; @@ -251,8 +251,8 @@ NCURSES_SP_NAME(use_tioctl) (NCURSES_SP_DCLx bool f) NCURSES_EXPORT(void) use_env(bool f) { - T((T_CALLED("use_env(%d)"), (int) f)); START_TRACE(); + T((T_CALLED("use_env(%d)"), (int) f)); _nc_prescreen.use_env = f; returnVoid; } @@ -260,8 +260,8 @@ use_env(bool f) NCURSES_EXPORT(void) use_tioctl(bool f) { - T((T_CALLED("use_tioctl(%d)"), (int) f)); START_TRACE(); + T((T_CALLED("use_tioctl(%d)"), (int) f)); _nc_prescreen.use_tioctl = f; returnVoid; } @@ -297,6 +297,8 @@ _nc_get_screensize(SCREEN *sp, #else /* !USE_TERM_DRIVER */ TERMINAL *termp = cur_term; int my_tabsize; + bool useEnv = _nc_prescreen.use_env; + bool useTioctl = _nc_prescreen.use_tioctl; /* figure out the size of the screen */ T(("screen size: terminfo lines = %d columns = %d", lines, columns)); @@ -304,7 +306,14 @@ _nc_get_screensize(SCREEN *sp, *linep = (int) lines; *colp = (int) columns; - if (_nc_prescreen.use_env || _nc_prescreen.use_tioctl) { +#if NCURSES_SP_FUNCS + if (sp) { + useEnv = sp->_use_env; + useTioctl = sp->use_tioctl; + } +#endif + + if (useEnv || useTioctl) { #ifdef __EMX__ { int screendata[2]; @@ -338,10 +347,10 @@ _nc_get_screensize(SCREEN *sp, } #endif /* HAVE_SIZECHANGE */ - if (_nc_prescreen.use_env) { + if (useEnv) { int value; - if (_nc_prescreen.use_tioctl) { + if (useTioctl) { /* * If environment variables are used, update them. */ @@ -735,8 +744,9 @@ TINFO_SETUP_TERM(TERMINAL ** tp, } } #if !USE_REENTRANT - strncpy(ttytype, termp->type.term_names, (size_t) (NAMESIZE - 1)); - ttytype[NAMESIZE - 1] = '\0'; +#define MY_SIZE (size_t) (NAMESIZE - 1) + _nc_STRNCPY(ttytype, termp->type.term_names, MY_SIZE); + ttytype[MY_SIZE] = '\0'; #endif termp->Filedes = (short) Filedes;