X-Git-Url: https://ncurses.scripts.mit.edu/?p=ncurses.git;a=blobdiff_plain;f=ncurses%2Fbase%2Flib_restart.c;h=55b1cc09cfa7eeaf20485825dfd434ec6e3187c6;hp=ca27a0fc4c60bcd32dbe34844f002795a5612cf2;hb=26522e4669dbf45cba32138b5d81c6c292e88e60;hpb=027ae42953e3186daed8f3882da73de48291b606 diff --git a/ncurses/base/lib_restart.c b/ncurses/base/lib_restart.c index ca27a0fc..55b1cc09 100644 --- a/ncurses/base/lib_restart.c +++ b/ncurses/base/lib_restart.c @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright (c) 1998-2002,2006 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,14 +30,13 @@ * Author: Zeyd M. Ben-Halim 1992,1995 * * and: Eric S. Raymond * * and: Thomas E. Dickey 1996-on * + * and: Juergen Pfeifer 2008 * ****************************************************************************/ /* * Terminfo-only terminal setup routines: * * int restartterm(const char *, int, int *) - * TERMINAL *set_curterm(TERMINAL *) - * int del_curterm(TERMINAL *) */ #include @@ -46,54 +45,65 @@ #define _POSIX_SOURCE #endif -#include /* lines, columns, cur_term */ - -MODULE_ID("$Id: lib_restart.c,v 1.6 2006/01/14 15:58:23 tom Exp $") +MODULE_ID("$Id: lib_restart.c,v 1.11 2009/05/02 20:47:42 tom Exp $") NCURSES_EXPORT(int) -restartterm(NCURSES_CONST char *termp, int filenum, int *errret) +NCURSES_SP_NAME(restartterm) (NCURSES_SP_DCLx + NCURSES_CONST char *termp, + int filenum, + int *errret) { - int saveecho = SP->_echo; - int savecbreak = SP->_cbreak; - int saveraw = SP->_raw; - int savenl = SP->_nl; int result; - T((T_CALLED("restartterm(%s,%d,%p)"), termp, filenum, errret)); + T((T_CALLED("restartterm(%p,%s,%d,%p)"), SP_PARM, termp, filenum, errret)); - _nc_handle_sigwinch(0); if (setupterm(termp, filenum, errret) != OK) { result = ERR; - } else { + } else if (SP_PARM != 0) { + int saveecho = SP_PARM->_echo; + int savecbreak = SP_PARM->_cbreak; + int saveraw = SP_PARM->_raw; + int savenl = SP_PARM->_nl; - if (saveecho) - echo(); - else - noecho(); + if (saveecho) { + NCURSES_SP_NAME(echo) (NCURSES_SP_ARG); + } else { + NCURSES_SP_NAME(noecho) (NCURSES_SP_ARG); + } if (savecbreak) { - cbreak(); - noraw(); + NCURSES_SP_NAME(cbreak) (NCURSES_SP_ARG); + NCURSES_SP_NAME(noraw) (NCURSES_SP_ARG); } else if (saveraw) { - nocbreak(); - raw(); + NCURSES_SP_NAME(nocbreak) (NCURSES_SP_ARG); + NCURSES_SP_NAME(raw) (NCURSES_SP_ARG); + } else { + NCURSES_SP_NAME(nocbreak) (NCURSES_SP_ARG); + NCURSES_SP_NAME(noraw) (NCURSES_SP_ARG); + } + if (savenl) { + NCURSES_SP_NAME(nl) (NCURSES_SP_ARG); } else { - nocbreak(); - noraw(); + NCURSES_SP_NAME(nonl) (NCURSES_SP_ARG); } - if (savenl) - nl(); - else - nonl(); - reset_prog_mode(); + NCURSES_SP_NAME(reset_prog_mode) (NCURSES_SP_ARG); #if USE_SIZECHANGE - _nc_update_screensize(); + _nc_update_screensize(SP_PARM); #endif result = OK; + } else { + result = ERR; } - _nc_handle_sigwinch(1); returnCode(result); } + +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(int) +restartterm(NCURSES_CONST char *termp, int filenum, int *errret) +{ + return NCURSES_SP_NAME(restartterm) (CURRENT_SCREEN, termp, filenum, errret); +} +#endif