diff options
author | Xavier Leroy <xavier.leroy@inria.fr> | 1999-05-15 17:06:40 +0000 |
---|---|---|
committer | Xavier Leroy <xavier.leroy@inria.fr> | 1999-05-15 17:06:40 +0000 |
commit | dbc3d62830c08537751d0b146704e99aa14ba288 (patch) | |
tree | b2abe0fde4ea7fee2511b2acaf8b118607e818fa | |
parent | a2ea52bdc65221f74ea375946064cb16e88553be (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.ml | 7 |
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 |