diff options
author | Kartik K. Agaram <vc@akkartik.com> | 2021-07-03 18:27:01 -0700 |
---|---|---|
committer | Kartik K. Agaram <vc@akkartik.com> | 2021-07-03 18:27:01 -0700 |
commit | c95648c96093ce0d44c21191bab0ee2c9b04becc (patch) | |
tree | eb58e435a158100b99e152199b193acc53df4ab3 /shell/print.mu | |
parent | 7ced4e44ddb6e15152eb8bcef9dda68aba53710b (diff) | |
download | mu-c95648c96093ce0d44c21191bab0ee2c9b04becc.tar.gz |
reading from streams
The Mu shell has no string literals, only streams. No random access, only sequential access. But I've been playing fast and loose with its read pointer until now. Hopefully things are cleaned up now.
Diffstat (limited to 'shell/print.mu')
-rw-r--r-- | shell/print.mu | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/shell/print.mu b/shell/print.mu index 6db5a25d..0469c002 100644 --- a/shell/print.mu +++ b/shell/print.mu @@ -160,7 +160,7 @@ fn print-symbol _in: (addr cell), out: (addr stream byte), trace: (addr trace) { error trace, "print-symbol: no space" return } - write-stream out, data + write-stream-immutable out, data # trace var should-trace?/eax: boolean <- should-trace? trace compare should-trace?, 0/false @@ -179,7 +179,6 @@ fn print-stream _in: (addr cell), out: (addr stream byte), trace: (addr trace) { var data-ah/eax: (addr handle stream byte) <- get in, text-data var _data/eax: (addr stream byte) <- lookup *data-ah var data/esi: (addr stream byte) <- copy _data - rewind-stream data var _required-space/eax: int <- stream-size data var required-space/ecx: int <- copy _required-space required-space <- add 2 # for [] @@ -192,7 +191,7 @@ fn print-stream _in: (addr cell), out: (addr stream byte), trace: (addr trace) { return } write out, "[" - write-stream out, data + write-stream-immutable out, data write out, "]" # trace var should-trace?/eax: boolean <- should-trace? trace @@ -202,7 +201,7 @@ fn print-stream _in: (addr cell), out: (addr stream byte), trace: (addr trace) { var stream-storage: (stream byte 0x40) var stream/ecx: (addr stream byte) <- address stream-storage write stream, "=> stream " - write-stream stream, data + write-stream-immutable stream, data trace trace, "print", stream } |