summaryrefslogtreecommitdiffstats
path: root/otherlibs/labltk/browser/useunix.ml
diff options
context:
space:
mode:
Diffstat (limited to 'otherlibs/labltk/browser/useunix.ml')
-rw-r--r--otherlibs/labltk/browser/useunix.ml16
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 =