about summary refs log tree commit diff stats
path: root/apps
diff options
context:
space:
mode:
authorKartik Agaram <vc@akkartik.com>2020-08-02 12:05:25 -0700
committerKartik Agaram <vc@akkartik.com>2020-08-02 15:11:52 -0700
commit0452b05f5a78b33d94352c676e021b4a1abfb5f2 (patch)
tree53ec02b7898b125b88e27121ee74f22456c524b4 /apps
parent1b79f705b9975a3293fd111c5dc129e887dc01c0 (diff)
downloadmu-0452b05f5a78b33d94352c676e021b4a1abfb5f2.tar.gz
6703 - new types: code-point and grapheme
Both have the same size: 4 bytes.

So far I've just renamed print-byte to print-grapheme, but it still behaves
the same.

I'm going to support printing code-points next, but grapheme 'clusters'
spanning multiple code-points won't be supported for some time.
Diffstat (limited to 'apps')
-rw-r--r--apps/browse.mu6
-rwxr-xr-xapps/mubin368997 -> 369023 bytes
-rw-r--r--apps/mu.subx4
-rw-r--r--apps/print-file.mu2
-rwxr-xr-xapps/randombin23597 -> 23601 bytes
5 files changed, 8 insertions, 4 deletions
diff --git a/apps/browse.mu b/apps/browse.mu
index 77ff999c..5681060f 100644
--- a/apps/browse.mu
+++ b/apps/browse.mu
@@ -96,7 +96,8 @@ $line-loop: {
       update-attributes c, r
       compare c, 0xa  # newline
       break-if-=  # no need to print newlines
-      print-byte 0, c
+      var g/eax: grapheme <- copy c
+      print-grapheme 0, g
       col <- increment
       loop
     }
@@ -176,6 +177,7 @@ fn dump in: (addr buffered-file) {
   var c/eax: byte <- read-byte-buffered in
   compare c, 0xffffffff  # EOF marker
   break-if-=
-  print-byte 0, c
+  var g/eax: grapheme <- copy c
+  print-grapheme 0, g
   loop
 }
diff --git a/apps/mu b/apps/mu
index 0d808397..fbacd783 100755
--- a/apps/mu
+++ b/apps/mu
Binary files differdiff --git a/apps/mu.subx b/apps/mu.subx
index cb2d6d71..20f59336 100644
--- a/apps/mu.subx
+++ b/apps/mu.subx
@@ -412,8 +412,10 @@ Type-id:  # (stream (addr array byte))
   # some SubX types deliberately left undefined in Mu; they can only be operated on using SubX primitives
   "stream"/imm32  # 11
   "slice"/imm32  # 12
+  "code-point"/imm32  # 13; smallest scannable unit from a text stream
+  "grapheme"/imm32  # 14; smallest printable unit; will eventually be composed of multiple code-points, but currently corresponds 1:1
   # Keep Primitive-type-ids in sync if you add types here.
-                                          0/imm32 0/imm32 0/imm32
+                                                          0/imm32
   0/imm32 0/imm32 0/imm32 0/imm32 0/imm32 0/imm32 0/imm32 0/imm32
   0/imm32 0/imm32 0/imm32 0/imm32 0/imm32 0/imm32 0/imm32 0/imm32
   0/imm32 0/imm32 0/imm32 0/imm32 0/imm32 0/imm32 0/imm32 0/imm32
diff --git a/apps/print-file.mu b/apps/print-file.mu
index aed4579d..7cd51bdc 100644
--- a/apps/print-file.mu
+++ b/apps/print-file.mu
@@ -31,7 +31,7 @@ $main-body: {
         var c/eax: byte <- read-byte-buffered in-addr
         compare c, 0xffffffff  # EOF marker
         break-if-=
-        print-byte 0, c
+        print-grapheme 0, c
         loop
       }
     }
diff --git a/apps/random b/apps/random
index 5c828306..4123332e 100755
--- a/apps/random
+++ b/apps/random
Binary files differ