void redrawwin(void) { register screenline_t *bp; register int i, j; int len; o_clear(); for (tc_col = tc_line = i = 0, j = roll; i < t_lines; i++, j++) { if (j >= t_lines) j = 0; bp = &big_picture[j]; if ((len = bp->len)) { rel_move(tc_col, tc_line, 0, i); #ifdef DBCSAWARE if (!(bp->mode & STANDOUT) && (HasUserFlag(UF_DBCS_NOINTRESC)) && DBCS_RemoveIntrEscape(bp->data, &len)) { // if anything changed, dirty whole line. bp->len = len; } #endif // DBCSAWARE if (bp->mode & STANDOUT) { standoutput((char *)bp->data, 0, len, bp->sso, bp->eso); } else output((char *)bp->data, len); tc_col += len; if (tc_col >= t_columns) { if (automargins) tc_col = t_columns - 1; else { tc_col -= t_columns; tc_line++; if (tc_line >= t_lines) tc_line = b_lines; } } bp->mode &= ~(MODIFIED); bp->oldlen = len; } } rel_move(tc_col, tc_line, cur_col, cur_ln); docls = scrollcnt = 0; oflush(); }
void redoscr() { register screenline *bp; register int i, j, len; o_clear(); for (tc_col = tc_line = i = 0, j = roll; i < scr_lns; i++, j++) { if (j >= scr_lns) j = 0; bp = &big_picture[j]; if (len = bp->len) { rel_move(0, i); if (bp->mode & STANDOUT) standoutput(bp->data, 0, len, bp->sso, bp->eso); else output(bp->data, len); tc_col += len; if (tc_col >= scr_cols) { if (automargins) tc_col = scr_cols - 1; else { tc_col -= scr_cols; tc_line++; if (tc_line >= t_lines) tc_line = b_lines; } } bp->mode &= ~(MODIFIED); bp->oldlen = len; } } rel_move(cur_col, cur_ln); docls = scrollcnt = 0; oflush(); }