X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=helm%2Focaml%2Fgetter%2Fhttp_getter_cache.ml;h=e6627fa1e3ddab95761eba19c3b407e75cab8a92;hb=52fdcda3e0083391fa04a064f3e07279d975d5ba;hp=62a009c0f954e5cc0ae5f1c8a2b58bdb604f6cf9;hpb=f693e2de79c1a95422a5efd22acbcea5003eeaba;p=helm.git diff --git a/helm/ocaml/getter/http_getter_cache.ml b/helm/ocaml/getter/http_getter_cache.ml index 62a009c0f..e6627fa1e 100644 --- a/helm/ocaml/getter/http_getter_cache.ml +++ b/helm/ocaml/getter/http_getter_cache.ml @@ -110,9 +110,9 @@ let respond_xml None in if patch then - Http_getter_common.patch_xml ?xmlbases ~via_http () + Some (Http_getter_common.patch_xml ?xmlbases ~via_http ()) else - (fun x -> x) + None in let basename = Pcre.replace ~pat:"\\.gz$" downloadname in let contype = "text/xml" in @@ -182,13 +182,14 @@ let respond_xml | `Normal -> Http_getter_logger.log ~level:2 "No format mangling required (encoding = normal)"; - return_file ~via_http ~fname:basename ~contype ~patch_fun outchan + return_file ~via_http ~fname:basename ~contype ?patch_fun ~enc + outchan | `Gzipped -> Http_getter_logger.log ~level:2 "No format mangling required (encoding = gzipped)"; return_file ~via_http ~fname:(basename ^ ".gz") ~contype ~contenc:"x-gzip" - ~patch_fun ~gunzip:true + ?patch_fun ~gunzip:true ~enc outchan) | `Normal, `Gzipped | `Gzipped, `Normal -> (match tmp_short_circuit with @@ -202,27 +203,27 @@ let respond_xml (* required format normal, cached (or local) version gzipped *) gunzip (* gunzip to tmp *) ~output:tmp ~keep:true (basename ^ ".gz"); - return_file ~via_http ~fname:tmp ~contype ~patch_fun outchan; + return_file ~via_http ~fname:tmp ~contype ?patch_fun ~enc outchan | `Gzipped -> (* required format is gzipped, cached version is normal *) gzip ~output:tmp ~keep:true basename; (* gzip to tmp *) return_file ~via_http ~fname:tmp ~contype ~contenc:"x-gzip" - ~patch_fun ~gunzip:true + ?patch_fun ~gunzip:true ~enc outchan) )) | Some (fname, `Normal) -> (* short circuit available, use it! *) Http_getter_logger.log ~level:2 "Using short circuit (encoding = normal)"; finally (fun () -> Sys.remove fname) (lazy ( - return_file ~via_http ~fname ~contype ~patch_fun outchan + return_file ~via_http ~fname ~contype ?patch_fun ~enc outchan )) | Some (fname, `Gzipped) -> (* short circuit available, use it! *) Http_getter_logger.log ~level:2 "Using short circuit (encoding = gzipped)"; finally (fun () -> Sys.remove fname) (lazy ( - return_file ~via_http ~fname ~contype ~contenc:"x-gzip" ~patch_fun - ~gunzip:true outchan + return_file ~via_http ~fname ~contype ~contenc:"x-gzip" ?patch_fun + ~gunzip:true ~enc outchan ))) )) @@ -236,7 +237,7 @@ let respond_xsl let fname = tempfile () in finally (fun () -> Sys.remove fname) (lazy ( wget ~output:fname url; - return_file ~via_http ~fname ~contype:"text/xml" ~patch_fun outchan + return_file ~via_http ~fname ~contype:"text/xml" ~patch_fun ~enc outchan )) (* TODO enc is not yet supported *) @@ -248,7 +249,8 @@ let respond_dtd in if Sys.file_exists url then (* TODO check this: old getter here used text/xml *) - return_file ~via_http ~fname:url ~contype:"text/plain" ~patch_fun outchan + return_file ~via_http ~fname:url ~contype:"text/plain" ~patch_fun ~enc + outchan else raise (Dtd_not_found url)