mirror of
https://github.com/tmux/tmux.git
synced 2024-11-17 09:58:52 +00:00
Sync OpenBSD patchset 415:
Don't print wide characters at screen width - 1. Matches uterm behaviour and is probably a better idea anyway.
This commit is contained in:
parent
ac4e4a2b6c
commit
2e39ab59d7
@ -1,4 +1,4 @@
|
|||||||
/* $Id: screen-write.c,v 1.78 2009-10-23 17:06:23 tcunha Exp $ */
|
/* $Id: screen-write.c,v 1.79 2009-10-23 17:07:18 tcunha Exp $ */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
|
* Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
|
||||||
@ -1006,6 +1006,14 @@ screen_write_cell(
|
|||||||
} else
|
} else
|
||||||
width = 1;
|
width = 1;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* If this is a wide character and there is no room on the screen, for
|
||||||
|
* the entire character, don't print it.
|
||||||
|
*/
|
||||||
|
if (width > 1 && (width > screen_size_x(s) ||
|
||||||
|
(s->cx != screen_size_x(s) && s->cx > screen_size_x(s) - width)))
|
||||||
|
return;
|
||||||
|
|
||||||
/* If the width is zero, combine onto the previous character. */
|
/* If the width is zero, combine onto the previous character. */
|
||||||
if (width == 0) {
|
if (width == 0) {
|
||||||
if (s->cx == 0)
|
if (s->cx == 0)
|
||||||
@ -1037,14 +1045,6 @@ screen_write_cell(
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* If the character is wider than the screen, don't print it. */
|
|
||||||
if (width > screen_size_x(s)) {
|
|
||||||
memcpy(&tmp_gc, gc, sizeof tmp_gc);
|
|
||||||
tmp_gc.data = '_';
|
|
||||||
width = 1;
|
|
||||||
gc = &tmp_gc;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Initialise the redraw context, saving the last cell. */
|
/* Initialise the redraw context, saving the last cell. */
|
||||||
screen_write_initctx(ctx, &ttyctx, 1);
|
screen_write_initctx(ctx, &ttyctx, 1);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user