X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=helm%2Fmatita%2FmatitaMisc.ml;h=56cb4a29535f1734b5db12cc3c09410971be69ed;hb=5b32b7905bc78c11e353efd68137b8eb7b6ac73b;hp=1ebe49e39c2e442a1b6a922373c5efe24ba93c74;hpb=c90e354dfd2a81f03664ca68504e0932f670fe17;p=helm.git diff --git a/helm/matita/matitaMisc.ml b/helm/matita/matitaMisc.ml index 1ebe49e39..56cb4a295 100644 --- a/helm/matita/matitaMisc.ml +++ b/helm/matita/matitaMisc.ml @@ -26,9 +26,11 @@ open Printf open MatitaTypes -let strip_trailing_slash = - let rex = Pcre.regexp "/$" in - fun s -> Pcre.replace ~rex s +(** Functions "imported" from Http_getter_misc *) + +let strip_trailing_slash = Http_getter_misc.strip_trailing_slash +let normalize_dir = Http_getter_misc.normalize_dir +let strip_suffix = Http_getter_misc.strip_suffix let baseuri_of_baseuri_decl st = match st with @@ -39,7 +41,7 @@ let baseuri_of_baseuri_decl st = let baseuri_of_file file = let uri = ref None in let ic = open_in file in - let istream = Stream.of_channel ic in + let istream = Ulexing.from_utf8_channel ic in (try while true do try @@ -114,9 +116,27 @@ let append_phrase_sep s = else s -let strip_trailing_blanks = - let rex = Pcre.regexp "\\s*$" in - fun s -> Pcre.replace ~rex s +let mkdir path = + let components = Str.split (Str.regexp "/") path in + let rec aux where = function + | [] -> () + | piece::tl -> + let path = where ^ "/" ^ piece in + (try + Unix.mkdir path 0o755 + with + | Unix.Unix_error (Unix.EEXIST,_,_) -> () + | Unix.Unix_error (e,_,_) -> + raise + (Failure + ("Unix.mkdir " ^ path ^ " 0o755 :" ^ (Unix.error_message e)))); + aux path tl + in + aux "" components + +let trim_blanks = + let rex = Pcre.regexp "^\\s*(.*?)\\s*$" in + fun s -> (Pcre.extract ~rex s).(1) let split ?(char = ' ') s = let pieces = ref [] in @@ -232,25 +252,6 @@ let singleton f = let instance = lazy (f ()) in fun () -> Lazy.force instance -let mkdir d = - let errmsg = sprintf "Unable to create directory \"%s\"" d in - try - let dir = "mkdir -p " ^ d in - (match Unix.system dir with - | Unix.WEXITED 0 -> () - | Unix.WEXITED n -> - MatitaLog.error ("'mkdir -p " ^ dir ^ "' failed with "^string_of_int n); - failwith errmsg - | Unix.WSIGNALED s - | Unix.WSTOPPED s -> - MatitaLog.error - ("'mkdir -p " ^ dir ^ "' signaled with " ^ string_of_int s); - failwith errmsg) - with Unix.Unix_error _ as exc -> - MatitaLog.error - ("Unix error in makigin dir " ^ (MatitaExcPp.to_string exc)); - failwith errmsg - let get_proof_status status = match status.proof_status with | Incomplete_proof s -> s @@ -277,8 +278,6 @@ let get_proof_conclusion status = conclusion | _ -> statement_error "no ongoing proof" -let get_proof_aliases status = status.aliases - let qualify status name = get_string_option status "baseuri" ^ "/" ^ name let unopt = function None -> failwith "unopt: None" | Some v -> v @@ -295,8 +294,9 @@ let obj_file_of_baseuri baseuri = path ^ ".moo" let obj_file_of_script f = - let baseuri = baseuri_of_file f in - obj_file_of_baseuri baseuri + if f = "coq.ma" then BuildTimeConf.coq_notation_script else + let baseuri = baseuri_of_file f in + obj_file_of_baseuri baseuri let rec list_uniq = function | [] -> []