X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=helm%2Focaml%2Fgetter%2Fhttp_getter_misc.ml;h=b25a425805ad9c6a29cda92c83cd87aff2af496d;hb=3cf0591648726eee39e584ce3572d15224cf39b7;hp=c6a5954e55a243c271d69d3175053be8f482cabf;hpb=73ad0985990447db97f17870d2744f8fda13ebe4;p=helm.git diff --git a/helm/ocaml/getter/http_getter_misc.ml b/helm/ocaml/getter/http_getter_misc.ml index c6a5954e5..b25a42580 100644 --- a/helm/ocaml/getter/http_getter_misc.ml +++ b/helm/ocaml/getter/http_getter_misc.ml @@ -28,14 +28,21 @@ 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