diff options
author | Damien Doligez <damien.doligez-inria.fr> | 2002-03-21 17:13:02 +0000 |
---|---|---|
committer | Damien Doligez <damien.doligez-inria.fr> | 2002-03-21 17:13:02 +0000 |
commit | 424fd989f5cf395fc187b6ae726a65b067e20122 (patch) | |
tree | 84fe82f8d8a99b744f43f2d494ae72a7496ba83a /stdlib | |
parent | e5540bf1968bbd41b9cf15e014d8c5eae7e3310a (diff) |
Format.kprintf
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@4553 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
Diffstat (limited to 'stdlib')
-rw-r--r-- | stdlib/format.ml | 6 | ||||
-rw-r--r-- | stdlib/format.mli | 4 |
2 files changed, 8 insertions, 2 deletions
diff --git a/stdlib/format.ml b/stdlib/format.ml index 51eded16e..50958542a 100644 --- a/stdlib/format.ml +++ b/stdlib/format.ml @@ -1065,10 +1065,12 @@ let string_out b ppf () = let fprintf ppf = fprintf_out false unit_out ppf;; let printf f = fprintf_out false unit_out std_formatter f;; let eprintf f = fprintf_out false unit_out err_formatter f;; -let sprintf f = +let kprintf k f = let b = Buffer.create 512 in let ppf = formatter_of_buffer b in - fprintf_out true (string_out b ppf) ppf f;; + fprintf_out true (fun () -> k (string_out b ppf ())) ppf f +;; +let sprintf f = kprintf (fun x -> x) f;; let bprintf b = let ppf = formatter_of_buffer b in diff --git a/stdlib/format.mli b/stdlib/format.mli index cb0431f0f..4600b43ab 100644 --- a/stdlib/format.mli +++ b/stdlib/format.mli @@ -593,3 +593,7 @@ val bprintf : Buffer.t -> ('a, formatter, unit) format -> 'a;; [fprintf] with a formatter writing to the buffer [b] (as obtained by [formatter_of_buffer b]), otherwise the repeated flushes of the pretty-printer queue would result in badly formatted output. *) + +val kprintf : (string -> string) -> ('a, unit, string) format -> 'a;; +(** Same as [sprintf] above, but instead of returning the string, + pass it to the first argument. *) |