https://github.com/akkartik/mu/blob/main/linux/410file.mu

     1 fn read-lines in: (addr buffered-file), out: (addr handle array (handle array byte)) {
     2   var stream: (stream (handle array byte) 0x10)
     3   var stream-a/edi: (addr stream (handle array byte)) <- address stream
     4   var line: (stream byte 0x10)
     5   var line-a/esi: (addr stream byte) <- address line
     6   {
     7     clear-stream line-a
     8     read-line-buffered in, line-a
     9     var done?/eax: boolean <- stream-empty? line-a
    10     compare done?, 0/false
    11     break-if-!=
    12 #?     print-string 0, "AAA\n"
    13     var h: (handle array byte)
    14     var ah/eax: (addr handle array byte) <- address h
    15     stream-to-array line-a, ah
    16     write-to-stream stream-a, ah
    17     loop
    18   }
    19   stream-to-array stream-a, out
    20 }