diff --git a/screen-write.c b/screen-write.c index e351a5e5..8cc81f92 100644 --- a/screen-write.c +++ b/screen-write.c @@ -596,7 +596,7 @@ screen_write_hline(struct screen_write_ctx *ctx, u_int nx, int left, int right) screen_write_set_cursor(ctx, cx, cy); } -/* Draw a horizontal line on screen. */ +/* Draw a vertical line on screen. */ void screen_write_vline(struct screen_write_ctx *ctx, u_int ny, int top, int bottom) { diff --git a/tty.c b/tty.c index e0a3f6b6..cb0fdec0 100644 --- a/tty.c +++ b/tty.c @@ -1463,9 +1463,15 @@ tty_draw_line(struct tty *tty, struct screen *s, u_int px, u_int py, u_int nx, tty_attributes(tty, &last, defaults, palette); tty_cursor(tty, atx + ux, aty); for (j = 0; j < gcp->data.width; j++) { - if (ux + j > nx) + if (ux > nx) break; - tty_putc(tty, ' '); + if (tty_check_overlay(tty, atx + ux, + aty)) + tty_putc(tty, ' '); + else { + tty_cursor(tty, atx + ux + 1, + aty); + } ux++; } }