diff options
author | pboutill <pboutill@85f007b7-540e-0410-9357-904b9bb8a0f7> | 2011-09-01 09:50:59 +0000 |
---|---|---|
committer | pboutill <pboutill@85f007b7-540e-0410-9357-904b9bb8a0f7> | 2011-09-01 09:50:59 +0000 |
commit | 1ba4c045833569b30fd61616aae739ecb7117ab8 (patch) | |
tree | d9101f02d8b590d3f740df0c0423b055c5800c05 /ide/minilib.ml | |
parent | ffacb8e03d1ec6e19c4ad19381d9755a90df8cdb (diff) |
[/]+ is equivalent to [/] in System and its copy
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@14435 85f007b7-540e-0410-9357-904b9bb8a0f7
Diffstat (limited to 'ide/minilib.ml')
-rw-r--r-- | ide/minilib.ml | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/ide/minilib.ml b/ide/minilib.ml index 71956cf8f..e5019de04 100644 --- a/ide/minilib.ml +++ b/ide/minilib.ml @@ -79,16 +79,26 @@ let coqtop_path = ref "" let rec remove_path_dot p = let curdir = Filename.concat Filename.current_dir_name "" in (* Unix: "./" *) let n = String.length curdir in - if String.length p > n && String.sub p 0 n = curdir then - remove_path_dot (String.sub p n (String.length p - n)) + let l = String.length p in + if l > n && String.sub p 0 n = curdir then + let n' = + let sl = String.length Filename.dir_sep in + let i = ref n in + while !i <= l - sl && String.sub p !i sl = Filename.dir_sep do i := !i + sl done; !i in + remove_path_dot (String.sub p n' (l - n')) else p let strip_path p = let cwd = Filename.concat (Sys.getcwd ()) "" in (* Unix: "`pwd`/" *) let n = String.length cwd in - if String.length p > n && String.sub p 0 n = cwd then - remove_path_dot (String.sub p n (String.length p - n)) + let l = String.length p in + if l > n && String.sub p 0 n = cwd then + let n' = + let sl = String.length Filename.dir_sep in + let i = ref n in + while !i <= l - sl && String.sub p !i sl = Filename.dir_sep do i := !i + sl done; !i in + remove_path_dot (String.sub p n' (l - n')) else remove_path_dot p |