X-Git-Url: https://ncurses.scripts.mit.edu/?p=ncurses.git;a=blobdiff_plain;f=ncurses%2Ftty%2Ftty_update.c;h=f0d2369c18d6e65fedf3f817d5dfddded575f268;hp=7a4c197efd6807887297e85d9e9c0ec24d7ea50a;hb=f79b52fddd95c7a6f1ead29ef9c39eb8cdf60795;hpb=3f5a74a97cf8d86a8a8a78c7b268f49ccdc4101c diff --git a/ncurses/tty/tty_update.c b/ncurses/tty/tty_update.c index 7a4c197e..f0d2369c 100644 --- a/ncurses/tty/tty_update.c +++ b/ncurses/tty/tty_update.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 * @@ -82,7 +82,7 @@ #include -MODULE_ID("$Id: tty_update.c,v 1.258.1.2 2009/08/16 14:20:30 tom Exp tom $") +MODULE_ID("$Id: tty_update.c,v 1.264 2010/12/19 01:21:02 tom Exp $") /* * This define controls the line-breakout optimization. Every once in a @@ -193,7 +193,7 @@ static NCURSES_INLINE void GoTo(NCURSES_SP_DCLx int const row, int const col) { TR(TRACE_MOVE, ("GoTo(%p, %d, %d) from (%d, %d)", - SP_PARM, row, col, SP_PARM->_cursrow, SP_PARM->_curscol)); + (void *) SP_PARM, row, col, SP_PARM->_cursrow, SP_PARM->_curscol)); position_check(SP_PARM, SP_PARM->_cursrow, SP_PARM->_curscol, "GoTo"); @@ -497,7 +497,9 @@ can_clear_with(NCURSES_SP_DCLx ARG_CH_T ch) return FALSE; if ((pair = GetPair(CHDEREF(ch))) != 0) { short fg, bg; - NCURSES_SP_NAME(pair_content) (NCURSES_SP_ARGx pair, &fg, &bg); + NCURSES_SP_NAME(pair_content) (NCURSES_SP_ARGx + (short) pair, + &fg, &bg); if (fg != C_MASK || bg != C_MASK) return FALSE; } @@ -628,7 +630,10 @@ PutRange(NCURSES_SP_DCLx int i, j, same; TR(TRACE_CHARPUT, ("PutRange(%p, %p, %p, %d, %d, %d)", - SP_PARM, otext, ntext, row, first, last)); + (void *) SP_PARM, + (const void *) otext, + (const void *) ntext, + row, first, last)); if (otext != ntext && (last - first + 1) > SP_PARM->_inline_cost) { @@ -670,7 +675,7 @@ TINFO_DOUPDATE(NCURSES_SP_DCL0) struct tms before, after; #endif /* USE_TRACE_TIMES */ - T((T_CALLED("_nc_tinfo:doupdate(%p)"), SP_PARM)); + T((T_CALLED("_nc_tinfo:doupdate(%p)"), (void *) SP_PARM)); #if !USE_REENTRANT /* @@ -1075,24 +1080,24 @@ ClrToEOL(NCURSES_SP_DCLx NCURSES_CH_T blank, bool needclear) { int j; - if (SP_PARM != 0 && CurScreen(SP_PARM) != 0 - && SP_PARM->_cursrow >= 0) { - for (j = SP_PARM->_curscol; j < screen_columns(SP_PARM); j++) { - if (j >= 0) { - NCURSES_CH_T *cp = - &(CurScreen(SP_PARM)->_line[SP_PARM->_cursrow].text[j]); - - if (!CharEq(*cp, blank)) { - *cp = blank; - needclear = TRUE; + if (SP_PARM != 0) { + if (CurScreen(SP_PARM) != 0 + && SP_PARM->_cursrow >= 0) { + for (j = SP_PARM->_curscol; j < screen_columns(SP_PARM); j++) { + if (j >= 0) { + NCURSES_CH_T *cp = + &(CurScreen(SP_PARM)->_line[SP_PARM->_cursrow].text[j]); + + if (!CharEq(*cp, blank)) { + *cp = blank; + needclear = TRUE; + } } } } - } else { - needclear = TRUE; } - if (needclear) { + if (needclear && (SP_PARM != 0)) { UpdateAttrs(SP_PARM, blank); TPUTS_TRACE("clr_eol"); if (clr_eol && SP_PARM->_el_cost <= (screen_columns(SP_PARM) - SP_PARM->_curscol)) { @@ -1201,7 +1206,7 @@ ClrBottom(NCURSES_SP_DCLx int total) ** TransformLine(lineno) ** ** Transform the given line in curscr to the one in newscr, using -** Insert/Delete Character if _nc_idcok && has_ic(). +** Insert/Delete Character if idcok && has_ic(). ** ** firstChar = position of first different character in line ** oLastChar = position of last different character in old line @@ -1224,7 +1229,7 @@ TransformLine(NCURSES_SP_DCLx int const lineno) int n; bool attrchanged = FALSE; - TR(TRACE_UPDATE, (T_CALLED("TransformLine(%p, %d)"), SP_PARM, lineno)); + TR(TRACE_UPDATE, (T_CALLED("TransformLine(%p, %d)"), (void *) SP_PARM, lineno)); /* copy new hash value to old one */ if (SP_PARM->oldhash && SP_PARM->newhash) @@ -1410,7 +1415,7 @@ TransformLine(NCURSES_SP_DCLx int const lineno) nLastChar); memcpy(oldLine + firstChar, newLine + firstChar, - (nLastChar - firstChar + 1) * sizeof(NCURSES_CH_T)); + (unsigned) (nLastChar - firstChar + 1) * sizeof(NCURSES_CH_T)); } TR(TRACE_UPDATE, (T_RETURN(""))); return; @@ -1532,7 +1537,7 @@ TransformLine(NCURSES_SP_DCLx int const lineno) if (screen_columns(SP_PARM) > firstChar) memcpy(oldLine + firstChar, newLine + firstChar, - (screen_columns(SP_PARM) - firstChar) * sizeof(NCURSES_CH_T)); + (unsigned) (screen_columns(SP_PARM) - firstChar) * sizeof(NCURSES_CH_T)); TR(TRACE_UPDATE, (T_RETURN(""))); return; } @@ -1556,7 +1561,7 @@ ClearScreen(NCURSES_SP_DCLx NCURSES_CH_T blank) if (SP_PARM->_coloron && !SP_PARM->_default_color) { NCURSES_SP_NAME(_nc_do_color) (NCURSES_SP_ARGx - GET_SCREEN_PAIR(SP_PARM), + (short) GET_SCREEN_PAIR(SP_PARM), 0, FALSE, NCURSES_SP_NAME(_nc_outch)); @@ -1623,7 +1628,9 @@ ClearScreen(NCURSES_SP_DCLx NCURSES_CH_T blank) static void InsStr(NCURSES_SP_DCLx NCURSES_CH_T * line, int count) { - TR(TRACE_UPDATE, ("InsStr(%p, %p,%d) called", SP_PARM, line, count)); + TR(TRACE_UPDATE, ("InsStr(%p, %p,%d) called", + (void *) SP_PARM, + (void *) line, count)); /* Prefer parm_ich as it has the smallest cost - no need to shift * the whole line on each character. */ @@ -1682,7 +1689,7 @@ DelChar(NCURSES_SP_DCLx int count) int n; TR(TRACE_UPDATE, ("DelChar(%p, %d) called, position = (%ld,%ld)", - SP_PARM, count, + (void *) SP_PARM, count, (long) NewScreen(SP_PARM)->_cury, (long) NewScreen(SP_PARM)->_curx)); @@ -1939,7 +1946,8 @@ NCURSES_SP_NAME(_nc_scrolln) (NCURSES_SP_DCLx bool cursor_saved = FALSE; int res; - TR(TRACE_MOVE, ("_nc_scrolln(%p, %d, %d, %d, %d)", SP_PARM, n, top, bot, maxy)); + TR(TRACE_MOVE, ("_nc_scrolln(%p, %d, %d, %d, %d)", + (void *) SP_PARM, n, top, bot, maxy)); if (!IsValidScreen(SP_PARM)) return (ERR); @@ -2058,7 +2066,10 @@ NCURSES_SP_NAME(_nc_scrolln) (NCURSES_SP_DCLx if (res == ERR) return (ERR); - _nc_scroll_window(CurScreen(SP_PARM), n, top, bot, blank); + _nc_scroll_window(CurScreen(SP_PARM), n, + (NCURSES_SIZE_T) top, + (NCURSES_SIZE_T) bot, + blank); /* shift hash values too - they can be reused */ NCURSES_SP_NAME(_nc_scroll_oldhash) (NCURSES_SP_ARGx n, top, bot); @@ -2093,7 +2104,8 @@ NCURSES_SP_NAME(_nc_screen_resume) (NCURSES_SP_DCL0) SP_PARM->_color_defs = -(SP_PARM->_color_defs); for (n = 0; n < SP_PARM->_color_defs; ++n) { if (SP_PARM->_color_table[n].init) { - NCURSES_SP_NAME(init_color) (NCURSES_SP_ARGx n, + NCURSES_SP_NAME(init_color) (NCURSES_SP_ARGx + (short) n, SP_PARM->_color_table[n].r, SP_PARM->_color_table[n].g, SP_PARM->_color_table[n].b);