From ff96aace6d9fd99fcf8bdacf2c663dbf4451367c Mon Sep 17 00:00:00 2001 From: "Kartik K. Agaram" Date: Wed, 10 May 2017 16:37:35 -0700 Subject: 3850 Bugfix: writes out of bounds used to be skipped, but started clobbering the screen on commit 3824. --- 081print.mu | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) (limited to '081print.mu') diff --git a/081print.mu b/081print.mu index d795e617..1d3bf8dc 100644 --- a/081print.mu +++ b/081print.mu @@ -101,15 +101,27 @@ def print screen:&:screen, c:char -> screen:&:screen [ row:num <- get *screen, cursor-row:offset row <- round row legal?:bool <- greater-or-equal row, 0 - return-unless legal? + { + break-if legal? + row <- copy 0 + } legal? <- lesser-than row, height - return-unless legal? + { + break-if legal? + row <- subtract height, 1 + } column:num <- get *screen, cursor-column:offset column <- round column legal? <- greater-or-equal column, 0 - return-unless legal? + { + break-if legal? + column <- copy 0 + } legal? <- lesser-than column, width - return-unless legal? + { + break-if legal? + column <- subtract width, 1 + } #? $print [print-character (], row, [, ], column, [): ], c, 10/newline # special-case: newline { -- cgit 1.4.1-2-gfad0