… | |
… | |
332 | llen += prev_ncol; |
332 | llen += prev_ncol; |
333 | } |
333 | } |
334 | |
334 | |
335 | int qlines = max (0, (llen - 1) / ncol) + 1; |
335 | int qlines = max (0, (llen - 1) / ncol) + 1; |
336 | |
336 | |
|
|
337 | // drop partial lines completely |
|
|
338 | if (q < qlines) |
|
|
339 | break; |
|
|
340 | |
337 | q -= qlines; |
341 | q -= qlines; |
338 | |
|
|
339 | // drop partial lines completely |
|
|
340 | if (q < 0) |
|
|
341 | break; |
|
|
342 | |
342 | |
343 | int lofs = 0; |
343 | int lofs = 0; |
344 | line_t *qline; |
344 | line_t *qline; |
345 | |
345 | |
346 | // re-assemble the full line by destination lines |
346 | // re-assemble the full line by destination lines |
… | |
… | |
392 | } |
392 | } |
393 | else |
393 | else |
394 | #endif |
394 | #endif |
395 | { |
395 | { |
396 | // wing, instead of wrap |
396 | // wing, instead of wrap |
|
|
397 | screen.cur.row += nrow - prev_nrow; |
|
|
398 | |
397 | do |
399 | do |
398 | { |
400 | { |
399 | p = MOD (p - 1, prev_total_rows); |
401 | p = MOD (p - 1, prev_total_rows); |
400 | q--; |
402 | q--; |
401 | |
403 | |
402 | copy_line (row_buf [q], prev_row_buf [p]); |
404 | copy_line (row_buf [q], prev_row_buf [p]); |
403 | } |
405 | } |
404 | while (p != pend); |
406 | while (p != pend && q > 0); |
405 | } |
407 | } |
406 | |
408 | |
407 | term_start = total_rows - nrow; |
409 | term_start = total_rows - nrow; |
408 | top_row = q - term_start; |
410 | top_row = q - term_start; |
409 | |
411 | |
… | |
… | |
413 | |
415 | |
414 | clamp_it (screen.cur.row, 0, nrow - 1); |
416 | clamp_it (screen.cur.row, 0, nrow - 1); |
415 | clamp_it (screen.cur.col, 0, ncol - 1); |
417 | clamp_it (screen.cur.col, 0, ncol - 1); |
416 | } |
418 | } |
417 | |
419 | |
|
|
420 | // ensure drawn_buf, swap_buf and terminal rows are all initialized |
418 | for (int row = nrow; row--; ) |
421 | for (int row = nrow; row--; ) |
419 | { |
422 | { |
420 | if (!ROW (row).valid ()) scr_blank_screen_mem (ROW (row), DEFAULT_RSTYLE); |
423 | if (!ROW (row).valid ()) scr_blank_screen_mem (ROW (row), DEFAULT_RSTYLE); |
421 | if (!swap_buf [row].valid ()) scr_blank_screen_mem (swap_buf [row], DEFAULT_RSTYLE); |
424 | if (!swap_buf [row].valid ()) scr_blank_screen_mem (swap_buf [row], DEFAULT_RSTYLE); |
422 | if (!drawn_buf [row].valid ()) scr_blank_screen_mem (drawn_buf [row], DEFAULT_RSTYLE); |
425 | if (!drawn_buf [row].valid ()) scr_blank_screen_mem (drawn_buf [row], DEFAULT_RSTYLE); |