/*---------------------------------------------*/ static void do_talk_nextline(struct talk_win *twin) { twin->curcol = 0; if (twin->curln < twin->eline) ++(twin->curln); else region_scroll_up(twin->sline, twin->eline); move(twin->curln, twin->curcol); }
// prepare screen buffer to display one line of text CCW_PROTO void ccw_prepare_line(CCW_CTX *ctx) { move(ctx->line, 0); if ( ctx->line+1 < CCW_STOP_LINE) { // simply append ctx->line ++; } else { // scroll screen buffer region_scroll_up(CCW_INIT_LINE, CCW_STOP_LINE - CCW_INIT_LINE); move(ctx->line-1, 0); // XXX after resize, we may need to scroll more than once. } clrtoeol(); }