diff options
author | Paul Steckler <steck@stecksoft.com> | 2017-08-22 15:38:06 -0400 |
---|---|---|
committer | Paul Steckler <steck@stecksoft.com> | 2017-08-22 15:38:06 -0400 |
commit | c62a286bad2ec0ced1e7b5e8987f5f7e476ab11c (patch) | |
tree | 1c3a484d46d493b63170dbf85d726c55a50bcee4 /pretyping/nativenorm.ml | |
parent | 64b6b6075e461383719f6565aff2976dacc47569 (diff) |
use OCaml 4.03-compatible Filename functions
Diffstat (limited to 'pretyping/nativenorm.ml')
-rw-r--r-- | pretyping/nativenorm.ml | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/pretyping/nativenorm.ml b/pretyping/nativenorm.ml index 9ca632f4b..39c2ceeba 100644 --- a/pretyping/nativenorm.ml +++ b/pretyping/nativenorm.ml @@ -54,8 +54,17 @@ let get_available_profile_filename () = let profile_filename = get_profile_filename () in let dir = Filename.dirname profile_filename in let base = Filename.basename profile_filename in - let ext = Filename.extension base in - let name = Filename.remove_extension base in + (* starting with OCaml 4.04, could use Filename.remove_extension and Filename.extension, which + gets rid of need for exception-handling here + *) + let (name,ext) = + try + let nm = Filename.chop_extension base in + let nm_len = String.length nm in + let ex = String.sub base nm_len (String.length base - nm_len) in + (nm,ex) + with Invalid_argument _ -> (base,"") + in try (* unlikely race: fn deleted, another process uses fn *) Filename.temp_file ~temp_dir:dir (name ^ "_") ext |