X-Git-Url: https://ncurses.scripts.mit.edu/?p=ncurses.git;a=blobdiff_plain;f=ncurses%2Ftinfo%2Flib_setup.c;h=2cab9baf18ffcd0df5a9194d60e6c888cee1e43c;hp=dddf808fd07236a05169fb13096ff5749547beae;hb=3ce2c58251fe1353768cc630103cdb12ecc8be0a;hpb=01cec7497c02ab7ca6f0791cc2c7dfbdb2ba9272 diff --git a/ncurses/tinfo/lib_setup.c b/ncurses/tinfo/lib_setup.c index dddf808f..2cab9baf 100644 --- a/ncurses/tinfo/lib_setup.c +++ b/ncurses/tinfo/lib_setup.c @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc. * + * Copyright (c) 1998-2008,2009 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 * @@ -30,6 +30,7 @@ * Author: Zeyd M. Ben-Halim 1992,1995 * * and: Eric S. Raymond * * and: Thomas E. Dickey 1996-on * + * and: Juergen Pfeifer 2009 * ****************************************************************************/ /* @@ -53,7 +54,7 @@ #include /* lines, columns, cur_term */ -MODULE_ID("$Id: lib_setup.c,v 1.110 2008/07/12 18:40:23 tom Exp $") +MODULE_ID("$Id: lib_setup.c,v 1.117 2009/06/06 17:56:31 tom Exp $") /**************************************************************************** * @@ -116,54 +117,68 @@ NCURSES_PUBLIC_VAR(ttytype) (void) return cur_term ? cur_term->type.term_names : empty; } NCURSES_EXPORT(int *) -_nc_ptr_Lines(void) +_nc_ptr_Lines(SCREEN *sp) { - return ptrLines(); + return ptrLines(sp); } NCURSES_EXPORT(int) NCURSES_PUBLIC_VAR(LINES) (void) { - return *_nc_ptr_Lines(); + return *_nc_ptr_Lines(CURRENT_SCREEN); } NCURSES_EXPORT(int *) -_nc_ptr_Cols(void) +_nc_ptr_Cols(SCREEN *sp) { - return ptrCols(); + return ptrCols(sp); } NCURSES_EXPORT(int) NCURSES_PUBLIC_VAR(COLS) (void) { - return *_nc_ptr_Cols(); + return *_nc_ptr_Cols(CURRENT_SCREEN); +} +NCURSES_EXPORT(int *) +_nc_ptr_Tabsize(SCREEN *sp) +{ + return ptrTabsize(sp); } NCURSES_EXPORT(int) NCURSES_PUBLIC_VAR(TABSIZE) (void) { - return SP ? SP->_TABSIZE : 8; + return *_nc_ptr_Tabsize(CURRENT_SCREEN); } #else NCURSES_EXPORT_VAR(char) ttytype[NAMESIZE] = ""; NCURSES_EXPORT_VAR(int) LINES = 0; NCURSES_EXPORT_VAR(int) COLS = 0; -NCURSES_EXPORT_VAR(int) TABSIZE = 0; +NCURSES_EXPORT_VAR(int) TABSIZE = 8; #endif #if NCURSES_EXT_FUNCS NCURSES_EXPORT(int) -set_tabsize(int value) +NCURSES_SP_NAME(set_tabsize) (NCURSES_SP_DCLx int value) { int code = OK; #if USE_REENTRANT - if (SP) { - SP->_TABSIZE = value; + if (SP_PARM) { + SP_PARM->_TABSIZE = value; } else { code = ERR; } #else + (void) SP_PARM; TABSIZE = value; #endif return code; } + +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(int) +set_tabsize(int value) +{ + return NCURSES_SP_NAME(set_tabsize) (CURRENT_SCREEN, value); +} #endif +#endif /* NCURSES_EXT_FUNCS */ #if USE_SIGWINCH /* @@ -188,13 +203,25 @@ _nc_handle_sigwinch(SCREEN *sp) #endif NCURSES_EXPORT(void) -use_env(bool f) +NCURSES_SP_NAME(use_env) (NCURSES_SP_DCLx bool f) { T((T_CALLED("use_env()"))); - _nc_prescreen.use_env = f; + if (IsPreScreen(SP_PARM)) { + SP_PARM->_use_env = f; + } else { + _nc_prescreen.use_env = f; + } returnVoid; } +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(void) +use_env(bool f) +{ + NCURSES_SP_NAME(use_env) (CURRENT_SCREEN, f); +} +#endif + NCURSES_EXPORT(void) _nc_get_screensize(SCREEN *sp, int *linep, int *colp) /* Obtain lines/columns values from the environment and/or terminfo entry */ @@ -320,7 +347,7 @@ _nc_update_screensize(SCREEN *sp) if (sp != 0 && sp->_resize != 0) { if ((new_lines != old_lines) || (new_cols != old_cols)) - sp->_resize(new_lines, new_cols); + sp->_resize(NCURSES_SP_ARGx new_lines, new_cols); sp->_sig_winch = FALSE; } } @@ -394,14 +421,16 @@ do_prototype(TERMINAL * termp) char proto; char *tmp; - tmp = getenv("CC"); - CC = *tmp; - proto = *command_character; + if ((tmp = getenv("CC")) != 0) { + if ((CC = *tmp) != 0) { + proto = *command_character; - for_each_string(i, &(termp->type)) { - for (tmp = termp->type.Strings[i]; *tmp; tmp++) { - if (*tmp == proto) - *tmp = CC; + for_each_string(i, &(termp->type)) { + for (tmp = termp->type.Strings[i]; *tmp; tmp++) { + if (*tmp == proto) + *tmp = CC; + } + } } } } @@ -602,7 +631,7 @@ _nc_setupterm(NCURSES_CONST char *tname, int Filedes, int *errret, bool reuse) /* * We should always check the screensize, just in case. */ - _nc_get_screensize(SP, ptrLines(), ptrCols()); + _nc_get_screensize(SP, ptrLines(SP), ptrCols(SP)); if (errret) *errret = TGETENT_YES;