mirror of
https://github.com/c-cube/iter.git
synced 2025-12-06 11:15:32 -05:00
fix: IO.write_lines should produce an empty file for an empty iter
This commit is contained in:
parent
df3a3de2ae
commit
f1d14dd030
1 changed files with 12 additions and 6 deletions
18
src/Iter.ml
18
src/Iter.ml
|
|
@ -1192,22 +1192,28 @@ module IO = struct
|
||||||
close_in_noerr ic;
|
close_in_noerr ic;
|
||||||
raise e
|
raise e
|
||||||
|
|
||||||
let write_bytes_to ?(mode = 0o644) ?(flags = [ Open_creat; Open_wronly ])
|
let with_out_ ?(mode = 0o644) ?(flags = [ Open_creat; Open_wronly ]) filename
|
||||||
filename seq =
|
f =
|
||||||
let oc = open_out_gen flags mode filename in
|
let oc = open_out_gen flags mode filename in
|
||||||
try
|
try
|
||||||
seq (fun s -> output oc s 0 (Bytes.length s));
|
f oc;
|
||||||
close_out oc
|
close_out oc
|
||||||
with e ->
|
with e ->
|
||||||
close_out oc;
|
close_out oc;
|
||||||
raise e
|
raise e
|
||||||
|
|
||||||
|
let write_bytes_to ?mode ?flags filename it =
|
||||||
|
with_out_ ?mode ?flags filename (fun oc ->
|
||||||
|
it (fun s -> output oc s 0 (Bytes.length s)))
|
||||||
|
|
||||||
let write_to ?mode ?flags filename seq =
|
let write_to ?mode ?flags filename seq =
|
||||||
write_bytes_to ?mode ?flags filename (map Bytes.unsafe_of_string seq)
|
write_bytes_to ?mode ?flags filename (map Bytes.unsafe_of_string seq)
|
||||||
|
|
||||||
let write_bytes_lines ?mode ?flags filename seq =
|
let write_bytes_lines ?mode ?flags filename it =
|
||||||
let ret = Bytes.unsafe_of_string "\n" in
|
with_out_ ?mode ?flags filename (fun oc ->
|
||||||
write_bytes_to ?mode ?flags filename (snoc (intersperse ret seq) ret)
|
it (fun s ->
|
||||||
|
output oc s 0 (Bytes.length s);
|
||||||
|
output_char oc '\n'))
|
||||||
|
|
||||||
let write_lines ?mode ?flags filename seq =
|
let write_lines ?mode ?flags filename seq =
|
||||||
write_bytes_lines ?mode ?flags filename (map Bytes.unsafe_of_string seq)
|
write_bytes_lines ?mode ?flags filename (map Bytes.unsafe_of_string seq)
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue