diff options
author | Kartik K. Agaram <vc@akkartik.com> | 2017-05-10 16:37:35 -0700 |
---|---|---|
committer | Kartik K. Agaram <vc@akkartik.com> | 2017-05-10 16:37:35 -0700 |
commit | ff96aace6d9fd99fcf8bdacf2c663dbf4451367c (patch) | |
tree | e4535e33b7c39f67efc9f34ca94efad42fcddca5 /081print.mu | |
parent | 45bcfcfe10e6a2fbc8aa4a84f60ca7d39af14031 (diff) | |
download | mu-ff96aace6d9fd99fcf8bdacf2c663dbf4451367c.tar.gz |
3850
Bugfix: writes out of bounds used to be skipped, but started clobbering the screen on commit 3824.
Diffstat (limited to '081print.mu')
-rw-r--r-- | 081print.mu | 20 |
1 files changed, 16 insertions, 4 deletions
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 { |