]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/ocaml/getter/http_getter_misc.ml
rebuilt against ocaml 3.08.3
[helm.git] / helm / ocaml / getter / http_getter_misc.ml
index c6a5954e55a243c271d69d3175053be8f482cabf..b25a425805ad9c6a29cda92c83cd87aff2af496d 100644 (file)
 
 open Printf
 
+let file_scheme_prefix = "file://"
+
 let trailing_dot_gz_RE = Pcre.regexp "\\.gz$"   (* for g{,un}zip *)
 let url_RE = Pcre.regexp "^([\\w.-]+)(:(\\d+))?(/.*)?$"
 let http_scheme_RE = Pcre.regexp ~flags:[`CASELESS] "^http://"
-let file_scheme_RE = Pcre.regexp ~flags:[`CASELESS] "^file://"
+let file_scheme_RE = Pcre.regexp ~flags:[`CASELESS] ("^" ^ file_scheme_prefix)
 let dir_sep_RE = Pcre.regexp "/"
 let heading_slash_RE = Pcre.regexp "^/"
 
-let is_local_url s = Pcre.pmatch ~rex:file_scheme_RE s
+let local_url =
+  let rex = Pcre.regexp ("^(" ^ file_scheme_prefix ^ ")(.*)(.gz)$") in
+  fun s ->
+    try
+      Some ((Pcre.extract ~rex s).(2))
+    with Not_found -> None
 
 let bufsiz = 16384  (* for file system I/O *)
 let tcp_bufsiz = 4096 (* for TCP I/O *)
@@ -156,7 +163,6 @@ let gunzip ?(keep = false) ?output fname =
   begin
     try
       let ic = Gzip.open_in_chan zic in
-      Http_getter_logger.log (sprintf "LUCA: OK" );
       let oc = open_out output in
       let buf = String.create bufsiz in
       (try