summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorXavier Leroy <xavier.leroy@inria.fr>1999-05-15 17:06:40 +0000
committerXavier Leroy <xavier.leroy@inria.fr>1999-05-15 17:06:40 +0000
commitdbc3d62830c08537751d0b146704e99aa14ba288 (patch)
treeb2abe0fde4ea7fee2511b2acaf8b118607e818fa
parenta2ea52bdc65221f74ea375946064cb16e88553be (diff)
Meilleur comportement de sprintf en cas d'application partielle
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@2373 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
-rw-r--r--stdlib/printf.ml7
1 files changed, 6 insertions, 1 deletions
diff --git a/stdlib/printf.ml b/stdlib/printf.ml
index 091146b82..84af2c04e 100644
--- a/stdlib/printf.ml
+++ b/stdlib/printf.ml
@@ -97,7 +97,12 @@ let bprintf_internal tostring buf format =
let format = (Obj.magic format : string) in
let rec doprn i =
if i >= String.length format then
- if tostring then Obj.magic (Buffer.contents buf) else Obj.magic ()
+ if tostring then begin
+ let res = Obj.magic (Buffer.contents buf) in
+ Buffer.clear buf; (* just in case [bs]printf is partially applied *)
+ res
+ end else
+ Obj.magic ()
else begin
let c = String.unsafe_get format i in
if c <> '%' then begin