diff options
author | Maxence Guesdon <maxence.guesdon@inria.fr> | 2002-04-29 15:07:10 +0000 |
---|---|---|
committer | Maxence Guesdon <maxence.guesdon@inria.fr> | 2002-04-29 15:07:10 +0000 |
commit | 73e7df59ce9300d48f5e54a3ada5101d26b45581 (patch) | |
tree | 59390231395277616c84a1ec637797c7672360f6 | |
parent | bb2ecec4efaa8208db14985eeb63abd83763010d (diff) |
correction fonction de lecture d'un fichier sous forme d'une chaine : utilisation de open_in_bin au lieu de open_in et utilisation de input
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@4761 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
-rw-r--r-- | ocamldoc/odoc_misc.ml | 22 |
1 files changed, 13 insertions, 9 deletions
diff --git a/ocamldoc/odoc_misc.ml b/ocamldoc/odoc_misc.ml index 2ac312f0d..d6fee14e0 100644 --- a/ocamldoc/odoc_misc.ml +++ b/ocamldoc/odoc_misc.ml @@ -12,22 +12,26 @@ let input_file_as_string nom = - let chanin = open_in nom in - let buf = Buffer.create 80 in + let chanin = open_in_bin nom in + let len = 1024 in + let s = String.create len in + let buf = Buffer.create len in let rec iter () = try - Buffer.add_string buf ((input_line chanin)^"\n"); - iter () + let n = input chanin s 0 len in + if n = 0 then + () + else + ( + Buffer.add_substring buf s 0 n; + iter () + ) with End_of_file -> () in iter (); close_in chanin; - let len = Buffer.length buf in - if len <= 1 then - Buffer.contents buf - else - (String.sub (Buffer.contents buf) 0 (len - 1)) + Buffer.contents buf let string_of_longident li = String.concat "." (Longident.flatten li) |