mirror of
https://github.com/rkd77/elinks.git
synced 2025-02-02 15:09:23 -05:00
Prevent internal errors when terminal width or height are very small
(1x1 was fatal).
This commit is contained in:
parent
aefe2c0b68
commit
ee503f6c00
@ -503,6 +503,8 @@ draw_text(struct terminal *term, int x, int y,
|
|||||||
assert(text && length >= 0);
|
assert(text && length >= 0);
|
||||||
if_assert_failed return;
|
if_assert_failed return;
|
||||||
|
|
||||||
|
if (x >= term->width || y >= term->height) return;
|
||||||
|
|
||||||
#ifdef CONFIG_UTF8
|
#ifdef CONFIG_UTF8
|
||||||
if (term->utf8_cp) {
|
if (term->utf8_cp) {
|
||||||
draw_text_utf8(term, x, y, text, length, attr, color);
|
draw_text_utf8(term, x, y, text, length, attr, color);
|
||||||
|
@ -46,10 +46,10 @@ colspan_is_in_box(struct box *box, int x, int span)
|
|||||||
static inline void
|
static inline void
|
||||||
set_box(struct box *box, int x, int y, int width, int height)
|
set_box(struct box *box, int x, int y, int width, int height)
|
||||||
{
|
{
|
||||||
box->x = x;
|
box->x = int_max(0, x);
|
||||||
box->y = y;
|
box->y = int_max(0, y);
|
||||||
box->width = width;
|
box->width = int_max(0, width);
|
||||||
box->height = height;
|
box->height = int_max(0, height);
|
||||||
}
|
}
|
||||||
|
|
||||||
/** @relates box */
|
/** @relates box */
|
||||||
|
Loading…
x
Reference in New Issue
Block a user