version 1.113, 2017/02/16 12:43:08 |
version 1.114, 2017/02/21 10:30:15 |
|
|
grid_view_clear(s->grid, 0, s->cy, sx, 1, bg); |
grid_view_clear(s->grid, 0, s->cy, sx, 1, bg); |
|
|
screen_write_collect_clear(ctx, s->cy, 1); |
screen_write_collect_clear(ctx, s->cy, 1); |
|
screen_write_collect_flush(ctx, 0); |
tty_write(tty_cmd_clearline, &ttyctx); |
tty_write(tty_cmd_clearline, &ttyctx); |
} |
} |
|
|
|
|
|
|
if (s->cx == 0) |
if (s->cx == 0) |
screen_write_collect_clear(ctx, s->cy, 1); |
screen_write_collect_clear(ctx, s->cy, 1); |
else |
screen_write_collect_flush(ctx, 0); |
screen_write_collect_flush(ctx, 0); |
|
tty_write(tty_cmd_clearendofline, &ttyctx); |
tty_write(tty_cmd_clearendofline, &ttyctx); |
} |
} |
|
|
|
|
|
|
if (s->cx > sx - 1) |
if (s->cx > sx - 1) |
screen_write_collect_clear(ctx, s->cy, 1); |
screen_write_collect_clear(ctx, s->cy, 1); |
else |
screen_write_collect_flush(ctx, 0); |
screen_write_collect_flush(ctx, 0); |
|
tty_write(tty_cmd_clearstartofline, &ttyctx); |
tty_write(tty_cmd_clearstartofline, &ttyctx); |
} |
} |
|
|
|
|
else |
else |
gl->flags &= ~GRID_LINE_WRAPPED; |
gl->flags &= ~GRID_LINE_WRAPPED; |
|
|
|
log_debug("%s: at %u,%u (region %u-%u)", __func__, s->cx, s->cy, |
|
s->rupper, s->rlower); |
|
|
if (s->cy == s->rlower) { |
if (s->cy == s->rlower) { |
grid_view_scroll_region_up(gd, s->rupper, s->rlower); |
grid_view_scroll_region_up(gd, s->rupper, s->rlower); |
screen_write_collect_scroll(ctx); |
screen_write_collect_scroll(ctx); |
|
|
free(ci); |
free(ci); |
} |
} |
ctx->skipped += size; |
ctx->skipped += size; |
log_debug("discarding %zu bytes on line %u", size, i); |
log_debug("%s: dropped %zu bytes (line %u)", __func__, size, i); |
} |
} |
} |
} |
|
|
|
|
struct screen_write_collect_line *cl; |
struct screen_write_collect_line *cl; |
u_int y; |
u_int y; |
|
|
|
log_debug("%s: at %u,%u (region %u-%u)", __func__, s->cx, s->cy, |
|
s->rupper, s->rlower); |
|
|
screen_write_collect_clear(ctx, s->rupper, 1); |
screen_write_collect_clear(ctx, s->rupper, 1); |
for (y = s->rupper; y < s->rlower; y++) { |
for (y = s->rupper; y < s->rlower; y++) { |
cl = &ctx->list[y + 1]; |
cl = &ctx->list[y + 1]; |
|
|
if (s->cx > sx - 1 || ctx->item->used > sx - 1 - s->cx) |
if (s->cx > sx - 1 || ctx->item->used > sx - 1 - s->cx) |
screen_write_collect_end(ctx); |
screen_write_collect_end(ctx); |
if (s->cx > sx - 1) { |
if (s->cx > sx - 1) { |
|
log_debug("%s: wrapped at %u,%u", __func__, s->cx, s->cy); |
screen_write_linefeed(ctx, 1); |
screen_write_linefeed(ctx, 1); |
s->cx = 0; |
s->cx = 0; |
} |
} |