aboutsummaryrefslogtreecommitdiff
path: root/lib/system.ml
diff options
context:
space:
mode:
authorfilliatr1999-11-24 10:48:23 +0000
committerfilliatr1999-11-24 10:48:23 +0000
commitfed2f27b5d23e8dceac1ad8d95b2374d3b72eddf (patch)
tree7305d3c223f84b3abad02dcc84a6bd6d8c65a9a7 /lib/system.ml
parentf9676380178d7af90d8cdf64662866c82139f116 (diff)
Vernacinterp et Vernacentries (partiellement)
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@133 85f007b7-540e-0410-9357-904b9bb8a0f7
Diffstat (limited to 'lib/system.ml')
-rw-r--r--lib/system.ml28
1 files changed, 28 insertions, 0 deletions
diff --git a/lib/system.ml b/lib/system.ml
index ab24f734c7..0f005bd47f 100644
--- a/lib/system.ml
+++ b/lib/system.ml
@@ -27,6 +27,8 @@ let search_in_path path filename =
in
search path
+let where_in_path = search_in_path
+
let find_file_in_path name =
let globname = glob name in
if not (Filename.is_relative globname) then
@@ -39,9 +41,35 @@ let find_file_in_path name =
(hOV 0 [< 'sTR"Can't find file" ; 'sPC ; 'sTR name ; 'sPC ;
'sTR"on loadpath" >])
+let is_in_path lpath filename =
+ try
+ let _ = search_in_path lpath filename in true
+ with
+ Not_found -> false
+
let make_suffix name suffix =
if Filename.check_suffix name suffix then name else (name ^ suffix)
+(*Gives the list of all the directories under dir*)
+let alldir dir =
+ let ini = Unix.getcwd()
+ and tmp = Filename.temp_file "coq" "rec"
+ and lst = ref [] in
+ Unix.chdir dir;
+ let bse = Unix.getcwd() in
+ let _ = Sys.command ("find "^bse^" -type d >> "^tmp) in
+ let inf = open_in tmp in
+ try
+ while true do
+ lst := !lst @ [input_line inf]
+ done;
+ []
+ with End_of_file ->
+ close_in inf;
+ Sys.remove tmp;
+ Unix.chdir ini;
+ !lst
+
let open_trapping_failure open_fun name suffix =
let rname = make_suffix name suffix in
try open_fun rname with _ -> error ("Can't open " ^ rname)