about summary refs log tree commit diff stats
path: root/081print.mu
diff options
context:
space:
mode:
authorKartik K. Agaram <vc@akkartik.com>2017-05-13 12:42:17 -0700
committerKartik K. Agaram <vc@akkartik.com>2017-05-13 12:42:17 -0700
commit0c0d1ea5cdb96a98e7eb62edbd1acb534ae12940 (patch)
tree7b64a6e98fb16d2bf02c5003acc2c14d7d1d6043 /081print.mu
parent8195ed4ee94f490d377b91caa0d79f21dd3e86ed (diff)
downloadmu-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.mu59
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