diff options
author | Kartik K. Agaram <vc@akkartik.com> | 2017-05-13 12:42:17 -0700 |
---|---|---|
committer | Kartik K. Agaram <vc@akkartik.com> | 2017-05-13 12:42:17 -0700 |
commit | 0c0d1ea5cdb96a98e7eb62edbd1acb534ae12940 (patch) | |
tree | 7b64a6e98fb16d2bf02c5003acc2c14d7d1d6043 /081print.mu | |
parent | 8195ed4ee94f490d377b91caa0d79f21dd3e86ed (diff) | |
download | mu-0c0d1ea5cdb96a98e7eb62edbd1acb534ae12940.tar.gz |
3854
Revert commits 3824, 3850 and 3852. We'll redo them more carefully.
Diffstat (limited to '081print.mu')
-rw-r--r-- | 081print.mu | 59 |
1 files changed, 43 insertions, 16 deletions
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 |