version 1.20, 2009/08/08 15:57:49 |
version 1.21, 2009/08/13 16:24:33 |
|
|
{ |
{ |
struct screen *s = ctx->s; |
struct screen *s = ctx->s; |
struct grid *gd = src->grid; |
struct grid *gd = src->grid; |
|
struct grid_line *gl; |
const struct grid_cell *gc; |
const struct grid_cell *gc; |
struct grid_utf8 *gu; |
|
u_char *udata; |
u_char *udata; |
u_int xx, yy, cx, cy; |
u_int xx, yy, cx, cy; |
|
|
cx = s->cx; |
cx = s->cx; |
cy = s->cy; |
cy = s->cy; |
for (yy = py; yy < py + ny; yy++) { |
for (yy = py; yy < py + ny; yy++) { |
|
gl = &gd->linedata[yy]; |
for (xx = px; xx < px + nx; xx++) { |
for (xx = px; xx < px + nx; xx++) { |
if (xx >= gd->sx || yy >= gd->hsize + gd->sy) |
udata = NULL; |
gc = &grid_default_cell; |
|
else |
|
gc = grid_peek_cell(gd, xx, yy); |
|
|
|
udata = NULL; |
if (xx >= gl->cellsize || yy >= gd->hsize + gd->sy) |
if (gc->flags & GRID_FLAG_UTF8) { |
gc = &grid_default_cell; |
gu = grid_get_utf8(gd, xx, yy); |
else { |
udata = gu->data; |
gc = &gl->celldata[xx]; |
|
if (gc->flags & GRID_FLAG_UTF8) |
|
udata = gl->utf8data[xx].data; |
} |
} |
|
|
screen_write_cell(ctx, gc, udata); |
screen_write_cell(ctx, gc, udata); |