Always move the cursor position on !xenl terminals, since there is no invisible

last cursor position.

Also nuke an unused variable.
This commit is contained in:
Nicholas Marriott 2009-10-17 08:35:38 +00:00
parent fe26b5d25f
commit daa26079ee
2 changed files with 8 additions and 7 deletions

View File

@ -990,7 +990,7 @@ screen_write_cell(
struct tty_ctx ttyctx;
struct grid_utf8 gu, *tmp_gu;
u_int width, xx, i;
struct grid_cell tmp_gc, tmp_gc2, *tmp_gcp;
struct grid_cell tmp_gc, *tmp_gcp;
int insert = 0;
/* Ignore padding. */
@ -1101,13 +1101,13 @@ screen_write_cell(
}
ttyctx.utf8 = &gu;
if (screen_check_selection(s, s->cx - width, s->cy)) {
memcpy(&tmp_gc2, &s->sel.cell, sizeof tmp_gc2);
tmp_gc2.data = gc->data;
tmp_gc2.flags = gc->flags &
memcpy(&tmp_gc, &s->sel.cell, sizeof tmp_gc);
tmp_gc.data = gc->data;
tmp_gc.flags = gc->flags &
~(GRID_FLAG_FG256|GRID_FLAG_BG256);
tmp_gc2.flags |= s->sel.cell.flags &
tmp_gc.flags |= s->sel.cell.flags &
(GRID_FLAG_FG256|GRID_FLAG_BG256);
ttyctx.cell = &tmp_gc2;
ttyctx.cell = &tmp_gc;
tty_write(tty_cmd_cell, &ttyctx);
} else {
ttyctx.cell = gc;

3
tty.c
View File

@ -850,7 +850,8 @@ tty_cmd_cell(struct tty *tty, const struct tty_ctx *ctx)
* Should the cursor be in the last cursor position ready for a natural
* wrap? If so - and it isn't - move to and rewrite the last cell.
*/
if (ctx->ocx + wp->xoff > tty->sx - ctx->last_width) {
if (!(tty->term->flags & TERM_EARLYWRAP) &&
ctx->ocx + wp->xoff > tty->sx - ctx->last_width) {
if (tty->cx < tty->sx) {
cx = screen_size_x(s) - ctx->last_width;
tty_cursor_pane(tty, ctx, cx, ctx->ocy);