open Printf
open MatitaTypes
+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
let rex = Pcre.regexp "\\s*$" in
fun s -> Pcre.replace ~rex s
+let strip_trailing_slash =
+ let rex = Pcre.regexp "/$" in
+ fun s -> Pcre.replace ~rex s
+
let empty_mathml () =
- Misc.domImpl#createDocument ~namespaceURI:(Some Misc.mathml_ns)
+ DomMisc.domImpl#createDocument ~namespaceURI:(Some DomMisc.mathml_ns)
~qualifiedName:(Gdome.domString "math") ~doctype:None
let empty_boxml () =
- Misc.domImpl#createDocument ~namespaceURI:(Some Misc.boxml_ns)
+ DomMisc.domImpl#createDocument ~namespaceURI:(Some DomMisc.boxml_ns)
~qualifiedName:(Gdome.domString "box") ~doctype:None
exception History_failure
| _ -> []
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
+let image_path n = sprintf "%s/%s" BuildTimeConf.images_dir n
+
+let end_ma_RE = Pcre.regexp "\\.ma$"
+let obj_file_of_script f = Pcre.replace ~rex:end_ma_RE ~templ:".moo" f
+
+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 debug_wrap name f =
+ prerr_endline (sprintf "debug_wrap: ==>> %s" name);
+ let res = f () in
+ prerr_endline (sprintf "debug_wrap: <<== %s" name);
+ res
+