X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=helm%2Fmatita%2FmatitaMisc.ml;h=8f97b25a9384b9f77f8ec1b7f0aab49893f7526d;hb=0bf96cb668cdd8d14b1c66f8a5241f12c5df9e3a;hp=56cb4a29535f1734b5db12cc3c09410971be69ed;hpb=5b32b7905bc78c11e353efd68137b8eb7b6ac73b;p=helm.git diff --git a/helm/matita/matitaMisc.ml b/helm/matita/matitaMisc.ml index 56cb4a295..8f97b25a9 100644 --- a/helm/matita/matitaMisc.ml +++ b/helm/matita/matitaMisc.ml @@ -80,29 +80,28 @@ let is_empty buri = let safe_remove fname = if Sys.file_exists fname then Sys.remove fname -let is_dir fname = - try - (Unix.stat fname).Unix.st_kind = Unix.S_DIR - with Unix.Unix_error _ -> false - -let is_regular fname = - try - (Unix.stat fname).Unix.st_kind = Unix.S_REG - with Unix.Unix_error _ -> false - -let input_file fname = - let size = (Unix.stat fname).Unix.st_size in - let buf = Buffer.create size in - let ic = open_in fname in - Buffer.add_channel buf ic size; - close_in ic; - Buffer.contents buf - -let output_file data file = - let oc = open_out file in - output_string oc data; - close_out oc - +let is_dir_empty d = + try + let od = Unix.opendir d in + try + ignore (Unix.readdir od); + ignore (Unix.readdir od); + ignore (Unix.readdir od); + Unix.closedir od; + false + with End_of_file -> + Unix.closedir od; + true + with Unix.Unix_error _ -> true + +let safe_rmdir d = try Unix.rmdir d with Unix.Unix_error _ -> () + +let rec rmdir_descend d = + if is_dir_empty d then + begin + safe_rmdir d; + rmdir_descend (Filename.dirname d) + end let absolute_path file = if file.[0] = '/' then file else Unix.getcwd () ^ "/" ^ file @@ -116,40 +115,6 @@ let append_phrase_sep s = else 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 - let rec aux idx = - match (try Some (String.index_from s idx char) with Not_found -> None) with - | Some pos -> - pieces := String.sub s idx (pos - idx) :: !pieces; - aux (pos + 1) - | None -> pieces := String.sub s idx (String.length s - idx) :: !pieces - in - aux 0; - List.rev !pieces - let empty_mathml () = DomMisc.domImpl#createDocument ~namespaceURI:(Some DomMisc.mathml_ns) ~qualifiedName:(Gdome.domString "math") ~doctype:None @@ -280,8 +245,6 @@ let get_proof_conclusion status = let qualify status name = get_string_option status "baseuri" ^ "/" ^ name -let unopt = function None -> failwith "unopt: None" | Some v -> v - let image_path n = sprintf "%s/%s" BuildTimeConf.images_dir n let end_ma_RE = Pcre.regexp "\\.ma$" @@ -298,12 +261,6 @@ let obj_file_of_script f = let baseuri = baseuri_of_file f in obj_file_of_baseuri baseuri -let rec list_uniq = function - | [] -> [] - | h::[] -> [h] - | h1::h2::tl when h1 = h2 -> list_uniq (h2 :: tl) - | h1::tl (* when h1 <> h2 *) -> h1 :: list_uniq tl - let list_tl_at ?(equality=(==)) e l = let rec aux = function @@ -313,9 +270,3 @@ let list_tl_at ?(equality=(==)) e l = in aux l -let debug_wrap name f = - prerr_endline (sprintf "debug_wrap: ==>> %s" name); - let res = f () in - prerr_endline (sprintf "debug_wrap: <<== %s" name); - res -