From 6dd5c6fd54fcec0c68080ed817a67b153d939f60 Mon Sep 17 00:00:00 2001 From: Neale Pickett Date: Tue, 3 Mar 2009 17:46:27 -0600 Subject: [PATCH] Provide SRFI-6 --- ocs-1.0.3/src/ocs_port.ml | 10 ++++++++-- ocs-1.0.3/src/ocs_port.mli | 5 +++-- ocs-1.0.3/src/ocs_read.ml | 2 +- 3 files changed, 12 insertions(+), 5 deletions(-) diff --git a/ocs-1.0.3/src/ocs_port.ml b/ocs-1.0.3/src/ocs_port.ml index 2ec625a..76f3af7 100644 --- a/ocs-1.0.3/src/ocs_port.ml +++ b/ocs-1.0.3/src/ocs_port.ml @@ -117,9 +117,15 @@ let open_output_port name = with Sys_error err -> raise (Error ("unable to open '" ^ name ^ "' for output: " ^ err)) -let string_input_port s = +let open_input_string s = { ungot = ref None; impl = Input_string (s, ref 0) } -let string_output_port () = +let open_output_string () = { ungot = ref None; impl = Output_string (Buffer.create 256) } +let get_output_string p = + match p.impl with + | Output_string buf -> + Buffer.contents buf + | _ -> + "" diff --git a/ocs-1.0.3/src/ocs_port.mli b/ocs-1.0.3/src/ocs_port.mli index fe6044a..5345c3a 100644 --- a/ocs-1.0.3/src/ocs_port.mli +++ b/ocs-1.0.3/src/ocs_port.mli @@ -6,8 +6,9 @@ val input_port : in_channel -> port val output_port : out_channel -> port val open_input_port : string -> port val open_output_port : string -> port -val string_input_port : string -> port -val string_output_port : unit -> port +val open_input_string : string -> port +val open_output_string : unit -> port +val get_output_string : port -> string val is_input : port -> bool val is_output : port -> bool diff --git a/ocs-1.0.3/src/ocs_read.ml b/ocs-1.0.3/src/ocs_read.ml index 5f10beb..5f32326 100644 --- a/ocs-1.0.3/src/ocs_read.ml +++ b/ocs-1.0.3/src/ocs_read.ml @@ -83,5 +83,5 @@ let read_from_port p = ;; let read_from_string s = - read_from_port (Ocs_port.string_input_port s) + read_from_port (Ocs_port.open_input_string s) ;;