about summary refs log tree commit diff stats
path: root/088file.mu
diff options
context:
space:
mode:
Diffstat (limited to '088file.mu')
-rw-r--r--088file.mu27
1 files changed, 24 insertions, 3 deletions
diff --git a/088file.mu b/088file.mu
index 6e6a89e1..b26ae438 100644
--- a/088file.mu
+++ b/088file.mu
@@ -8,12 +8,12 @@ container filesystem [
 def start-reading fs:address:filesystem, filename:address:array:character -> contents:address:source:character [
   local-scope
   load-ingredients
-  x:number/file <- $open-file-for-reading filename
+  file:number <- $open-file-for-reading filename
   contents:address:source:character, sink:address:sink:character <- new-channel 30
-  start-running transmit x, sink
+  start-running transmit-from-file file, sink
 ]
 
-def transmit file:number, sink:address:sink:character -> file:number, sink:address:sink:character [
+def transmit-from-file file:number, sink:address:sink:character -> file:number, sink:address:sink:character [
   local-scope
   load-ingredients
   {
@@ -23,4 +23,25 @@ def transmit file:number, sink:address:sink:character -> file:number, sink:addre
     loop
   }
   sink <- close sink
+  $close-file file
+]
+
+def start-writing fs:address:filesystem, filename:address:array:character -> sink:address:sink:character, routine-id:number [
+  local-scope
+  load-ingredients
+  file:number <- $open-file-for-writing filename
+  source:address:source:character, sink:address:sink:character <- new-channel 30
+  routine-id <- start-running transmit-to-file file, source
+]
+
+def transmit-to-file file:number, source:address:source:character -> file:number, source:address:source:character [
+  local-scope
+  load-ingredients
+  {
+    c:character, done?:boolean, source <- read source
+    break-if done?
+    $write-to-file file, c
+    loop
+  }
+  $close-file file
 ]
Kartik Agaram <vc@akkartik.com> 2020-10-18 15:39:34 -0700 committer Kartik Agaram <vc@akkartik.com> 2020-10-18 15:39:34 -0700 7054' href='/akkartik/mu/commit/apps/texture.mu?h=main&id=e170b35d8b37901903318851803e3cab5e09cde0'>e170b35d ^
d7d384a7 ^

82d1fe7c ^

e170b35d ^







c8e41a47 ^
e170b35d ^
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58