version 1.118, 2014/11/06 09:17:26 |
version 1.119, 2014/11/06 10:56:44 |
|
|
data->backing = xmalloc(sizeof *data->backing); |
data->backing = xmalloc(sizeof *data->backing); |
screen_init(data->backing, screen_size_x(&wp->base), |
screen_init(data->backing, screen_size_x(&wp->base), |
screen_size_y(&wp->base), UINT_MAX); |
screen_size_y(&wp->base), UINT_MAX); |
data->backing->mode &= ~MODE_WRAP; |
|
} |
} |
|
|
void |
void |
|
|
struct screen_write_ctx back_ctx, ctx; |
struct screen_write_ctx back_ctx, ctx; |
struct grid_cell gc; |
struct grid_cell gc; |
int utf8flag; |
int utf8flag; |
u_int old_hsize; |
u_int old_hsize, old_cy; |
|
|
if (backing == &wp->base) |
if (backing == &wp->base) |
return; |
return; |
|
|
screen_write_linefeed(&back_ctx, 0); |
screen_write_linefeed(&back_ctx, 0); |
} else |
} else |
data->backing_written = 1; |
data->backing_written = 1; |
|
old_cy = backing->cy; |
screen_write_vnputs(&back_ctx, 0, &gc, utf8flag, fmt, ap); |
screen_write_vnputs(&back_ctx, 0, &gc, utf8flag, fmt, ap); |
screen_write_stop(&back_ctx); |
screen_write_stop(&back_ctx); |
|
|
|
|
if (screen_hsize(data->backing)) |
if (screen_hsize(data->backing)) |
window_copy_redraw_lines(wp, 0, 1); |
window_copy_redraw_lines(wp, 0, 1); |
|
|
/* Write the line, if it's visible. */ |
/* Write the new lines. */ |
if (backing->cy + data->oy < screen_size_y(backing)) |
window_copy_redraw_lines(wp, old_cy, backing->cy - old_cy + 1); |
window_copy_redraw_lines(wp, backing->cy, 1); |
|
|
|
screen_write_stop(&ctx); |
screen_write_stop(&ctx); |
} |
} |
|
|
struct screen *s = &data->screen; |
struct screen *s = &data->screen; |
struct screen_write_ctx ctx; |
struct screen_write_ctx ctx; |
|
|
screen_resize(s, sx, sy, 0); |
screen_resize(s, sx, sy, 1); |
if (data->backing != &wp->base) |
if (data->backing != &wp->base) |
screen_resize(data->backing, sx, sy, 0); |
screen_resize(data->backing, sx, sy, 1); |
|
|
if (data->cy > sy - 1) |
if (data->cy > sy - 1) |
data->cy = sy - 1; |
data->cy = sy - 1; |