diff options
Diffstat (limited to 'lib/Printlines.ml')
-rw-r--r-- | lib/Printlines.ml | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/lib/Printlines.ml b/lib/Printlines.ml index 135672cc..b270e229 100644 --- a/lib/Printlines.ml +++ b/lib/Printlines.ml @@ -25,7 +25,7 @@ type filebuf = { the first character of line number [b.lineno]. *) let openfile f = - { chan = open_in f; + { chan = open_in_bin f; lineno = 1 } let close b = @@ -101,11 +101,13 @@ let copy oc pref b first last = try while b.lineno <= last do let c = input_char b.chan in - output_char oc c; - if c = '\n' then begin + match c with + | '\n' -> + output_char oc c; b.lineno <- b.lineno + 1; if b.lineno <= last then output_string oc pref - end + | '\r' | '\011' | '\012' -> output_char oc ' ' + | _ -> output_char oc c done with End_of_file -> output_char oc '\n' |