From 0c0d1ea5cdb96a98e7eb62edbd1acb534ae12940 Mon Sep 17 00:00:00 2001 From: "Kartik K. Agaram" Date: Sat, 13 May 2017 12:42:17 -0700 Subject: 3854 Revert commits 3824, 3850 and 3852. We'll redo them more carefully. --- 081print.mu | 59 +++++++++++++++++++++++++++++++++++++++++++---------------- 1 file changed, 43 insertions(+), 16 deletions(-) (limited to '081print.mu') diff --git a/081print.mu b/081print.mu index 1d3bf8dc..487696c5 100644 --- a/081print.mu +++ b/081print.mu @@ -50,6 +50,13 @@ def clear-screen screen:&:screen -> screen:&:screen [ *screen <- put *screen, cursor-column:offset, 0 ] +def sync-screen screen:&:screen -> screen:&:screen [ + local-scope + load-ingredients + return-if screen # do nothing for fake screens + sync-display +] + def fake-screen-is-empty? screen:&:screen -> result:bool [ local-scope load-ingredients @@ -101,27 +108,15 @@ 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 - { - break-if legal? - row <- copy 0 - } + return-unless legal? legal? <- lesser-than row, height - { - break-if legal? - row <- subtract height, 1 - } + return-unless legal? column:num <- get *screen, cursor-column:offset column <- round column legal? <- greater-or-equal column, 0 - { - break-if legal? - column <- copy 0 - } + return-unless legal? legal? <- lesser-than column, width - { - break-if legal? - column <- subtract width, 1 - } + return-unless legal? #? $print [print-character (], row, [, ], column, [): ], c, 10/newline # special-case: newline { @@ -609,6 +604,38 @@ def screen-height screen:&:screen -> height:num [ height <- display-height ] +def hide-cursor screen:&:screen -> screen:&:screen [ + local-scope + load-ingredients + return-if screen # fake screen; do nothing + # real screen + hide-cursor-on-display +] + +def show-cursor screen:&:screen -> screen:&:screen [ + local-scope + load-ingredients + return-if screen # fake screen; do nothing + # real screen + show-cursor-on-display +] + +def hide-screen screen:&:screen -> screen:&:screen [ + local-scope + load-ingredients + return-if screen # fake screen; do nothing + # real screen + hide-display +] + +def show-screen screen:&:screen -> screen:&:screen [ + local-scope + load-ingredients + return-if screen # fake screen; do nothing + # real screen + show-display +] + def print screen:&:screen, s:text -> screen:&:screen [ local-scope load-ingredients -- cgit 1.4.1-2-gfad0