X-Git-Url: https://ncurses.scripts.mit.edu/?a=blobdiff_plain;f=ncurses%2Ftty%2Ftty_update.c;h=866681369a108ab989a3b45ce3e4dea84ddb7bbd;hb=491a3f08b795f494ae17179338c31a11b18fd433;hp=57222f15f5ff31bbe98af66e3968aed6b560a18a;hpb=7a27c7d49c2e8b4a1ecbe85b4423d647cbc75ea5;p=ncurses.git diff --git a/ncurses/tty/tty_update.c b/ncurses/tty/tty_update.c index 57222f15..86668136 100644 --- a/ncurses/tty/tty_update.c +++ b/ncurses/tty/tty_update.c @@ -74,7 +74,7 @@ #include #include -MODULE_ID("$Id: tty_update.c,v 1.239 2007/04/19 20:57:49 tom Exp $") +MODULE_ID("$Id: tty_update.c,v 1.243 2007/10/13 20:03:32 tom Exp $") /* * This define controls the line-breakout optimization. Every once in a @@ -289,7 +289,7 @@ PutAttrChar(CARG_CH_T ch) #endif { PUTC(CHDEREF(ch), SP->_ofp); /* macro's fastest... */ - TRACE_OUTCHARS(1); + COUNT_OUTCHARS(1); } SP->_curscol += chlen; if (char_padding) { @@ -624,13 +624,18 @@ doupdate(void) T((T_CALLED("doupdate()"))); + if (curscr == 0 + || newscr == 0) + returnCode(ERR); + #ifdef TRACE - if (_nc_tracing & TRACE_UPDATE) { + if (USE_TRACEF(TRACE_UPDATE)) { if (curscr->_clear) _tracef("curscr is clear"); else _tracedump("curscr", curscr); _tracedump("newscr", newscr); + _nc_unlock_global(tracef); } #endif /* TRACE */ @@ -666,7 +671,7 @@ doupdate(void) } #if USE_TRACE_TIMES /* zero the metering machinery */ - _nc_outchars = 0; + RESET_OUTCHARS(); (void) times(&before); #endif /* USE_TRACE_TIMES */ @@ -826,9 +831,10 @@ doupdate(void) #ifdef TRACE /* show altered highlights after magic-cookie check */ - if (_nc_tracing & TRACE_UPDATE) { + if (USE_TRACEF(TRACE_UPDATE)) { _tracef("After magic-cookie check..."); _tracedump("newscr", newscr); + _nc_unlock_global(tracef); } #endif /* TRACE */ } @@ -836,7 +842,6 @@ doupdate(void) nonempty = 0; if (curscr->_clear || newscr->_clear) { /* force refresh ? */ - TR(TRACE_UPDATE, ("clearing and updating from scratch")); ClrUpdate(); curscr->_clear = FALSE; /* reset flag */ newscr->_clear = FALSE; /* reset flag */ @@ -967,7 +972,7 @@ ClrUpdate(void) NCURSES_CH_T blank = ClrBlank(stdscr); int nonempty = min(screen_lines, newscr->_maxy + 1); - TR(TRACE_UPDATE, ("ClrUpdate() called")); + TR(TRACE_UPDATE, (T_CALLED("ClrUpdate"))); ClearScreen(blank); @@ -977,6 +982,8 @@ ClrUpdate(void) for (i = 0; i < nonempty; i++) TransformLine(i); + + TR(TRACE_UPDATE, (T_RETURN(""))); } /*