… | |
… | |
283 | // to come up with a lean and mean algorithm. |
283 | // to come up with a lean and mean algorithm. |
284 | |
284 | |
285 | row_col_t ocur = screen.cur; |
285 | row_col_t ocur = screen.cur; |
286 | ocur.row = MOD (term_start + ocur.row, prev_total_rows); |
286 | ocur.row = MOD (term_start + ocur.row, prev_total_rows); |
287 | |
287 | |
288 | while (p != pend && q > 0) |
288 | do |
289 | { |
289 | { |
290 | p = MOD (p - 1, prev_total_rows); |
290 | p = MOD (p - 1, prev_total_rows); |
291 | #ifdef DEBUG_STRICT |
291 | #ifdef DEBUG_STRICT |
292 | assert (old_buf [MOD (p, prev_total_rows)].t); |
292 | assert (old_buf [MOD (p, prev_total_rows)].t); |
293 | #endif |
293 | #endif |
… | |
… | |
354 | } |
354 | } |
355 | |
355 | |
356 | qline->l = llen < ncol ? llen : MOD (llen - 1, ncol) + 1; |
356 | qline->l = llen < ncol ? llen : MOD (llen - 1, ncol) + 1; |
357 | scr_blank_line (*qline, qline->l, ncol - qline->l, DEFAULT_RSTYLE); |
357 | scr_blank_line (*qline, qline->l, ncol - qline->l, DEFAULT_RSTYLE); |
358 | } |
358 | } |
|
|
359 | while (p != pend && q > 0); |
359 | |
360 | |
360 | term_start = total_rows - nrow; |
361 | term_start = total_rows - nrow; |
361 | view_start = 0; |
|
|
362 | nsaved = term_start - q; |
362 | nsaved = term_start - q; |
363 | |
363 | |
364 | // make sure all terminal lines exist |
364 | // make sure all terminal lines exist |
365 | while (nsaved < 0) |
365 | while (nsaved < 0) |
366 | scr_blank_screen_mem (ROW (-++nsaved), DEFAULT_RSTYLE); |
366 | scr_blank_screen_mem (ROW (-++nsaved), DEFAULT_RSTYLE); |
… | |
… | |
383 | { |
383 | { |
384 | row_buf [row].clear (); scr_blank_screen_mem (row_buf [row], DEFAULT_RSTYLE); |
384 | row_buf [row].clear (); scr_blank_screen_mem (row_buf [row], DEFAULT_RSTYLE); |
385 | } |
385 | } |
386 | |
386 | |
387 | term_start = 0; |
387 | term_start = 0; |
388 | view_start = 0; |
|
|
389 | } |
388 | } |
390 | |
389 | |
391 | #ifdef DEBUG_STRICT |
390 | #ifdef DEBUG_STRICT |
392 | for (int i = -nsaved; i < nrow; i++) |
391 | for (int i = -nsaved; i < nrow; i++) |
393 | assert (ROW (i).t); |
392 | assert (ROW (i).t); |