X-Git-Url: https://ncurses.scripts.mit.edu/?p=ncurses.git;a=blobdiff_plain;f=ncurses%2Ftinfo%2Flib_setup.c;h=a376fc60275b8627fd97c7f94e6c7fe47dc0adde;hp=9a49ee74060c8e25eaf85b00fdc233c0740bd019;hb=176aaa579a65f28a5fab489b89c9948bb28d4c08;hpb=7a27c7d49c2e8b4a1ecbe85b4423d647cbc75ea5 diff --git a/ncurses/tinfo/lib_setup.c b/ncurses/tinfo/lib_setup.c index 9a49ee74..a376fc60 100644 --- a/ncurses/tinfo/lib_setup.c +++ b/ncurses/tinfo/lib_setup.c @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc. * + * Copyright (c) 1998-2007,2008 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 * @@ -53,7 +53,7 @@ #include /* lines, columns, cur_term */ -MODULE_ID("$Id: lib_setup.c,v 1.98 2007/04/21 19:57:42 tom Exp $") +MODULE_ID("$Id: lib_setup.c,v 1.102 2008/01/19 21:07:45 tom Exp $") /**************************************************************************** * @@ -99,21 +99,25 @@ MODULE_ID("$Id: lib_setup.c,v 1.98 2007/04/21 19:57:42 tom Exp $") # endif #endif +/* + * Wrap global variables in this module. + */ #if USE_REENTRANT NCURSES_EXPORT(char *) NCURSES_PUBLIC_VAR(ttytype) (void) { - return cur_term ? cur_term->type.term_names : ""; + static char empty[] = ""; + return cur_term ? cur_term->type.term_names : empty; } NCURSES_EXPORT(int) NCURSES_PUBLIC_VAR(LINES) (void) { - return SP ? SP->_LINES : 0; + return (SP ? SP->_LINES : _nc_prescreen._LINES); } NCURSES_EXPORT(int) NCURSES_PUBLIC_VAR(COLS) (void) { - return SP ? SP->_COLS : 0; + return SP ? SP->_COLS : _nc_prescreen._COLS; } NCURSES_EXPORT(int) NCURSES_PUBLIC_VAR(TABSIZE) (void) @@ -127,6 +131,24 @@ NCURSES_EXPORT_VAR(int) COLS = 0; NCURSES_EXPORT_VAR(int) TABSIZE = 0; #endif +#if NCURSES_EXT_FUNCS +NCURSES_EXPORT(int) +set_tabsize(int value) +{ + int code = OK; +#if USE_REENTRANT + if (SP) { + SP->_TABSIZE = value; + } else { + code = ERR; + } +#else + TABSIZE = value; +#endif + return code; +} +#endif + #if USE_SIGWINCH /* * If we have a pending SIGWINCH, set the flag in each screen. @@ -564,6 +586,16 @@ _nc_setupterm(NCURSES_CONST char *tname, int Filedes, int *errret, bool reuse) } } + /* + * We should always check the screensize, just in case. + */ +#if USE_REENTRANT + _nc_get_screensize(SP ? &(SP->_LINES) : &(_nc_prescreen._LINES), + SP ? &(SP->_COLS) : &(_nc_prescreen._COLS)); +#else + _nc_get_screensize(&LINES, &COLS); +#endif + if (errret) *errret = TGETENT_YES;