]> matita.cs.unibo.it Git - helm.git/blobdiff - components/extlib/hExtlib.ml
legacy/coq.ma included
[helm.git] / components / extlib / hExtlib.ml
index bf725122c260e31f0b8c4595e36f9af2833db2fb..32f33bd2be735bbb3d5df18d4d63cc0c62e863e9 100644 (file)
@@ -27,7 +27,7 @@
 
 (** PROFILING *)
 
-let profiling_enabled = ComponentsConf.profiling
+let profiling_enabled = false ;; (* ComponentsConf.profiling *)
 
 let something_profiled = ref false
 
@@ -135,6 +135,10 @@ let is_alphanum c = is_alpha c || is_digit c
 
 (** {2 List processing} *)
 
+let flatten_map f l =
+  List.flatten (List.map f l)
+;;
+
 let rec list_uniq ?(eq=(=)) = function 
   | [] -> []
   | h::[] -> [h]
@@ -310,13 +314,16 @@ let find ?(test = fun _ -> true) path =
 let safe_remove fname = if Sys.file_exists fname then Sys.remove fname
 
 let is_dir_empty d =
- let od = Unix.opendir d in
- let rec aux () =
-  let name = Unix.readdir od in
-  if name <> "." && name <> ".." then false else aux () in
- let res = try aux () with End_of_file -> true in
-  Unix.closedir od;
-  res
+ try
+  let od = Unix.opendir d in
+  let rec aux () =
+   let name = Unix.readdir od in
+   if name <> "." && name <> ".." then false else aux () in
+  let res = try aux () with End_of_file -> true in
+   Unix.closedir od;
+   res
+ with
+  Unix.Unix_error _ -> true (* raised by Unix.opendir, we hope :-) *)
 
 let safe_rmdir d = try Unix.rmdir d with Unix.Unix_error _ -> ()