open Printf;;
let trailing_dot_gz_RE = Pcre.regexp "\\.gz$" (* for g{,un}zip *)
-let url_RE = Pcre.regexp "^([\\w.]+)(:(\\d+))?(/.*)?$"
+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 dir_sep_RE = Pcre.regexp "/"
close_in ic;
Some buf
with Unix.Unix_error (Unix.ENOENT, "stat", _) -> None
- end else (* other URL, pass it to netclient *)
+ end else (* other URL, pass it to Http_client *)
try
- Some (Http_client.Convenience.http_get url)
- with Http_client.Http_error (code, _) -> None
+ Some (Http_client.http_get url)
+ with e ->
+ prerr_endline (sprintf
+ "Warning: Http_client failed on url %s with exception: %s"
+ url (Printexc.to_string e));
+ None
(** apply a transformation "string list -> string list" to file lines *)
let mangle_file ~fname f =
remove position ([], lines))
;;
+let is_blank_line =
+ let blank_line_RE = Pcre.regexp "(^#)|(^\\s*$)" in
+ fun line ->
+ Pcre.pmatch ~rex:blank_line_RE line
+;;
+