X-Git-Url: https://ncurses.scripts.mit.edu/?p=ncurses.git;a=blobdiff_plain;f=ncurses%2Fbase%2Flib_set_term.c;h=df0a276aef8a3a61f749226e5eb7216244b5b43d;hp=816ab041d647c81c1c076bda82313ba9426216e6;hb=687aeec3e382083652c3bb2e94fb6d3bf101a1f9;hpb=49e6baa94900e73cfc440dcb54c4f2eeda462ad8;ds=inline diff --git a/ncurses/base/lib_set_term.c b/ncurses/base/lib_set_term.c index 816ab041..df0a276a 100644 --- a/ncurses/base/lib_set_term.c +++ b/ncurses/base/lib_set_term.c @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright (c) 1998-2008,2009 Free Software Foundation, Inc. * + * Copyright (c) 1998-2009,2010 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 * @@ -47,7 +47,7 @@ #define CUR SP_TERMTYPE #endif -MODULE_ID("$Id: lib_set_term.c,v 1.135 2009/11/28 21:49:24 tom Exp $") +MODULE_ID("$Id: lib_set_term.c,v 1.138 2010/12/20 00:42:20 tom Exp $") #ifdef USE_TERM_DRIVER #define MaxColors InfoOf(sp).maxcolors @@ -117,7 +117,7 @@ delink_screen(SCREEN *sp) for (each_screen(temp)) { if (temp == sp) { if (last) - last = sp->_next_screen; + last->_next_screen = sp->_next_screen; else _nc_screen_chain = sp->_next_screen; result = TRUE; @@ -314,7 +314,7 @@ NCURSES_SP_NAME(_nc_setupscreen) ( ReturnScreenError(); } - T(("created SP %p", sp)); + T(("created SP %p", (void *) sp)); sp->_next_screen = _nc_screen_chain; _nc_screen_chain = sp; @@ -380,9 +380,9 @@ NCURSES_SP_NAME(_nc_setupscreen) ( setmode(output, O_BINARY); #endif NCURSES_SP_NAME(_nc_set_buffer) (NCURSES_SP_ARGx output, TRUE); - sp->_lines = slines; - sp->_lines_avail = slines; - sp->_columns = scolumns; + sp->_lines = (NCURSES_SIZE_T) slines; + sp->_lines_avail = (NCURSES_SIZE_T) slines; + sp->_columns = (NCURSES_SIZE_T) scolumns; sp->_ofp = output; SP_PRE_INIT(sp); SetNoPadding(sp); @@ -663,11 +663,12 @@ NCURSES_SP_NAME(_nc_setupscreen) ( } else { ReturnScreenError(); } - if (rop->line < 0) + if (rop->line < 0) { bottom_stolen += count; - else - sp->_topstolen += count; - sp->_lines_avail -= count; + } else { + sp->_topstolen = (NCURSES_SIZE_T) (sp->_topstolen + count); + } + sp->_lines_avail = (NCURSES_SIZE_T) (sp->_lines_avail - count); } } /* reset the stack */ @@ -722,7 +723,7 @@ NCURSES_SP_NAME(_nc_ripoffline) (NCURSES_SP_DCLx int code = ERR; START_TRACE(); - T((T_CALLED("ripoffline(%p,%d,%p)"), (void *) SP_PARM, line, (void *) init)); + T((T_CALLED("ripoffline(%p,%d,%p)"), (void *) SP_PARM, line, init)); #if NCURSES_SP_FUNCS if (SP_PARM != 0 && SP_PARM->_prescreen)