- let lines ic =
- Stream.create (fun () ->
- match input_line ic with
- | exception End_of_file ->
- None
- | line ->
- Some line
- )
+ let read_until_newline ic () =
+ match input_line ic with
+ | exception End_of_file ->
+ None
+ | line ->
+ Some line
+
+ let read_until_null ic =
+ let lexbuf = Lexing.from_channel ic in
+ fun () -> Input_delim.by_null lexbuf
+
+ let lines ?(delim_null=false) ic =
+ let reader =
+ if delim_null then
+ read_until_null ic
+ else
+ read_until_newline ic
+ in
+ Stream.create reader