diff options
author | Jacques Garrigue <garrigue at math.nagoya-u.ac.jp> | 2002-08-09 10:34:44 +0000 |
---|---|---|
committer | Jacques Garrigue <garrigue at math.nagoya-u.ac.jp> | 2002-08-09 10:34:44 +0000 |
commit | c9b77a613c84fefffe7cb824c72419172ed7ae46 (patch) | |
tree | 8096ab8ba03a572227baf59fa04009a9c7abfcd2 /otherlibs/labltk/browser/useunix.ml | |
parent | b920dbd56c1e403a429f5001832fb05d72ee05b6 (diff) |
last changes
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@5094 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
Diffstat (limited to 'otherlibs/labltk/browser/useunix.ml')
-rw-r--r-- | otherlibs/labltk/browser/useunix.ml | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/otherlibs/labltk/browser/useunix.ml b/otherlibs/labltk/browser/useunix.ml index a12d56c35..4998bbd66 100644 --- a/otherlibs/labltk/browser/useunix.ml +++ b/otherlibs/labltk/browser/useunix.ml @@ -18,7 +18,13 @@ open StdLabels open UnixLabels let get_files_in_directory dir = - match + let len = String.length dir in + let dir = + if len > 0 && Sys.os_type = "Win32" && + (dir.[len-1] = '/' || dir.[len-1] = '\\') + then String.sub dir ~pos:0 ~len:(len-1) + else dir + in match try Some(opendir dir) with Unix_error _ -> None with None -> [] @@ -39,8 +45,14 @@ let is_directory name = (stat name).st_kind = S_DIR with _ -> false +let concat dir name = + let len = String.length dir in + if len = 0 then name else + if dir.[len-1] = '/' then dir ^ name + else dir ^ "/" ^ name + let get_directories_in_files ~path = - List.filter ~f:(fun x -> is_directory (path ^ "/" ^ x)) + List.filter ~f:(fun x -> is_directory (concat path x)) (************************************************** Subshell call *) let subshell ~cmd = |