From 37ceb65729beb221e92de8a8ae07c8f3d3e207b5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Ekl=C3=B6f?= Date: Sat, 27 Jun 2020 13:18:54 +0200 Subject: [PATCH] sixel: split: make sure relative row/column values are bounded --- sixel.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/sixel.c b/sixel.c index f04a8d7e..aaf5941e 100644 --- a/sixel.c +++ b/sixel.c @@ -168,10 +168,10 @@ static void sixel_split(struct terminal *term, struct sixel *six, int row, int col, int height, int width) { - int rel_above = max(row - six->pos.row, 0); - int rel_below = min(row + height - six->pos.row, six->rows); - int rel_left = max(col - six->pos.col, 0); - int rel_right = min(col + width - six->pos.col, six->cols); + int rel_above = min(max(row - six->pos.row, 0), six->rows); + int rel_below = max(min(row + height - six->pos.row, six->rows), 0); + int rel_left = min(max(col - six->pos.col, 0), six->cols); + int rel_right = max(min(col + width - six->pos.col, six->cols), 0); assert(rel_above >= 0); assert(rel_below >= 0);